summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--tv_callback.h7
-rw-r--r--tv_input.cpp96
-rw-r--r--tvapi/android/include/ITv.h34
-rw-r--r--tvapi/android/include/ITvClient.h12
-rw-r--r--tvapi/android/include/ITvService.h18
-rw-r--r--tvapi/android/include/TvClient.h5
-rw-r--r--tvapi/android/include/tvcmd.h1180
-rw-r--r--tvapi/android/jni/cfbc_jni.cpp214
-rw-r--r--tvapi/android/jni/cfbc_test.cpp64
-rw-r--r--tvapi/android/jni/com_droidlogic_app_tv_TvControlManager.cpp666
-rw-r--r--tvapi/android/libtvbinder/ITv.cpp246
-rw-r--r--tvapi/android/libtvbinder/ITvClient.cpp78
-rw-r--r--tvapi/android/libtvbinder/ITvService.cpp56
-rw-r--r--tvapi/android/libtvbinder/TvClient.cpp54
-rw-r--r--tvapi/android/tv/TvPlay.cpp36
-rw-r--r--tvapi/android/tv/TvPlay.h2
-rw-r--r--tvapi/android/tvserver/TvService.cpp8700
-rw-r--r--tvapi/android/tvserver/TvService.h107
-rw-r--r--tvapi/android/tvserver/main.cpp12
-rw-r--r--tvapi/android/tvserver/tv_callback.h25
-rw-r--r--tvapi/libtv/audio/CAudioCustomerCtrl.cpp170
-rw-r--r--tvapi/libtv/audio/CAudioCustomerCtrl.h32
-rw-r--r--tvapi/libtv/audio/CTvAudio.h52
-rw-r--r--tvapi/libtv/audio/audio_alsa.cpp1004
-rw-r--r--tvapi/libtv/audio/audio_alsa.h164
-rw-r--r--tvapi/libtv/audio/audio_effect.cpp82
-rw-r--r--tvapi/libtv/audio/audio_effect.h34
-rw-r--r--tvapi/libtv/include/amstream.h142
-rw-r--r--tvapi/libtv/include/cm.h188
-rw-r--r--tvapi/libtv/include/hdmirx_cec.h492
-rw-r--r--tvapi/libtv/include/ve.h342
-rw-r--r--tvapi/libtv/tv/AutoBackLight.cpp280
-rw-r--r--tvapi/libtv/tv/AutoBackLight.h44
-rw-r--r--tvapi/libtv/tv/CAutoPQparam.cpp172
-rw-r--r--tvapi/libtv/tv/CAutoPQparam.h26
-rw-r--r--tvapi/libtv/tv/CAv.cpp612
-rw-r--r--tvapi/libtv/tv/CAv.h188
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.cpp2670
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.h716
-rw-r--r--tvapi/libtv/tv/CFrontEnd.cpp964
-rw-r--r--tvapi/libtv/tv/CFrontEnd.h236
-rw-r--r--tvapi/libtv/tv/CTv.cpp2174
-rw-r--r--tvapi/libtv/tv/CTv.h1470
-rw-r--r--tvapi/libtv/tv/CTvBooking.cpp170
-rw-r--r--tvapi/libtv/tv/CTvBooking.h94
-rw-r--r--tvapi/libtv/tv/CTvDmx.cpp8
-rw-r--r--tvapi/libtv/tv/CTvDmx.h12
-rw-r--r--tvapi/libtv/tv/CTvEpg.cpp258
-rw-r--r--tvapi/libtv/tv/CTvEpg.h276
-rw-r--r--tvapi/libtv/tv/CTvEv.cpp2
-rw-r--r--tvapi/libtv/tv/CTvEv.h322
-rw-r--r--tvapi/libtv/tv/CTvRecord.cpp368
-rw-r--r--tvapi/libtv/tv/CTvRecord.h70
-rw-r--r--tvapi/libtv/tv/CTvScanner.cpp1934
-rw-r--r--tvapi/libtv/tv/CTvScanner.h418
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.cpp1228
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.h142
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.cpp708
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.h430
-rw-r--r--tvapi/libtv/tv/CTvTime.h134
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.cpp250
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.h40
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.cpp974
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.h104
-rw-r--r--tvapi/libtv/tv/ScreenCatch.cpp638
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.cpp558
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.h76
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.cpp28
-rw-r--r--tvapi/libtv/tvdb/CTvChannel.cpp408
-rw-r--r--tvapi/libtv/tvdb/CTvChannel.h478
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.cpp302
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.h112
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.cpp714
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.h134
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.cpp322
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.h112
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.cpp4
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.h14
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.cpp1322
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.h988
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.cpp228
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.h30
-rw-r--r--tvapi/libtv/tvin/CHDMIRxCEC.cpp830
-rw-r--r--tvapi/libtv/tvin/CSourceConnectDetect.cpp438
-rw-r--r--tvapi/libtv/tvin/CSourceConnectDetect.h76
-rw-r--r--tvapi/libtv/tvin/CTvin.cpp4452
-rw-r--r--tvapi/libtv/tvin/CTvin.h2116
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.cpp6
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.h72
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp12
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.h48
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.cpp66
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.h20
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.cpp146
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.h40
-rw-r--r--tvapi/libtv/tvsetting/CTvSetting.cpp2168
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp38
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.h8
-rw-r--r--tvapi/libtv/tvsetting/TvKeyData.cpp1792
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.cpp958
-rw-r--r--tvapi/libtv/tvutils/CCondition.h84
-rw-r--r--tvapi/libtv/tvutils/CFile.cpp261
-rw-r--r--tvapi/libtv/tvutils/CFile.h50
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.cpp6
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.h6
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.cpp146
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.h40
-rw-r--r--tvapi/libtv/tvutils/CMutex.h112
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.cpp118
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.h60
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.cpp568
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.h42
-rw-r--r--tvapi/libtv/tvutils/CSqlite.cpp126
-rw-r--r--tvapi/libtv/tvutils/CSqlite.h288
-rw-r--r--tvapi/libtv/tvutils/CThread.cpp212
-rw-r--r--tvapi/libtv/tvutils/CThread.h76
-rw-r--r--tvapi/libtv/tvutils/CTvInput.cpp204
-rw-r--r--tvapi/libtv/tvutils/CTvInput.h46
-rw-r--r--tvapi/libtv/tvutils/serial_base.cpp560
-rw-r--r--tvapi/libtv/tvutils/serial_operate.cpp336
-rw-r--r--tvapi/libtv/tvutils/serial_operate.h42
-rw-r--r--tvapi/libtv/tvutils/tvutils.cpp2813
-rw-r--r--tvapi/libtv/tvutils/tvutils.h44
-rw-r--r--tvapi/libtv/tvutils/zepoll.cpp66
-rw-r--r--tvapi/libtv/tvutils/zepoll.h54
-rw-r--r--tvapi/libtv/version/version.cpp50
-rw-r--r--tvapi/libtv/vpp/CPQdb.cpp618
-rw-r--r--tvapi/libtv/vpp/CPQdb.h232
-rw-r--r--tvapi/libtv/vpp/CVpp.cpp724
-rw-r--r--tvapi/libtv/vpp/CVpp.h676
-rw-r--r--tvapi/libtv/vpp/pqdata.cpp216
-rw-r--r--tvapi/tvtests/comm_test.cpp42
-rw-r--r--tvapi/tvtests/ssm_test.cpp320
-rw-r--r--tvapi/tvtests/tvconfig_test.cpp560
134 files changed, 31073 insertions, 30287 deletions
diff --git a/tvapi/libtv/audio/audio_alsa.cpp b/tvapi/libtv/audio/audio_alsa.cpp
index 1a65ef9..8e8bb78 100644
--- a/tvapi/libtv/audio/audio_alsa.cpp
+++ b/tvapi/libtv/audio/audio_alsa.cpp
@@ -20,249 +20,249 @@
#include "audio_amaudio.h"
static const int DEFAULT_MAIN_DIGIT_LUT[] = {
- //
- 0, 40, 50, 60, 70, 87, 110, 120, 130, 140, // 0~9
- 150, 152, 155, 158, 161, 164, 167, 170, 173, 174, // 10~19
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, // 20~29
- 191, 191, 192, 193, 194, 195, 196, 196, 197, 197, // 30~39
- 198, 198, 198, 199, 199, 200, 200, 201, 201, 201, // 40~49
- 202, 202, 202, 203, 203, 203, 203, 204, 204, 204, // 50~59
- 205, 205, 205, 205, 206, 206, 206, 206, 206, 207, // 60~69
- 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, // 70~79
- 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, // 80~89
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, // 90~99
- 209, // 100
+ //
+ 0, 40, 50, 60, 70, 87, 110, 120, 130, 140, // 0~9
+ 150, 152, 155, 158, 161, 164, 167, 170, 173, 174, // 10~19
+ 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, // 20~29
+ 191, 191, 192, 193, 194, 195, 196, 196, 197, 197, // 30~39
+ 198, 198, 198, 199, 199, 200, 200, 201, 201, 201, // 40~49
+ 202, 202, 202, 203, 203, 203, 203, 204, 204, 204, // 50~59
+ 205, 205, 205, 205, 206, 206, 206, 206, 206, 207, // 60~69
+ 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, // 70~79
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, // 80~89
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, // 90~99
+ 209, // 100
};
static const int DEFAULT_SUPPER_BASS_DIGIT_LUT_BUF[] = {
- //
- 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, // 0~9
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, // 10~19
- 141, 142, 143, 144, 145, 147, 147, 148, 148, 149, // 20~29
- 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, // 30~39
- 154, 155, 155, 156, 156, 157, 157, 158, 158, 159, // 40~49
- 160, 160, 160, 160, 161, 161, 161, 161, 162, 162, // 50~59
- 162, 163, 163, 163, 163, 164, 164, 164, 165, 165, // 60~69
- 165, 165, 166, 166, 166, 167, 168, 169, 170, 171, // 70~79
- 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, // 80~89
- 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, // 90~99
- 197 // 100
+ //
+ 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, // 0~9
+ 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, // 10~19
+ 141, 142, 143, 144, 145, 147, 147, 148, 148, 149, // 20~29
+ 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, // 30~39
+ 154, 155, 155, 156, 156, 157, 157, 158, 158, 159, // 40~49
+ 160, 160, 160, 160, 161, 161, 161, 161, 162, 162, // 50~59
+ 162, 163, 163, 163, 163, 164, 164, 164, 165, 165, // 60~69
+ 165, 165, 166, 166, 166, 167, 168, 169, 170, 171, // 70~79
+ 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, // 80~89
+ 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, // 90~99
+ 197 // 100
};
CAudioAlsa::CAudioAlsa()
{
- int card_id;
- card_id = get_aml_card();
- LOGD("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id);
- mpMixer = mixer_open(card_id);
+ int card_id;
+ card_id = get_aml_card();
+ LOGD("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id);
+ mpMixer = mixer_open(card_id);
- card_id = get_USB_Audio_card();
- LOGD("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id);
- mpUsbMixer = mixer_open(card_id);
- mMainVolumeGainVal = 0;
- mSupperBassVolumeGainVal = 0;
- ArrayCopy(mMainDigitLutBuf, DEFAULT_MAIN_DIGIT_LUT, CC_VOL_TRANS_LUT_BUF_SIZE);
- ArrayCopy(mSupperBassDigitLutBuf, DEFAULT_SUPPER_BASS_DIGIT_LUT_BUF, CC_VOL_TRANS_LUT_BUF_SIZE);
+ card_id = get_USB_Audio_card();
+ LOGD("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id);
+ mpUsbMixer = mixer_open(card_id);
+ mMainVolumeGainVal = 0;
+ mSupperBassVolumeGainVal = 0;
+ ArrayCopy(mMainDigitLutBuf, DEFAULT_MAIN_DIGIT_LUT, CC_VOL_TRANS_LUT_BUF_SIZE);
+ ArrayCopy(mSupperBassDigitLutBuf, DEFAULT_SUPPER_BASS_DIGIT_LUT_BUF, CC_VOL_TRANS_LUT_BUF_SIZE);
}
CAudioAlsa::~CAudioAlsa()
{
- if (NULL != mpMixer) {
- mixer_close(mpMixer);
- }
+ if (NULL != mpMixer) {
+ mixer_close(mpMixer);
+ }
- if (NULL != mpUsbMixer) {
- mixer_close(mpUsbMixer);
- }
+ if (NULL != mpUsbMixer) {
+ mixer_close(mpUsbMixer);
+ }
}
int CAudioAlsa::get_aml_card()
{
- int card = -1, err = 0;
- int fd = -1;
- char read_buf[512], *pd = NULL;
- static const char *const SOUND_CARDS_PATH = "/proc/asound/cards";
- fd = open(SOUND_CARDS_PATH, O_RDONLY);
- if (fd < 0) {
- LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno);
- close(fd);
- return -EINVAL;
- }
- memset(read_buf, 0x0, 512);
- err = read(fd, read_buf, 512);
- if (fd < 0) {
- LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno);
- close(fd);
- return -EINVAL;
- }
- pd = strstr(read_buf, "AML");
- card = *(pd - 3) - '0';
- close(fd);
- return card;
+ int card = -1, err = 0;
+ int fd = -1;
+ char read_buf[512], *pd = NULL;
+ static const char *const SOUND_CARDS_PATH = "/proc/asound/cards";
+ fd = open(SOUND_CARDS_PATH, O_RDONLY);
+ if (fd < 0) {
+ LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno);
+ close(fd);
+ return -EINVAL;
+ }
+ memset(read_buf, 0x0, 512);
+ err = read(fd, read_buf, 512);
+ if (fd < 0) {
+ LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno);
+ close(fd);
+ return -EINVAL;
+ }
+ pd = strstr(read_buf, "AML");
+ card = *(pd - 3) - '0';
+ close(fd);
+ return card;
}
int CAudioAlsa::AudioControlSetValue(int val_count, int data_buf[], char *match_names)
{
- struct mixer_ctl *pctl;
- unsigned int expected_val_count;
- unsigned int value_index;
-
- if (NULL == mpMixer) {
- LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__);
- goto err_exit;
- }
-
- pctl = mixer_get_ctl_by_name(mpMixer, match_names);
- if (NULL == pctl) {
- LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names);
- goto err_exit;
- }
- expected_val_count = mixer_ctl_get_num_values(pctl);
- if (expected_val_count != (unsigned int)val_count) {
- LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__);
- goto err_exit;
- }
- for (value_index = 0; value_index < expected_val_count; value_index++) {
- if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) {
- LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index);
- goto err_exit;
- }
- }
- return 0;
+ struct mixer_ctl *pctl;
+ unsigned int expected_val_count;
+ unsigned int value_index;
+
+ if (NULL == mpMixer) {
+ LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__);
+ goto err_exit;
+ }
+
+ pctl = mixer_get_ctl_by_name(mpMixer, match_names);
+ if (NULL == pctl) {
+ LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names);
+ goto err_exit;
+ }
+ expected_val_count = mixer_ctl_get_num_values(pctl);
+ if (expected_val_count != (unsigned int)val_count) {
+ LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__);
+ goto err_exit;
+ }
+ for (value_index = 0; value_index < expected_val_count; value_index++) {
+ if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) {
+ LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index);
+ goto err_exit;
+ }
+ }
+ return 0;
err_exit:
- return -1;
+ return -1;
}
int CAudioAlsa::AudioControlGetValue(int val_count, int ret_buf[], char *match_names)
{
- struct mixer_ctl *pctl;
- unsigned int expected_val_count;
- unsigned int value_index;
-
- if (NULL == mpMixer) {
- LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__);
- goto err_exit;
- }
- pctl = mixer_get_ctl_by_name(mpMixer, match_names);
- if (NULL == pctl) {
- LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names);
- goto err_exit;
- }
- expected_val_count = mixer_ctl_get_num_values(pctl);
- if (expected_val_count != (unsigned int)val_count) {
- LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__);
- goto err_exit;
- }
- for (value_index = 0; value_index < expected_val_count; value_index++) {
- ret_buf[value_index] = mixer_ctl_get_value(pctl, value_index);
- }
- return 0;
+ struct mixer_ctl *pctl;
+ unsigned int expected_val_count;
+ unsigned int value_index;
+
+ if (NULL == mpMixer) {
+ LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__);
+ goto err_exit;
+ }
+ pctl = mixer_get_ctl_by_name(mpMixer, match_names);
+ if (NULL == pctl) {
+ LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names);
+ goto err_exit;
+ }
+ expected_val_count = mixer_ctl_get_num_values(pctl);
+ if (expected_val_count != (unsigned int)val_count) {
+ LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__);
+ goto err_exit;
+ }
+ for (value_index = 0; value_index < expected_val_count; value_index++) {
+ ret_buf[value_index] = mixer_ctl_get_value(pctl, value_index);
+ }
+ return 0;
err_exit:
- return -1;
+ return -1;
}
int CAudioAlsa::get_USB_Audio_card()
{
- int card = -1, err = 0;
- int fd = -1;
- char read_buf[512], *pd = NULL;
- static const char *const SOUND_CARDS_PATH = "/proc/asound/cards";
- fd = open(SOUND_CARDS_PATH, O_RDONLY);
- if (fd < 0) {
- LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno);
- close(fd);
- return -EINVAL;
- }
- memset(read_buf, 0x0, 512);
- err = read(fd, read_buf, 512);
- if (fd < 0) {
- LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno);
- close(fd);
- return -EINVAL;
- }
- pd = strstr(read_buf, "Receiver");
- if (pd == NULL) {
- LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno);
- close(fd);
- return -EINVAL;
- }
-
- card = *(pd - 3) - '0';
- close(fd);
- return card;
+ int card = -1, err = 0;
+ int fd = -1;
+ char read_buf[512], *pd = NULL;
+ static const char *const SOUND_CARDS_PATH = "/proc/asound/cards";
+ fd = open(SOUND_CARDS_PATH, O_RDONLY);
+ if (fd < 0) {
+ LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno);
+ close(fd);
+ return -EINVAL;
+ }
+ memset(read_buf, 0x0, 512);
+ err = read(fd, read_buf, 512);
+ if (fd < 0) {
+ LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno);
+ close(fd);
+ return -EINVAL;
+ }
+ pd = strstr(read_buf, "Receiver");
+ if (pd == NULL) {
+ LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno);
+ close(fd);
+ return -EINVAL;
+ }
+
+ card = *(pd - 3) - '0';
+ close(fd);
+ return card;
}
int CAudioAlsa::HandleUSBAudioControlValue(int val_count, int data_buf[], int match_count, char **match_names)
{
- struct mixer_ctl *pctl;
- unsigned int expected_val_count;
- unsigned int match_index;
- unsigned int value_index;
- char card_id_str[9] = {0};
-
- if (NULL == mpUsbMixer) {
- LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__);
- goto err_exit;
- }
-
- for (match_index = 0; match_index < match_count; match_index++) {
- pctl = mixer_get_ctl_by_name(mpUsbMixer, match_names[match_index]);
- if (NULL == pctl) {
- LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names[match_index]);
- goto err_exit;
- }
- expected_val_count = mixer_ctl_get_num_values(pctl);
- if (expected_val_count != (unsigned int)val_count) {
- LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__);
- goto err_exit;
- }
- for (value_index = 0; value_index < expected_val_count; value_index++) {
- if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) {
- LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index);
- goto err_exit;
- }
- }
- }
-
- return 0;
+ struct mixer_ctl *pctl;
+ unsigned int expected_val_count;
+ unsigned int match_index;
+ unsigned int value_index;
+ char card_id_str[9] = {0};
+
+ if (NULL == mpUsbMixer) {
+ LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__);
+ goto err_exit;
+ }
+
+ for (match_index = 0; match_index < match_count; match_index++) {
+ pctl = mixer_get_ctl_by_name(mpUsbMixer, match_names[match_index]);
+ if (NULL == pctl) {
+ LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names[match_index]);
+ goto err_exit;
+ }
+ expected_val_count = mixer_ctl_get_num_values(pctl);
+ if (expected_val_count != (unsigned int)val_count) {
+ LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__);
+ goto err_exit;
+ }
+ for (value_index = 0; value_index < expected_val_count; value_index++) {
+ if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) {
+ LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index);
+ goto err_exit;
+ }
+ }
+ }
+
+ return 0;
err_exit:
- return -1;
+ return -1;
}
int CAudioAlsa::CheckVolume(int digit_vol, int digit_min, int digit_max, int hd_min,
- int hd_max)
+ int hd_max)
{
- int tmp_val = digit_vol;
+ int tmp_val = digit_vol;
- if (digit_vol < hd_min) {
- return hd_min;
- } else if (digit_vol > hd_max) {
- return hd_max;
- }
+ if (digit_vol < hd_min) {
+ return hd_min;
+ } else if (digit_vol > hd_max) {
+ return hd_max;
+ }
- return digit_vol;
+ return digit_vol;
}
int CAudioAlsa::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)
+ int r_min_vol, int r_max_vol, char *match_names, int hd_min,
+ int hd_max)
{
- vol_buf[0] = 0;
- vol_buf[1] = 0;
- return AudioControlGetValue(2, vol_buf, match_names);
+ vol_buf[0] = 0;
+ vol_buf[1] = 0;
+ return AudioControlGetValue(2, vol_buf, match_names);
}
int CAudioAlsa::GetLineInMaxVol()
{
- return 127;
+ return 127;
}
int CAudioAlsa::GetLineOutMaxVol()
{
- return 255;
+ return 255;
}
#define CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME (0)
@@ -290,530 +290,530 @@ int CAudioAlsa::GetLineOutMaxVol()
#define CC_GET_ALSA_CTL_AUDIO_IN_SWITCH (22)
static char gG9AlsaNames[32][48] = {
- {"Audio In Source"},//0
- {"PGA IN Gain"},//1
- {"ADC Digital Capture Volume"},//2
- {"DAC Digital Playback Volume"},//3
- {"Linein right switch"},//4
- {"Linein left switch"},
- {"ADC Digital Capture Volume"},
- {"DAC Digital Playback Volume"},
- {"Audio i2s mute"},//8
- {"Audio spdif mute"},
- {"Hardware resample enable"},//10
- {"AMP Master Volume"},
- {"AMP Ch1 Volume"},//12
- {"AMP Ch2 Volume"},
- {"AMP Ch3 Volume"},
- {"AMP Ch1 Switch"},
- {"AMP Ch2 Switch"},
- {"AMP Ch3 Switch"},//17
- {"AMP EQ Mode"},
- {"PCM Playback Volume"},
- {"PCM Playback Switch"},
- {"Output Swap"},
- {"AudioIn Switch"},//22
+ {"Audio In Source"},//0
+ {"PGA IN Gain"},//1
+ {"ADC Digital Capture Volume"},//2
+ {"DAC Digital Playback Volume"},//3
+ {"Linein right switch"},//4
+ {"Linein left switch"},
+ {"ADC Digital Capture Volume"},
+ {"DAC Digital Playback Volume"},
+ {"Audio i2s mute"},//8
+ {"Audio spdif mute"},
+ {"Hardware resample enable"},//10
+ {"AMP Master Volume"},
+ {"AMP Ch1 Volume"},//12
+ {"AMP Ch2 Volume"},
+ {"AMP Ch3 Volume"},
+ {"AMP Ch1 Switch"},
+ {"AMP Ch2 Switch"},
+ {"AMP Ch3 Switch"},//17
+ {"AMP EQ Mode"},
+ {"PCM Playback Volume"},
+ {"PCM Playback Switch"},
+ {"Output Swap"},
+ {"AudioIn Switch"},//22
};
char *CAudioAlsa::GetAlsaControlName(int get_type)
{
- return gG9AlsaNames[get_type];
+ return gG9AlsaNames[get_type];
}
int CAudioAlsa::SetAudioInSource(int source_type)
{
- int set_val = 0;
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME);
- set_val = source_type;
- return AudioControlSetValue(1, &set_val, match_names);
+ int set_val = 0;
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME);
+ set_val = source_type;
+ return AudioControlSetValue(1, &set_val, match_names);
}
int CAudioAlsa::GetAudioInSource(void)
{
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME);
- int source_type = 0;
- AudioControlGetValue(1, &source_type, match_names);
- return source_type;
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME);
+ int source_type = 0;
+ AudioControlGetValue(1, &source_type, match_names);
+ return source_type;
}
int CAudioAlsa::SetAudioInternalDacPGAInGain(int gain_l_val, int gain_r_val)
{
- int GainBuf[2] = {0, 0};
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN);
+ int GainBuf[2] = {0, 0};
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN);
- GainBuf[0] = gain_l_val;
- GainBuf[1] = gain_r_val;
- if (gain_l_val < 0 || gain_l_val > 31) {
- GainBuf[0] = 16;
- }
- if (gain_r_val < 0 || gain_r_val > 31) {
- GainBuf[1] = 16;
- }
+ GainBuf[0] = gain_l_val;
+ GainBuf[1] = gain_r_val;
+ if (gain_l_val < 0 || gain_l_val > 31) {
+ GainBuf[0] = 16;
+ }
+ if (gain_r_val < 0 || gain_r_val > 31) {
+ GainBuf[1] = 16;
+ }
- return AudioControlSetValue(2, GainBuf, match_names);
+ return AudioControlSetValue(2, GainBuf, match_names);
}
int CAudioAlsa::GetAudioInternalDacPGAInGain(int *gain_l_val, int *gain_r_val)
{
- int GainBuf[2] = {0, 0};
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN);
+ int GainBuf[2] = {0, 0};
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN);
- AudioControlGetValue(2, GainBuf, match_names);
+ AudioControlGetValue(2, GainBuf, match_names);
- *gain_l_val = GainBuf[0];
- *gain_r_val = GainBuf[1];
+ *gain_l_val = GainBuf[0];
+ *gain_r_val = GainBuf[1];
- return 0;
+ return 0;
}
int CAudioAlsa::SetAudioInternalDacADCDigitalCaptureVolume(int vol_l_val, int vol_r_val)
{
- int VolumeBuf[2] = {0, 0};
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME);
+ int VolumeBuf[2] = {0, 0};
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME);
- VolumeBuf[0] = vol_l_val;
- VolumeBuf[1] = vol_r_val;
- if (vol_l_val < 0 || vol_l_val > 127) {
- VolumeBuf[0] = 82;
- }
- if (vol_r_val < 0 || vol_r_val > 127) {
- VolumeBuf[1] = 82;
- }
+ VolumeBuf[0] = vol_l_val;
+ VolumeBuf[1] = vol_r_val;
+ if (vol_l_val < 0 || vol_l_val > 127) {
+ VolumeBuf[0] = 82;
+ }
+ if (vol_r_val < 0 || vol_r_val > 127) {
+ VolumeBuf[1] = 82;
+ }
- return AudioControlSetValue(2, VolumeBuf, match_names);
+ return AudioControlSetValue(2, VolumeBuf, match_names);
}
int CAudioAlsa::GetAudioInternalDacADCDigitalCaptureVolume(int *vol_l_val, int *vol_r_val)
{
- int VolumeBuf[2] = {0, 0};
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME);
+ int VolumeBuf[2] = {0, 0};
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME);
- AudioControlGetValue(2, VolumeBuf, match_names);
+ AudioControlGetValue(2, VolumeBuf, match_names);
- *vol_l_val = VolumeBuf[0];
- *vol_r_val = VolumeBuf[1];
+ *vol_l_val = VolumeBuf[0];
+ *vol_r_val = VolumeBuf[1];
- return 0;
+ return 0;
}
int CAudioAlsa::SetAudioInternalDacDACDigitalPlayBackVolume(int vol_l_val, int vol_r_val)
{
- int VolumeBuf[2] = {0, 0};
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME);
+ int VolumeBuf[2] = {0, 0};
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME);
- VolumeBuf[0] = vol_l_val;
- VolumeBuf[1] = vol_r_val;
- if (vol_l_val < 0 || vol_l_val > 255) {
- VolumeBuf[0] = 255;
- }
- if (vol_r_val < 0 || vol_r_val > 255) {
- VolumeBuf[1] = 255;
- }
+ VolumeBuf[0] = vol_l_val;
+ VolumeBuf[1] = vol_r_val;
+ if (vol_l_val < 0 || vol_l_val > 255) {
+ VolumeBuf[0] = 255;
+ }
+ if (vol_r_val < 0 || vol_r_val > 255) {
+ VolumeBuf[1] = 255;
+ }
- return AudioControlSetValue(2, VolumeBuf, match_names);
+ return AudioControlSetValue(2, VolumeBuf, match_names);
}
int CAudioAlsa::GetAudioInternalDacDACDigitalPlayBackVolume(int *vol_l_val, int *vol_r_val)
{
- int VolumeBuf[2] = {0, 0};
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME);
+ int VolumeBuf[2] = {0, 0};
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME);
- AudioControlGetValue(2, VolumeBuf, match_names);
+ AudioControlGetValue(2, VolumeBuf, match_names);
- *vol_l_val = VolumeBuf[0];
- *vol_r_val = VolumeBuf[1];
+ *vol_l_val = VolumeBuf[0];
+ *vol_r_val = VolumeBuf[1];
- return 0;
+ return 0;
}
int CAudioAlsa::SetInternalDacLineInSelectChannel(int line_in_number)
{
- int tmp_ret = 0;
- char *match_names = NULL;
+ int tmp_ret = 0;
+ char *match_names = NULL;
- if (line_in_number < 0 || line_in_number > 7) {
- return -1;
- }
+ if (line_in_number < 0 || line_in_number > 7) {
+ return -1;
+ }
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LEFT_LINEIN_SEL_NAME);
- tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names);
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LEFT_LINEIN_SEL_NAME);
+ tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names);
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_RIGHT_LINEIN_SEL_NAME);
- tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names);
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_RIGHT_LINEIN_SEL_NAME);
+ tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names);
- return tmp_ret;
+ return tmp_ret;
}
int CAudioAlsa::SetInternalDacLineInCaptureVolume(int l_vol, int r_vol)
{
- int max_val = GetLineInMaxVol();
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME);
- int VolumeBuf[2];
+ int max_val = GetLineInMaxVol();
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME);
+ int VolumeBuf[2];
- VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val);
- VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val);
+ VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val);
+ VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val);
- return AudioControlSetValue(2, VolumeBuf, match_names);
+ return AudioControlSetValue(2, VolumeBuf, match_names);
}
int CAudioAlsa::GetInternalDacLineInCaptureVolume(int vol_buf[])
{
- int max_val = GetLineInMaxVol();
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME);
+ int max_val = GetLineInMaxVol();
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME);
- return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val);
+ return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val);
}
int CAudioAlsa::SetInternalDacLineOutPlayBackVolume(int l_vol, int r_vol)
{
- int max_val = GetLineOutMaxVol();
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME);
- int VolumeBuf[2];
+ int max_val = GetLineOutMaxVol();
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME);
+ int VolumeBuf[2];
- VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val);
- VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val);
+ VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val);
+ VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val);
- return AudioControlSetValue(2, VolumeBuf, match_names);
+ return AudioControlSetValue(2, VolumeBuf, match_names);
}
int CAudioAlsa::GetInternalDacLineOutPlayBackVolume(int vol_buf[])
{
- int max_val = GetLineOutMaxVol();
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME);
+ int max_val = GetLineOutMaxVol();
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME);
- return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val);
+ return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val);
}
int CAudioAlsa::SetAudioPcmPlaybackVolume(int vol)
{
- if (get_USB_Audio_card() == -EINVAL) return 0;
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_VOLUME);
- return HandleUSBAudioControlValue(1, &vol, 1, &match_names);
+ if (get_USB_Audio_card() == -EINVAL) return 0;
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_VOLUME);
+ return HandleUSBAudioControlValue(1, &vol, 1, &match_names);
}
int CAudioAlsa::SetAudioPcmPlaybackSwitch(int vol)
{
- if (get_USB_Audio_card() == -EINVAL) return 0;
- char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_SWITCH);
- return HandleUSBAudioControlValue(1, &vol, 1, &match_names);
+ if (get_USB_Audio_card() == -EINVAL) return 0;
+ char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_SWITCH);
+ return HandleUSBAudioControlValue(1, &vol, 1, &match_names);
}
int CAudioAlsa::SetExternalDacChannelSwitch(int chan_ind, int switch_val)
{
- char *match_names = NULL;
+ char *match_names = NULL;
- if (chan_ind == 1) {
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_SWITCH_NAME);
- } else if (chan_ind == 2) {
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_SWITCH_NAME);
- } else if (chan_ind == 3) {
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_SWITCH_NAME);
- } else {
- return -1;
- }
+ if (chan_ind == 1) {
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_SWITCH_NAME);
+ } else if (chan_ind == 2) {
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_SWITCH_NAME);
+ } else if (chan_ind == 3) {
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_SWITCH_NAME);
+ } else {
+ return -1;
+ }
- return AudioControlSetValue(1, &switch_val, match_names);
+ return AudioControlSetValue(1, &switch_val, match_names);
}
int CAudioAlsa::SetExternalDacChannelVolume(int chan_ind, int main_vol)
{
- int tmp_ret = 0;
- char *match_names = NULL;
+ int tmp_ret = 0;
+ char *match_names = NULL;
- if (chan_ind == 0) {
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_MASTER_VOLUME_NAME);
- } else if (chan_ind == 1) {
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_VOLUME_NAME);
- } else if (chan_ind == 2) {
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_VOLUME_NAME);
- } else if (chan_ind == 3) {
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_VOLUME_NAME);
- } else {
- return -1;
- }
+ if (chan_ind == 0) {
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_MASTER_VOLUME_NAME);
+ } else if (chan_ind == 1) {
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_VOLUME_NAME);
+ } else if (chan_ind == 2) {
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_VOLUME_NAME);
+ } else if (chan_ind == 3) {
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_VOLUME_NAME);
+ } else {
+ return -1;
+ }
- return AudioControlSetValue(1, &main_vol, match_names);
+ return AudioControlSetValue(1, &main_vol, match_names);
}
int CAudioAlsa::SetAudioSwitchIO(int value)
{
- char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_AUDIO_IN_SWITCH];
+ char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_AUDIO_IN_SWITCH];
- return AudioControlSetValue(1, &value, match_names);
+ return AudioControlSetValue(1, &value, match_names);
}
int CAudioAlsa::SetOutput_Swap(int value)
{
- char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_SETOUTPUT_SWAP];
+ char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_SETOUTPUT_SWAP];
- return AudioControlSetValue(1, &value, match_names);
+ return AudioControlSetValue(1, &value, match_names);
}
int CAudioAlsa::SetExternalDacEQMode(int mode_val)
{
- char *match_names = NULL;
+ char *match_names = NULL;
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_EQ_MODE_NAME);
- return AudioControlSetValue(1, &mode_val, match_names);
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_EQ_MODE_NAME);
+ return AudioControlSetValue(1, &mode_val, match_names);
}
int CAudioAlsa::SetI2SMute(int mute_status)
{
- char *match_names = NULL;
+ char *match_names = NULL;
- if (mute_status != CC_I2S_MUTE_ON && mute_status != CC_I2S_MUTE_OFF) {
- LOGE("%s, I2S mute value (%d) error!\n", __FUNCTION__, mute_status);
- return -1;
- }
+ if (mute_status != CC_I2S_MUTE_ON && mute_status != CC_I2S_MUTE_OFF) {
+ LOGE("%s, I2S mute value (%d) error!\n", __FUNCTION__, mute_status);
+ return -1;
+ }
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_I2S_MUTE_NAME);
- return AudioControlSetValue(1, &mute_status, match_names);
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_I2S_MUTE_NAME);
+ return AudioControlSetValue(1, &mute_status, match_names);
}
int CAudioAlsa::SetSPDIFMute(int mute_status)
{
- int set_val = 0;
- char *match_names = NULL;
+ int set_val = 0;
+ char *match_names = NULL;
- if (mute_status == CC_AUDIO_MUTE) {
- set_val = CC_SPDIF_MUTE_ON;
- } else if (mute_status == CC_AUDIO_UNMUTE) {
- set_val = CC_SPDIF_MUTE_OFF;
- } else {
- return -1;
- }
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_SPDIF_MUTE_NAME);
- return AudioControlSetValue(1, &mute_status, match_names);
+ if (mute_status == CC_AUDIO_MUTE) {
+ set_val = CC_SPDIF_MUTE_ON;
+ } else if (mute_status == CC_AUDIO_UNMUTE) {
+ set_val = CC_SPDIF_MUTE_OFF;
+ } else {
+ return -1;
+ }
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_SPDIF_MUTE_NAME);
+ return AudioControlSetValue(1, &mute_status, match_names);
}
#define CC_SAMPLE_BUF_SIZE (32)
enum CC_HW_RESAMPLE_TYPE {
- CC_HW_RESAMPLE_DISABLE,
- CC_HW_RESAMPLE_48K,
- CC_HW_RESAMPLE_44K,
- CC_HW_RESAMPLE_32K,
+ CC_HW_RESAMPLE_DISABLE,
+ CC_HW_RESAMPLE_48K,
+ CC_HW_RESAMPLE_44K,
+ CC_HW_RESAMPLE_32K,
};
int CAudioAlsa::SetHardwareResample(int sr)
{
- int i = 0, set_val = 0, tmp_val = 0;
- int diff_val = 0x7FFFFFFF, diff_ind = -1;
- char *match_names = NULL;
- int sample_buf[CC_SAMPLE_BUF_SIZE] = {48000, 44100, 32000, -1};
-
- if (sr < 0) {
- set_val = 0;
- } else {
- for (i = 0; i < CC_SAMPLE_BUF_SIZE; i++) {
- if (sample_buf[i] < 0) {
- break;
- }
-
- if (sample_buf[i] >= sr) {
- tmp_val = sample_buf[i] - sr;
- } else {
- tmp_val = sr - sample_buf[i];
- }
-
- if (tmp_val <= diff_val) {
- diff_val = tmp_val;
- diff_ind = i;
- }
- }
-
- if (diff_ind < 0) {
- set_val = 0;
- } else {
- set_val = diff_ind + 1;
- }
- }
-
- LOGD("%s, set_val = %d.\n", __FUNCTION__, set_val);
- match_names = GetAlsaControlName(CC_GET_ALSA_CTL_HW_RESAMPLE_NAME);
- return AudioControlSetValue(1, &set_val, match_names);
+ int i = 0, set_val = 0, tmp_val = 0;
+ int diff_val = 0x7FFFFFFF, diff_ind = -1;
+ char *match_names = NULL;
+ int sample_buf[CC_SAMPLE_BUF_SIZE] = {48000, 44100, 32000, -1};
+
+ if (sr < 0) {
+ set_val = 0;
+ } else {
+ for (i = 0; i < CC_SAMPLE_BUF_SIZE; i++) {
+ if (sample_buf[i] < 0) {
+ break;
+ }
+
+ if (sample_buf[i] >= sr) {
+ tmp_val = sample_buf[i] - sr;
+ } else {
+ tmp_val = sr - sample_buf[i];
+ }
+
+ if (tmp_val <= diff_val) {
+ diff_val = tmp_val;
+ diff_ind = i;
+ }
+ }
+
+ if (diff_ind < 0) {
+ set_val = 0;
+ } else {
+ set_val = diff_ind + 1;
+ }
+ }
+
+ LOGD("%s, set_val = %d.\n", __FUNCTION__, set_val);
+ match_names = GetAlsaControlName(CC_GET_ALSA_CTL_HW_RESAMPLE_NAME);
+ return AudioControlSetValue(1, &set_val, match_names);
}
int CAudioAlsa::SetMixerBypassSwitch(int switch_val)
{
- char match_names[48] = "Output Mixer Bypass Switch" ;
- int ctl_buf[2];
+ char match_names[48] = "Output Mixer Bypass Switch" ;
+ int ctl_buf[2];
- if (switch_val != 0 && switch_val != 1) {
- return -1;
- }
+ if (switch_val != 0 && switch_val != 1) {
+ return -1;
+ }
- ctl_buf[0] = switch_val;
- ctl_buf[1] = switch_val;
+ ctl_buf[0] = switch_val;
+ ctl_buf[1] = switch_val;
- return AudioControlSetValue(2, ctl_buf, match_names);
+ return AudioControlSetValue(2, ctl_buf, match_names);
}
int CAudioAlsa::GetMixerBypassSwitch(void)
{
- char match_names[48] = "Output Mixer Bypass Switch" ;
- int ctl_buf[2];
+ char match_names[48] = "Output Mixer Bypass Switch" ;
+ int ctl_buf[2];
- AudioControlSetValue(2, ctl_buf, match_names);
+ AudioControlSetValue(2, ctl_buf, match_names);
- return ctl_buf[0];
+ return ctl_buf[0];
}
int CAudioAlsa::SetMixerDacSwitch(int switch_val)
{
- char match_names[48] = "Output Mixer DAC Switch" ;
- int ctl_buf[2];
+ char match_names[48] = "Output Mixer DAC Switch" ;
+ int ctl_buf[2];
- if (switch_val != 0 && switch_val != 1) {
- return -1;
- }
+ if (switch_val != 0 && switch_val != 1) {
+ return -1;
+ }
- ctl_buf[0] = switch_val;
- ctl_buf[1] = switch_val;
+ ctl_buf[0] = switch_val;
+ ctl_buf[1] = switch_val;
- return AudioControlSetValue(2, ctl_buf, match_names);
+ return AudioControlSetValue(2, ctl_buf, match_names);
}
int CAudioAlsa::GetMixerDacSwitch(void)
{
- char *match_names = "Output Mixer DAC Switch" ;
- int ctl_buf[2];
+ char *match_names = "Output Mixer DAC Switch" ;
+ int ctl_buf[2];
- AudioControlGetValue(2, ctl_buf, match_names);
+ AudioControlGetValue(2, ctl_buf, match_names);
- return ctl_buf[0];
+ return ctl_buf[0];
}
int CAudioAlsa::TransVolumeBarVolToDigitalVol(int digit_lut_buf[], int digit_vol)
{
- return digit_lut_buf[digit_vol];
+ return digit_lut_buf[digit_vol];
}
int CAudioAlsa::TransDigitalVolToVolumeBarVol(int digit_lut_buf[], int hd_vol, int hd_min,
- int hd_max, int digit_min, int digit_max)
+ int hd_max, int digit_min, int digit_max)
{
- int i;
+ int i;
- for (i = 0; i < CC_VOL_TRANS_LUT_BUF_SIZE - 1; i++) {
- if (digit_lut_buf[i] >= hd_vol && digit_lut_buf[i + 1] < hd_vol)
- break;
- }
+ for (i = 0; i < CC_VOL_TRANS_LUT_BUF_SIZE - 1; i++) {
+ if (digit_lut_buf[i] >= hd_vol && digit_lut_buf[i + 1] < hd_vol)
+ break;
+ }
- if (i < CC_VOL_TRANS_LUT_BUF_SIZE - 1)
- return i;
+ if (i < CC_VOL_TRANS_LUT_BUF_SIZE - 1)
+ return i;
- return digit_max;
+ return digit_max;
}
void CAudioAlsa::SetMainVolDigitLutBuf(int digit_lut_buf[])
{
- memcpy((void *) mMainDigitLutBuf, digit_lut_buf,
- CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int));
+ memcpy((void *) mMainDigitLutBuf, digit_lut_buf,
+ CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int));
}
int *CAudioAlsa::GetMainVolDigitLutBuf()
{
- return mMainDigitLutBuf;
+ return mMainDigitLutBuf;
}
void CAudioAlsa::SetSupperBassVolDigitLutBuf(int digit_lut_buf[])
{
- memcpy((void *) mSupperBassDigitLutBuf, digit_lut_buf,
- CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int));
+ memcpy((void *) mSupperBassDigitLutBuf, digit_lut_buf,
+ CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int));
}
int CAudioAlsa::SetMainVolumeGain(int gain_val)
{
- mMainVolumeGainVal = gain_val;
- return mMainVolumeGainVal;
+ mMainVolumeGainVal = gain_val;
+ return mMainVolumeGainVal;
}
int CAudioAlsa::GetMainVolumeGain()
{
- return mMainVolumeGainVal;
+ return mMainVolumeGainVal;
}
int CAudioAlsa::SetSupperBassVolumeGain(int gain_val)
{
- int tmp_val = 0;
- tmp_val = mSupperBassVolumeGainVal;
- mSupperBassVolumeGainVal = gain_val;
- return tmp_val;
+ int tmp_val = 0;
+ tmp_val = mSupperBassVolumeGainVal;
+ mSupperBassVolumeGainVal = gain_val;
+ return tmp_val;
}
int CAudioAlsa::GetSupperBassVolumeGain()
{
- int tmp_val = 0;
- tmp_val = mSupperBassVolumeGainVal;
- return tmp_val;
+ int tmp_val = 0;
+ tmp_val = mSupperBassVolumeGainVal;
+ return tmp_val;
}
int CAudioAlsa::CalculateBalanceVol(int max_vol, int balance_val, int vol_buf[])
{
- int bal_mid_vol = 0, bal_cal_len = 0;
- int tmp_val = 0;
+ int bal_mid_vol = 0, bal_cal_len = 0;
+ int tmp_val = 0;
- vol_buf[0] = max_vol;
- vol_buf[1] = max_vol;
+ vol_buf[0] = max_vol;
+ vol_buf[1] = max_vol;
- bal_mid_vol = (CC_MIN_SOUND_BALANCE_VAL + CC_MAX_SOUND_BALANCE_VAL) / 2;
- bal_cal_len = (CC_MAX_SOUND_BALANCE_VAL - CC_MIN_SOUND_BALANCE_VAL) / 2;
+ bal_mid_vol = (CC_MIN_SOUND_BALANCE_VAL + CC_MAX_SOUND_BALANCE_VAL) / 2;
+ bal_cal_len = (CC_MAX_SOUND_BALANCE_VAL - CC_MIN_SOUND_BALANCE_VAL) / 2;
- if (balance_val == bal_mid_vol) {
- LOGD(
- "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n",
- __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]);
- return 0;
- } else if (balance_val < bal_mid_vol) {
- vol_buf[1] = (bal_cal_len - (bal_mid_vol - balance_val)) * max_vol / bal_cal_len;
- } else if (balance_val > bal_mid_vol) {
- vol_buf[0] = (bal_cal_len - (balance_val - bal_mid_vol)) * max_vol / bal_cal_len;
- }
+ if (balance_val == bal_mid_vol) {
+ LOGD(
+ "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n",
+ __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]);
+ return 0;
+ } else if (balance_val < bal_mid_vol) {
+ vol_buf[1] = (bal_cal_len - (bal_mid_vol - balance_val)) * max_vol / bal_cal_len;
+ } else if (balance_val > bal_mid_vol) {
+ vol_buf[0] = (bal_cal_len - (balance_val - bal_mid_vol)) * max_vol / bal_cal_len;
+ }
- if (GetAudioAmplifierBalanceExchangeCFG() != 0) {
- tmp_val = vol_buf[0];
- vol_buf[0] = vol_buf[1];
- vol_buf[1] = tmp_val;
- }
+ if (GetAudioAmplifierBalanceExchangeCFG() != 0) {
+ tmp_val = vol_buf[0];
+ vol_buf[0] = vol_buf[1];
+ vol_buf[1] = tmp_val;
+ }
- LOGD(
- "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n",
- __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]);
- return 0;
+ LOGD(
+ "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n",
+ __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]);
+ return 0;
}
int CAudioAlsa::SetInternalDacMute(int mute_state)
{
- int ret = 0;
- if (mute_state == CC_AUDIO_MUTE)
- ret = SetAudioInternalDacDACDigitalPlayBackVolume(0, 0);
- else
- ret = SetAudioInternalDacDACDigitalPlayBackVolume(255, 255);
- return ret;
+ int ret = 0;
+ if (mute_state == CC_AUDIO_MUTE)
+ ret = SetAudioInternalDacDACDigitalPlayBackVolume(0, 0);
+ else
+ ret = SetAudioInternalDacDACDigitalPlayBackVolume(255, 255);
+ return ret;
}
int CAudioAlsa::setAudioPcmPlaybackMute(int mute_state)
{
- char prop[256];
- property_get("audio.output.double_output", prop, "null");
- if ( Get2d4gHeadsetEnable() == 1 && (strcmp(prop, "0") == 0 || strcmp(prop, "null") == 0)) {
- SetAudioPcmPlaybackSwitch(mute_state);
- }
- return 0;
+ char prop[256];
+ property_get("audio.output.double_output", prop, "null");
+ if ( Get2d4gHeadsetEnable() == 1 && (strcmp(prop, "0") == 0 || strcmp(prop, "null") == 0)) {
+ SetAudioPcmPlaybackSwitch(mute_state);
+ }
+ return 0;
}
int CAudioAlsa::SetInternalDacMainVolume(int main_vol)
{
- int tmp_ret = 0, digit_vol = 0;
- digit_vol = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, main_vol);
+ int tmp_ret = 0, digit_vol = 0;
+ digit_vol = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, main_vol);
- return SetInternalDacLineOutPlayBackVolume(digit_vol, digit_vol);
+ return SetInternalDacLineOutPlayBackVolume(digit_vol, digit_vol);
}
@@ -823,38 +823,38 @@ static int gDigitalRightVol = 0;
int CAudioAlsa::SetDigitalVolume(int l_val, int r_val)
{
- amAudioSetLeftGain(l_val);
- amAudioSetRightGain(r_val);
- LOGD("%s, l_val = %d, r_val = %d.\n", __FUNCTION__, l_val, r_val);
- return 0;
+ amAudioSetLeftGain(l_val);
+ amAudioSetRightGain(r_val);
+ LOGD("%s, l_val = %d, r_val = %d.\n", __FUNCTION__, l_val, r_val);
+ return 0;
}
int CAudioAlsa::SetDigitalMainVolume(int l_vol, int r_vol)
{
- int tmp_ret = 0, l_val = 0, r_val = 0;
+ int tmp_ret = 0, l_val = 0, r_val = 0;
- //handle l&r channel volume for balance
- l_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, l_vol);
- r_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, r_vol);
+ //handle l&r channel volume for balance
+ l_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, l_vol);
+ r_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, r_vol);
- gDigitalLeftVol = l_val;
- gDigitalRightVol = r_val;
- if (gDigitalMuteStatus == CC_AUDIO_UNMUTE) {
- SetDigitalVolume(l_val, r_val);
- }
+ gDigitalLeftVol = l_val;
+ gDigitalRightVol = r_val;
+ if (gDigitalMuteStatus == CC_AUDIO_UNMUTE) {
+ SetDigitalVolume(l_val, r_val);
+ }
- return tmp_ret;
+ return tmp_ret;
}
int CAudioAlsa::SetDigitalMute(int mute_status)
{
- gDigitalMuteStatus = mute_status;
- if (mute_status == CC_AUDIO_MUTE) {
- SetDigitalVolume(0, 0);
- } else if (mute_status == CC_AUDIO_UNMUTE) {
- SetDigitalVolume(gDigitalLeftVol, gDigitalRightVol);
- }
+ gDigitalMuteStatus = mute_status;
+ if (mute_status == CC_AUDIO_MUTE) {
+ SetDigitalVolume(0, 0);
+ } else if (mute_status == CC_AUDIO_UNMUTE) {
+ SetDigitalVolume(gDigitalLeftVol, gDigitalRightVol);
+ }
- return 0;
+ return 0;
}