⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 headset_amp.c

📁 bc5_stereo:bluetooth stereo Headset CODE 支持A2DP HSP 和 HSP 。可作为车载免提。BlueLab 2007环境下编译
💻 C
字号:
/****************************************************************************
Copyright (C) Cambridge Silicon Radio Ltd. 2005-2007

FILE NAME
    headset_amp.c        

DESCRIPTION
    This file contains the audio amp control functionality.

NOTES

*/

/****************************************************************************
    Header files
*/

#include "headset_amp.h"
#include "headset_debug.h"

#include <pio.h>


#ifdef DEBUG_AMP
    #define AMP_DEBUG(x) DEBUG(x)    
#else
    #define AMP_DEBUG(x) 
#endif   


/****************************************************************************
 	Enable or disable the audio amp.
*/
static void SET_AMP ( hsTaskData * pApp, bool on )
{		
	uint32 pio = (uint32)1 << pApp->ampPio;
	
	PioSetDir32(pio, pio); 
	
	if (on)
		PioSet32(pio, pio);
	else
		PioSet32(pio, 0);
}


/****************************************************************************
  FUNCTIONS
*/

/**************************************************************************/
void AmpOn ( hsTaskData * pApp )
{
	AMP_DEBUG(("Amp: Cancel switch off\n"));
	MessageCancelAll(&pApp->task , APP_AMP_OFF);
					 
	if (!pApp->ampOn)
	{
		AMP_DEBUG(("Amp: Switch on\n"));
		SET_AMP(pApp, TRUE);
		pApp->ampOn = TRUE;
	}
}


/**************************************************************************/
void AmpOff ( hsTaskData * pApp )
{
	if (pApp->ampOn)
	{
		AMP_DEBUG(("Amp: Switch off\n"));
		SET_AMP(pApp, FALSE);
		pApp->ampOn = FALSE;
	}
}


/**************************************************************************/
void AmpOffLater ( hsTaskData * pApp )
{
	if (pApp->ampAutoOff && pApp->ampOn)
	{
		AMP_DEBUG(("Amp: Switch off later\n"));
		MessageSendLater(&pApp->task , APP_AMP_OFF , 0 , D_SEC(pApp->ampOffDelay));
	}
}		


/**************************************************************************/
void AmpSetOffDelay ( hsTaskData * pApp, uint16 delay )
{
	AMP_DEBUG(("Amp: Set off delay %d secs\n",delay));
	pApp->ampOffDelay = delay;
}


/**************************************************************************/
void AmpSetPio ( hsTaskData * pApp, uint32 pio )
{
	AMP_DEBUG(("Amp: Set PIO 0x%lx secs\n",pio));
	pApp->ampPio = pio;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -