1 /*****************************************************************************
2 * Copyright 2011 Broadcom Corporation. All rights reserved.
4 * Unless you and Broadcom execute a separate written software license
5 * agreement governing use of this software, this software is licensed to you
6 * under the terms of the GNU General Public License version 2, available at
7 * http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
9 * Notwithstanding the above, under no circumstances may you combine this
10 * software in any way with any other Broadcom software provided under a
11 * license other than the GPL, without Broadcom's express prior written
13 *****************************************************************************/
15 #ifndef _VC_AUDIO_DEFS_H_
16 #define _VC_AUDIO_DEFS_H_
18 #define VC_AUDIOSERV_MIN_VER 1
19 #define VC_AUDIOSERV_VER 2
21 /* FourCC code used for VCHI connection */
22 #define VC_AUDIO_SERVER_NAME MAKE_FOURCC("AUDS")
24 /* Maximum message length */
25 #define VC_AUDIO_MAX_MSG_LEN (sizeof( VC_AUDIO_MSG_T ))
28 * List of screens that are currently supported
29 * All message types supported for HOST->VC direction
32 enum vc_audio_msg_type {
33 VC_AUDIO_MSG_TYPE_RESULT, // Generic result
34 VC_AUDIO_MSG_TYPE_COMPLETE, // Generic result
35 VC_AUDIO_MSG_TYPE_CONFIG, // Configure audio
36 VC_AUDIO_MSG_TYPE_CONTROL, // Configure audio
37 VC_AUDIO_MSG_TYPE_OPEN, // Configure audio
38 VC_AUDIO_MSG_TYPE_CLOSE, // Configure audio
39 VC_AUDIO_MSG_TYPE_START, // Configure audio
40 VC_AUDIO_MSG_TYPE_STOP, // Configure audio
41 VC_AUDIO_MSG_TYPE_WRITE, // Configure audio
45 /* configure the audio */
47 struct vc_audio_config {
53 struct vc_audio_control {
58 struct vc_audio_open {
62 struct vc_audio_close {
66 struct vc_audio_start {
70 struct vc_audio_stop {
74 /* configure the write audio samples */
75 struct vc_audio_write {
76 u32 count; // in bytes
83 /* Generic result for a request (VC->HOST) */
84 struct vc_audio_result {
85 s32 success; // Success value
88 /* Generic result for a request (VC->HOST) */
89 struct vc_audio_complete {
90 s32 count; // Success value
95 /* Message header for all messages in HOST->VC direction */
97 s32 type; /* Message type (VC_AUDIO_MSG_TYPE) */
99 struct vc_audio_config config;
100 struct vc_audio_control control;
101 struct vc_audio_open open;
102 struct vc_audio_close close;
103 struct vc_audio_start start;
104 struct vc_audio_stop stop;
105 struct vc_audio_write write;
106 struct vc_audio_result result;
107 struct vc_audio_complete complete;
111 #endif /* _VC_AUDIO_DEFS_H_ */