unplugged-vendor/system/bt/mediatek/stack/a2dp/mtk_a2dp_sbc.cc

91 lines
4.1 KiB
C++
Raw Normal View History

/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
* protected under relevant copyright laws. The information contained herein
* is confidential and proprietary to MediaTek Inc. and/or its licensors.
* Without the prior written permission of MediaTek inc. and/or its licensors,
* any reproduction, modification, use or disclosure of MediaTek Software,
* and information contained herein, in whole or in part, shall be strictly
* prohibited.
* *
* * MediaTek Inc. (C) 2016. All rights reserved.
* *
* * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
* * ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
* * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
* * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* * NONINFRINGEMENT.
* * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO
* * SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER
* * EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN
* * FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK SOFTWARE.
* * MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES
* * MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR
* * OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
* * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED
* * HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK
* * SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE
* * PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
* *
* * The following software/firmware and/or related documentation ("MediaTek Software")
* * have been modified by MediaTek Inc. All revisions are subject to any receiver's
* * applicable license agreements with MediaTek Inc.
* */
#include "mtk_a2dp_sbc.h"
#if defined(MTK_DUAL_AUDIO) && (MTK_DUAL_AUDIO == TRUE)
extern tA2DP_SBC_CIE a2dp_sbc_source_caps;
extern tA2DP_SBC_CIE a2dp_sbc_sink_caps;
extern tA2DP_SBC_CIE a2dp_sbc_default_config;
const tA2DP_SBC_CIE* select_a2dp_audio_caps(bool is_source, bt_a2dp_dual_mode_type_t dualmode) {
const tA2DP_SBC_CIE* p_a2dp_sbc_caps =
(is_source) ? &a2dp_sbc_source_caps : &a2dp_sbc_sink_caps;
if (BT_A2DP_DUAL_MODE_SAME_AUDIO_TYPE == dualmode) {
//dual mode 1-same audio
p_a2dp_sbc_caps =
(is_source) ? &dual_mode_sameaudio_a2dp_sbc_source_caps: &a2dp_sbc_sink_caps;
//dual mode 2-Left Right channel
} else if (BT_A2DP_DUAL_MODE_LR_CHANNEL_TYPE == dualmode) {
p_a2dp_sbc_caps =
(is_source) ? &dual_mode_LR_a2dp_sbc_source_caps: &a2dp_sbc_sink_caps;
}
return p_a2dp_sbc_caps;
}
uint8_t select_a2dp_audio_freq(bool isdualmode) {
if (isdualmode)
return dual_mode_LR_a2dp_sbc_source_caps.samp_freq;
else
return a2dp_sbc_default_config.samp_freq;
}
btav_a2dp_codec_config_t* select_a2dp_audio_ch(bool is_source, bt_a2dp_dual_mode_type_t dualmode,
btav_a2dp_codec_config_t config) {
//btav_a2dp_codec_config_t temp_config = config;
btav_a2dp_codec_config_t* temp_config = &config;
if (!is_source) return temp_config;
if (BT_A2DP_DUAL_MODE_SAME_AUDIO_TYPE == dualmode) {
temp_config->channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_STEREO;
} else if (BT_A2DP_DUAL_MODE_LR_CHANNEL_TYPE == dualmode) {
temp_config->channel_mode = BTAV_A2DP_CODEC_CHANNEL_MODE_MONO;
}
return temp_config;
}
uint8_t select_a2dp_best_ch(bool isdualmode) {
if (isdualmode)
return dual_mode_LR_a2dp_sbc_source_caps.ch_mode;
else
return a2dp_sbc_default_config.ch_mode;
}
#endif