153a5a1b3Sopenharmony_ci#ifndef foonativecommonhfoo 253a5a1b3Sopenharmony_ci#define foonativecommonhfoo 353a5a1b3Sopenharmony_ci 453a5a1b3Sopenharmony_ci/*** 553a5a1b3Sopenharmony_ci This file is part of PulseAudio. 653a5a1b3Sopenharmony_ci 753a5a1b3Sopenharmony_ci Copyright 2004-2006 Lennart Poettering 853a5a1b3Sopenharmony_ci Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB 953a5a1b3Sopenharmony_ci 1053a5a1b3Sopenharmony_ci PulseAudio is free software; you can redistribute it and/or modify 1153a5a1b3Sopenharmony_ci it under the terms of the GNU Lesser General Public License as 1253a5a1b3Sopenharmony_ci published by the Free Software Foundation; either version 2.1 of the 1353a5a1b3Sopenharmony_ci License, or (at your option) any later version. 1453a5a1b3Sopenharmony_ci 1553a5a1b3Sopenharmony_ci PulseAudio is distributed in the hope that it will be useful, but 1653a5a1b3Sopenharmony_ci WITHOUT ANY WARRANTY; without even the implied warranty of 1753a5a1b3Sopenharmony_ci MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1853a5a1b3Sopenharmony_ci Lesser General Public License for more details. 1953a5a1b3Sopenharmony_ci 2053a5a1b3Sopenharmony_ci You should have received a copy of the GNU Lesser General Public 2153a5a1b3Sopenharmony_ci License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>. 2253a5a1b3Sopenharmony_ci***/ 2353a5a1b3Sopenharmony_ci 2453a5a1b3Sopenharmony_ci#include <pulse/cdecl.h> 2553a5a1b3Sopenharmony_ci#include <pulse/def.h> 2653a5a1b3Sopenharmony_ci 2753a5a1b3Sopenharmony_ci#include <pulsecore/pdispatch.h> 2853a5a1b3Sopenharmony_ci#include <pulsecore/pstream.h> 2953a5a1b3Sopenharmony_ci#include <pulsecore/tagstruct.h> 3053a5a1b3Sopenharmony_ci 3153a5a1b3Sopenharmony_ciPA_C_DECL_BEGIN 3253a5a1b3Sopenharmony_ci 3353a5a1b3Sopenharmony_cienum { 3453a5a1b3Sopenharmony_ci /* Generic commands */ 3553a5a1b3Sopenharmony_ci PA_COMMAND_ERROR, 3653a5a1b3Sopenharmony_ci PA_COMMAND_TIMEOUT, /* pseudo command */ 3753a5a1b3Sopenharmony_ci PA_COMMAND_REPLY, 3853a5a1b3Sopenharmony_ci 3953a5a1b3Sopenharmony_ci /* CLIENT->SERVER */ 4053a5a1b3Sopenharmony_ci PA_COMMAND_CREATE_PLAYBACK_STREAM, /* Payload changed in v9, v12 (0.9.0, 0.9.8) */ 4153a5a1b3Sopenharmony_ci PA_COMMAND_DELETE_PLAYBACK_STREAM, 4253a5a1b3Sopenharmony_ci PA_COMMAND_CREATE_RECORD_STREAM, /* Payload changed in v9, v12 (0.9.0, 0.9.8) */ 4353a5a1b3Sopenharmony_ci PA_COMMAND_DELETE_RECORD_STREAM, 4453a5a1b3Sopenharmony_ci PA_COMMAND_EXIT, 4553a5a1b3Sopenharmony_ci PA_COMMAND_AUTH, 4653a5a1b3Sopenharmony_ci PA_COMMAND_SET_CLIENT_NAME, 4753a5a1b3Sopenharmony_ci PA_COMMAND_LOOKUP_SINK, 4853a5a1b3Sopenharmony_ci PA_COMMAND_LOOKUP_SOURCE, 4953a5a1b3Sopenharmony_ci PA_COMMAND_DRAIN_PLAYBACK_STREAM, 5053a5a1b3Sopenharmony_ci PA_COMMAND_STAT, 5153a5a1b3Sopenharmony_ci PA_COMMAND_GET_PLAYBACK_LATENCY, 5253a5a1b3Sopenharmony_ci PA_COMMAND_CREATE_UPLOAD_STREAM, 5353a5a1b3Sopenharmony_ci PA_COMMAND_DELETE_UPLOAD_STREAM, 5453a5a1b3Sopenharmony_ci PA_COMMAND_FINISH_UPLOAD_STREAM, 5553a5a1b3Sopenharmony_ci PA_COMMAND_PLAY_SAMPLE, 5653a5a1b3Sopenharmony_ci PA_COMMAND_REMOVE_SAMPLE, 5753a5a1b3Sopenharmony_ci 5853a5a1b3Sopenharmony_ci PA_COMMAND_GET_SERVER_INFO, 5953a5a1b3Sopenharmony_ci PA_COMMAND_GET_SINK_INFO, 6053a5a1b3Sopenharmony_ci PA_COMMAND_GET_SINK_INFO_LIST, 6153a5a1b3Sopenharmony_ci PA_COMMAND_GET_SOURCE_INFO, 6253a5a1b3Sopenharmony_ci PA_COMMAND_GET_SOURCE_INFO_LIST, 6353a5a1b3Sopenharmony_ci PA_COMMAND_GET_MODULE_INFO, 6453a5a1b3Sopenharmony_ci PA_COMMAND_GET_MODULE_INFO_LIST, 6553a5a1b3Sopenharmony_ci PA_COMMAND_GET_CLIENT_INFO, 6653a5a1b3Sopenharmony_ci PA_COMMAND_GET_CLIENT_INFO_LIST, 6753a5a1b3Sopenharmony_ci PA_COMMAND_GET_SINK_INPUT_INFO, /* Payload changed in v11 (0.9.7) */ 6853a5a1b3Sopenharmony_ci PA_COMMAND_GET_SINK_INPUT_INFO_LIST, /* Payload changed in v11 (0.9.7) */ 6953a5a1b3Sopenharmony_ci PA_COMMAND_GET_SOURCE_OUTPUT_INFO, 7053a5a1b3Sopenharmony_ci PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST, 7153a5a1b3Sopenharmony_ci PA_COMMAND_GET_SAMPLE_INFO, 7253a5a1b3Sopenharmony_ci PA_COMMAND_GET_SAMPLE_INFO_LIST, 7353a5a1b3Sopenharmony_ci PA_COMMAND_SUBSCRIBE, 7453a5a1b3Sopenharmony_ci 7553a5a1b3Sopenharmony_ci PA_COMMAND_SET_SINK_VOLUME, 7653a5a1b3Sopenharmony_ci PA_COMMAND_SET_SINK_INPUT_VOLUME, 7753a5a1b3Sopenharmony_ci PA_COMMAND_SET_SOURCE_VOLUME, 7853a5a1b3Sopenharmony_ci 7953a5a1b3Sopenharmony_ci PA_COMMAND_SET_SINK_MUTE, 8053a5a1b3Sopenharmony_ci PA_COMMAND_SET_SOURCE_MUTE, 8153a5a1b3Sopenharmony_ci 8253a5a1b3Sopenharmony_ci PA_COMMAND_CORK_PLAYBACK_STREAM, 8353a5a1b3Sopenharmony_ci PA_COMMAND_FLUSH_PLAYBACK_STREAM, 8453a5a1b3Sopenharmony_ci PA_COMMAND_TRIGGER_PLAYBACK_STREAM, 8553a5a1b3Sopenharmony_ci 8653a5a1b3Sopenharmony_ci PA_COMMAND_SET_DEFAULT_SINK, 8753a5a1b3Sopenharmony_ci PA_COMMAND_SET_DEFAULT_SOURCE, 8853a5a1b3Sopenharmony_ci 8953a5a1b3Sopenharmony_ci PA_COMMAND_SET_PLAYBACK_STREAM_NAME, 9053a5a1b3Sopenharmony_ci PA_COMMAND_SET_RECORD_STREAM_NAME, 9153a5a1b3Sopenharmony_ci 9253a5a1b3Sopenharmony_ci PA_COMMAND_KILL_CLIENT, 9353a5a1b3Sopenharmony_ci PA_COMMAND_KILL_SINK_INPUT, 9453a5a1b3Sopenharmony_ci PA_COMMAND_KILL_SOURCE_OUTPUT, 9553a5a1b3Sopenharmony_ci 9653a5a1b3Sopenharmony_ci PA_COMMAND_LOAD_MODULE, 9753a5a1b3Sopenharmony_ci PA_COMMAND_UNLOAD_MODULE, 9853a5a1b3Sopenharmony_ci 9953a5a1b3Sopenharmony_ci /* Obsolete */ 10053a5a1b3Sopenharmony_ci PA_COMMAND_ADD_AUTOLOAD___OBSOLETE, 10153a5a1b3Sopenharmony_ci PA_COMMAND_REMOVE_AUTOLOAD___OBSOLETE, 10253a5a1b3Sopenharmony_ci PA_COMMAND_GET_AUTOLOAD_INFO___OBSOLETE, 10353a5a1b3Sopenharmony_ci PA_COMMAND_GET_AUTOLOAD_INFO_LIST___OBSOLETE, 10453a5a1b3Sopenharmony_ci 10553a5a1b3Sopenharmony_ci PA_COMMAND_GET_RECORD_LATENCY, 10653a5a1b3Sopenharmony_ci PA_COMMAND_CORK_RECORD_STREAM, 10753a5a1b3Sopenharmony_ci PA_COMMAND_FLUSH_RECORD_STREAM, 10853a5a1b3Sopenharmony_ci PA_COMMAND_PREBUF_PLAYBACK_STREAM, 10953a5a1b3Sopenharmony_ci 11053a5a1b3Sopenharmony_ci /* SERVER->CLIENT */ 11153a5a1b3Sopenharmony_ci PA_COMMAND_REQUEST, 11253a5a1b3Sopenharmony_ci PA_COMMAND_OVERFLOW, 11353a5a1b3Sopenharmony_ci PA_COMMAND_UNDERFLOW, 11453a5a1b3Sopenharmony_ci PA_COMMAND_PLAYBACK_STREAM_KILLED, 11553a5a1b3Sopenharmony_ci PA_COMMAND_RECORD_STREAM_KILLED, 11653a5a1b3Sopenharmony_ci PA_COMMAND_SUBSCRIBE_EVENT, 11753a5a1b3Sopenharmony_ci 11853a5a1b3Sopenharmony_ci /* A few more client->server commands */ 11953a5a1b3Sopenharmony_ci 12053a5a1b3Sopenharmony_ci /* Supported since protocol v10 (0.9.5) */ 12153a5a1b3Sopenharmony_ci PA_COMMAND_MOVE_SINK_INPUT, 12253a5a1b3Sopenharmony_ci PA_COMMAND_MOVE_SOURCE_OUTPUT, 12353a5a1b3Sopenharmony_ci 12453a5a1b3Sopenharmony_ci /* Supported since protocol v11 (0.9.7) */ 12553a5a1b3Sopenharmony_ci PA_COMMAND_SET_SINK_INPUT_MUTE, 12653a5a1b3Sopenharmony_ci 12753a5a1b3Sopenharmony_ci PA_COMMAND_SUSPEND_SINK, 12853a5a1b3Sopenharmony_ci PA_COMMAND_SUSPEND_SOURCE, 12953a5a1b3Sopenharmony_ci 13053a5a1b3Sopenharmony_ci /* Supported since protocol v12 (0.9.8) */ 13153a5a1b3Sopenharmony_ci PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR, 13253a5a1b3Sopenharmony_ci PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR, 13353a5a1b3Sopenharmony_ci 13453a5a1b3Sopenharmony_ci PA_COMMAND_UPDATE_PLAYBACK_STREAM_SAMPLE_RATE, 13553a5a1b3Sopenharmony_ci PA_COMMAND_UPDATE_RECORD_STREAM_SAMPLE_RATE, 13653a5a1b3Sopenharmony_ci 13753a5a1b3Sopenharmony_ci /* SERVER->CLIENT */ 13853a5a1b3Sopenharmony_ci PA_COMMAND_PLAYBACK_STREAM_SUSPENDED, 13953a5a1b3Sopenharmony_ci PA_COMMAND_RECORD_STREAM_SUSPENDED, 14053a5a1b3Sopenharmony_ci PA_COMMAND_PLAYBACK_STREAM_MOVED, 14153a5a1b3Sopenharmony_ci PA_COMMAND_RECORD_STREAM_MOVED, 14253a5a1b3Sopenharmony_ci 14353a5a1b3Sopenharmony_ci /* Supported since protocol v13 (0.9.11) */ 14453a5a1b3Sopenharmony_ci PA_COMMAND_UPDATE_RECORD_STREAM_PROPLIST, 14553a5a1b3Sopenharmony_ci PA_COMMAND_UPDATE_PLAYBACK_STREAM_PROPLIST, 14653a5a1b3Sopenharmony_ci PA_COMMAND_UPDATE_CLIENT_PROPLIST, 14753a5a1b3Sopenharmony_ci PA_COMMAND_REMOVE_RECORD_STREAM_PROPLIST, 14853a5a1b3Sopenharmony_ci PA_COMMAND_REMOVE_PLAYBACK_STREAM_PROPLIST, 14953a5a1b3Sopenharmony_ci PA_COMMAND_REMOVE_CLIENT_PROPLIST, 15053a5a1b3Sopenharmony_ci 15153a5a1b3Sopenharmony_ci /* SERVER->CLIENT */ 15253a5a1b3Sopenharmony_ci PA_COMMAND_STARTED, 15353a5a1b3Sopenharmony_ci 15453a5a1b3Sopenharmony_ci /* Supported since protocol v14 (0.9.12) */ 15553a5a1b3Sopenharmony_ci PA_COMMAND_EXTENSION, 15653a5a1b3Sopenharmony_ci 15753a5a1b3Sopenharmony_ci /* Supported since protocol v15 (0.9.15) */ 15853a5a1b3Sopenharmony_ci PA_COMMAND_GET_CARD_INFO, 15953a5a1b3Sopenharmony_ci PA_COMMAND_GET_CARD_INFO_LIST, 16053a5a1b3Sopenharmony_ci PA_COMMAND_SET_CARD_PROFILE, 16153a5a1b3Sopenharmony_ci 16253a5a1b3Sopenharmony_ci PA_COMMAND_CLIENT_EVENT, 16353a5a1b3Sopenharmony_ci PA_COMMAND_PLAYBACK_STREAM_EVENT, 16453a5a1b3Sopenharmony_ci PA_COMMAND_RECORD_STREAM_EVENT, 16553a5a1b3Sopenharmony_ci 16653a5a1b3Sopenharmony_ci /* SERVER->CLIENT */ 16753a5a1b3Sopenharmony_ci PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED, 16853a5a1b3Sopenharmony_ci PA_COMMAND_RECORD_BUFFER_ATTR_CHANGED, 16953a5a1b3Sopenharmony_ci 17053a5a1b3Sopenharmony_ci /* Supported since protocol v16 (0.9.16) */ 17153a5a1b3Sopenharmony_ci PA_COMMAND_SET_SINK_PORT, 17253a5a1b3Sopenharmony_ci PA_COMMAND_SET_SOURCE_PORT, 17353a5a1b3Sopenharmony_ci 17453a5a1b3Sopenharmony_ci /* Supported since protocol v22 (1.0) */ 17553a5a1b3Sopenharmony_ci PA_COMMAND_SET_SOURCE_OUTPUT_VOLUME, 17653a5a1b3Sopenharmony_ci PA_COMMAND_SET_SOURCE_OUTPUT_MUTE, 17753a5a1b3Sopenharmony_ci 17853a5a1b3Sopenharmony_ci /* Supported since protocol v27 (3.0) */ 17953a5a1b3Sopenharmony_ci PA_COMMAND_SET_PORT_LATENCY_OFFSET, 18053a5a1b3Sopenharmony_ci 18153a5a1b3Sopenharmony_ci /* Supported since protocol v30 (6.0) */ 18253a5a1b3Sopenharmony_ci /* BOTH DIRECTIONS */ 18353a5a1b3Sopenharmony_ci PA_COMMAND_ENABLE_SRBCHANNEL, 18453a5a1b3Sopenharmony_ci PA_COMMAND_DISABLE_SRBCHANNEL, 18553a5a1b3Sopenharmony_ci 18653a5a1b3Sopenharmony_ci /* Supported since protocol v31 (9.0) 18753a5a1b3Sopenharmony_ci * BOTH DIRECTIONS */ 18853a5a1b3Sopenharmony_ci PA_COMMAND_REGISTER_MEMFD_SHMID, 18953a5a1b3Sopenharmony_ci 19053a5a1b3Sopenharmony_ci /* Supported since protocol v34 (14.0) */ 19153a5a1b3Sopenharmony_ci PA_COMMAND_SEND_OBJECT_MESSAGE, 19253a5a1b3Sopenharmony_ci 19353a5a1b3Sopenharmony_ci /* SERVER->CLIENT */ 19453a5a1b3Sopenharmony_ci PA_COMMAND_UNDERFLOW_OHOS, 19553a5a1b3Sopenharmony_ci 19653a5a1b3Sopenharmony_ci PA_COMMAND_MAX 19753a5a1b3Sopenharmony_ci}; 19853a5a1b3Sopenharmony_ci 19953a5a1b3Sopenharmony_ci#define PA_NATIVE_COOKIE_LENGTH 256 20053a5a1b3Sopenharmony_ci#define PA_NATIVE_COOKIE_FILE "cookie" 20153a5a1b3Sopenharmony_ci#define PA_NATIVE_COOKIE_FILE_FALLBACK ".pulse-cookie" 20253a5a1b3Sopenharmony_ci 20353a5a1b3Sopenharmony_ci#define PA_NATIVE_DEFAULT_PORT 4713 20453a5a1b3Sopenharmony_ci 20553a5a1b3Sopenharmony_ci#define PA_NATIVE_COOKIE_PROPERTY_NAME "protocol-native-cookie" 20653a5a1b3Sopenharmony_ci#define PA_NATIVE_SERVER_PROPERTY_NAME "protocol-native-server" 20753a5a1b3Sopenharmony_ci 20853a5a1b3Sopenharmony_ci#define PA_NATIVE_DEFAULT_UNIX_SOCKET "native" 20953a5a1b3Sopenharmony_ci 21053a5a1b3Sopenharmony_ciint pa_common_command_register_memfd_shmid(pa_pstream *p, pa_pdispatch *pd, uint32_t version, 21153a5a1b3Sopenharmony_ci uint32_t command, pa_tagstruct *t); 21253a5a1b3Sopenharmony_ci 21353a5a1b3Sopenharmony_ciPA_C_DECL_END 21453a5a1b3Sopenharmony_ci 21553a5a1b3Sopenharmony_ci#endif 216