mt6735 [Audio Common]ALSA中外置2in1 speaker
2017-11-20 09:30
211 查看
MT6735 问题描述:
在现有PMIC
H/W设计,仅能在AU_SPK后外接2in1 speaker;S/W需要作出对应调整(ALSA)
解决方法:
1.projectconfig.mk文件中mtk_2IN1_SPK_SUPPORT=yes
2.Audio_custom_exp.h 文件中进行注释//#define USING_EXTAMP_HP
3.alps/device/mediatek/$platform/audio_device.xml
//添加如下,注意内部顺序
23 <!-- 2-in-1 speaker output-->
24 <path name="two_in_one_speaker_output" value="turnon">
25 <kctl name="Audio_Speaker_class_Switch" value="RECEIVER" />
26 <kctl name="Speaker_Amp_Switch" value="On" />
27 </path>
28 <path name="two_in_one_speaker_output" value="turnoff">
29 <kctl name="Speaker_Amp_Switch" value="Off" />
30 <kctl name="Audio_Speaker_class_Switch" value="CLASSAB" />
31 </path>
//添加如上,注意内部顺序
4.status_t AudioALSAHardwareResourceManager
penReceiverPath(const
uint32_t SampleRate)
{
//添加如下
if (IsAudioSupportFeature(AUDIO_SUPPORT_2IN1_SPEAKER))
{
mDeviceConfigManager->ApplyDeviceTurnonSequenceByName(AUDIO_DEVICE_2IN1_SPEAKER);
}
else
//添加如上
{
mDeviceConfigManager->ApplyDeviceTurnonSequenceByName(AUDIO_DEVICE_RECEIVER);
}
return NO_ERROR;
}
5.status_t AudioALSAHardwareResourceManager::CloseReceiverPath()
{
ALOGD("%s(), AUDIO_DEVICE_OUT_EARPIECE", __FUNCTION__);
//添加如下
if (IsAudioSupportFeature(AUDIO_SUPPORT_2IN1_SPEAKER))
{
mDeviceConfigManager->ApplyDeviceTurnoffSequenceByName(AUDIO_DEVICE_2IN1_SPEAKER);
}
else
//添加如上
{
mDeviceConfigManager->ApplyDeviceTurnoffSequenceByName(AUDIO_DEVICE_RECEIVER);
}
return NO_ERROR;
}
6.status_t AudioALSAVolumeController::setVoiceVolume(float v, audio_mode_t mode,
uint32_t device)
。。。。。。。。。
if (device & AUDIO_DEVICE_OUT_EARPIECE)
。。。。。。。。。。
if (IsAudioSupportFeature(AUDIO_SUPPORT_2IN1_SPEAKER))
{
ApplyMdDlGain(DigitalgradeDb);
ApplyMdDlEhn1Gain(Enh1degradeDb);
//修改如下
#ifndef EXT_SPK_SUPPORT
Set2IN1InternalSpkGain(degradeDb);
#else
Set2IN1ExternalSpkGain(degradeDb);
#endif
//修改如上
}
7.int AudioALSAVolumeController::ApplyAudioGainTuning(int Gain, uint32_t mode, uint32_t
device)
。。。。。。。。
case Audio_Earpiece:
。。。。。。
if (IsAudioSupportFeature(AUDIO_SUPPORT_2IN1_SPEAKER))
{
//修改如下
#ifndef EXT_SPK_SUPPORT
Set2IN1InternalSpkGain(degradeDb);
#else
Set2IN1ExternalSpkGain(degradeDb);
#endif
//修改如上
}
资料来源:MT6735 一牛网论坛
原文地址:http://bbs.16rd.com/thread-454884-1-1.html
在现有PMIC
H/W设计,仅能在AU_SPK后外接2in1 speaker;S/W需要作出对应调整(ALSA)
解决方法:
1.projectconfig.mk文件中mtk_2IN1_SPK_SUPPORT=yes
2.Audio_custom_exp.h 文件中进行注释//#define USING_EXTAMP_HP
3.alps/device/mediatek/$platform/audio_device.xml
//添加如下,注意内部顺序
23 <!-- 2-in-1 speaker output-->
24 <path name="two_in_one_speaker_output" value="turnon">
25 <kctl name="Audio_Speaker_class_Switch" value="RECEIVER" />
26 <kctl name="Speaker_Amp_Switch" value="On" />
27 </path>
28 <path name="two_in_one_speaker_output" value="turnoff">
29 <kctl name="Speaker_Amp_Switch" value="Off" />
30 <kctl name="Audio_Speaker_class_Switch" value="CLASSAB" />
31 </path>
//添加如上,注意内部顺序
4.status_t AudioALSAHardwareResourceManager
penReceiverPath(const
uint32_t SampleRate)
{
//添加如下
if (IsAudioSupportFeature(AUDIO_SUPPORT_2IN1_SPEAKER))
{
mDeviceConfigManager->ApplyDeviceTurnonSequenceByName(AUDIO_DEVICE_2IN1_SPEAKER);
}
else
//添加如上
{
mDeviceConfigManager->ApplyDeviceTurnonSequenceByName(AUDIO_DEVICE_RECEIVER);
}
return NO_ERROR;
}
5.status_t AudioALSAHardwareResourceManager::CloseReceiverPath()
{
ALOGD("%s(), AUDIO_DEVICE_OUT_EARPIECE", __FUNCTION__);
//添加如下
if (IsAudioSupportFeature(AUDIO_SUPPORT_2IN1_SPEAKER))
{
mDeviceConfigManager->ApplyDeviceTurnoffSequenceByName(AUDIO_DEVICE_2IN1_SPEAKER);
}
else
//添加如上
{
mDeviceConfigManager->ApplyDeviceTurnoffSequenceByName(AUDIO_DEVICE_RECEIVER);
}
return NO_ERROR;
}
6.status_t AudioALSAVolumeController::setVoiceVolume(float v, audio_mode_t mode,
uint32_t device)
。。。。。。。。。
if (device & AUDIO_DEVICE_OUT_EARPIECE)
。。。。。。。。。。
if (IsAudioSupportFeature(AUDIO_SUPPORT_2IN1_SPEAKER))
{
ApplyMdDlGain(DigitalgradeDb);
ApplyMdDlEhn1Gain(Enh1degradeDb);
//修改如下
#ifndef EXT_SPK_SUPPORT
Set2IN1InternalSpkGain(degradeDb);
#else
Set2IN1ExternalSpkGain(degradeDb);
#endif
//修改如上
}
7.int AudioALSAVolumeController::ApplyAudioGainTuning(int Gain, uint32_t mode, uint32_t
device)
。。。。。。。。
case Audio_Earpiece:
。。。。。。
if (IsAudioSupportFeature(AUDIO_SUPPORT_2IN1_SPEAKER))
{
//修改如下
#ifndef EXT_SPK_SUPPORT
Set2IN1InternalSpkGain(degradeDb);
#else
Set2IN1ExternalSpkGain(degradeDb);
#endif
//修改如上
}
资料来源:MT6735 一牛网论坛
原文地址:http://bbs.16rd.com/thread-454884-1-1.html
相关文章推荐
- mt6735 [Audio Common] speaker播第一下触摸提示音时有时无声
- mt6735 [Speaker Customization]添加外置PA等Speaker客制化问题整理
- Bluetooth stack, ALSA and Skype in Linux system
- mt6735 [Audio Common]通话时,概率性出现听筒或喇叭无声问题,如何debug
- mt6735 [Audio Common] VoiceUI常见客制化问题
- ALSA --- amixer控制声卡驱动实现Line-in功能
- mt6735 [Audio Common] 通话时如何播放声音给对方听
- 使用外置安装的zookeeper后hbase出错;ERROR: The node /hbase is not in ZooKeeper
- ALSA --- amixer控制声卡驱动实现Line-in功能
- mt6735 [Audio Common]如何修改拨号按键音量大小
- [转]ALSA --- amixer控制声卡驱动实现Line-in功能
- mt6735 [Audio common] com.mediatek.voiceextension 功能介绍及如何关闭
- mt6735 [Audio Common] 铃声选择列表排序顺序客制化
- ALSA --- amixer控制声卡驱动实现Line-in功能
- mt6735 [Audio Common] 播放FM录音,开始时声音很大
- ALSA --- amixer控制声卡驱动实现Line-in功能
- mt6735 [Audio Common]如何修改拨号按键音量大小
- ALSA --- amixer控制声卡驱动实现Line-in功能
- ALSA交叉编译与测试
- How Scaling Really Works in Apache HBase