diff options
Diffstat (limited to 'cras/src/common/cras_messages.h')
-rw-r--r-- | cras/src/common/cras_messages.h | 756 |
1 files changed, 0 insertions, 756 deletions
diff --git a/cras/src/common/cras_messages.h b/cras/src/common/cras_messages.h deleted file mode 100644 index 50cbe7cd..00000000 --- a/cras/src/common/cras_messages.h +++ /dev/null @@ -1,756 +0,0 @@ -/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -/* - * Messages sent between the server and clients. - */ -#ifndef CRAS_MESSAGES_H_ -#define CRAS_MESSAGES_H_ - -#include <stdint.h> - -#include "cras_iodev_info.h" -#include "cras_types.h" - -/* Rev when message format changes. If new messages are added, or message ID - * values change. */ -#define CRAS_PROTO_VER 7 -#define CRAS_SERV_MAX_MSG_SIZE 256 -#define CRAS_CLIENT_MAX_MSG_SIZE 256 -#define CRAS_MAX_HOTWORD_MODELS 243 -#define CRAS_MAX_REMIX_CHANNELS 8 -#define CRAS_MAX_TEST_DATA_LEN 224 -#define CRAS_AEC_DUMP_FILE_NAME_LEN 128 - -/* Message IDs. */ -enum CRAS_SERVER_MESSAGE_ID { - /* Client -> Server*/ - CRAS_SERVER_CONNECT_STREAM, - CRAS_SERVER_DISCONNECT_STREAM, - CRAS_SERVER_SWITCH_STREAM_TYPE_IODEV, /* Unused */ - CRAS_SERVER_SET_SYSTEM_VOLUME, - CRAS_SERVER_SET_SYSTEM_MUTE, - CRAS_SERVER_SET_USER_MUTE, - CRAS_SERVER_SET_SYSTEM_MUTE_LOCKED, - CRAS_SERVER_SET_SYSTEM_CAPTURE_GAIN, /* Deprecated */ - CRAS_SERVER_SET_SYSTEM_CAPTURE_MUTE, - CRAS_SERVER_SET_SYSTEM_CAPTURE_MUTE_LOCKED, - CRAS_SERVER_SET_NODE_ATTR, - CRAS_SERVER_SELECT_NODE, - CRAS_SERVER_RELOAD_DSP, - CRAS_SERVER_DUMP_DSP_INFO, - CRAS_SERVER_DUMP_AUDIO_THREAD, - CRAS_SERVER_DUMP_SNAPSHOTS, - CRAS_SERVER_ADD_ACTIVE_NODE, - CRAS_SERVER_RM_ACTIVE_NODE, - CRAS_SERVER_ADD_TEST_DEV, - CRAS_SERVER_TEST_DEV_COMMAND, - CRAS_SERVER_SUSPEND, - CRAS_SERVER_RESUME, - CRAS_CONFIG_GLOBAL_REMIX, - CRAS_SERVER_GET_HOTWORD_MODELS, - CRAS_SERVER_SET_HOTWORD_MODEL, - CRAS_SERVER_REGISTER_NOTIFICATION, - CRAS_SERVER_SET_AEC_DUMP, - CRAS_SERVER_RELOAD_AEC_CONFIG, - CRAS_SERVER_DUMP_BT, - CRAS_SERVER_SET_BT_WBS_ENABLED, - CRAS_SERVER_GET_ATLOG_FD, - CRAS_SERVER_DUMP_MAIN, -}; - -enum CRAS_CLIENT_MESSAGE_ID { - /* Server -> Client */ - CRAS_CLIENT_CONNECTED, - CRAS_CLIENT_STREAM_CONNECTED, - CRAS_CLIENT_AUDIO_DEBUG_INFO_READY, - CRAS_CLIENT_GET_HOTWORD_MODELS_READY, - /* System status messages */ - CRAS_CLIENT_OUTPUT_VOLUME_CHANGED, - CRAS_CLIENT_OUTPUT_MUTE_CHANGED, - CRAS_CLIENT_CAPTURE_GAIN_CHANGED, - CRAS_CLIENT_CAPTURE_MUTE_CHANGED, - CRAS_CLIENT_NODES_CHANGED, - CRAS_CLIENT_ACTIVE_NODE_CHANGED, - CRAS_CLIENT_OUTPUT_NODE_VOLUME_CHANGED, - CRAS_CLIENT_NODE_LEFT_RIGHT_SWAPPED_CHANGED, - CRAS_CLIENT_INPUT_NODE_GAIN_CHANGED, - CRAS_CLIENT_NUM_ACTIVE_STREAMS_CHANGED, - /* Server -> Client */ - CRAS_CLIENT_ATLOG_FD_READY, -}; - -/* Messages that control the server. These are sent from the client to affect - * and action on the server. */ -struct __attribute__((__packed__)) cras_server_message { - uint32_t length; - enum CRAS_SERVER_MESSAGE_ID id; -}; - -/* Messages that control the client. These are sent from the server to affect - * and action on the client. */ -struct __attribute__((__packed__)) cras_client_message { - uint32_t length; - enum CRAS_CLIENT_MESSAGE_ID id; -}; - -/* - * Messages from client to server. - */ - -/* Sent by a client to connect a stream to the server. */ -struct __attribute__((__packed__)) cras_connect_message { - struct cras_server_message header; - uint32_t proto_version; - enum CRAS_STREAM_DIRECTION direction; /* input/output/loopback */ - cras_stream_id_t stream_id; /* unique id for this stream */ - enum CRAS_STREAM_TYPE stream_type; /* media, or call, etc. */ - uint32_t buffer_frames; /* Buffer size in frames. */ - uint32_t cb_threshold; /* callback client when this much is left */ - uint32_t flags; - struct cras_audio_format_packed format; /* rate, channel, sample size */ - uint32_t dev_idx; /* device to attach stream, 0 if none */ - uint64_t effects; /* Bit map of requested effects. */ - enum CRAS_CLIENT_TYPE client_type; /* chrome, or arc, etc. */ - uint64_t client_shm_size; /* Size of client-provided samples shm, if any */ - /* Initial values for shm samples buffer offsets. These will be 0 for - * streams that do not use client-provided shm */ - uint64_t buffer_offsets[2]; -}; - -static inline void cras_fill_connect_message( - struct cras_connect_message *m, enum CRAS_STREAM_DIRECTION direction, - cras_stream_id_t stream_id, enum CRAS_STREAM_TYPE stream_type, - enum CRAS_CLIENT_TYPE client_type, size_t buffer_frames, - size_t cb_threshold, uint32_t flags, uint64_t effects, - struct cras_audio_format format, uint32_t dev_idx) -{ - m->proto_version = CRAS_PROTO_VER; - m->direction = direction; - m->stream_id = stream_id; - m->stream_type = stream_type; - m->buffer_frames = buffer_frames; - m->cb_threshold = cb_threshold; - m->flags = flags; - m->effects = effects; - pack_cras_audio_format(&m->format, &format); - m->dev_idx = dev_idx; - m->client_type = client_type; - m->client_shm_size = 0; - m->buffer_offsets[0] = 0; - m->buffer_offsets[1] = 0; - m->header.id = CRAS_SERVER_CONNECT_STREAM; - m->header.length = sizeof(struct cras_connect_message); -} - -/* Sent by a client to remove a stream from the server. */ -struct __attribute__((__packed__)) cras_disconnect_stream_message { - struct cras_server_message header; - cras_stream_id_t stream_id; -}; -static inline void -cras_fill_disconnect_stream_message(struct cras_disconnect_stream_message *m, - cras_stream_id_t stream_id) -{ - m->stream_id = stream_id; - m->header.id = CRAS_SERVER_DISCONNECT_STREAM; - m->header.length = sizeof(struct cras_disconnect_stream_message); -} - -/* Move streams of "type" to the iodev at "iodev_idx". */ -struct __attribute__((__packed__)) cras_switch_stream_type_iodev { - struct cras_server_message header; - enum CRAS_STREAM_TYPE stream_type; - uint32_t iodev_idx; -}; - -/* Set the system volume. */ -struct __attribute__((__packed__)) cras_set_system_volume { - struct cras_server_message header; - uint32_t volume; -}; -static inline void cras_fill_set_system_volume(struct cras_set_system_volume *m, - size_t volume) -{ - m->volume = volume; - m->header.id = CRAS_SERVER_SET_SYSTEM_VOLUME; - m->header.length = sizeof(*m); -} - -/* Set the system mute state. */ -struct __attribute__((__packed__)) cras_set_system_mute { - struct cras_server_message header; - int32_t mute; /* 0 = un-mute, 1 = mute. */ -}; -static inline void cras_fill_set_system_mute(struct cras_set_system_mute *m, - int mute) -{ - m->mute = mute; - m->header.id = CRAS_SERVER_SET_SYSTEM_MUTE; - m->header.length = sizeof(*m); -} -static inline void cras_fill_set_user_mute(struct cras_set_system_mute *m, - int mute) -{ - m->mute = mute; - m->header.id = CRAS_SERVER_SET_USER_MUTE; - m->header.length = sizeof(*m); -} -static inline void -cras_fill_set_system_mute_locked(struct cras_set_system_mute *m, int locked) -{ - m->mute = locked; - m->header.id = CRAS_SERVER_SET_SYSTEM_MUTE_LOCKED; - m->header.length = sizeof(*m); -} -static inline void -cras_fill_set_system_capture_mute(struct cras_set_system_mute *m, int mute) -{ - m->mute = mute; - m->header.id = CRAS_SERVER_SET_SYSTEM_CAPTURE_MUTE; - m->header.length = sizeof(*m); -} -static inline void -cras_fill_set_system_capture_mute_locked(struct cras_set_system_mute *m, - int locked) -{ - m->mute = locked; - m->header.id = CRAS_SERVER_SET_SYSTEM_CAPTURE_MUTE_LOCKED; - m->header.length = sizeof(*m); -} - -/* Set an attribute of an ionode. */ -struct __attribute__((__packed__)) cras_set_node_attr { - struct cras_server_message header; - cras_node_id_t node_id; - enum ionode_attr attr; - int32_t value; -}; -static inline void cras_fill_set_node_attr(struct cras_set_node_attr *m, - cras_node_id_t node_id, - enum ionode_attr attr, int value) -{ - m->header.id = CRAS_SERVER_SET_NODE_ATTR; - m->node_id = node_id; - m->attr = attr; - m->value = value; - m->header.length = sizeof(*m); -} - -/* Set an attribute of an ionode. */ -struct __attribute__((__packed__)) cras_select_node { - struct cras_server_message header; - enum CRAS_STREAM_DIRECTION direction; - cras_node_id_t node_id; -}; -static inline void cras_fill_select_node(struct cras_select_node *m, - enum CRAS_STREAM_DIRECTION direction, - cras_node_id_t node_id) -{ - m->header.id = CRAS_SERVER_SELECT_NODE; - m->direction = direction; - m->node_id = node_id; - m->header.length = sizeof(*m); -} - -/* Add an active ionode. */ -struct __attribute__((__packed__)) cras_add_active_node { - struct cras_server_message header; - enum CRAS_STREAM_DIRECTION direction; - cras_node_id_t node_id; -}; -static inline void -cras_fill_add_active_node(struct cras_add_active_node *m, - enum CRAS_STREAM_DIRECTION direction, - cras_node_id_t node_id) -{ - m->header.id = CRAS_SERVER_ADD_ACTIVE_NODE; - m->direction = direction; - m->node_id = node_id; - m->header.length = sizeof(*m); -} - -/* Remove an active ionode. */ -struct __attribute__((__packed__)) cras_rm_active_node { - struct cras_server_message header; - enum CRAS_STREAM_DIRECTION direction; - cras_node_id_t node_id; -}; -static inline void -cras_fill_rm_active_node(struct cras_rm_active_node *m, - enum CRAS_STREAM_DIRECTION direction, - cras_node_id_t node_id) -{ - m->header.id = CRAS_SERVER_RM_ACTIVE_NODE; - m->direction = direction; - m->node_id = node_id; - m->header.length = sizeof(*m); -} - -/* Reload the dsp configuration. */ -struct __attribute__((__packed__)) cras_reload_dsp { - struct cras_server_message header; -}; -static inline void cras_fill_reload_dsp(struct cras_reload_dsp *m) -{ - m->header.id = CRAS_SERVER_RELOAD_DSP; - m->header.length = sizeof(*m); -} - -/* Dump current dsp information to syslog. */ -struct __attribute__((__packed__)) cras_dump_dsp_info { - struct cras_server_message header; -}; - -static inline void cras_fill_dump_dsp_info(struct cras_dump_dsp_info *m) -{ - m->header.id = CRAS_SERVER_DUMP_DSP_INFO; - m->header.length = sizeof(*m); -} - -/* Dump current audio thread information to syslog. */ -struct __attribute__((__packed__)) cras_dump_audio_thread { - struct cras_server_message header; -}; - -static inline void cras_fill_dump_audio_thread(struct cras_dump_audio_thread *m) -{ - m->header.id = CRAS_SERVER_DUMP_AUDIO_THREAD; - m->header.length = sizeof(*m); -} - -struct __attribute__((__packed__)) cras_get_atlog_fd { - struct cras_server_message header; -}; - -static inline void cras_fill_get_atlog_fd(struct cras_get_atlog_fd *m) -{ - m->header.id = CRAS_SERVER_GET_ATLOG_FD; - m->header.length = sizeof(*m); -} - -/* Dump events in CRAS main thread. */ -struct __attribute__((__packed__)) cras_dump_main { - struct cras_server_message header; -}; - -static inline void cras_fill_dump_main(struct cras_dump_main *m) -{ - m->header.id = CRAS_SERVER_DUMP_MAIN; - m->header.length = sizeof(*m); -} - -/* Dump bluetooth events and state changes. */ -struct __attribute__((__packed__)) cras_dump_bt { - struct cras_server_message header; -}; - -static inline void cras_fill_dump_bt(struct cras_dump_bt *m) -{ - m->header.id = CRAS_SERVER_DUMP_BT; - m->header.length = sizeof(*m); -} - -/* Dump current audio thread snapshots to shard memory with the client. */ -struct __attribute__((__packed__)) cras_dump_snapshots { - struct cras_server_message header; -}; - -static inline void cras_fill_dump_snapshots(struct cras_dump_snapshots *m) -{ - m->header.id = CRAS_SERVER_DUMP_SNAPSHOTS; - m->header.length = sizeof(*m); -} - -/* Add a test device. */ -struct __attribute__((__packed__)) cras_add_test_dev { - struct cras_server_message header; - enum TEST_IODEV_TYPE type; -}; - -static inline void cras_fill_add_test_dev(struct cras_add_test_dev *m, - enum TEST_IODEV_TYPE type) -{ - m->header.id = CRAS_SERVER_ADD_TEST_DEV; - m->header.length = sizeof(*m); - m->type = type; -} - -/* Command a test device. */ -struct __attribute__((__packed__)) cras_test_dev_command { - struct cras_server_message header; - unsigned int command; - unsigned int iodev_idx; - unsigned int data_len; - uint8_t data[CRAS_MAX_TEST_DATA_LEN]; -}; - -static inline void cras_fill_test_dev_command(struct cras_test_dev_command *m, - unsigned int iodev_idx, - enum CRAS_TEST_IODEV_CMD command, - unsigned int data_len, - const uint8_t *data) -{ - m->header.id = CRAS_SERVER_TEST_DEV_COMMAND; - m->header.length = sizeof(*m) + data_len; - m->iodev_idx = iodev_idx; - m->command = command; - m->data_len = data_len; - memcpy(m->data, data, data_len); -} - -static inline void cras_fill_suspend_message(struct cras_server_message *m, - int is_suspend) -{ - m->id = is_suspend ? CRAS_SERVER_SUSPEND : CRAS_SERVER_RESUME; - m->length = sizeof(*m); -} - -/* - * Configures the global remix converter. - * `num_channels` must be less than `CRAS_MAX_REMIX_CHANNELS`. - */ -struct __attribute__((__packed__)) cras_config_global_remix { - struct cras_server_message header; - unsigned int num_channels; - float coefficient[CRAS_MAX_REMIX_CHANNELS * CRAS_MAX_REMIX_CHANNELS]; -}; - -static inline void -cras_fill_config_global_remix_command(struct cras_config_global_remix *m, - unsigned int num_channels, float *coeff, - unsigned int count) -{ - m->header.id = CRAS_CONFIG_GLOBAL_REMIX; - m->header.length = sizeof(*m) + count * sizeof(*coeff); - m->num_channels = num_channels; - memcpy(m->coefficient, coeff, count * sizeof(*coeff)); -} - -/* Get supported hotword models. */ -struct __attribute__((__packed__)) cras_get_hotword_models { - struct cras_server_message header; - cras_node_id_t node_id; -}; - -static inline void -cras_fill_get_hotword_models_message(struct cras_get_hotword_models *m, - cras_node_id_t node_id) -{ - m->header.id = CRAS_SERVER_GET_HOTWORD_MODELS; - m->header.length = sizeof(*m); - m->node_id = node_id; -} - -/* Set desired hotword model. */ -struct __attribute__((__packed__)) cras_set_hotword_model { - struct cras_server_message header; - cras_node_id_t node_id; - char model_name[CRAS_MAX_HOTWORD_MODEL_NAME_SIZE]; -}; - -static inline void -cras_fill_set_hotword_model_message(struct cras_set_hotword_model *m, - cras_node_id_t node_id, - const char *model_name) -{ - m->header.id = CRAS_SERVER_SET_HOTWORD_MODEL; - m->header.length = sizeof(*m); - m->node_id = node_id; - memcpy(m->model_name, model_name, CRAS_MAX_HOTWORD_MODEL_NAME_SIZE); -} - -/* Set aec dump to start or stop. */ -struct __attribute__((__packed__)) cras_set_aec_dump { - struct cras_server_message header; - cras_stream_id_t stream_id; - unsigned int start; -}; - -static inline void cras_fill_set_aec_dump_message(struct cras_set_aec_dump *m, - cras_stream_id_t stream_id, - unsigned int start) -{ - m->header.id = CRAS_SERVER_SET_AEC_DUMP; - m->header.length = sizeof(*m); - m->stream_id = stream_id; - m->start = start; -} - -/* Reload the aec configuration. */ -struct __attribute__((__packed__)) cras_reload_aec_config { - struct cras_server_message header; -}; -static inline void cras_fill_reload_aec_config(struct cras_reload_aec_config *m) -{ - m->header.id = CRAS_SERVER_RELOAD_AEC_CONFIG; - m->header.length = sizeof(*m); -} - -/* Sets the flag to enable or disable bluetooth wideband speech feature. */ -struct __attribute__((__packed__)) cras_set_bt_wbs_enabled { - struct cras_server_message header; - unsigned int enabled; -}; -static inline void -cras_fill_set_bt_wbs_enabled(struct cras_set_bt_wbs_enabled *m, - unsigned int enabled) -{ - m->header.id = CRAS_SERVER_SET_BT_WBS_ENABLED; - m->header.length = sizeof(*m); - m->enabled = enabled; -} - -struct __attribute__((__packed__)) cras_register_notification { - struct cras_server_message header; - uint32_t msg_id; - int do_register; -}; -static inline void -cras_fill_register_notification_message(struct cras_register_notification *m, - enum CRAS_CLIENT_MESSAGE_ID msg_id, - int do_register) -{ - m->header.id = CRAS_SERVER_REGISTER_NOTIFICATION; - m->header.length = sizeof(*m); - m->msg_id = msg_id; - m->do_register = do_register; -} - -/* - * Messages sent from server to client. - */ - -/* Reply from the server indicating that the client has connected. */ -struct __attribute__((__packed__)) cras_client_connected { - struct cras_client_message header; - uint32_t client_id; -}; -static inline void cras_fill_client_connected(struct cras_client_connected *m, - size_t client_id) -{ - m->client_id = client_id; - m->header.id = CRAS_CLIENT_CONNECTED; - m->header.length = sizeof(struct cras_client_connected); -} - -/* - * Reply from server that a stream has been successfully added. - * Two file descriptors are added, input shm followed by out shm. - * - * |samples_shm_size| is valid for normal streams, not client-provided - * shm streams. - */ -struct __attribute__((__packed__)) cras_client_stream_connected { - struct cras_client_message header; - int32_t err; - cras_stream_id_t stream_id; - struct cras_audio_format_packed format; - uint32_t samples_shm_size; - uint64_t effects; -}; - -static inline void -cras_fill_client_stream_connected(struct cras_client_stream_connected *m, - int err, cras_stream_id_t stream_id, - struct cras_audio_format *format, - size_t samples_shm_size, uint64_t effects) -{ - m->err = err; - m->stream_id = stream_id; - pack_cras_audio_format(&m->format, format); - if (samples_shm_size > UINT32_MAX) { - samples_shm_size = UINT32_MAX; - } - m->samples_shm_size = samples_shm_size; - m->effects = effects; - m->header.id = CRAS_CLIENT_STREAM_CONNECTED; - m->header.length = sizeof(struct cras_client_stream_connected); -} - -/* Sent from server to client when audio debug information is requested. */ -struct __attribute__((__packed__)) cras_client_audio_debug_info_ready { - struct cras_client_message header; -}; -static inline void cras_fill_client_audio_debug_info_ready( - struct cras_client_audio_debug_info_ready *m) -{ - m->header.id = CRAS_CLIENT_AUDIO_DEBUG_INFO_READY; - m->header.length = sizeof(*m); -} - -struct __attribute__((__packed__)) cras_client_atlog_fd_ready { - struct cras_client_message header; -}; - -static inline void -cras_fill_client_atlog_fd_ready(struct cras_client_atlog_fd_ready *m) -{ - m->header.id = CRAS_CLIENT_ATLOG_FD_READY; - m->header.length = sizeof(*m); -} - -/* Sent from server to client when hotword models info is ready. */ -struct __attribute__((__packed__)) cras_client_get_hotword_models_ready { - struct cras_client_message header; - int32_t hotword_models_size; - uint8_t hotword_models[CRAS_MAX_HOTWORD_MODELS + 1]; -}; -static inline void cras_fill_client_get_hotword_models_ready( - struct cras_client_get_hotword_models_ready *m, - const char *hotword_models, size_t hotword_models_size) -{ - m->header.id = CRAS_CLIENT_GET_HOTWORD_MODELS_READY; - m->header.length = sizeof(*m); - m->hotword_models_size = hotword_models_size; - /* Copy string data with terminator. */ - if (hotword_models) { - strncpy((char *)m->hotword_models, hotword_models, - CRAS_MAX_HOTWORD_MODELS); - m->hotword_models[CRAS_MAX_HOTWORD_MODELS] = '\0'; - } -} - -/* System status messages sent from server to client when state changes. */ -struct __attribute__((__packed__)) cras_client_volume_changed { - struct cras_client_message header; - int32_t volume; -}; -static inline void -cras_fill_client_output_volume_changed(struct cras_client_volume_changed *m, - int32_t volume) -{ - m->header.id = CRAS_CLIENT_OUTPUT_VOLUME_CHANGED; - m->header.length = sizeof(*m); - m->volume = volume; -} -static inline void -cras_fill_client_capture_gain_changed(struct cras_client_volume_changed *m, - int32_t gain) -{ - m->header.id = CRAS_CLIENT_CAPTURE_GAIN_CHANGED; - m->header.length = sizeof(*m); - m->volume = gain; -} - -struct __attribute__((__packed__)) cras_client_mute_changed { - struct cras_client_message header; - int32_t muted; - int32_t user_muted; - int32_t mute_locked; -}; -static inline void -cras_fill_client_output_mute_changed(struct cras_client_mute_changed *m, - int32_t muted, int32_t user_muted, - int32_t mute_locked) -{ - m->header.id = CRAS_CLIENT_OUTPUT_MUTE_CHANGED; - m->header.length = sizeof(*m); - m->muted = muted; - m->user_muted = user_muted; - m->mute_locked = mute_locked; -} -static inline void -cras_fill_client_capture_mute_changed(struct cras_client_mute_changed *m, - int32_t muted, int32_t mute_locked) -{ - m->header.id = CRAS_CLIENT_CAPTURE_MUTE_CHANGED; - m->header.length = sizeof(*m); - m->muted = muted; - m->user_muted = 0; - m->mute_locked = mute_locked; -} - -struct __attribute__((__packed__)) cras_client_nodes_changed { - struct cras_client_message header; -}; -static inline void -cras_fill_client_nodes_changed(struct cras_client_nodes_changed *m) -{ - m->header.id = CRAS_CLIENT_NODES_CHANGED; - m->header.length = sizeof(*m); -} - -struct __attribute__((__packed__)) cras_client_active_node_changed { - struct cras_client_message header; - uint32_t direction; - cras_node_id_t node_id; -}; -static inline void -cras_fill_client_active_node_changed(struct cras_client_active_node_changed *m, - enum CRAS_STREAM_DIRECTION direction, - cras_node_id_t node_id) -{ - m->header.id = CRAS_CLIENT_ACTIVE_NODE_CHANGED; - m->header.length = sizeof(*m); - m->direction = direction; - m->node_id = node_id; -}; - -struct __attribute__((__packed__)) cras_client_node_value_changed { - struct cras_client_message header; - cras_node_id_t node_id; - int32_t value; -}; -static inline void cras_fill_client_output_node_volume_changed( - struct cras_client_node_value_changed *m, cras_node_id_t node_id, - int32_t volume) -{ - m->header.id = CRAS_CLIENT_OUTPUT_NODE_VOLUME_CHANGED; - m->header.length = sizeof(*m); - m->node_id = node_id; - m->value = volume; -}; -static inline void cras_fill_client_node_left_right_swapped_changed( - struct cras_client_node_value_changed *m, cras_node_id_t node_id, - int swapped) -{ - m->header.id = CRAS_CLIENT_NODE_LEFT_RIGHT_SWAPPED_CHANGED; - m->header.length = sizeof(*m); - m->node_id = node_id; - m->value = swapped; -}; -static inline void cras_fill_client_input_node_gain_changed( - struct cras_client_node_value_changed *m, cras_node_id_t node_id, - int32_t gain) -{ - m->header.id = CRAS_CLIENT_INPUT_NODE_GAIN_CHANGED; - m->header.length = sizeof(*m); - m->node_id = node_id; - m->value = gain; -}; - -struct __attribute__((__packed__)) cras_client_num_active_streams_changed { - struct cras_client_message header; - uint32_t direction; - uint32_t num_active_streams; -}; -static inline void cras_fill_client_num_active_streams_changed( - struct cras_client_num_active_streams_changed *m, - enum CRAS_STREAM_DIRECTION direction, uint32_t num_active_streams) -{ - m->header.id = CRAS_CLIENT_NUM_ACTIVE_STREAMS_CHANGED; - m->header.length = sizeof(*m); - m->direction = direction; - m->num_active_streams = num_active_streams; -}; - -/* - * Messages specific to passing audio between client and server - */ -enum CRAS_AUDIO_MESSAGE_ID { - AUDIO_MESSAGE_REQUEST_DATA, - AUDIO_MESSAGE_DATA_READY, - AUDIO_MESSAGE_DATA_CAPTURED, - NUM_AUDIO_MESSAGES -}; - -struct __attribute__((__packed__)) audio_message { - enum CRAS_AUDIO_MESSAGE_ID id; - int32_t error; - uint32_t frames; /* number of samples per channel */ -}; - -#endif /* CRAS_MESSAGES_H_ */ |