📄 triton_audio.c
字号:
//===============================================================================
// TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
//
// Property of Texas Instruments
// For Unrestricted Internal Use Only
// Unauthorized reproduction and/or distribution is strictly prohibited.
// This product is protected under copyright law and trade secret law
// as an unpublished work.
// Created 2000, (C) Copyright 2000 Texas Instruments. All rights reserved.
//
// Filename : triton_audio.c
//
// Description : audio module functions library
//
// Project : Neptune/Triton
//
// Author : Franck Locatelli
//
//
// Date of Generation :9/15/2004
//
//===============================================================================
#include "global_types.h"
#include "mapping.h"
#include "triton_mapping.h"
#include "mem.h"
#include "msi2c.h"
#include "triton_audio.h"
/* ============================================================================
* FUNCTIONS
* =============================================================================
*/
//---------------------------------------------------------------------
// NAME : Triton_Audio_Power
//
// DESCRIPTION : this function enable or disable stereo downlink path, voice uplink path and voice downlink path
//
// PARAMETERS : stereo_downlink_path
// AUDIO_STEREO_DOWNLINK_PATH_ENABLE
// AUDIO_STEREO_DOWNLINK_PATH_DISABLE
// voice_uplink_path
// AUDIO_VOICE_UPLINK_PATH_ENABLE
// AUDIO_VOICE_UPLINK_PATH_DISABLE
// voice_downlink_path
// AUDIO_VOICE_DOWNLINK_PATH_ENABLE
// AUDIO_VOICE_DOWNLINK_PATH_DISABLE
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Audio_Power(UWORD8 stereo_downlink_path, UWORD8 voice_uplink_path, UWORD8 voice_downlink_path)
{
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
//enable Triton Stereo Downlink Path
MSI2C_MasterPollingSendAbb(AUDIO_TOGB, ( stereo_downlink_path | voice_uplink_path | voice_downlink_path ) ); //Enable STS & STR
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Audio_Volume_settings
//
// DESCRIPTION : this function sets triton audio part volume (left and right)
//
// PARAMETERS : audlgain and audrgain
// AUDIO_GAIN_0dB
// AUDIO_GAIN__1dB
// AUDIO_GAIN__2dB
// AUDIO_GAIN__3dB
// AUDIO_GAIN__4dB
// AUDIO_GAIN__5dB
// AUDIO_GAIN__6dB
// AUDIO_GAIN__7dB
// AUDIO_GAIN__8dB
// AUDIO_GAIN__9dB
// AUDIO_GAIN__10dB
// AUDIO_GAIN__11dB
// AUDIO_GAIN__12dB
// AUDIO_GAIN__13dB
// AUDIO_GAIN__14dB
// AUDIO_GAIN__15dB
// AUDIO_GAIN__16dB
// AUDIO_GAIN__17dB
// AUDIO_GAIN__18dB
// AUDIO_GAIN__19dB
// AUDIO_GAIN__20dB
// AUDIO_GAIN__21dB
// AUDIO_GAIN__22dB
// AUDIO_GAIN__23dB
// AUDIO_GAIN__24dB
// AUDIO_GAIN__25dB
// AUDIO_GAIN__26dB
// AUDIO_GAIN__27dB
// AUDIO_GAIN__28dB
// AUDIO_GAIN__29dB
// AUDIO_GAIN__30dB
// AUDIO_GAIN_MUTE
//
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Audio_Volume_settings(UWORD8 audlgain, UWORD8 audrgain)
{
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
MSI2C_MasterPollingSendAbb(AUDIO_AUDLGAIN, (audlgain & 0x1F) );
MSI2C_MasterPollingSendAbb(AUDIO_AUDRGAIN, (audlgain & 0x1F) );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Audio_Outputs_Enabling_And_Mixing
//
// DESCRIPTION : this function allocates audio/voice source for each output and enables it
//
// PARAMETERS : hf_settings
// AUDIO_HF_NONE
// AUDIO_HF_VOICE_SPEECH
// AUDIO_HF_AUDIO_MONO_FROM_LEFT_CHANNEL
// AUDIO_HF_FM_MONO_FROM_VUL_FM_PGA
// AUDIO_HF_VOICE_SPEECH_AND_AUDIO_MONO
// AUDIO_HF_VOICE_SPEECH_AND_FM_MONO
// AUDIO_HF_AUDIO_MONO_AND_FM_MONO
//
// carkit_settings
// AUDIO_CAR_KIT_NONE
// AUDIO_CAR_KIT_VOICE_SPEECH_ON_LEFT_AMP
// AUDIO_CAR_KIT_STEREO_ON_LEFT_AND_RIGHTS_AMP
// AUDIO_CAR_KIT_VOICE_SPEECH_AND_AUDIO_MONO_ON_LEFT_AMP
//
// auxo_settings
// AUDIO_AUXO_NONE
// AUDIO_AUXO_VOICE_SPEECH
// AUDIO_AUXO_AUDIO_MONO_FROM_LEFT_CHANNEL
// AUDIO_AUXO_VOICE_SPEECH_AND_AUDIO_MONO
//
// ear_settings
// AUDIO_EAR_NONE
// AUDIO_EAR_VOICE_SPEECH
// AUDIO_EAR_AUDIO_MONO_FROM_LEFT_CHANNEL
// AUDIO_EAR_VOICE_SPEECH_AND_AUDIO_MONO
//
// hsol_settings
// AUDIO_HSOL_NONE
// AUDIO_HSOL_VOICE_SPEECH
// AUDIO_HSOL_AUDIO_MONO_FROM_LEFT_CHANNEL
// AUDIO_HSOL_FM_LEFT_MONO_FROM_VUL_FM_PGA
// AUDIO_HSOL_VOICE_SPEECH_AND_AUDIO_MONO_ON_LEFT_AMP
// AUDIO_HSOL_VOICE_SPEECH_AND_FM_ON_LEFT_AMP
// AUDIO_HSOL_AUDIO_LEFT_MONO_AND_FM_LEFT
//
// hsor_settings
// AUDIO_HSOR_NONE
// AUDIO_HSOR_VOICE_SPEECH
// AUDIO_HSOR_AUDIO_MONO_FROM_RIGHT_CHANNEL
// AUDIO_HSOR_FM_RIGHT_MONO_FROM_VUL_FM_PGA
// AUDIO_HSOR_VOICE_SPEECH_AND_AUDIO_MONO_ON_RIGHT_AMP
// AUDIO_HSOR_VOICE_SPEECH_AND_FM_ON_RIGHT_AMP
// AUDIO_HSOR_AUDIO_RIGHT_MONO_AND_FM_RIGHT
// AUDIO_HSOR_INVERTED_VOICE_SPEECH
//
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Audio_Outputs_Enabling_And_Mixing(UWORD8 hf_settings, UWORD8 carkit_settings, UWORD8 auxo_settings, UWORD8 ear_settings, UWORD8 hsol_settings, UWORD8 hsor_settings)
{
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
MSI2C_MasterPollingSendAbb(AUDIO_OUTEN3, (hf_settings & 0x07) );
MSI2C_MasterPollingSendAbb(AUDIO_OUTEN2, ((carkit_settings | auxo_settings | ear_settings) & 0x3F) );
MSI2C_MasterPollingSendAbb(AUDIO_OUTEN1, ( (hsol_settings | hsor_settings) & 0x7F) );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Voice_Gain_Settings
//
// DESCRIPTION : this function set triton voice gain
//
// PARAMETERS : voice_downlink_volume
// AUDIO_VOICE_DOWNLINK_VOLUME_0dB
// AUDIO_VOICE_DOWNLINK_VOLUME__6dB
// AUDIO_VOICE_DOWNLINK_VOLUME__12dB
// AUDIO_VOICE_DOWNLINK_VOLUME__18dB
// AUDIO_VOICE_DOWNLINK_VOLUME__24dB
// AUDIO_VOICE_DOWNLINK_VOLUME_MUTE
// voice_downlink_digital_gain
// AUDIO_VOICE_DOWNLINK_DIG_GAIN__6
// AUDIO_VOICE_DOWNLINK_DIG_GAIN__5
// AUDIO_VOICE_DOWNLINK_DIG_GAIN__4
// AUDIO_VOICE_DOWNLINK_DIG_GAIN__3
// AUDIO_VOICE_DOWNLINK_DIG_GAIN__2
// AUDIO_VOICE_DOWNLINK_DIG_GAIN__1
// AUDIO_VOICE_DOWNLINK_DIG_GAIN_0
// AUDIO_VOICE_DOWNLINK_DIG_GAIN_1
// AUDIO_VOICE_DOWNLINK_DIG_GAIN_2
// AUDIO_VOICE_DOWNLINK_DIG_GAIN_3
// AUDIO_VOICE_DOWNLINK_DIG_GAIN_4
// AUDIO_VOICE_DOWNLINK_DIG_GAIN_5
// AUDIO_VOICE_DOWNLINK_DIG_GAIN_6
//
// voice_uplink_digital_gain
// AUDIO_VOICE_UPLINK_DIG_GAIN__12
// AUDIO_VOICE_UPLINK_DIG_GAIN__11
// AUDIO_VOICE_UPLINK_DIG_GAIN__10
// AUDIO_VOICE_UPLINK_DIG_GAIN__9
// AUDIO_VOICE_UPLINK_DIG_GAIN__8
// AUDIO_VOICE_UPLINK_DIG_GAIN__7
// AUDIO_VOICE_UPLINK_DIG_GAIN__6
// AUDIO_VOICE_UPLINK_DIG_GAIN__5
// AUDIO_VOICE_UPLINK_DIG_GAIN__4
// AUDIO_VOICE_UPLINK_DIG_GAIN__3
// AUDIO_VOICE_UPLINK_DIG_GAIN__2
// AUDIO_VOICE_UPLINK_DIG_GAIN__1
// AUDIO_VOICE_UPLINK_DIG_GAIN_0
// AUDIO_VOICE_UPLINK_DIG_GAIN_1
// AUDIO_VOICE_UPLINK_DIG_GAIN_2
// AUDIO_VOICE_UPLINK_DIG_GAIN_3
// AUDIO_VOICE_UPLINK_DIG_GAIN_4
// AUDIO_VOICE_UPLINK_DIG_GAIN_5
// AUDIO_VOICE_UPLINK_DIG_GAIN_6
// AUDIO_VOICE_UPLINK_DIG_GAIN_7
// AUDIO_VOICE_UPLINK_DIG_GAIN_8
// AUDIO_VOICE_UPLINK_DIG_GAIN_9
// AUDIO_VOICE_UPLINK_DIG_GAIN_10
// AUDIO_VOICE_UPLINK_DIG_GAIN_11
// AUDIO_VOICE_UPLINK_DIG_GAIN_12
// AUDIO_VOICE_UPLINK_DIG_GAIN_VDX_MUTE
//
// voice_sidetone
// AUDIO_VOICE_SIDETONE__23
// AUDIO_VOICE_SIDETONE__20
// AUDIO_VOICE_SIDETONE__17
// AUDIO_VOICE_SIDETONE__14
// AUDIO_VOICE_SIDETONE__11
// AUDIO_VOICE_SIDETONE__8
// AUDIO_VOICE_SIDETONE__5
// AUDIO_VOICE_SIDETONE__2
// AUDIO_VOICE_SIDETONE_1
// AUDIO_VOICE_SIDETONE_MUTE
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Voice_Gain_Settings(UWORD8 voice_downlink_volume, UWORD8 voice_downlink_digital_gain, UWORD8 voice_uplink_digital_gain, UWORD8 voice_sidetone)
{
//Init I2C Interface
MSI2C_InitConnectionAbb();
MSI2C_AccessPage(AUDIO_page);
MSI2C_MasterPollingSendAbb(AUDIO_VDLGAIN, ( ( voice_downlink_digital_gain | voice_downlink_volume) & 0x7F ) );
MSI2C_MasterPollingSendAbb(AUDIO_VULGAIN, ( ( voice_uplink_digital_gain ) & 0x3F ) );
MSI2C_MasterPollingSendAbb(AUDIO_SIDETONE, ( ( voice_sidetone ) & 0x0F ) );
return;
}
//---------------------------------------------------------------------
// NAME : Triton_Audio_Outputs_Charge_Settings
//
// DESCRIPTION : this function sets audio outputs charge/discharge
//
// PARAMETERS : carkit_charge
// AUDIO_CARKIT_CHARGE
// AUDIO_CARKIT_DISCHARGE
// AUDIO_CARKIT_CHARGE_AUTO
// auxo_charge
// AUDIO_AUXO_CHARGE
// AUDIO_AUXO_DISCHARGE
// AUDIO_AUXO_CHARGE_AUTO
// ear_charge
// AUDIO_EAR_CHARGE
// AUDIO_EAR_DISCHARGE
// AUDIO_EAR_CHARGE_AUTO
// hso_charge
// AUDIO_HSO_CHARGE
// AUDIO_HSO_DISCHARGE
// AUDIO_HSO_CHARGE_AUTO
//
// RETURN VALUE: none
//
//
// LIMITATIONS : None
//---------------------------------------------------------------------
void Triton_Audio_Outputs_Charge_Settings(UWORD8 carkit_charge, UWORD8 auxo_charge, UWORD8 ear_charge, UWORD8 hso_charge)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -