core: relex validity checks when destructing half-set up source outputs/sink inputs
[pulseaudio-mirror.git] / src / pulsecore / native-common.h
blobf49abb09e8e9eb4f4f15d24af90e6bcc04501d02
1 #ifndef foonativecommonhfoo
2 #define foonativecommonhfoo
4 /***
5 This file is part of PulseAudio.
7 Copyright 2004-2006 Lennart Poettering
8 Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB
10 PulseAudio is free software; you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as
12 published by the Free Software Foundation; either version 2.1 of the
13 License, or (at your option) any later version.
15 PulseAudio is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
20 You should have received a copy of the GNU Lesser General Public
21 License along with PulseAudio; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 USA.
24 ***/
26 #include <pulse/cdecl.h>
27 #include <pulse/def.h>
29 PA_C_DECL_BEGIN
31 enum {
32 /* Generic commands */
33 PA_COMMAND_ERROR,
34 PA_COMMAND_TIMEOUT, /* pseudo command */
35 PA_COMMAND_REPLY,
37 /* CLIENT->SERVER */
38 PA_COMMAND_CREATE_PLAYBACK_STREAM, /* Payload changed in v9, v12 (0.9.0, 0.9.8) */
39 PA_COMMAND_DELETE_PLAYBACK_STREAM,
40 PA_COMMAND_CREATE_RECORD_STREAM, /* Payload changed in v9, v12 (0.9.0, 0.9.8) */
41 PA_COMMAND_DELETE_RECORD_STREAM,
42 PA_COMMAND_EXIT,
43 PA_COMMAND_AUTH,
44 PA_COMMAND_SET_CLIENT_NAME,
45 PA_COMMAND_LOOKUP_SINK,
46 PA_COMMAND_LOOKUP_SOURCE,
47 PA_COMMAND_DRAIN_PLAYBACK_STREAM,
48 PA_COMMAND_STAT,
49 PA_COMMAND_GET_PLAYBACK_LATENCY,
50 PA_COMMAND_CREATE_UPLOAD_STREAM,
51 PA_COMMAND_DELETE_UPLOAD_STREAM,
52 PA_COMMAND_FINISH_UPLOAD_STREAM,
53 PA_COMMAND_PLAY_SAMPLE,
54 PA_COMMAND_REMOVE_SAMPLE,
56 PA_COMMAND_GET_SERVER_INFO,
57 PA_COMMAND_GET_SINK_INFO,
58 PA_COMMAND_GET_SINK_INFO_LIST,
59 PA_COMMAND_GET_SOURCE_INFO,
60 PA_COMMAND_GET_SOURCE_INFO_LIST,
61 PA_COMMAND_GET_MODULE_INFO,
62 PA_COMMAND_GET_MODULE_INFO_LIST,
63 PA_COMMAND_GET_CLIENT_INFO,
64 PA_COMMAND_GET_CLIENT_INFO_LIST,
65 PA_COMMAND_GET_SINK_INPUT_INFO, /* Payload changed in v11 (0.9.7) */
66 PA_COMMAND_GET_SINK_INPUT_INFO_LIST, /* Payload changed in v11 (0.9.7) */
67 PA_COMMAND_GET_SOURCE_OUTPUT_INFO,
68 PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST,
69 PA_COMMAND_GET_SAMPLE_INFO,
70 PA_COMMAND_GET_SAMPLE_INFO_LIST,
71 PA_COMMAND_SUBSCRIBE,
73 PA_COMMAND_SET_SINK_VOLUME,
74 PA_COMMAND_SET_SINK_INPUT_VOLUME,
75 PA_COMMAND_SET_SOURCE_VOLUME,
77 PA_COMMAND_SET_SINK_MUTE,
78 PA_COMMAND_SET_SOURCE_MUTE,
80 PA_COMMAND_CORK_PLAYBACK_STREAM,
81 PA_COMMAND_FLUSH_PLAYBACK_STREAM,
82 PA_COMMAND_TRIGGER_PLAYBACK_STREAM,
84 PA_COMMAND_SET_DEFAULT_SINK,
85 PA_COMMAND_SET_DEFAULT_SOURCE,
87 PA_COMMAND_SET_PLAYBACK_STREAM_NAME,
88 PA_COMMAND_SET_RECORD_STREAM_NAME,
90 PA_COMMAND_KILL_CLIENT,
91 PA_COMMAND_KILL_SINK_INPUT,
92 PA_COMMAND_KILL_SOURCE_OUTPUT,
94 PA_COMMAND_LOAD_MODULE,
95 PA_COMMAND_UNLOAD_MODULE,
97 /* Obsolete */
98 PA_COMMAND_ADD_AUTOLOAD___OBSOLETE,
99 PA_COMMAND_REMOVE_AUTOLOAD___OBSOLETE,
100 PA_COMMAND_GET_AUTOLOAD_INFO___OBSOLETE,
101 PA_COMMAND_GET_AUTOLOAD_INFO_LIST___OBSOLETE,
103 PA_COMMAND_GET_RECORD_LATENCY,
104 PA_COMMAND_CORK_RECORD_STREAM,
105 PA_COMMAND_FLUSH_RECORD_STREAM,
106 PA_COMMAND_PREBUF_PLAYBACK_STREAM,
108 /* SERVER->CLIENT */
109 PA_COMMAND_REQUEST,
110 PA_COMMAND_OVERFLOW,
111 PA_COMMAND_UNDERFLOW,
112 PA_COMMAND_PLAYBACK_STREAM_KILLED,
113 PA_COMMAND_RECORD_STREAM_KILLED,
114 PA_COMMAND_SUBSCRIBE_EVENT,
116 /* A few more client->server commands */
118 /* Supported since protocol v10 (0.9.5) */
119 PA_COMMAND_MOVE_SINK_INPUT,
120 PA_COMMAND_MOVE_SOURCE_OUTPUT,
122 /* Supported since protocol v11 (0.9.7) */
123 PA_COMMAND_SET_SINK_INPUT_MUTE,
125 PA_COMMAND_SUSPEND_SINK,
126 PA_COMMAND_SUSPEND_SOURCE,
128 /* Supported since protocol v12 (0.9.8) */
129 PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR,
130 PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR,
132 PA_COMMAND_UPDATE_PLAYBACK_STREAM_SAMPLE_RATE,
133 PA_COMMAND_UPDATE_RECORD_STREAM_SAMPLE_RATE,
135 /* SERVER->CLIENT */
136 PA_COMMAND_PLAYBACK_STREAM_SUSPENDED,
137 PA_COMMAND_RECORD_STREAM_SUSPENDED,
138 PA_COMMAND_PLAYBACK_STREAM_MOVED,
139 PA_COMMAND_RECORD_STREAM_MOVED,
141 /* Supported since protocol v13 (0.9.11) */
142 PA_COMMAND_UPDATE_RECORD_STREAM_PROPLIST,
143 PA_COMMAND_UPDATE_PLAYBACK_STREAM_PROPLIST,
144 PA_COMMAND_UPDATE_CLIENT_PROPLIST,
145 PA_COMMAND_REMOVE_RECORD_STREAM_PROPLIST,
146 PA_COMMAND_REMOVE_PLAYBACK_STREAM_PROPLIST,
147 PA_COMMAND_REMOVE_CLIENT_PROPLIST,
149 /* SERVER->CLIENT */
150 PA_COMMAND_STARTED,
152 /* Supported since protocol v14 (0.9.12) */
153 PA_COMMAND_EXTENSION,
155 /* Supported since protocol v15 (0.9.15) */
156 PA_COMMAND_GET_CARD_INFO,
157 PA_COMMAND_GET_CARD_INFO_LIST,
158 PA_COMMAND_SET_CARD_PROFILE,
160 PA_COMMAND_CLIENT_EVENT,
161 PA_COMMAND_PLAYBACK_STREAM_EVENT,
162 PA_COMMAND_RECORD_STREAM_EVENT,
164 /* SERVER->CLIENT */
165 PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED,
166 PA_COMMAND_RECORD_BUFFER_ATTR_CHANGED,
168 /* Supported since protocol v16 (0.9.16) */
169 PA_COMMAND_SET_SINK_PORT,
170 PA_COMMAND_SET_SOURCE_PORT,
172 PA_COMMAND_MAX
175 #define PA_NATIVE_COOKIE_LENGTH 256
176 #define PA_NATIVE_COOKIE_FILE ".pulse-cookie"
178 #define PA_NATIVE_DEFAULT_PORT 4713
180 #define PA_NATIVE_COOKIE_PROPERTY_NAME "protocol-native-cookie"
181 #define PA_NATIVE_SERVER_PROPERTY_NAME "protocol-native-server"
183 #define PA_NATIVE_DEFAULT_UNIX_SOCKET "native"
185 PA_C_DECL_END
187 #endif