summaryrefslogtreecommitdiff
path: root/tvapi/libtv/audio/audio_api.h (plain)
blob: 23918be0b04672ce7f0186fb828c3cb65313baad
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 {
71public:
72 CTvAudio();
73 ~CTvAudio();
74 //Audio Mute
75 int SetAudioMuteForSystem(int);
76 int GetAudioMuteForSystem();
77 int SetAudioMuteForTv(int );
78 int GetAudioMuteForTv();
79 int SetAudioAVOutMute(int muteStatus);
80 int GetAudioAVOutMute();
81 int SetAudioSPDIFMute(int muteStatus);
82 int GetAudioSPDIFMute();
83
84 //Audio Master Volume
85 int SetAudioMasterVolume(int tmp_vol);
86 int GetAudioMasterVolume();
87 int SaveCurAudioMasterVolume(int tmp_vol);
88 int GetCurAudioMasterVolume();
89
90 //Audio Balance
91 int SetAudioBalance(int tmp_val);
92 int GetAudioBalance();
93 int SaveCurAudioBalance(int tmp_val);
94 int GetCurAudioBalance();
95
96 //Audio SupperBass Volume
97 int SetAudioSupperBassVolume(int tmp_vol);
98 int GetAudioSupperBassVolume();
99 int SaveCurAudioSupperBassVolume(int tmp_vol);
100 int GetCurAudioSupperBassVolume();
101
102 //Audio SupperBass Switch
103 int SetAudioSupperBassSwitch(int tmp_val);
104 int GetAudioSupperBassSwitch();
105 int SaveCurAudioSupperBassSwitch(int tmp_val);
106 int GetCurAudioSupperBassSwitch();
107
108 //Audio SRS Surround switch
109 int SetAudioSRSSurround(int tmp_val);
110 int GetAudioSRSSurround();
111 int SaveCurAudioSrsSurround(int tmp_val);
112 int GetCurAudioSRSSurround();
113
114 //Audio SRS Dialog Clarity
115 int SetAudioSrsDialogClarity(int tmp_val);
116 int GetAudioSrsDialogClarity();
117 int SaveCurAudioSrsDialogClarity(int tmp_val);
118 int GetCurAudioSrsDialogClarity();
119
120 //Audio SRS Trubass
121 int SetAudioSrsTruBass(int tmp_val);
122 int GetAudioSrsTruBass();
123 int SaveCurAudioSrsTruBass(int tmp_val);
124 int GetCurAudioSrsTruBass();
125
126 //Audio SPDIF switch
127 int SetAudioSPDIFSwitch(int tmp_val);
128 int GetCurAudioSPDIFSwitch();
129 int SaveCurAudioSPDIFSwitch(int tmp_val);
130
131 //Audio SPDIF Mode
132 int SetAudioSPDIFMode(int tmp_val);
133 int GetCurAudioSPDIFMode();
134 int SaveCurAudioSPDIFMode(int tmp_val);
135
136 //Audio Bass
137 int SetAudioBassVolume(int tmp_vol);
138 int GetAudioBassVolume();
139 int SaveCurAudioBassVolume(int tmp_vol);
140 int GetCurAudioBassVolume();
141
142 //Audio Treble
143 int SetAudioTrebleVolume(int tmp_vol);
144 int GetAudioTrebleVolume();
145 int SaveCurAudioTrebleVolume(int tmp_vol);
146 int GetCurAudioTrebleVolume();
147
148 //Audio Sound Mode
149 int SetAudioSoundMode(int tmp_val);
150 int GetAudioSoundMode();
151 int SaveCurAudioSoundMode(int tmp_val);
152 int GetCurAudioSoundMode();
153
154 //Audio Wall Effect
155 int SetAudioWallEffect(int tmp_val);
156 int GetAudioWallEffect();
157 int SaveCurAudioWallEffect(int tmp_val);
158 int GetCurAudioWallEffect();
159
160 //Audio EQ Mode
161 int SetAudioEQMode(int tmp_val);
162 int GetAudioEQMode();
163 int SaveCurAudioEQMode(int tmp_val);
164 int GetCurAudioEQMode();
165
166 //Audio EQ Gain
167 int GetAudioEQRange(int range_buf[]);
168 int GetAudioEQBandCount();
169 int SetAudioEQGain(int gain_buf[]);
170 int GetAudioEQGain(int gain_buf[]);
171 int GetCurAudioEQGain(int gain_buf[]);
172 int SaveCurAudioEQGain(int gain_buf[]);
173 int SetAudioEQSwitch(int switch_val);
174
175 // amAudio
176 int OpenAmAudio(unsigned int sr, int output_device);
177 int CloseAmAudio(void);
178 int SetAmAudioInputSr(unsigned int sr, int output_device);
179 int SetAmAudioOutputMode(int mode);
180 int SetAmAudioMusicGain(int gain);
181 int SetAmAudioLeftGain(int gain);
182 int SetAmAudioRightGain(int gain);
183
184 int SetAudioVolumeCompensationVal(int tmp_vol_comp_val);
185 int GetAudioVolumeCompensationVal();
186
187 int AudioLineInSelectChannel(int audio_channel);
188 int AudioSetLineInCaptureVolume(int l_vol, int r_vol);
189 int SetKalaokIO(int level);
190
191 int AudioHandleHeadsetPlugIn();
192 int AudioHandleHeadsetPullOut();
193 int amAudioSetDoubleOutputSwitch(int en_val);
194 int setAudioPcmPlaybackVolume(int val);
195 int UsbAudioOuputModuleSwitch(int sw);
196 int GetAmAudioSetDoubleOutputSwitch();
197 int GetCurUsbAudioOuputModuleSwitch();
198 int amAudioSetTvDoubleOutput(int en_val, unsigned int sr, int input_device, int output_device);
199
200 void AudioCtlInitializeLoad();
201 void AudioCtlInit();
202 void AudioCtlUninit();
203 void AudioSetVolumeDigitLUTBuf(int lut_sel_flag, int add_srs_gain_flag, int add_eq_gain_flag, int audio_std);
204 int openTvAudio(int sr);
205
206 int AudioDataInitForDtv();
207 int AudioDataInit(int sr, bool enableNoiseGate);
208 int AudioDataUnInit();
209 int AudioChangeSampleRate(int sr);
210 int AudioSetAudioInSource(int audio_src_in_type);
211 int AudioSetAudioSourceType(int source_type);
212 int AudioSSMRestoreDefaultSetting();
213 int AudioRegisterInterface();
214 int AudioGetSessionId();
215 int AudioNewAudioEffects(void);
216 void AudioFreeAudioEffects(void);
217 int SetAudioDumpDataFlag(int tmp_flag);
218 int GetAudioDumpDataFlag();
219 int SetAudioLeftRightMode(unsigned int mode);
220 unsigned int GetAudioLeftRightMode();
221 int AudioSetMicroPhoneSwitch(int switch_val);
222 void AudioSetNoiseGateThreshold(int thresh);
223 int AudioSetRecordDataZero(bool flag);
224 int SwitchAVOutBypass (int);
225 int SetAudioSwitchIO(int value);
226 int SetOutput_Swap(int value);
227
228private:
229 void RealHandleVolumeDigitLUTBuf(int lut_buf_type, int lut_sel_flag,
230 int vol_buf[], int add_srs_gain_flag, int add_eq_gain_flag);
231 int handleAudioSPDIFMute(int muteStatus);
232 int LoadCurAudioSPDIFMode();
233 int LoadCurAudioMasterVolume();
234 int LoadCurAudioBalance();
235 int LoadCurAudioSupperBassVolume();
236 int LoadCurAudioSupperBassSwitch();
237 int LoadCurAudioSrsSurround();
238 int LoadCurAudioSrsDialogClarity();
239 void RealSetSRS();
240 int LoadCurAudioSPDIFSwitch();
241 void HanldeSupperBassSRSSpeakerSize();
242 int LoadCurAudioSoundMode();
243 int LoadCurAudioEQMode();
244 int LoadCurAudioSrsTruBass();
245 int SetDacGain();
246 int RealSaveCurAudioBassVolume(int, int);
247 int LoadCurAudioBassVolume();
248 int RealSaveCurAudioTrebleVolume(int, int);
249 int LoadCurAudioTrebleVolume();
250 int HandleTrebleBassVolume();
251 int LoadCurAudioWallEffect();
252 int RealReadCurAudioEQGain(int *);
253 int RealSaveCurAudioEQGain(int *, int);
254 int LoadCurAudioEQGain();
255 int MappingEQGain(int *, int *, int);
256 int RestoreToAudioDefEQGain(int *);
257 int CheckAudioEQGain(int *, int);
258 int GetCustomEQGain(int *);
259 int SetCustomEQGain();
260 int AudioSetEQGain(int *);
261 int handleEQGainBeforeSet(int *, int *);
262 int RealSetEQGain(int *);
263 int SetSpecialModeEQGain(int);
264 int SetSpecialIndexEQGain(int, int);
265 int SaveSpecialIndexEQGain(int, int);
266 void LoadAudioCtl();
267 void InitSetAudioCtl();
268 int GetAudioFirstInitSetFlag();
269 int HanldeAudioInputSr(unsigned int);
270 int waitServiceManager();
271 void *AudioCtlInitSetMain(void *);
272 void AudioCtlInitializeSet();
273 int GetEQMinGainVal();
274 int GetEQMaxGainVal();
275 int GetEQUIMinGainVal();
276 int GetEQUIMaxGainVal();
277 int GetBassUIMinGainVal();
278 int GetBassUIMaxGainVal();
279 int GetTrebleUIMinGainVal();
280 int GetTrebleUIMaxGainVal();
281 int MappingLine(int, int, int, int, int);
282 int MappingTrebleBassAndEqualizer(int, int, int, int);
283 void HandleSupperBassSwicth();
284 int InitSetTvAudioCard();
285 int UnInitSetTvAudioCard();
286 int SetSPDIFMode(int mode_val);
287
288
289 CAudioAlsa mAudioAlsa;
290 CAudioEffect mAudioEffect;
291 int mAudioMuteStatusForSystem;
292 int mAudioMuteStatusForTv;
293
294 int mCurAudioMasterVolume;
295 int mCurAudioBalance;
296 int mCurAudioSupperBassVolume;
297 int mCurAudioSupperBassSwitch;
298 int mCurAudioSRSSurround;
299 int mCurAudioSrsDialogClarity;
300 int mCurAudioSrsTruBass;
301 int mCurAudioSPDIFSwitch;
302 int mCurAudioSPDIFMode;
303 int mCurAudioBassVolume;
304 int mCurAudioTrebleVolume;
305 int mCurAudioSoundMode;
306 int mCurAudioWallEffect;
307 int mCurAudioEQMode;
308 int mCustomAudioMasterVolume;
309 int mCustomAudioBalance;
310 int mCustomAudioSupperBassVolume;
311 int mCustomAudioSupperBassSwitch;
312 int mCustomAudioSRSSurround;
313 int mCustomAudioSrsDialogClarity;
314 int mCustomAudioSrsTruBass;
315 int mCustomAudioBassVolume;
316 int mCustomAudioTrebleVolume;
317 int mCustomAudioSoundMode;
318 int mCustomAudioWallEffect;
319 int mCustomAudioEQMode;
320 int mCustomAudioSoundEnhancementSwitch;
321 volatile int mVolumeCompensationVal;
322};
323#endif //__TV_AUDIO_API_H__
324