summaryrefslogtreecommitdiff
path: root/tvapi/libtv/audio/audio_api.h (plain)
blob: 89e735689071edb5918a767de66f1e657c1993d1
1#ifndef __TV_AUDIO_API_H__
2#define __TV_AUDIO_API_H__
3
4#include "tvsetting/audio_cfg.h"
5#include "audio_alsa.h"
6#include "audio_effect.h"
7
8enum CC_AUDIO_SWITCH_STATUS {
9 CC_SWITCH_OFF,
10 CC_SWITCH_ON,
11};
12
13enum CC_AMAUDIO_OUT_MODE {
14 CC_AMAUDIO_OUT_MODE_DIRECT,
15 CC_AMAUDIO_OUT_MODE_MIX,
16};
17
18static const int CC_SPDIF_MODE_PCM = 0;
19static const int CC_SPDIF_MODE_RAW = 1;
20
21static const int CC_MIN_SOUND_VOL = 0;
22static const int CC_MAX_SOUND_VOL = (100);
23static const int CC_DEF_SOUND_VOL = (30);
24static const int CC_MIN_SUPPERBASS_VOL = (0);
25static const int CC_MAX_SUPPERBASS_VOL = (100);
26static const int CC_DEF_SUPPERBASS_VOL = (50);
27
28static const int CC_VOLUME_COMPENSATION_MIN_VAL = (-20);
29static const int CC_VOLUME_COMPENSATION_MAX_VAL = (20);
30static const int CC_VOLUME_COMPENSATION_DEF_VAL = (0);
31
32static const int CC_DEF_BASS_TREBLE_VOL = 50;
33static const int CC_EQ_BASS_IND = 1;
34static const int CC_EQ_TREBLE_IND = 3;
35static const int CC_EQ_DEF_UI_MIN_GAIN = 0;
36static const int CC_EQ_DEF_UI_MAX_GAIN = 100;
37static const int CC_LUT_SEL_TV = 0;
38static const int CC_LUT_SEL_AV = 1;
39static const int CC_LUT_SEL_COMP = 2;
40static const int CC_LUT_SEL_HDMI = 3;
41static const int CC_LUT_SEL_VGA = 4;
42static const int CC_LUT_SEL_MPEG = 5;
43static const int CC_LUT_SEL_COUNT = 6;
44
45
46enum CC_AUD_SOUND_MODE {
47 CC_SOUND_MODE_START = 0,
48 CC_SOUND_MODE_STD = 0,
49 CC_SOUND_MODE_MUSIC,
50 CC_SOUND_MODE_NEWS,
51 CC_SOUND_MODE_THEATER,
52 CC_SOUND_MODE_USER,
53 CC_SOUND_MODE_END = CC_SOUND_MODE_USER
54};
55
56enum CC_AUD_EQ_MODE {
57 CC_EQ_MODE_START = 0,
58 CC_EQ_MODE_NOMAL = 0,
59 CC_EQ_MODE_POP,
60 CC_EQ_MODE_JAZZ,
61 CC_EQ_MODE_ROCK,
62 CC_EQ_MODE_CLASSIC,
63 CC_EQ_MODE_DANCE,
64 CC_EQ_MODE_PARTY,
65 CC_EQ_MODE_BASS,
66 CC_EQ_MODE_TREBLE,
67 CC_EQ_MODE_CUSTOM,
68 CC_EQ_MODE_END = CC_EQ_MODE_CUSTOM
69};
70class CTvAudio
71{
72public:
73 CTvAudio();
74 ~CTvAudio();
75 //Audio Mute
76 int SetAudioMuteForSystem(int);
77 int GetAudioMuteForSystem();
78 int SetAudioMuteForTv(int );
79 int GetAudioMuteForTv();
80 int SetAudioAVOutMute(int muteStatus);
81 int GetAudioAVOutMute();
82 int SetAudioSPDIFMute(int muteStatus);
83 int GetAudioSPDIFMute();
84
85 //Audio Master Volume
86 int SetAudioMasterVolume(int tmp_vol);
87 int GetAudioMasterVolume();
88 int SaveCurAudioMasterVolume(int tmp_vol);
89 int GetCurAudioMasterVolume();
90
91 //Audio Balance
92 int SetAudioBalance(int tmp_val);
93 int GetAudioBalance();
94 int SaveCurAudioBalance(int tmp_val);
95 int GetCurAudioBalance();
96
97 //Audio SupperBass Volume
98 int SetAudioSupperBassVolume(int tmp_vol);
99 int GetAudioSupperBassVolume();
100 int SaveCurAudioSupperBassVolume(int tmp_vol);
101 int GetCurAudioSupperBassVolume();
102
103 //Audio SupperBass Switch
104 int SetAudioSupperBassSwitch(int tmp_val);
105 int GetAudioSupperBassSwitch();
106 int SaveCurAudioSupperBassSwitch(int tmp_val);
107 int GetCurAudioSupperBassSwitch();
108
109 //Audio SRS Surround switch
110 int SetAudioSRSSurround(int tmp_val);
111 int GetAudioSRSSurround();
112 int SaveCurAudioSrsSurround(int tmp_val);
113 int GetCurAudioSRSSurround();
114
115 //Audio SRS Dialog Clarity
116 int SetAudioSrsDialogClarity(int tmp_val);
117 int GetAudioSrsDialogClarity();
118 int SaveCurAudioSrsDialogClarity(int tmp_val);
119 int GetCurAudioSrsDialogClarity();
120
121 //Audio SRS Trubass
122 int SetAudioSrsTruBass(int tmp_val);
123 int GetAudioSrsTruBass();
124 int SaveCurAudioSrsTruBass(int tmp_val);
125 int GetCurAudioSrsTruBass();
126
127 //Audio SPDIF switch
128 int SetAudioSPDIFSwitch(int tmp_val);
129 int GetCurAudioSPDIFSwitch();
130 int SaveCurAudioSPDIFSwitch(int tmp_val);
131
132 //Audio SPDIF Mode
133 int SetAudioSPDIFMode(int tmp_val);
134 int GetCurAudioSPDIFMode();
135 int SaveCurAudioSPDIFMode(int tmp_val);
136
137 //Audio Bass
138 int SetAudioBassVolume(int tmp_vol);
139 int GetAudioBassVolume();
140 int SaveCurAudioBassVolume(int tmp_vol);
141 int GetCurAudioBassVolume();
142
143 //Audio Treble
144 int SetAudioTrebleVolume(int tmp_vol);
145 int GetAudioTrebleVolume();
146 int SaveCurAudioTrebleVolume(int tmp_vol);
147 int GetCurAudioTrebleVolume();
148
149 //Audio Sound Mode
150 int SetAudioSoundMode(int tmp_val);
151 int GetAudioSoundMode();
152 int SaveCurAudioSoundMode(int tmp_val);
153 int GetCurAudioSoundMode();
154
155 //Audio Wall Effect
156 int SetAudioWallEffect(int tmp_val);
157 int GetAudioWallEffect();
158 int SaveCurAudioWallEffect(int tmp_val);
159 int GetCurAudioWallEffect();
160
161 //Audio EQ Mode
162 int SetAudioEQMode(int tmp_val);
163 int GetAudioEQMode();
164 int SaveCurAudioEQMode(int tmp_val);
165 int GetCurAudioEQMode();
166
167 //Audio EQ Gain
168 int GetAudioEQRange(int range_buf[]);
169 int GetAudioEQBandCount();
170 int SetAudioEQGain(int gain_buf[]);
171 int GetAudioEQGain(int gain_buf[]);
172 int GetCurAudioEQGain(int gain_buf[]);
173 int SaveCurAudioEQGain(int gain_buf[]);
174 int SetAudioEQSwitch(int switch_val);
175
176 // amAudio
177 int OpenAmAudio(unsigned int sr, int output_device);
178 int CloseAmAudio(void);
179 int SetAmAudioInputSr(unsigned int sr, int output_device);
180 int SetAmAudioOutputMode(int mode);
181 int SetAmAudioMusicGain(int gain);
182 int SetAmAudioLeftGain(int gain);
183 int SetAmAudioRightGain(int gain);
184
185 int SetAudioVolumeCompensationVal(int tmp_vol_comp_val);
186 int GetAudioVolumeCompensationVal();
187
188 int AudioLineInSelectChannel(int audio_channel);
189 int AudioSetLineInCaptureVolume(int l_vol, int r_vol);
190 int SetKalaokIO(int level);
191
192 int AudioHandleHeadsetPlugIn();
193 int AudioHandleHeadsetPullOut();
194 int amAudioSetDoubleOutputSwitch(int en_val);
195 int setAudioPcmPlaybackVolume(int val);
196 int UsbAudioOuputModuleSwitch(int sw);
197 int GetAmAudioSetDoubleOutputSwitch();
198 int GetCurUsbAudioOuputModuleSwitch();
199 int amAudioSetTvDoubleOutput(int en_val, unsigned int sr, int input_device, int output_device);
200
201 void AudioCtlInitializeLoad();
202 void AudioCtlInit();
203 void AudioCtlUninit();
204 void AudioSetVolumeDigitLUTBuf(int lut_sel_flag, int add_srs_gain_flag, int add_eq_gain_flag, int audio_std);
205 int openTvAudio(int sr);
206
207 int AudioDataInitForDtv();
208 int AudioDataInit(int sr, bool enableNoiseGate);
209 int AudioDataUnInit();
210 int AudioChangeSampleRate(int sr);
211 int AudioSetAudioInSource(int audio_src_in_type);
212 int AudioSetAudioSourceType(int source_type);
213 int AudioSSMRestoreDefaultSetting();
214 int AudioRegisterInterface();
215 int AudioGetSessionId();
216 int AudioNewAudioEffects(void);
217 void AudioFreeAudioEffects(void);
218 int SetAudioDumpDataFlag(int tmp_flag);
219 int GetAudioDumpDataFlag();
220 int SetAudioLeftRightMode(unsigned int mode);
221 unsigned int GetAudioLeftRightMode();
222 int AudioSetMicroPhoneSwitch(int switch_val);
223 void AudioSetNoiseGateThreshold(int thresh);
224 int AudioSetRecordDataZero(bool flag);
225 int SwitchAVOutBypass (int);
226 int SetAudioSwitchIO(int value);
227 int SetOutput_Swap(int value);
228
229private:
230 void RealHandleVolumeDigitLUTBuf(int lut_buf_type, int lut_sel_flag,
231 int vol_buf[], int add_srs_gain_flag, int add_eq_gain_flag);
232 int handleAudioSPDIFMute(int muteStatus);
233 int LoadCurAudioSPDIFMode();
234 int LoadCurAudioMasterVolume();
235 int LoadCurAudioBalance();
236 int LoadCurAudioSupperBassVolume();
237 int LoadCurAudioSupperBassSwitch();
238 int LoadCurAudioSrsSurround();
239 int LoadCurAudioSrsDialogClarity();
240 void RealSetSRS();
241 int LoadCurAudioSPDIFSwitch();
242 void HanldeSupperBassSRSSpeakerSize();
243 int LoadCurAudioSoundMode();
244 int LoadCurAudioEQMode();
245 int LoadCurAudioSrsTruBass();
246 int SetDacGain();
247 int RealSaveCurAudioBassVolume(int, int);
248 int LoadCurAudioBassVolume();
249 int RealSaveCurAudioTrebleVolume(int, int);
250 int LoadCurAudioTrebleVolume();
251 int HandleTrebleBassVolume();
252 int LoadCurAudioWallEffect();
253 int RealReadCurAudioEQGain(int *);
254 int RealSaveCurAudioEQGain(int *, int);
255 int LoadCurAudioEQGain();
256 int MappingEQGain(int *, int *, int);
257 int RestoreToAudioDefEQGain(int *);
258 int CheckAudioEQGain(int *, int);
259 int GetCustomEQGain(int *);
260 int SetCustomEQGain();
261 int AudioSetEQGain(int *);
262 int handleEQGainBeforeSet(int *, int *);
263 int RealSetEQGain(int *);
264 int SetSpecialModeEQGain(int);
265 int SetSpecialIndexEQGain(int, int);
266 int SaveSpecialIndexEQGain(int, int);
267 void LoadAudioCtl();
268 void InitSetAudioCtl();
269 int GetAudioFirstInitSetFlag();
270 int HanldeAudioInputSr(unsigned int);
271 int waitServiceManager();
272 void *AudioCtlInitSetMain(void *);
273 void AudioCtlInitializeSet();
274 int GetEQMinGainVal();
275 int GetEQMaxGainVal();
276 int GetEQUIMinGainVal();
277 int GetEQUIMaxGainVal();
278 int GetBassUIMinGainVal();
279 int GetBassUIMaxGainVal();
280 int GetTrebleUIMinGainVal();
281 int GetTrebleUIMaxGainVal();
282 int MappingLine(int, int, int, int, int);
283 int MappingTrebleBassAndEqualizer(int, int, int, int);
284 void HandleSupperBassSwicth();
285 int InitSetTvAudioCard();
286 int UnInitSetTvAudioCard();
287 int SetSPDIFMode(int mode_val);
288
289
290 CAudioAlsa mAudioAlsa;
291 CAudioEffect mAudioEffect;
292 int mAudioMuteStatusForSystem;
293 int mAudioMuteStatusForTv;
294
295 int mCurAudioMasterVolume;
296 int mCurAudioBalance;
297 int mCurAudioSupperBassVolume;
298 int mCurAudioSupperBassSwitch;
299 int mCurAudioSRSSurround;
300 int mCurAudioSrsDialogClarity;
301 int mCurAudioSrsTruBass;
302 int mCurAudioSPDIFSwitch;
303 int mCurAudioSPDIFMode;
304 int mCurAudioBassVolume;
305 int mCurAudioTrebleVolume;
306 int mCurAudioSoundMode;
307 int mCurAudioWallEffect;
308 int mCurAudioEQMode;
309 int mCustomAudioMasterVolume;
310 int mCustomAudioBalance;
311 int mCustomAudioSupperBassVolume;
312 int mCustomAudioSupperBassSwitch;
313 int mCustomAudioSRSSurround;
314 int mCustomAudioSrsDialogClarity;
315 int mCustomAudioSrsTruBass;
316 int mCustomAudioBassVolume;
317 int mCustomAudioTrebleVolume;
318 int mCustomAudioSoundMode;
319 int mCustomAudioWallEffect;
320 int mCustomAudioEQMode;
321 int mCustomAudioSoundEnhancementSwitch;
322 volatile int mVolumeCompensationVal;
323};
324#endif //__TV_AUDIO_API_H__
325