summaryrefslogtreecommitdiff
path: root/tvapi/libtv/audio/audio_alsa.h (plain)
blob: af22cb7495958c206442261a7b1314ecd1c8fb29
1#ifndef __TV_AUDIO_ALSA_H__
2#define __TV_AUDIO_ALSA_H__
3
4enum CC_AUD_I2S_MUTE {
5 CC_I2S_MUTE_OFF,
6 CC_I2S_MUTE_ON,
7};
8
9enum CC_AUDIO_MUTE_STATUS {
10 CC_MUTE_ON,
11 CC_MUTE_OFF,
12};
13enum CC_AUD_SPDIF_MUTE {
14 CC_SPDIF_MUTE_OFF,
15 CC_SPDIF_MUTE_ON,
16};
17
18enum CC_AUD_IN_TYPE {
19 CC_AUDIO_IN_SOURCE_LINEIN,
20 CC_AUDIO_IN_SOURCE_ATV,
21 CC_AUDIO_IN_SOURCE_HDMI,
22};
23
24
25#define CC_MIN_DAC_VOLUME (0)
26#define CC_MAX_DAC_VOLUME (255)
27#define CC_MIN_DAC_SUB_WOOFER_VOLUME (0)
28#define CC_MAX_DAC_SUB_WOOFER_VOLUME (255)
29
30#define CC_MIN_SOUND_BALANCE_VAL (0)
31#define CC_MAX_SOUND_BALANCE_VAL (100)
32#define CC_DEF_SOUND_BALANCE_VAL (50)
33
34#define CC_DAC_MUTE_TYPE_EXTERNAL (1)
35#define CC_DAC_MUTE_TYPE_INTERNAL (2)
36
37#define CC_VOL_TRANS_LUT_BUF_SIZE (101)
38
39static const int CC_AUDIO_MUTE = 1;
40static const int CC_AUDIO_UNMUTE = 0;
41
42enum CC_AUDIO_SOURCE_TYPE {
43 AUDIO_HDMI_SOURCE,
44 AUDIO_ATV_SOURCE,
45 AUDIO_AV_SOURCE,
46 AUDIO_MPEG_SOURCE,
47 AUDIO_MAX_SOURCE
48};
49
50
51//use tinyalsa,is a like alsa-lib for android
52class CAudioAlsa {
53public:
54 CAudioAlsa();
55 ~CAudioAlsa();
56 int SetAudioInSource(int source_type);
57 int GetAudioInSource(void);
58 int SetAudioInternalDacPGAInGain(int gain_l_val, int gain_r_val);
59 int GetAudioInternalDacPGAInGain(int *gain_l_val, int *gain_r_val);
60 int SetAudioInternalDacADCDigitalCaptureVolume(int vol_l_val, int vol_r_val);
61 int GetAudioInternalDacADCDigitalCaptureVolume(int *vol_l_val, int *vol_r_val);
62 int SetAudioInternalDacDACDigitalPlayBackVolume(int vol_l_val, int vol_r_val);
63 int GetAudioInternalDacDACDigitalPlayBackVolume(int *vol_l_val, int *vol_r_val);
64 int SetInternalDacLineInSelectChannel(int line_in_number);
65 int SetInternalDacLineInCaptureVolume(int l_vol, int r_vol);
66 int GetInternalDacLineInCaptureVolume(int vol_buf[]);
67 int SetInternalDacLineOutPlayBackVolume(int l_vol, int r_vol);
68 int GetInternalDacLineOutPlayBackVolume(int vol_buf[]);
69 int SetExternalDacChannelSwitch(int chan_ind, int switch_val);
70 int SetExternalDacChannelVolume(int chan_ind, int main_vol);
71 int SetExternalDacEQMode(int mode_val);
72 int SetI2SMute(int mute_status);
73 int SetSPDIFMute(int mute_status);
74 int SetHardwareResample(int sr);
75 int SetAudioSwitchIO(int value);
76 int SetAudioPcmPlaybackVolume(int val);
77 int SetAudioPcmPlaybackSwitch(int vol);
78
79 int SetOutput_Swap(int value);
80
81
82 int SetMixerBypassSwitch(int switch_val);
83 int GetMixerBypassSwitch(void);
84 int SetMixerDacSwitch(int switch_val);
85 int GetMixerDacSwitch(void);
86 //dac
87 void SetMainVolDigitLutBuf(int digit_lut_buf[]);
88 int *GetMainVolDigitLutBuf();
89 void SetSupperBassVolDigitLutBuf(int digit_lut_buf[]);
90 int SetMainVolumeGain(int gain_val);
91 int GetMainVolumeGain();
92 int SetSupperBassVolumeGain(int gain_val);
93 int GetSupperBassVolumeGain();
94 int SetInternalDacMute(int);
95 int setAudioPcmPlaybackMute(int);
96 //end dac
97 int TransVolumeBarVolToDigitalVol(int *, int);
98 int TransDigitalVolToVolumeBarVol(int *, int, int, int, int, int);
99 int CalculateBalanceVol(int, int, int *);
100 int SetExternalDacMainVolume(int);
101 int SetInternalDacMainVolume(int);
102 int SetDigitalVolume(int, int);
103 int SetDigitalMainVolume(int, int);
104 int SetDigitalMute(int);
105private:
106 int get_aml_card();
107 int AudioControlSetValue(int val_count, int data_buf[], char *match_names);
108 int AudioControlGetValue(int val_count, int ret_buf[], char *match_names);
109 int get_USB_Audio_card();
110 int HandleUSBAudioControlValue(int val_count, int data_buf[], int match_count, char **match_names);
111 int CheckVolume(int digit_vol, int digit_min, int digit_max, int hd_min, int hd_max);
112 int GetTwoChannelVolume(int vol_buf[], int l_min_vol, int l_max_vol, int r_min_vol, int r_max_vol, char *match_names, int hd_min, int hd_max);
113 int GetLineInMaxVol();
114 int GetLineOutMaxVol();
115 char *GetAlsaControlName(int get_type);
116 //
117 //
118 //mem
119 struct mixer *mpMixer;
120 struct mixer *mpUsbMixer;
121 int mMainVolumeBalanceVal;
122 int mMainVolumeGainVal;
123 int mSupperBassVolumeGainVal;
124 int mMainDigitLutBuf[CC_VOL_TRANS_LUT_BUF_SIZE];
125 int mSupperBassDigitLutBuf[CC_VOL_TRANS_LUT_BUF_SIZE];
126};
127#endif //__TV_AUDIO_ALSA_H__
128