Custom client-server communication

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



'Twas brillig, and tarantism at 19/10/10 23:06 did gyre and gimble:
> Hi Colin,
> Thanks for your quick response.
> 
> On Tue, 2010-10-19 at 22:46 +0100, Colin Guthrie wrote:
>> 'Twas brillig, and tarantism at 19/10/10 22:16 did gyre and gimble:
>>> I'd like to pass custom messages from the client to this module. I can
>>> see how to pass messages on the server side to a pa_msgobject but can't
>>> see how to do this from client to server.
>> There is sadly no easy way to do this generically.
>>
>> You can build protocol extensions but the "core" of PA needs to have
>> some degree of knowledge of this.
>>
>> Some modules do create protocol extensions tho'. e.g. see
>> module-device-manager (not present until 0.9.21) and
>> module-stream-restore (which should be available under 0.9.15) to see
>> how this is done.
> I'd spotted the PA_COMMAND_EXTENSION but in 0.9.15, this (from
> context.c) kinda precludes general usage:
> 
> void pa_command_extension(pa_pdispatch *pd, uint32_t command, uint32_t 
> ...
>     if (!strcmp(name, "module-stream-restore"))
>         pa_ext_stream_restore_command(c, tag, t);
>     else
>         pa_log(_("Received message for unknown extension '%s'"), name);
> 
> 
> What are my options? I can distribute a pa module but not a completely
> new pa core!

There are likely no ways to piggy back onto the existing protocol for
this kind of hacking sadly. The same mechanism is still used in latest
PA, but in git master there is a dbus based protocol which I'd wager
would be easier to extend.

As it stands now, I do grant you that the modifications to the core are
highly undesirable. I may try and factor this out but it doesn't really
help you just now.

I guess you'll have to use some kind of independent IPC to allow a given
app to talk to your module.

Col

-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]




[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux