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

📄 headset_tones.c

📁 实现蓝牙立体声耳机功能。。可以接收并播放来自有蓝牙功能的手机
💻 C
字号:
/****************************************************************************
Copyright (C) Cambridge Silicon Radio Ltd. 2004-2006
Part of BlueLab 3.6.2-release

FILE NAME
    headset_tones.c

DESCRIPTION
    Tone manager for the headset.

*/


/****************************************************************************
    Header files
*/
#include "headset_private.h"
#include "headset_tones.h"
#include "headset_power.h"

#include <codec.h>
#include <panic.h>
#include <stdlib.h>
#include <audio.h>


#ifdef DEBUG_TONES
#define TONES_DEBUG(x) DEBUG(x)
#else
#define TONES_DEBUG(x) 
#endif


/********************************************************************************
    The application tones
*********************************************************************************/

/*************************** Immediate tones *********************************/
/* Power On */
static const audio_note tone_power_on[] =
{
    AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, DEMISEMIQUAVER),
    AUDIO_NOTE(GS7 , CROTCHET),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Power Off - currently the same tone as power on */
static const audio_note tone_power_off[] =
{
    AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, DEMISEMIQUAVER),
    AUDIO_NOTE(GS7 , CROTCHET),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Error */
static const audio_note tone_error[] =
{
    AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, DEMISEMIQUAVER),
    AUDIO_NOTE(G5 , CROTCHET),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Button press */
static const audio_note tone_button_press[] =
{
    AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(G6 , SEMIBREVE),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Battery Low */
static const audio_note tone_battery_low[] =
{
    AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, DEMISEMIQUAVER),
    AUDIO_NOTE(G6 , CROTCHET),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Vol limit (2 tone falling scale) */
static const audio_note tone_vol_limit[] =
{
    AUDIO_TEMPO(100), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, DEMISEMIQUAVER),
    AUDIO_NOTE(A6, QUAVER),
    AUDIO_NOTE(REST,DEMISEMIQUAVER),
    AUDIO_NOTE(E6, QUAVER),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Connection */
static const audio_note tone_connect[] =
{
    AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(GS7 , SEMIBREVE),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Enter pairing */
static const audio_note tone_pairing[] =
{
    AUDIO_TEMPO(800), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, QUAVER_TRIPLET),
    AUDIO_NOTE(G5 , MINIM_TRIPLET),  
    AUDIO_NOTE(REST, QUAVER),
    AUDIO_NOTE(G5 , MINIM_TRIPLET),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Major Scale ring tone (default) */
static const audio_note tone_ring_default[] =
{
    AUDIO_TEMPO(300), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),

    AUDIO_NOTE(E6,QUAVER),                                    
    AUDIO_NOTE(FS6,QUAVER),                                           
    AUDIO_NOTE(GS6,QUAVER),                           
    AUDIO_NOTE(A6,QUAVER),                            
    AUDIO_NOTE(B6,QUAVER),                                            
    AUDIO_NOTE(CS7,QUAVER),                           
    AUDIO_NOTE(DS7,QUAVER),                                           
    AUDIO_NOTE(E7,QUAVER),    

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Twilight ring tone */
static const audio_note tone_ring_twilight[] =
{
    AUDIO_TEMPO(180), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(E7, QUAVER),
    AUDIO_NOTE(F7, QUAVER),
    AUDIO_NOTE(E7, QUAVER),
    AUDIO_NOTE(C7, QUAVER),
    AUDIO_NOTE(E7, QUAVER),
    AUDIO_NOTE(F7, QUAVER),
    AUDIO_NOTE(E7, QUAVER),
    AUDIO_NOTE(C7, QUAVER),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

/* Mute reminder tone */
static const audio_note tone_mute_reminder[] =
		
		
{
    AUDIO_TEMPO(600), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIQUAVER),
    
    AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(G5, CROTCHET),
    AUDIO_NOTE(REST, CROTCHET),
    AUDIO_NOTE(G5, CROTCHET),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};

static const audio_note tone_call_end[] =
{
    
    AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIQUAVER),
    AUDIO_NOTE(FS7 , CROTCHET),

    AUDIO_NOTE(REST , HEMIDEMISEMIQUAVER),
    AUDIO_END
};


/********************************************************************************
    The tones array
*********************************************************************************/

#define NUM_FIXED_TONES (12)

static const audio_note * const gFixedTones [ (NUM_FIXED_TONES) ] = 
{
    /* Immediate tones */
    tone_power_on,
    tone_power_off,
    tone_error,
    tone_button_press,
    tone_battery_low,
    tone_vol_limit,
    tone_connect,
	tone_mute_reminder,
    tone_pairing,
	tone_call_end,
    tone_ring_default,
    tone_ring_twilight,
};


/*****************************************************************************/
void headsetPlayTone(headsetTaskData *app, toneIndex tone)
{
	headsetPowerAmp (app , TRUE) ;	

		/*temp until the audio lib handles AV connections*/
	if (app->av_stream_connected == TRUE)
	{
		/*we are actively streaming the audio, do not play the tone*/
	}
	else
	{
		AudioPlayTone( gFixedTones[tone] , TRUE , app->codec_task, 0x15, TRUE) ;
	}
}

⌨️ 快捷键说明

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