1 /**
2  * @file constants.h
3  * @brief PCM Task node protocol constants definition
4  * <p>
5  * Copyright (C) 2006 Nokia Corporation
6  * <p>
7  * Contact: Eduardo Bezerra Valentin <eduardo.valentin@indt.org.br>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Library General Public
11  * License as published by the Free Software Foundation; either
12  * version 2 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Library General Public License for more details.
18  *
19  * You should have received a copy of the GNU Library General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
22  * */
23 #ifndef _CONSTANTS_H
24 #define _CONSTANTS_H
25 /**
26  * Commands
27  * */
28 /** No command */
29 #define DSP_CMD_NONE 		0x00
30 /** Informs the DSP that the following data is about initialisation. */
31 #define DSP_CMD_INIT		0x01
32 /** Informs the DSP that the following data is parameters */
33 #define DSP_CMD_SET_PARAMS	0x02
34 /** Informs the DSP that the following data is general data (compressed
35  * or raw audio or video)
36  * */
37 #define DSP_CMD_DATA_WRITE	0x03
38 /** Starts audio or video playback or recording */
39 #define DSP_CMD_PLAY		0x04
40 /** Pauses playback */
41 #define DSP_CMD_PAUSE		0x05
42 /** Stops playback */
43 #define DSP_CMD_STOP		0x06
44 /** Informs the DSP that the following data is volume */
45 #define DSP_CMD_SET_VOLUME	0x07
46 /** Requests from the DSP to send information about current task node
47  * state
48  * */
49 #define DSP_CMD_STATE		0x08
50 /** Informs the DSP that the following data is about setting the current
51  *  presentation time
52  * */
53 #define DSP_CMD_SET_TIME	0x09
54 /** Informs the DSP that the ARM queries the current presentation time */
55 #define DSP_CMD_GET_TIME	0x0A
56 /** Informs the DSP that the following data is about setting video
57  * post-processing parameters
58  * */
59 #define DSP_CMD_SET_POSTPROC	0x0B
60 /** Informs the DSP that the following data is about setting the panning
61  * */
62 #define DSP_CMD_SET_PANNING	0x0D
63 /** Informs the DSP about discontinuity in the audio stream */
64 #define DSP_CMD_DISCONT		0x0E
65 /** Mutes the audio playback */
66 #define DSP_CMD_MUTE		0x0F
67 /** Unmutes the audio playback */
68 #define DSP_CMD_UNMUTE		0x10
69 /**Closes the task node*/
70 #define DSP_CMD_CLOSE		0x14
71 /** Command from DSP to start to read data*/
72 #define DSP_CMD_DATA_READ	0x25
73 /**Sets speech parameters*/
74 #define DSP_CMD_SET_SPEECH_PARAMS 0x26
75 
76 /**
77  * Audio formats
78  * */
79 /** Unsigned 8 bits per sample PCM */
80 #define DSP_AFMT_U8		0x01
81 /** Signed 16 bits per sample PCM, little endian */
82 #define DSP_AFMT_S16_LE		0x02
83 /** Signed 16 bits per sample PCM, big endian */
84 #define DSP_AFMT_S16_BE		0x03
85 /** Signed 8 bits per sample PCM */
86 #define DSP_AFMT_S8		0x04
87 /** Unsigned 16 bits per sample PCM, little endian */
88 #define DSP_AFMT_U16_LE		0x05
89 /** Unsigned 16 bits per sample PCM, big endian */
90 #define DSP_AFMT_U16_BE		0x06
91 /** A-law encoded PCM */
92 #define DSP_AFMT_ALAW		0x07
93 /** μ-Law encoded PCM */
94 #define DSP_AFMT_ULAW		0x08
95 /** MP3 stream */
96 #define DSP_AFMT_MP3		0x09
97 /** AAC stream */
98 #define DSP_AFMT_AAC		0x0A
99 /** AMR stream */
100 #define DSP_AFMT_AMR		0x0B
101 /** MP2 stream */
102 #define DSP_AFMT_MP2		0x0C
103 /** iLBC stream */
104 #define DSP_AFMT_ILBC		0x0D
105 /** G.729 stream */
106 #define DSP_AFMT_G729		0x0E
107 /**
108  * Supported Sample rates
109  * */
110 /** 96KHz sampling rate */
111 #define SAMPLE_RATE_96KHZ	0x00
112 /** 88.2KHz sampling rate */
113 #define SAMPLE_RATE_88_2KHZ	0x01
114 /** 64KHz sampling rate */
115 #define SAMPLE_RATE_64KHZ	0x02
116 /** 48KHz sampling rate */
117 #define SAMPLE_RATE_48KHZ	0x03
118 /** 44.1KHz sampling rate */
119 #define SAMPLE_RATE_44_1KHZ	0x04
120 /** 32KHz sampling rate */
121 #define SAMPLE_RATE_32KHZ	0x05
122 /** 24KHz sampling rate */
123 #define SAMPLE_RATE_24KHZ	0x06
124 /** 22.05KHz sampling rate */
125 #define SAMPLE_RATE_22_05KHZ	0x07
126 /** 16KHz sampling rate */
127 #define SAMPLE_RATE_16KHZ	0x08
128 /** 12KHz sampling rate */
129 #define SAMPLE_RATE_12KHZ	0x09
130 /** 11.025KHz sampling rate */
131 #define SAMPLE_RATE_11_025KHZ	0x0A
132 /** 8KHz sampling rate */
133 #define SAMPLE_RATE_8KHZ	0x0B
134 /** 5.5125Khz sampling rate */
135 #define SAMPLE_RATE_5_5125KHZ	0X0C
136 /**
137  * DSP Return values
138  * */
139 /** Operation successful */
140 #define DSP_OK 			0x01
141 /** Unrecognised or unsupported command value */
142 #define DSP_ERROR_CMD		0x02
143 /** Unrecognised or unsupported audio format value */
144 #define DSP_ERROR_FMT		0x03
145 /** Unrecognised or unsupported sampling rate value */
146 #define DSP_ERROR_RATE		0x04
147 /** Unrecognised or unsupported number of channels */
148 #define DSP_ERROR_CHANNELS	0x05
149 /** Destination/source stream ID out of range */
150 #define DSP_ERROR_DS_ID		0x06
151 /** Insufficient memory to perform requested action */
152 #define DSP_ERROR_MEMORY 	0x07
153 /** Unspecified error */
154 #define DSP_ERROR_GENERAL	0x08
155 /** Error in stream (audio or video) */
156 #define DSP_ERROR_STREAM 	0x09
157 /** Unexpected task node state */
158 #define DSP_ERROR_STATE 	0x0A
159 /** Error in synchronisation:
160    For MP3 – synchronisation marker not found */
161 #define DSP_ERROR_SYNC		0x0B
162 /** For MPEG4: non-compliant video stream */
163 #define DSP_ERROR_VIDEO_NON_COMPLIANT 0x100
164 /** For MPEG4: Error in VOS */
165 #define DSP_ERROR_VIDEO_FAULT_IN_VOS  0x101
166 /** For MPEG4: Image size not supported */
167 #define DSP_ERROR_VIDEO_SIZE_NOT_SUPPORTED 0x102
168 /** End of VOS code reached */
169 #define DSP_ERROR_VIDEO_VOS_END_CODE 0x103
170 /**
171  * Channels
172  * */
173 /** One channel (mono) */
174 #define CHANNELS_1 		0x01
175 /** Two channels (stereo) */
176 #define CHANNELS_2		0x02
177 /**
178  * Audio Task node states
179  * */
180 /** Initialised */
181 #define STATE_INITIALISED	0x00
182 /** Playing/recording */
183 #define STATE_PLAYING		0x01
184 /** Stopped */
185 #define STATE_STOPPED		0x02
186 /** Paused */
187 #define STATE_PAUSED		0x03
188 /** Not initialised */
189 #define STATE_UNINITIALISED	0x04
190 /** Reseted */
191 #define STATE_RESET		0x05
192 /** Muted */
193 #define STATE_MUTED		0x06
194 
195 /** Sending commands */
196 #define REQUEST_CONFIRMATION	0x01
197 #define WITHOU_CONFIRMATION	0x00
198 #endif				/* _CONSTANTS_H */
199