1// Copyright 2017 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#pragma once
6
7#include <zircon/device/audio.h>
8
9namespace audio {
10namespace audio_proto {
11
12// C++ style aliases for protocol structures and types.
13using Cmd    = audio_cmd_t;
14using CmdHdr = audio_cmd_hdr_t;
15
16// Structures used with GET/SET format
17using SampleFormat = audio_sample_format_t;
18using FormatRange  = audio_stream_format_range_t;
19
20// AUDIO_STREAM_CMD_GET_FORMATS
21using StreamGetFmtsReq  = audio_stream_cmd_get_formats_req_t;
22using StreamGetFmtsResp = audio_stream_cmd_get_formats_resp_t;
23
24// AUDIO_STREAM_CMD_SET_FORMAT
25using StreamSetFmtReq  = audio_stream_cmd_set_format_req_t;
26using StreamSetFmtResp = audio_stream_cmd_set_format_resp_t;
27
28// AUDIO_STREAM_CMD_GET_GAIN
29using GetGainReq  = audio_stream_cmd_get_gain_req_t;
30using GetGainResp = audio_stream_cmd_get_gain_resp_t;
31
32// AUDIO_STREAM_CMD_SET_GAIN
33using SetGainReq  = audio_stream_cmd_set_gain_req_t;
34using SetGainResp = audio_stream_cmd_set_gain_resp_t;
35
36// AUDIO_STREAM_CMD_PLUG_DETECT
37using PlugDetectReq  = audio_stream_cmd_plug_detect_req_t;
38using PlugDetectResp = audio_stream_cmd_plug_detect_resp_t;
39
40// AUDIO_STREAM_PLUG_DETECT_NOTIFY
41using PlugDetectNotify = audio_stream_plug_detect_notify_t;
42
43// AUDIO_STREAM_CMD_GET_UNIQUE_ID
44using GetUniqueIdReq = audio_stream_cmd_get_unique_id_req_t;
45using GetUniqueIdResp = audio_stream_cmd_get_unique_id_resp_t;
46
47// AUDIO_STREAM_CMD_GET_STRING
48using GetStringReq = audio_stream_cmd_get_string_req_t;
49using GetStringResp = audio_stream_cmd_get_string_resp_t;
50
51// AUDIO_RB_CMD_GET_FIFO_DEPTH
52using RingBufGetFifoDepthReq  = audio_rb_cmd_get_fifo_depth_req_t;
53using RingBufGetFifoDepthResp = audio_rb_cmd_get_fifo_depth_resp_t;
54
55// AUDIO_RB_CMD_GET_BUFFER
56using RingBufGetBufferReq  = audio_rb_cmd_get_buffer_req_t;
57using RingBufGetBufferResp = audio_rb_cmd_get_buffer_resp_t;
58
59// AUDIO_RB_CMD_START
60using RingBufStartReq  = audio_rb_cmd_start_req_t;
61using RingBufStartResp = audio_rb_cmd_start_resp_t;
62
63// AUDIO_RB_CMD_STOP
64using RingBufStopReq  = audio_rb_cmd_stop_req_t;
65using RingBufStopResp = audio_rb_cmd_stop_resp_t;
66
67// AUDIO_RB_POSITION_NOTIFY
68using RingBufPositionNotify = audio_rb_position_notify_t;
69
70const char* SampleFormatToString(SampleFormat sample_format);
71
72}  // namespace audio_proto
73}  // namespace audio
74