<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div>Thanks Tanu for the detailed reply.. <br><br></div>A) I would great if whatever I am intending to do could be added to pulseaudio. But I feel what I need to do is already implemented in the module "Module-role-cork" --> Essentially priority assignment between the streams played by pulseaudio.<br>
<br></div>B) The only differentiator is that instead of the (media player or skype) application assigning the media.role variable, I want the Audio Manager or Routing system (to which the other applications like skype and media player register) to manage assignment of this variable.. <br>
<br></div><div>C) I have a question in this regard. I have listed it below.<br></div><div><br></div>So "<b>if I can keep the Module-role-cork running by adding it to the <a href="http://default.pa">default.pa</a> file, I hope that assignment of the media role variable will take care of priority (what is to be corked and uncorked).</b>" -- Is this assumption right ??<br>
<br></div><div>D) So the module intent to write has the following aim :-<br><br></div><div>     Based on the Audio Manager or routing mechanism status, media.role priority of the particular audio stream needs to be assigned..<br>
<br></div><div><b>E) I have a few doubts in my mind abt the way in which the module can be called</b>. In your reply, you have mentioned that the module can call and consult the Audio Manager. Is the other way possible. In order words,<br>
<br></div><div><b>Is their by any chance the module can loaded from my routing mechanism code itself.. </b><br><br>From the simple test I could carry out, the command line arguments for this prioritizing functionality seems to go like this <br>
</div><div>  "<b>pactl load-module <module-name></b>". Is there by any chance I can load these modules from a C++ program. <br></div><div><br></div>F) I also tried to carry out a few simple test to check how the routing works in pulse audio when media player is playing when a phone call over skype arrives.. But in ubuntu 12.10, the MODULE-ROLE-CORK command doesnt seem to working. I am using pulseaudio 2.0. <br>
<br>I had tried in ubuntu 12.04 LTS. the module "MODULE-CORK-MUSIC-ON-PHONE" seems to be working good for me (pulseaudio 1.1). <b>Is that I should upgrade to the latest ubuntu version 13.10 and check..</b><br></div>
</div><br></div>G) The command format I used in pulseaudio 2.0 to load the "module-role-cork" is like this<br><br></div><b>    pactl load-module module-role-cork trigger_roles="phone" cork_roles="video"</b><br>
<br></div>    Is this the right way to do this..<br><br></div>Thanks,<br></div>Sathish<br><div><div><div><div><div><div><div><br><div><div><div><div><div><div><div><div><div><div><div class="gmail_extra"><div class="gmail_quote">
On 19 November 2013 16:03, Tanu Kaskinen <span dir="ltr"><<a href="mailto:tanu.kaskinen@linux.intel.com" target="_blank">tanu.kaskinen@linux.intel.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Tue, 2013-11-19 at 14:57 +0530, sathishkumar sivagurunathan wrote:<br>
> Thanks Tanu,<br>
><br>
> What I want to do is something like this.<br>
><br>
> 1) The task is very similar to the module-role-cork.. Ex:- when a call<br>
> comes from skype, if I am playing rhythmbox, it should pause and after I<br>
> finish the call, it should restart. The skype and rhythmbox are managed by<br>
> a Audio Manager.<br>
><br>
> 2) The applications that I use (like skype and rhythmbox) might not have<br>
> the media role property.<br>
><br>
> 3) In such a case, how to assign media roles to them..<br>
><br>
> 4) The Audio Manager or routing engine has the information about the media<br>
> role variable..<br>
><br>
> The above points are the things I want to acheive..<br>
><br>
</div>> *" Essentially, if I write a module, it should take the media role<br>
<div>> information from Audio Manager and set the media role variable in pulse<br>
</div>> audio.."*<br>
<div>><br>
> Is this what you implied when you replied you have to write a module<br>
> (written within quotes and faced in bold)??<br>
<br>
</div>Well, I had no knowledge of there being any Audio Manager software, so<br>
naturally I didn't imply that the module would take information from<br>
such software, but if there must be a separate Audio Manager, then yes,<br>
the module would take input from the Audio Manager and set the media<br>
role variables according to the input.<br>
<div><br>
> Are there any other ways to do<br>
> it ??<br>
<br>
</div>I assume that the information about how to map streams to media roles is<br>
pretty static, so perhaps the module doesn't need to have a connection<br>
to the Audio Manager. Instead, the module could have its own<br>
configuration file that tells how to map streams to media roles. But if<br>
you want to keep the configuration in the Audio Manager, then the module<br>
should connect to the Audio Manager.<br>
<br>
Note that upstream PulseAudio doesn't support writing out-of-tree<br>
modules, so if you want to write a module, you need to modify<br>
PulseAudio. One option is to modify the build system so that the<br>
internal headers are installed so that they're available to external<br>
code - this is what e.g. Tizen and Sailfish do to facilitate their<br>
custom PulseAudio modules. If you don't need to keep your module<br>
separate from the PulseAudio source, you can of course add the module<br>
directly to the PulseAudio sources, so the build system doesn't need to<br>
be modified (except to the extent that it builds your module).<br>
<br>
The optimal solution would be that you would upstream your module, so<br>
you wouldn't have to maintain a modified version PulseAudio, you<br>
wouldn't have to port the module whenever you update PulseAudio, and<br>
also other people than you would get benefit from the module. This<br>
option requires that you convince us that it makes sense for us to take<br>
and maintain your module. If this is what you want, then we need to<br>
discuss the details of what the module does.<br>
<span><font color="#888888"><br>
--<br>
Tanu<br>
<br>
</font></span></blockquote></div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>