/*
* audio-hal
*
- * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2014 - 2016 Samsung Electronics Co., Ltd. All rights reserved.
*
* Contact:
*
#include <vconf.h>
#include "tizen-audio-internal.h"
+#include "tizen-audio-impl.h"
#define vbc_thread_new pthread_create
#define MIXER_VBC_SWITCH "VBC Switch"
{
int val = -1; /* Mixer values 0 - cp [3g] ,1 - cp [2g] ,2 - ap */
- _audio_mixer_control_get_value(ah, MIXER_VBC_SWITCH, &val);
+ _mixer_control_get_value(ah, MIXER_VBC_SWITCH, &val);
AUDIO_LOG_INFO("modem is connected for call = %d", (val == VBC_TD_CHANNELID));
return (val == VBC_TD_CHANNELID) ? 1 : 0;
}
#define FM_IIS 0x10
-static void i2s_pin_mux_sel(audio_hal_t *ah, int type)
+static void __i2s_pin_mux_sel(audio_hal_t *ah, int type)
{
audio_return_t ret = AUDIO_RET_OK;
audio_modem_t *modem;
modem = ah->modem.cp;
if (type == FM_IIS) {
- _audio_mixer_control_set_value(ah,
+ _mixer_control_set_value(ah,
PIN_SWITCH_IIS0_SYS_SEL, PIN_SWITCH_IIS0_VBC_ID);
return;
}
if(ah->device.active_out & AUDIO_DEVICE_OUT_BT_SCO) {
if(modem->i2s_bt.is_ext) {
if(modem->i2s_bt.is_switch) {
- ret = _audio_mixer_control_set_value(ah,
+ ret = _mixer_control_set_value(ah,
PIN_SWITCH_IIS0_SYS_SEL, PIN_SWITCH_IIS0_CP0_ID);
}
} else {
if(modem->i2s_bt.is_switch) {
int value = 0;
- _audio_mixer_control_get_value (ah, PIN_SWITCH_IIS0_SYS_SEL, &value);
+ _mixer_control_get_value (ah, PIN_SWITCH_IIS0_SYS_SEL, &value);
if(value == PIN_SWITCH_IIS0_CP0_ID) {
- ret = _audio_mixer_control_set_value(ah,
+ ret = _mixer_control_set_value(ah,
PIN_SWITCH_IIS0_SYS_SEL, PIN_SWITCH_IIS0_AP_ID);
}
}
if(ah->device.active_out & AUDIO_DEVICE_OUT_BT_SCO) {
if(modem->i2s_bt.is_switch) {
- ret = _audio_mixer_control_set_value(ah,
+ ret = _mixer_control_set_value(ah,
PIN_SWITCH_BT_IIS_SYS_SEL, PIN_SWITCH_BT_IIS_CP0_IIS0_ID);
}
}
if(ah->device.active_out & AUDIO_DEVICE_OUT_BT_SCO) {
if(modem->i2s_bt.is_ext) {
if(modem->i2s_bt.is_switch) {
- ret = _audio_mixer_control_set_value(ah,
+ ret = _mixer_control_set_value(ah,
PIN_SWITCH_IIS0_SYS_SEL, PIN_SWITCH_IIS0_CP1_ID);
}
} else {
if(modem->i2s_bt.is_switch) {
int value = 0;
- _audio_mixer_control_get_value (ah, PIN_SWITCH_IIS0_SYS_SEL, &value);
+ _mixer_control_get_value (ah, PIN_SWITCH_IIS0_SYS_SEL, &value);
if(value == PIN_SWITCH_IIS0_CP1_ID) {
- ret = _audio_mixer_control_set_value(ah,
+ ret = _mixer_control_set_value(ah,
PIN_SWITCH_IIS0_SYS_SEL, PIN_SWITCH_IIS0_CP2_ID);
}
}
if(ah->device.active_out & AUDIO_DEVICE_OUT_BT_SCO) {
if(modem->i2s_bt.is_switch) {
- ret = _audio_mixer_control_set_value(ah,
+ ret = _mixer_control_set_value(ah,
PIN_SWITCH_BT_IIS_SYS_SEL, PIN_SWITCH_BT_IIS_CP1_IIS0_ID);
}
}
AUDIO_LOG_INFO("[voice] Received VBC_CMD_PCM_OPEN");
ah->modem.is_connected = 1;
- audio_ret = _audio_do_route_voicecall(ah, ah->device.init_call_devices, ah->device.num_of_call_devices);
- if (AUDIO_IS_ERROR(audio_ret)) {
+ if ((audio_ret = _audio_update_route_voicecall(ah, ah->device.init_call_devices, ah->device.num_of_call_devices))) {
AUDIO_LOG_WARN("set voicecall route return 0x%x", audio_ret);
if (audio_ret == AUDIO_ERR_INVALID_STATE) {
/* send signal and wait for the ucm setting,
if (ah->device.active_out & (AUDIO_DEVICE_OUT_SPEAKER | AUDIO_DEVICE_OUT_BT_SCO)) {
if (ah->modem.cp_type == CP_TG)
- i2s_pin_mux_sel(ah, 1);
+ __i2s_pin_mux_sel(ah, 1);
else if(ah->modem.cp_type == CP_W)
- i2s_pin_mux_sel(ah, 0);
+ __i2s_pin_mux_sel(ah, 0);
}
AUDIO_LOG_DEBUG("[voice] Send response for VBC_CMD_PCM_OPEN");
COND_TIMEDWAIT(ah->device.device_cond, ah->device.device_lock, "device_cond", TIMEOUT_SEC);
MUTEX_UNLOCK(ah->device.device_lock, "device_lock");
- _audio_mixer_control_set_value(ah, MIXER_VBC_SWITCH, VBC_ARM_CHANNELID);
+ _mixer_control_set_value(ah, MIXER_VBC_SWITCH, VBC_ARM_CHANNELID);
AUDIO_LOG_DEBUG("[voice] Send response for VBC_CMD_PCM_CLOSE");
__vbc_write_response(vbpipe_fd, VBC_CMD_PCM_CLOSE, 0);
if (ah->device.active_out & (AUDIO_DEVICE_OUT_SPEAKER | AUDIO_DEVICE_OUT_BT_SCO)) {
if (ah->modem.cp_type == CP_TG)
- i2s_pin_mux_sel(ah, 1);
+ __i2s_pin_mux_sel(ah, 1);
else if(ah->modem.cp_type == CP_W)
- i2s_pin_mux_sel(ah, 0);
+ __i2s_pin_mux_sel(ah, 0);
}
/* To do: set mode params : __vbc_set_mode_params(ah, vbpipe_fd); */
else
AUDIO_LOG_INFO("is_switch:%d", switch_ctrl_params.is_switch);
- _audio_mixer_control_set_value(ah, MIXER_VBC_SWITCH, VBC_TD_CHANNELID);
+ _mixer_control_set_value(ah, MIXER_VBC_SWITCH, VBC_TD_CHANNELID);
AUDIO_LOG_DEBUG("[voice] Send response for VBC_CMD_SET_GAIN");
__vbc_write_response(vbpipe_fd, VBC_CMD_SWITCH_CTRL, 0);
if (ah->device.active_out & (AUDIO_DEVICE_OUT_SPEAKER | AUDIO_DEVICE_OUT_BT_SCO)) {
if (ah->modem.cp_type == CP_TG)
- i2s_pin_mux_sel(ah, 1);
+ __i2s_pin_mux_sel(ah, 1);
else if(ah->modem.cp_type == CP_W)
- i2s_pin_mux_sel(ah, 0);
+ __i2s_pin_mux_sel(ah, 0);
}
/* To do: set mode params : __vbc_set_mode_params(ah, vbpipe_fd); */
AUDIO_LOG_DEBUG("[voip] Send response for VBC_CMD_SET_MODE");
else
AUDIO_LOG_INFO("is_switch:%d", switch_ctrl_params.is_switch);
- _audio_mixer_control_set_value(ah, MIXER_VBC_SWITCH, VBC_TD_CHANNELID);
+ _mixer_control_set_value(ah, MIXER_VBC_SWITCH, VBC_TD_CHANNELID);
AUDIO_LOG_DEBUG("[voip] Send response for VBC_CMD_SWITCH_CTRL");
__vbc_write_response(vbpipe_fd, VBC_CMD_SWITCH_CTRL, 0);
return AUDIO_RET_OK;
}
-static audio_return_t __vbc_control_close(audio_hal_t *ah)
+void __vbc_control_close(audio_hal_t *ah)
{
/* TODO. Make sure we always receive CLOSE command from modem and then close pcm device */
ah->modem.vbc.exit_vbc_thread = 1;
pthread_cancel(ah->modem.vbc.voice_thread_handle);
pthread_cancel(ah->modem.vbc.voip_thread_handle);
- return AUDIO_RET_OK;
+ return;
}
static void __audio_modem_create(audio_modem_t *modem, const char *num)
ah->modem.vbc.vbpipe_count = 0;
/* Initialize vbc interface */
- audio_ret = __vbc_control_open(ah);
- if (AUDIO_IS_ERROR(audio_ret)) {
+ if ((audio_ret = __vbc_control_open(ah))) {
AUDIO_LOG_ERROR("__vbc_control_open failed");
goto exit;
}
ah->modem.cp_type = ah->modem.cp->vbc_ctrl_pipe_info->cp_type;
/* This ctrl need to be set "0" always - SPRD */
- _audio_mixer_control_set_value(ah, PIN_SWITCH_BT_IIS_CON_SWITCH, 0);
+ _mixer_control_set_value(ah, PIN_SWITCH_BT_IIS_CON_SWITCH, 0);
exit:
return audio_ret;