merge glitch-free branch back into trunk
[profile/ivi/pulseaudio.git] / src / pulsecore / native-common.h
1 #ifndef foonativecommonhfoo
2 #define foonativecommonhfoo
3
4 /* $Id$ */
5
6 /***
7   This file is part of PulseAudio.
8
9   Copyright 2004-2006 Lennart Poettering
10   Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB
11
12   PulseAudio is free software; you can redistribute it and/or modify
13   it under the terms of the GNU Lesser General Public License as
14   published by the Free Software Foundation; either version 2.1 of the
15   License, or (at your option) any later version.
16
17   PulseAudio is distributed in the hope that it will be useful, but
18   WITHOUT ANY WARRANTY; without even the implied warranty of
19   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20   Lesser General Public License for more details.
21
22   You should have received a copy of the GNU Lesser General Public
23   License along with PulseAudio; if not, write to the Free Software
24   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
25   USA.
26 ***/
27
28 #include <pulse/cdecl.h>
29 #include <pulse/def.h>
30
31 PA_C_DECL_BEGIN
32
33 enum {
34     /* Generic commands */
35     PA_COMMAND_ERROR,
36     PA_COMMAND_TIMEOUT, /* pseudo command */
37     PA_COMMAND_REPLY,
38
39     /* CLIENT->SERVER */
40     PA_COMMAND_CREATE_PLAYBACK_STREAM,        /* Payload changed in v9, v12 (0.9.0, 0.9.8) */
41     PA_COMMAND_DELETE_PLAYBACK_STREAM,
42     PA_COMMAND_CREATE_RECORD_STREAM,          /* Payload changed in v9, v12 (0.9.0, 0.9.8) */
43     PA_COMMAND_DELETE_RECORD_STREAM,
44     PA_COMMAND_EXIT,
45     PA_COMMAND_AUTH,
46     PA_COMMAND_SET_CLIENT_NAME,
47     PA_COMMAND_LOOKUP_SINK,
48     PA_COMMAND_LOOKUP_SOURCE,
49     PA_COMMAND_DRAIN_PLAYBACK_STREAM,
50     PA_COMMAND_STAT,
51     PA_COMMAND_GET_PLAYBACK_LATENCY,
52     PA_COMMAND_CREATE_UPLOAD_STREAM,
53     PA_COMMAND_DELETE_UPLOAD_STREAM,
54     PA_COMMAND_FINISH_UPLOAD_STREAM,
55     PA_COMMAND_PLAY_SAMPLE,
56     PA_COMMAND_REMOVE_SAMPLE,
57
58     PA_COMMAND_GET_SERVER_INFO,
59     PA_COMMAND_GET_SINK_INFO,
60     PA_COMMAND_GET_SINK_INFO_LIST,
61     PA_COMMAND_GET_SOURCE_INFO,
62     PA_COMMAND_GET_SOURCE_INFO_LIST,
63     PA_COMMAND_GET_MODULE_INFO,
64     PA_COMMAND_GET_MODULE_INFO_LIST,
65     PA_COMMAND_GET_CLIENT_INFO,
66     PA_COMMAND_GET_CLIENT_INFO_LIST,
67     PA_COMMAND_GET_SINK_INPUT_INFO,          /* Payload changed in v11 (0.9.7) */
68     PA_COMMAND_GET_SINK_INPUT_INFO_LIST,     /* Payload changed in v11 (0.9.7) */
69     PA_COMMAND_GET_SOURCE_OUTPUT_INFO,
70     PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST,
71     PA_COMMAND_GET_SAMPLE_INFO,
72     PA_COMMAND_GET_SAMPLE_INFO_LIST,
73     PA_COMMAND_SUBSCRIBE,
74
75     PA_COMMAND_SET_SINK_VOLUME,
76     PA_COMMAND_SET_SINK_INPUT_VOLUME,
77     PA_COMMAND_SET_SOURCE_VOLUME,
78
79     PA_COMMAND_SET_SINK_MUTE,
80     PA_COMMAND_SET_SOURCE_MUTE,
81
82     PA_COMMAND_CORK_PLAYBACK_STREAM,
83     PA_COMMAND_FLUSH_PLAYBACK_STREAM,
84     PA_COMMAND_TRIGGER_PLAYBACK_STREAM,
85
86     PA_COMMAND_SET_DEFAULT_SINK,
87     PA_COMMAND_SET_DEFAULT_SOURCE,
88
89     PA_COMMAND_SET_PLAYBACK_STREAM_NAME,
90     PA_COMMAND_SET_RECORD_STREAM_NAME,
91
92     PA_COMMAND_KILL_CLIENT,
93     PA_COMMAND_KILL_SINK_INPUT,
94     PA_COMMAND_KILL_SOURCE_OUTPUT,
95
96     PA_COMMAND_LOAD_MODULE,
97     PA_COMMAND_UNLOAD_MODULE,
98
99     PA_COMMAND_ADD_AUTOLOAD,
100     PA_COMMAND_REMOVE_AUTOLOAD,
101     PA_COMMAND_GET_AUTOLOAD_INFO,
102     PA_COMMAND_GET_AUTOLOAD_INFO_LIST,
103
104     PA_COMMAND_GET_RECORD_LATENCY,
105     PA_COMMAND_CORK_RECORD_STREAM,
106     PA_COMMAND_FLUSH_RECORD_STREAM,
107     PA_COMMAND_PREBUF_PLAYBACK_STREAM,
108
109     /* SERVER->CLIENT */
110     PA_COMMAND_REQUEST,
111     PA_COMMAND_OVERFLOW,
112     PA_COMMAND_UNDERFLOW,
113     PA_COMMAND_PLAYBACK_STREAM_KILLED,
114     PA_COMMAND_RECORD_STREAM_KILLED,
115     PA_COMMAND_SUBSCRIBE_EVENT,
116
117     /* A few more client->server commands */
118
119     /* Supported since protocol v10 (0.9.5) */
120     PA_COMMAND_MOVE_SINK_INPUT,
121     PA_COMMAND_MOVE_SOURCE_OUTPUT,
122
123     /* Supported since protocol v11 (0.9.7) */
124     PA_COMMAND_SET_SINK_INPUT_MUTE,
125
126     PA_COMMAND_SUSPEND_SINK,
127     PA_COMMAND_SUSPEND_SOURCE,
128
129     /* Supported since protocol v12 (0.9.8) */
130     PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR,
131     PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR,
132
133     PA_COMMAND_UPDATE_PLAYBACK_STREAM_SAMPLE_RATE,
134     PA_COMMAND_UPDATE_RECORD_STREAM_SAMPLE_RATE,
135
136     /* SERVER->CLIENT */
137     PA_COMMAND_PLAYBACK_STREAM_SUSPENDED,
138     PA_COMMAND_RECORD_STREAM_SUSPENDED,
139     PA_COMMAND_PLAYBACK_STREAM_MOVED,
140     PA_COMMAND_RECORD_STREAM_MOVED,
141
142     /* Supported since protocol v13 (0.9.10) */
143     PA_COMMAND_UPDATE_RECORD_STREAM_PROPLIST,
144     PA_COMMAND_UPDATE_PLAYBACK_STREAM_PROPLIST,
145     PA_COMMAND_UPDATE_CLIENT_PROPLIST,
146     PA_COMMAND_REMOVE_RECORD_STREAM_PROPLIST,
147     PA_COMMAND_REMOVE_PLAYBACK_STREAM_PROPLIST,
148     PA_COMMAND_REMOVE_CLIENT_PROPLIST,
149
150     /* SERVER->CLIENT */
151     PA_COMMAND_STARTED,
152
153     PA_COMMAND_MAX
154 };
155
156 #define PA_NATIVE_COOKIE_LENGTH 256
157 #define PA_NATIVE_COOKIE_FILE ".pulse-cookie"
158
159 #define PA_NATIVE_DEFAULT_PORT 4713
160
161 #define PA_NATIVE_COOKIE_PROPERTY_NAME "protocol-native-cookie"
162 #define PA_NATIVE_SERVER_PROPERTY_NAME "protocol-native-server"
163
164 #define PA_NATIVE_DEFAULT_UNIX_SOCKET "native"
165
166
167 PA_C_DECL_END
168
169 #endif