protocol-native: add message sending capability

This patch adds the PA_COMMAND_SEND_OBJECT_MESSAGE command to protocol-native
so that clients can use the messaging feature introduced in the previous patch.

Sending messages can in effect replace the extension system for modules. The
approach is more flexible than the extension interface because a generic string
format is used to exchange information. Furthermore the messaging system can be
used for any object, not only for modules, and is easier to implement than
extensions.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/51>
This commit is contained in:
Georg Chini 2020-01-14 10:15:36 +01:00 committed by Tanu Kaskinen
parent cb3d12377c
commit 4cdc0053c0
9 changed files with 158 additions and 2 deletions

View file

@ -435,6 +435,23 @@ sink, source and card ports):
string availability_group
uint32 type
## v35, implemented by >= 15.0
Added new command for communication with objects.
PA_COMMAND_SEND_OBJECT_MESSAGE:
sends a message to an object identified by an object path
parameters:
string object_path - unique path identifying the object
string message - message name
string message_parameters - additional parameters if required (may be
NULL, which should be treated the same as an
empty string)
The command returns a string, which may be empty or NULL (NULL should be
treated the same as an empty string).
#### If you just changed the protocol, read this
## module-tunnel depends on the sink/source/sink-input/source-input protocol
## internals, so if you changed these, you might have broken module-tunnel.