ATS_media.h
7.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
/*
Copyright Wang yong ALL RIGHT RESERVED !
@ file name: ATS_media.h
@ description: 多媒体相关的接口
@ Author: wangyong, doforfaith@gmail.com
@ Modify History:
Date Event Person
10-05-31 Creator wangyong
*/
#if defined(__SKY_3DGUI__)
#ifndef __ATS_MEDIA_H__
#define __ATS_MEDIA_H__
#include "ATS_basic.h"
#include "ATS_adaptation_features.h"
/*Audio Play Format */
typedef enum
{
ATS_AUD_TYPE_NONE = -1,
ATS_AUD_TYPE_GSM_FR, /* 0 */
ATS_AUD_TYPE_GSM_HR, /* 1 */
ATS_AUD_TYPE_GSM_EFR, /* 2 */
ATS_AUD_TYPE_AMR, /* 3 */
ATS_AUD_TYPE_AMR_WB, /* 4 */
ATS_AUD_TYPE_DAF, /* 5 */
ATS_AUD_TYPE_AAC, /* 6 */
ATS_AUD_TYPE_PCM_8K, /* 7 */
ATS_AUD_TYPE_PCM_16K, /* 8 */
ATS_AUD_TYPE_G711_ALAW, /* 9 */
ATS_AUD_TYPE_G711_ULAW, /* 10 */
ATS_AUD_TYPE_DVI_ADPCM, /* 11 */
ATS_AUD_TYPE_VR, /* 12 */
ATS_AUD_TYPE_WAV, /* 13 */
ATS_AUD_TYPE_WAV_ALAW, /* 14 */
ATS_AUD_TYPE_WAV_ULAW, /* 15 */
ATS_AUD_TYPE_WAV_DVI_ADPCM, /* 16 */
ATS_AUD_TYPE_SMF, /* 17 */
ATS_AUD_TYPE_IMELODY, /* 18 */
ATS_AUD_TYPE_SMF_SND, /* 19 */
ATS_AUD_TYPE_MMF, /* 20 */
ATS_AUD_TYPE_AU, /* 21 */
ATS_AUD_TYPE_AIFF, /* 22 */
ATS_AUD_TYPE_VRSI, /* 23 */
ATS_AUD_TYPE_WMA, /* 24 */
ATS_AUD_TYPE_M4A, /* 25 */
ATS_AUD_TYPE_3GP, /* 26 */
ATS_AUD_TYPE_MP4, /* 27 */
ATS_AUD_TYPE_JPG, /* 28 */
ATS_AUD_TYPE_GIF, /* 29 */
ATS_AUD_TYPE_MJPG, /* 30 */
ATS_AUD_TYPE_PNG, /* 31 */
ATS_AUD_TYPE_MUSICAM, /* 32 */
ATS_AUD_TYPE_BSAC, /* 33 */
ATS_AUD_TYPE_MAX
}ATS_AUD_TYPE;
/*Audio Record quality type*/
typedef enum
{
ATS_AUD_REC_QUALITY_LOW,
ATS_AUD_REC_QUALITY_MED,
ATS_AUD_REC_QUALITY_HIGH,
ATS_AUD_REC_QUALITY_BEST
} ATS_AUD_REC_QUALITY_TYPE;
/*Audio Play Result */
typedef signed int ATS_AUD_RESULT;
#define ATS_AUD_RET_SUCCESS 0
#define ATS_AUD_RET_FAIL 1
#define ATS_AUD_RET_BUSY 2
#define ATS_AUD_RET_DISC_FULL 3
#define ATS_AUD_RET_OPEN_FILE_FAIL 4
#define ATS_AUD_RET_END_OF_FILE 5
#define ATS_AUD_RET_TERMINATED 6
#define ATS_AUD_RET_BAD_FORMAT 7
#define ATS_AUD_RET_INVALID_FORMAT 8
/*Audio Play Style */
typedef signed int ATS_AUD_STYLE;
#define ATS_AUD_STYLE_PLAY_CRESCENDO 0 /*声音渐强*/
#define ATS_AUD_STYLE_PLAY_INFINITE 1 /*重复播放*/
#define ATS_AUD_STYLE_PLAY_ONCE 2 /*只播放一次*/
/*Audio Play Volume Level */
typedef signed int ATS_AUD_VOLUME_LEVEL;
#define ATS_AUD_VOLUME_LEVEL1 0
#define ATS_AUD_VOLUME_LEVEL2 1
#define ATS_AUD_VOLUME_LEVEL3 2
#define ATS_AUD_VOLUME_LEVEL4 3
#define ATS_AUD_VOLUME_LEVEL5 4
#define ATS_AUD_VOLUME_LEVEL6 5
#define ATS_AUD_VOLUME_LEVEL7 6
/*Audio Play Volume Type */
typedef signed int ATS_AUD_VOLUME_TYPE;
#define ATS_AUD_VOLUME_CTN 0 /* MMI can apply to associate volume; call tone attribute */
#define ATS_AUD_VOLUME_KEY 1 /* MMI can apply to associate volume; keypad tone attribute */
#define ATS_AUD_VOLUME_MIC 2 /* microphone attribute */
#define ATS_AUD_VOLUME_FMR 3 /* MMI can apply to FM radio attribute */
#define ATS_AUD_VOLUME_SPH 4 /* MMI can apply to associate volume; speech sound attribute */
#define ATS_AUD_VOLUME_SID 5 /* side tone attribute */
#define ATS_AUD_VOLUME_MEDIA 6 /* MMI can apply to associate volume; As MP3, Wave,... attribute */
/*Audio Play Output Type */
typedef signed int ATS_AUD_OUTPUT_TYPE;
#define ATS_AUD_DEVICE_SPEAKER 0 /* Tone, Keypad sound to play on audio device. */
#define ATS_AUD_DEVICE_MICROPHONE 1 /* Microphone sound to send on audio device. */
#define ATS_AUD_DEVICE_BUZZER 2 /* Ring tone sound to play on audio device. */
#define ATS_AUD_DEVICE_GMI 3 /* MIDI/Melody sound to play on audio device */
#define ATS_AUD_DEVICE_SPEAKER2 4 /* earphone, carkit */
#define ATS_AUD_DEVICE_LOUDSPEAKER 5 /* loudspeaker for free sound */
#define ATS_AUD_DEVICE_SPEAKER_BOTH 6
typedef void (*ATS_AUD_CALLBACK) (ATS_AUD_RESULT result);
typedef signed int ATS_AUD_HANDLE;
typedef void (*ATS_AUD_MMA_CALLBACK) (ATS_AUD_HANDLE handle, ats_int32 result);
/*音频播放接口,如果是整体播放,请将start_offset/end_offset 都设置为0 */
/*播放音频数据*/
extern ATS_AUD_RESULT ATS_aud_play_string(
void *audio_data,
ats_uint32 len,
ATS_AUD_TYPE format,
ats_uint32 start_offset,
ats_uint32 end_offset,
ATS_AUD_STYLE play_style,
ATS_AUD_CALLBACK callback,
ATS_AUD_VOLUME_LEVEL volume,
ATS_AUD_OUTPUT_TYPE output_type);
/*播放音频文件*/
extern ATS_AUD_RESULT ATS_aud_play_file(
void *file_name,
ats_uint32 start_offset,
ats_uint32 end_offset,
ATS_AUD_STYLE play_style,
ATS_AUD_CALLBACK callback,
ATS_AUD_VOLUME_LEVEL volume,
ATS_AUD_OUTPUT_TYPE output_type );
/*停止播放音频数据*/
extern void ATS_aud_stop_string(void);
/*播放音频文件*/
extern void ATS_aud_stop_file(void);
/*音频录制接口, 假如对size 或time 没有限制,请将 size_limit 或time_limit 设置为0*/
extern ATS_AUD_RESULT ATS_aud_start_record(
void *file_name,
ATS_AUD_TYPE format,
ATS_AUD_REC_QUALITY_TYPE quality,
ATS_AUD_CALLBACK callback,
ats_uint32 size_limit,
ats_uint32 time_limit);
extern void ATS_aud_stop_record(void);
/*其他音频接口*/
extern void ATS_aud_set_volume(ATS_AUD_VOLUME_TYPE type, ATS_AUD_VOLUME_LEVEL volume);
extern void ATS_aud_set_mute(ATS_AUD_VOLUME_TYPE vol_type, ATS_BOOL mute);
extern void ATS_aud_resume_background_play(void);
extern void ATS_aud_suspend_background_play(void);
/*音频播放器相关接口 */
extern void ATS_audply_press_prev_button_down(void);
extern void ATS_audply_press_next_button_down(void);
extern void ATS_audply_press_play_button_down(void);
extern void ATS_audply_press_stop_button_down(void);
extern void ATS_audply_press_prev_button_up(void);
extern void ATS_audply_press_next_button_up(void);
extern void ATS_audply_press_play_button_up(void);
extern void ATS_audply_press_stop_button_up(void);
extern ATS_BOOL ATS_audply_is_ready(void);
extern ATS_BOOL ATS_audply_get_current_title(ats_uint8* title);
extern ATS_BOOL ATS_audply_is_playing(void);
extern ats_uint8* ATS_audply_get_current_fullname(void);
extern ats_uint32 ATS_audply_get_play_seconds(void);
extern ats_uint32 ATS_audply_get_play_duration(void);
/*与以上音频播放器函数类似,为mma相关接口,该接口可以实现声音的预加载,
且可以实现3 种声音混音 */
extern ATS_AUD_HANDLE ATS_aud_mma_open_file(void *file_name, ats_uint8 repeats, ATS_BOOL is_pdl, ATS_AUD_MMA_CALLBACK callback);
extern ATS_AUD_HANDLE ATS_aud_mma_open_string(void *audio_data, ats_uint32 len, ats_uint8 mdi_format, ats_uint8 repeats, ATS_AUD_MMA_CALLBACK callback);
extern ATS_AUD_HANDLE ATS_aud_mma_play(ATS_AUD_HANDLE handle);
extern ATS_AUD_HANDLE ATS_aud_mma_pause(ATS_AUD_HANDLE handle);
extern ATS_AUD_HANDLE ATS_aud_mma_resume(ATS_AUD_HANDLE handle);
extern ATS_AUD_HANDLE ATS_aud_mma_stop(ATS_AUD_HANDLE handle);
extern ATS_AUD_HANDLE ATS_aud_mma_close(ATS_AUD_HANDLE handle);
extern ATS_BOOL ATS_aud_mma_is_idle(void);
extern ATS_BOOL ATS_aud_mma_is_open(void);
#endif /*__ATS_MEDIA_H__*/
#endif /*__SKY_3DGUI__*/