headset_amp.c

来自「bc5_stereo:bluetooth stereo Headset CODE」· C语言 代码 · 共 103 行

C
103
字号
/****************************************************************************
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 + =
减小字号Ctrl + -
显示快捷键?