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

📄 headset_tones.c

📁 针对bluelab3.42的handsfree车载蓝牙的参考
💻 C
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************
Copyright (C) Cambridge Silicon Radio Ltd. 2004-2006
Part of BlueLab 3.4.2-release

FILE NAME
    headset_tones.c

DESCRIPTION
    Tone manager for the headset.

*/


/****************************************************************************
    Header files
*/
#include "headset_private.h"
#include "av_stream_control.h"
#include "cvc_headset.h"
#include "headset_common.h"
#include "headset_power.h"
#include "headset_tones.h"
#include "headset_volume.h"
#include "hfp_audio.h"

#include <codec.h>
#include <kalimba.h>
#include <panic.h>
#include <pcm.h>
#include <stdlib.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_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_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_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_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_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_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_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_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_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_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_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_END
};



/*************************** Delayed tones *********************************/
/* Power On */
static const audio_note tone_power_on_delayed[] =
{
 AUDIO_TEMPO(120), AUDIO_VOLUME(100), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, HEMIDEMISEMIQUAVER),
 AUDIO_NOTE(GS7 , CROTCHET),
    
    AUDIO_END
};

/* Power Off - currently the same tone as power on */
static const audio_note tone_power_off_delayed[] =
{
 AUDIO_TEMPO(120), AUDIO_VOLUME(100), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, HEMIDEMISEMIQUAVER),
 AUDIO_NOTE(GS7 , CROTCHET),
    
    AUDIO_END
};

/* Error */
static const audio_note tone_error_delayed[] =
{
 AUDIO_TEMPO(120), AUDIO_VOLUME(100), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, HEMIDEMISEMIQUAVER),
 AUDIO_NOTE(G5 , CROTCHET),
    
    AUDIO_END
};

/* Button press */
static const audio_note tone_button_press_delayed[] =
{
 AUDIO_TEMPO(2400), AUDIO_VOLUME(100), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
 AUDIO_NOTE(G6 , SEMIBREVE),
    
    AUDIO_END
};

/* Battery Low */
static const audio_note tone_battery_low_delayed[] =
{
 AUDIO_TEMPO(120), AUDIO_VOLUME(100), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIQUAVER),
 AUDIO_NOTE(G6 , CROTCHET),
    
    AUDIO_END
};

/* Vol limit (2 tone falling scale) */
static const audio_note tone_vol_limit_delayed[] =
{
    AUDIO_TEMPO(100), AUDIO_VOLUME(100), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, MINIM),
    AUDIO_NOTE(REST, CROTCHET),
    AUDIO_NOTE(REST, CROTCHET),
    AUDIO_NOTE(A6, QUAVER),
    AUDIO_NOTE(REST,DEMISEMIQUAVER),
    AUDIO_NOTE(E6, QUAVER),
    
    AUDIO_END
};

/* Connection */
static const audio_note tone_connect_delayed[] =
{
 AUDIO_TEMPO(2400), AUDIO_VOLUME(100), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
 AUDIO_NOTE(GS7 , SEMIBREVE),
    
    AUDIO_END
};

/* Enter pairing delayed*/
static const audio_note tone_pairing_delayed[] =
{
 AUDIO_TEMPO(800), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
    
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, SEMIBREVE),
    AUDIO_NOTE(REST, QUAVER_TRIPLET),
    AUDIO_NOTE(G5 , MINIM_TRIPLET),  
    AUDIO_NOTE(REST, QUAVER),
    AUDIO_NOTE(G5 , MINIM_TRIPLET),
    
    AUDIO_END
};

⌨️ 快捷键说明

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