Version 4 includes the changes arising from the recent mail exchange between Tanu and myself. Tanu's idea to replace closing brackets with 0's in the parameter string simplified the code. It also introduces a set of functions for reading and writing specific data types from/to parameter strings. I expect that patch 1 - 4 are (maybe apart from more or less trivial fixes) ready to be pushed, while the other three probably still need some discussion. Georg Chini (7): core: add simple message interface protocol-native: add message sending capability pactl, pacmd, cli-command: Add send-message command core: add message handler pactl: Implement list message-handlers message-params: Allow parameter strings to contain escaped curly braces message-params: Add read/write functions for various simple data types PROTOCOL | 14 ++ configure.ac | 2 +- doc/messaging_api.txt | 65 ++++++ man/pactl.1.xml.in | 9 +- man/pulse-cli-syntax.5.xml.in | 7 + shell-completion/bash/pulseaudio | 7 +- shell-completion/zsh/_pulseaudio | 3 + src/Makefile.am | 2 + src/map-file | 17 ++ src/pulse/introspect.c | 71 +++++++ src/pulse/introspect.h | 17 ++ src/pulse/message-params.c | 422 +++++++++++++++++++++++++++++++++++++++ src/pulse/message-params.h | 89 +++++++++ src/pulsecore/cli-command.c | 44 ++++ src/pulsecore/core.c | 49 +++++ src/pulsecore/core.h | 2 +- src/pulsecore/message-handler.c | 135 +++++++++++++ src/pulsecore/message-handler.h | 50 +++++ src/pulsecore/native-common.h | 3 + src/pulsecore/pdispatch.c | 3 + src/pulsecore/protocol-native.c | 52 +++++ src/utils/pacmd.c | 1 + src/utils/pactl.c | 109 +++++++++- 23 files changed, 1164 insertions(+), 9 deletions(-) create mode 100644 doc/messaging_api.txt create mode 100644 src/pulse/message-params.c create mode 100644 src/pulse/message-params.h create mode 100644 src/pulsecore/message-handler.c create mode 100644 src/pulsecore/message-handler.h -- 2.14.1