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