41
41
#include "pdispatch.h"
43
/*#define DEBUG_OPCODES */
43
/* #define DEBUG_OPCODES */
45
45
#ifdef DEBUG_OPCODES
47
47
static const char *command_names[PA_COMMAND_MAX] = {
48
/* Generic commands */
48
49
[PA_COMMAND_ERROR] = "ERROR",
49
50
[PA_COMMAND_TIMEOUT] = "TIMEOUT",
50
51
[PA_COMMAND_REPLY] = "REPLY",
51
54
[PA_COMMAND_CREATE_PLAYBACK_STREAM] = "CREATE_PLAYBACK_STREAM",
52
55
[PA_COMMAND_DELETE_PLAYBACK_STREAM] = "DELETE_PLAYBACK_STREAM",
53
56
[PA_COMMAND_CREATE_RECORD_STREAM] = "CREATE_RECORD_STREAM",
54
57
[PA_COMMAND_DELETE_RECORD_STREAM] = "DELETE_RECORD_STREAM",
55
58
[PA_COMMAND_AUTH] = "AUTH",
56
[PA_COMMAND_REQUEST] = "REQUEST",
57
59
[PA_COMMAND_EXIT] = "EXIT",
58
60
[PA_COMMAND_SET_CLIENT_NAME] = "SET_CLIENT_NAME",
59
61
[PA_COMMAND_LOOKUP_SINK] = "LOOKUP_SINK",
60
62
[PA_COMMAND_LOOKUP_SOURCE] = "LOOKUP_SOURCE",
61
63
[PA_COMMAND_DRAIN_PLAYBACK_STREAM] = "DRAIN_PLAYBACK_STREAM",
62
[PA_COMMAND_PLAYBACK_STREAM_KILLED] = "PLAYBACK_STREAM_KILLED",
63
[PA_COMMAND_RECORD_STREAM_KILLED] = "RECORD_STREAM_KILLED",
64
64
[PA_COMMAND_STAT] = "STAT",
65
[PA_COMMAND_GET_PLAYBACK_LATENCY] = "PLAYBACK_LATENCY",
65
[PA_COMMAND_GET_PLAYBACK_LATENCY] = "GET_PLAYBACK_LATENCY",
66
66
[PA_COMMAND_CREATE_UPLOAD_STREAM] = "CREATE_UPLOAD_STREAM",
67
67
[PA_COMMAND_DELETE_UPLOAD_STREAM] = "DELETE_UPLOAD_STREAM",
68
68
[PA_COMMAND_FINISH_UPLOAD_STREAM] = "FINISH_UPLOAD_STREAM",
69
69
[PA_COMMAND_PLAY_SAMPLE] = "PLAY_SAMPLE",
70
70
[PA_COMMAND_REMOVE_SAMPLE] = "REMOVE_SAMPLE",
71
72
[PA_COMMAND_GET_SERVER_INFO] = "GET_SERVER_INFO",
72
73
[PA_COMMAND_GET_SINK_INFO] = "GET_SINK_INFO",
73
74
[PA_COMMAND_GET_SINK_INFO_LIST] = "GET_SINK_INFO_LIST",
84
85
[PA_COMMAND_GET_SOURCE_OUTPUT_INFO] = "GET_SOURCE_OUTPUT_INFO",
85
86
[PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST] = "GET_SOURCE_OUTPUT_INFO_LIST",
86
87
[PA_COMMAND_SUBSCRIBE] = "SUBSCRIBE",
87
[PA_COMMAND_SUBSCRIBE_EVENT] = "SUBSCRIBE_EVENT",
88
89
[PA_COMMAND_SET_SINK_VOLUME] = "SET_SINK_VOLUME",
89
90
[PA_COMMAND_SET_SINK_INPUT_VOLUME] = "SET_SINK_INPUT_VOLUME",
90
91
[PA_COMMAND_SET_SOURCE_VOLUME] = "SET_SOURCE_VOLME",
93
[PA_COMMAND_SET_SINK_MUTE] = "SET_SINK_MUTE",
94
[PA_COMMAND_SET_SOURCE_MUTE] = "SET_SOURCE_MUTE",
91
96
[PA_COMMAND_TRIGGER_PLAYBACK_STREAM] = "TRIGGER_PLAYBACK_STREAM",
92
97
[PA_COMMAND_FLUSH_PLAYBACK_STREAM] = "FLUSH_PLAYBACK_STREAM",
93
98
[PA_COMMAND_CORK_PLAYBACK_STREAM] = "CORK_PLAYBACK_STREAM",
94
[PA_COMMAND_GET_AUTOLOAD_INFO] = "GET_AUTOLOAD_INFO",
95
[PA_COMMAND_GET_AUTOLOAD_INFO_LIST] = "GET_AUTOLOAD_INFO_LIST",
100
[PA_COMMAND_SET_DEFAULT_SINK] = "SET_DEFAULT_SINK",
101
[PA_COMMAND_SET_DEFAULT_SOURCE] = "SET_DEFAULT_SOURCE",
103
[PA_COMMAND_SET_PLAYBACK_STREAM_NAME] = "SET_PLAYBACK_STREAM_NAME",
104
[PA_COMMAND_SET_RECORD_STREAM_NAME] = "SET_RECORD_STREAM_NAME",
106
[PA_COMMAND_KILL_CLIENT] = "KILL_CLIENT",
107
[PA_COMMAND_KILL_SINK_INPUT] = "KILL_SINK_INPUT",
108
[PA_COMMAND_KILL_SOURCE_OUTPUT] = "SOURCE_OUTPUT",
110
[PA_COMMAND_LOAD_MODULE] = "LOAD_MODULE",
111
[PA_COMMAND_UNLOAD_MODULE] = "UNLOAD_MODULE",
113
[PA_COMMAND_ADD_AUTOLOAD___OBSOLETE] = "ADD_AUTOLOAD (obsolete)",
114
[PA_COMMAND_REMOVE_AUTOLOAD___OBSOLETE] = "REMOVE_AUTOLOAD (obsolete)",
115
[PA_COMMAND_GET_AUTOLOAD_INFO___OBSOLETE] = "GET_AUTOLOAD_INFO (obsolete)",
116
[PA_COMMAND_GET_AUTOLOAD_INFO_LIST___OBSOLETE] = "GET_AUTOLOAD_INFO_LIST (obsolete)",
118
[PA_COMMAND_GET_RECORD_LATENCY] = "GET_RECORD_LATENCY",
119
[PA_COMMAND_CORK_RECORD_STREAM] = "CORK_RECORD_STREAM",
120
[PA_COMMAND_FLUSH_RECORD_STREAM] = "FLUSH_RECORD_STREAM",
121
[PA_COMMAND_PREBUF_PLAYBACK_STREAM] = "PREBUF_PLAYBACK_STREAM",
124
[PA_COMMAND_REQUEST] = "REQUEST",
125
[PA_COMMAND_OVERFLOW] = "OVERFLOW",
126
[PA_COMMAND_UNDERFLOW] = "UNDERFLOW",
127
[PA_COMMAND_PLAYBACK_STREAM_KILLED] = "PLAYBACK_STREAM_KILLED",
128
[PA_COMMAND_RECORD_STREAM_KILLED] = "RECORD_STREAM_KILLED",
129
[PA_COMMAND_SUBSCRIBE_EVENT] = "SUBSCRIBE_EVENT",
131
/* A few more client->server commands */
133
/* Supported since protocol v10 (0.9.5) */
134
[PA_COMMAND_MOVE_SINK_INPUT] = "MOVE_SINK_INPUT",
135
[PA_COMMAND_MOVE_SOURCE_OUTPUT] = "MOVE_SOURCE_OUTPUT",
137
/* Supported since protocol v11 (0.9.7) */
138
[PA_COMMAND_SET_SINK_INPUT_MUTE] = "SET_SINK_INPUT_MUTE",
140
[PA_COMMAND_SUSPEND_SINK] = "SUSPEND_SINK",
141
[PA_COMMAND_SUSPEND_SOURCE] = "SUSPEND_SOURCE",
143
/* Supported since protocol v12 (0.9.8) */
144
[PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR] = "SET_PLAYBACK_STREAM_BUFFER_ATTR",
145
[PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR] = "SET_RECORD_STREAM_BUFFER_ATTR",
147
[PA_COMMAND_UPDATE_PLAYBACK_STREAM_SAMPLE_RATE] = "UPDATE_PLAYBACK_STREAM_SAMPLE_RATE",
148
[PA_COMMAND_UPDATE_RECORD_STREAM_SAMPLE_RATE] = "UPDATE_RECORD_STREAM_SAMPLE_RATE",
151
[PA_COMMAND_PLAYBACK_STREAM_SUSPENDED] = "PLAYBACK_STREAM_SUSPENDED",
152
[PA_COMMAND_RECORD_STREAM_SUSPENDED] = "RECORD_STREAM_SUSPENDED",
153
[PA_COMMAND_PLAYBACK_STREAM_MOVED] = "PLAYBACK_STREAM_MOVED",
154
[PA_COMMAND_RECORD_STREAM_MOVED] = "RECORD_STREAM_MOVED",
156
/* Supported since protocol v13 (0.9.11) */
157
[PA_COMMAND_UPDATE_RECORD_STREAM_PROPLIST] = "UPDATE_RECORD_STREAM_PROPLIST",
158
[PA_COMMAND_UPDATE_PLAYBACK_STREAM_PROPLIST] = "UPDATE_RECORD_STREAM_PROPLIST",
159
[PA_COMMAND_UPDATE_CLIENT_PROPLIST] = "UPDATE_CLIENT_PROPLIST",
160
[PA_COMMAND_REMOVE_RECORD_STREAM_PROPLIST] = "REMOVE_RECORD_STREAM_PROPLIST",
161
[PA_COMMAND_REMOVE_PLAYBACK_STREAM_PROPLIST] = "REMOVE_PLAYBACK_STREAM_PROPLIST",
162
[PA_COMMAND_REMOVE_CLIENT_PROPLIST] = "REMOVE_CLIENT_PROPLIST",
165
[PA_COMMAND_STARTED] = "STARTED",
167
/* Supported since protocol v14 (0.9.12) */
168
[PA_COMMAND_EXTENSION] = "EXTENSION",
171
[PA_COMMAND_GET_CARD_INFO] = "GET_CARD_INFO",
172
[PA_COMMAND_GET_CARD_INFO_LIST] = "GET_CARD_INFO_LIST",
173
[PA_COMMAND_SET_CARD_PROFILE] = "SET_CARD_PROFILE",
175
[PA_COMMAND_CLIENT_EVENT] = "GET_CLIENT_EVENT",
176
[PA_COMMAND_PLAYBACK_STREAM_EVENT] = "PLAYBACK_STREAM_EVENT",
177
[PA_COMMAND_RECORD_STREAM_EVENT] = "RECORD_STREAM_EVENT",
180
[PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED] = "PLAYBACK_BUFFER_ATTR_CHANGED",
181
[PA_COMMAND_RECORD_BUFFER_ATTR_CHANGED] = "RECORD_BUFFER_ATTR_CHANGED"