<div dir="ltr"><div class="im">Thanks Tanu for the reply, </div><div class="im"><br></div><div class="im">I have been trying to some simple analysis for the past on  this question below I raised before you last time..</div>
<div class="im"><br>1) I have a routing policy manager which would like to cork/pause a<br> stream. No priority is involved in this usecase. Is it this possible with<br> Pulse Audio.<br><br></div>Only the application that created the stream can cork it. External<br>
policy managers can't do that. This may change in the future, but don't<br>count on that. If you want to implement a policy for corking streams,<br>you have to do that in a PulseAudio module.<div><br></div><div><font color="#ff0000">Tanu, I understand that it is possible only by the application to cork the stream. I really tried using the "module-role-cork" module. </font></div>
<div><font color="#ff0000">But I couldn't fit it into my need for having called from my policy manager..</font></div><div><font color="#ff0000"><br></font></div><div><font color="#ff0000">Hence, I was trying to go through the code if something different can be done. I had presented my analysis to you. Glad to hear your comments on it.. </font></div>
<div><font color="#ff0000"><br></font></div><div><font color="#ff0000">My idea is (though my analysis might not be perfect) :-</font></div><div><font color="#ff0000"><br></font></div><div><font color="#ff0000">1) I looked at the available C API's that are available in Instrospect.c. It houses the C API's to be called for muting, changing volume etc.</font></div>
<div><font color="#ff0000">Is it possible to add a function to this Introspect.c for pause functionality.</font></div><div><font color="#ff0000"><br></font></div><div><font color="#ff0000">2) I also saw that C API's in Introspect.c like called functions in protocol-native.c to execute the functionality.</font></div>
<div><font color="#ff0000">    Example:- <b>pa_context_set_sink_mute_by_index</b> function in Introspect.c calls <b>command_set_mute </b>in protocol-native.c.</font></div><div><font color="#ff0000"><br></font></div><div><font color="#ff0000">3) Hence is it possible to write a new function for pause say "<b>pa_context_set_sink_input_pause</b>" in Introspect.c and call "<b>command_set_pause</b>" in protocol-native.c.</font></div>
<div><font color="#ff0000"><br></font></div><div><font color="#ff0000">4) This new function "<b>command_set_pause</b>" in protocol-native.c calls into "<b>pa_sink_input_send_event" </b>in sink-input.c and henceforth the event is relayed to the application for pausing.</font></div>
<div><font color="#ff0000"><br></font></div><div><font color="#ff0000">5) Indeed I am just trying to use the same chain of command followed by "<b>module-role-cork</b>" module to relay command which is </font></div>
<div><font color="#ff0000">   <b> module-role-cork</b> -> <b>pa_sink_input_send_event</b>  in sink-input.c -> <b>sink_input_send_event_cb</b> in protocol-native.c -> Application --> which instructs to pause.</font></div>
<div><font color="#ff0000"><br></font></div><div><font color="#ff0000">6) I am just to come from the Introspect.c side..</font></div><div><font color="#ff0000">   <b>pa_context_set_sink_input_pause </b>in Introspect.c ->  <b>command_set_pause </b>in protocol-native.c -> <b>pa_sink_input_send_event</b>  in sink-input.c -> <b>sink_input_send_event_cb</b> in protocol-native.c -> Application --> which instructs to pause.</font></div>
<div><font color="#ff0000"><br></font></div><div><font color="#ff0000">My questions are:-</font></div><div><font color="#ff0000"><br></font></div><div><font color="#ff0000">Is this feasible.. I am asking this because i trying to connect as a client and do it. And you had mentioned that client would be allowed to do such a thing.. </font></div>
<div><font color="#ff0000"><br></font></div><div>Looking for direction from your side!!<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks,</div><div class="gmail_extra">Sathish</div></div>