91 lines
4.1 KiB
C++
91 lines
4.1 KiB
C++
|
|
/* 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
|
||
|
|
|