X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/3d2d6ca958719c03fa541dda48037501919a55de..937b4175c2aadf4076182126c8bb2499d347a30e:/PROTOCOL diff --git a/PROTOCOL b/PROTOCOL index 581eeefa..850b953a 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -30,7 +30,7 @@ SHM data transfer support ### v11, implemented by >= 0.9.7 -Reply to to PA_COMMAND_GET_SINK_INPUT_INFO, PA_COMMAND_GET_SINK_INPUT_INFO_LIST gets new field at the end: +Reply to PA_COMMAND_GET_SINK_INPUT_INFO, PA_COMMAND_GET_SINK_INPUT_INFO_LIST gets new field at the end: mute @@ -126,7 +126,7 @@ New field for PA_COMMAND_CREATE_PLAYBACK_STREAM at the end: Buffer attributes for PA_COMMAND_CREATE_PLAYBACK_STREAM and PA_COMMAND_CREATE_RECORD_STREAM may now be 0 for default values. -New filed for PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR, +New field for PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR, PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR at the end: adjust_latency (bool) @@ -141,6 +141,218 @@ new message: PA_COMMAND_EXTENSION -PA_COMMAND_CREATE_RECORD_STREAM, PA_COMMAND_CREATE_PLAYBACK_STREAM: +PA_COMMAND_CREATE_PLAYBACK_STREAM: bool volume_set at the end + +PA_COMMAND_CREATE_RECORD_STREAM, PA_COMMAND_CREATE_PLAYBACK_STREAM: + + bool early_requests at the end + +New field for PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR, +PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR at the end: + + early_requests (bool) + +### v15, implemented by >= 0.9.15 + +PA_COMMAND_CREATE_PLAYBACK_STREAM + + bool muted at the end + +PA_COMMAND_CREATE_PLAYBACK_STREAM, PA_COMMAND_CREATE_RECORD_STREAM: + + bool dont_inhibit_auto_suspend at the end + +PA_COMMAND_GET_MODULE_INFO_LIST + + remove bool auto_unload + add proplist at the end + +new messages: + + PA_COMMAND_GET_CARD_INFO + PA_COMMAND_GET_CARD_INFO_LIST + PA_COMMAND_SET_CARD_PROFILE + + PA_COMMAND_CLIENT_EVENT + PA_COMMAND_PLAYBACK_STREAM_EVENT + PA_COMMAND_RECORD_STREAM_EVENT + + PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED + PA_COMMAND_RECORD_BUFFER_ATTR_CHANGED + +### v16, implemented by >= 0.9.15 + +new messages: + + PA_COMMAND_SET_SINK_PORT + PA_COMMAND_SET_SOURCE_PORT + +## v17, implemented by >= 0.9.20 + +new flag at end of CREATE_PLAYBACK_STREAM: + + bool relative_volume + +## v18, implemented by >= 0.9.22 + +new flag at end of CREATE_PLAYBACK_STREAM: + + bool passthrough + +## v19, implemented by >= 0.9.22 + +New flag at the end of sink input and source output introspection data: + + bool corked + +## v20, implemented by >= 1.0 + +Two new flags at the end of sink input introspection data: + + bool has_volume + bool volume_writable + +## v21, implemented by >= 1.0 + +Changes for format negotiation in the extended API. + +New fields PA_COMMAND_CREATE_PLAYBACK_STREAM: + + uint8_t n_formats + format_info format1 + ... + format_info formatn + +One new field in reply from PA_COMMAND_CREATE_PLAYBACK_STREAM: + + format_info format + +New fields in reply from PA_COMMAND_GET_SINK_INFO (and thus +PA_COMMAND_GET_SINK_INFO_LIST) + + uint8_t n_formats + format_info format1 + ... + format_info formatn + +One new field in reply from PA_COMMAND_GET_SINK_INPUT_INFO (and thus +PA_COMMAND_GET_SINK_INPUT_INFO_LIST) + + format_info format + +## v22, implemented by >= 1.0 + +New fields PA_COMMAND_CREATE_RECORD_STREAM: + + uint8_t n_formats + format_info format1 + ... + format_info formatn + volume + bool muted + bool volume_set + bool muted_set + bool relative_volume + bool passthrough + +One new field in reply from PA_COMMAND_CREATE_RECORD_STREAM: + + format_info format + +New fields in reply from PA_COMMAND_GET_SOURCE_INFO (and thus +PA_COMMAND_GET_SOURCE_INFO_LIST) + + uint8_t n_formats + format_info format1 + ... + format_info formatn + +Five new fields in reply from PA_COMMAND_GET_SOURCE_OUTPUT_INFO (and thus +PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST) + + volume + bool mute + bool has_volume + bool volume_writable + format_info format + +## v23, implemented by >= 1.0 + +New field in PA_COMMAND_UNDERFLOW: + + int64_t index + +## v24, implemented by >= 2.0 + +New field in all commands that send/receive port introspection data +(PA_COMMAND_GET_(SOURCE|SINK)_INFO, +PA_COMMAND_GET_(SOURCE|SINK)_INFO_LIST): + + uint32_t available + +The field is added once for every port. + +## v25, implemented by >= 2.0 + +When port availability changes, send a subscription event for the +owning card. + +## v26, implemented by >= 2.0 + +In reply from PA_COMMAND_GET_CARD_INFO (and thus +PA_COMMAND_GET_CARD_INFO_LIST), the following is added: + + uint32_t n_ports + +...followed by n_ports extended port entries, which look like this: + + string name + string description + uint32_t priority + uint32_t available + uint8_t direction + proplist + uint32_t n_profiles + string profile_name_1 + ... + string profile_name_n + +Profile names must match earlier sent profile names for the same card. + +## v27, implemented by >= 3.0 + +New opcodes: + PA_COMMAND_SET_PORT_LATENCY_OFFSET + +New field in the card commands that send/receive port introspection data +PA_COMMAND_GET_CARD_INFO(_LIST)): + + int64_t latency_offset + +The field is added once for every port. + +## v28, implemented by >= 4.0 + +New value for encoding format type in format_info +PA_COMMAND_CREATE_(PLAYBACK|RECORDING)_STREAM and its reply, +In reply from PA_COMMAND_GET_(SOURCE|SOURCE_OUTPUT|SINK|SINK_INPUT)_INFO[_LIST], +SUBCOMMAND_SAVE_FORMATS, in reply from SUBCOMMAND_READ_FORMATS[_ALL] + + (uint8_t ) PA_ENCODING_MPEG2_AAC_IEC61937 := 6 + +## v29, implemented by >= 5.0 +# +New field in all commands that send/receive profile introspection data +(PA_COMMAND_GET_CARD_INFO) + + uint32 available + +The field is added once for every profile. + +#### 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. +## Don't forget to test module-tunnel-{source,sink} when pushing protocol +## changes.