📄 headset_tones.c
字号:
/****************************************************************************
Copyright (C) Cambridge Silicon Radio Ltd. 2004
FILE NAME
headset_tones.c
DESCRIPTION
module responsible for tone generation and playback
*/
#include "headset_private.h"
#include "headset_soundmanager.h"
#include "headset_tones.h"
#include "headset_events.h"
#include "headset_volume.h"
#include <stddef.h>
#include <csrtypes.h>
/****************************************************************************
VARIABLES
*/
#define TONES_VOL_PLAYBACK_LEVEL 0x0A
/***********************************************************************************/
/* Headset tones */
/****************************************************************/
/*
SIMPLE TONES ( B - Q )
*/
/****************************************************************/
/*Vol Min*/
static const audio_note tone_B[] =
{
AUDIO_TEMPO(200), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(G5, CROTCHET),
AUDIO_END
};
/*Vol 2*/
static const audio_note tone_C[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(C6, SEMIBREVE),
AUDIO_END
};
/*Vol 3*/
static const audio_note tone_D[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(E6, SEMIBREVE),
AUDIO_END
};
/*Vol 4*/
static const audio_note tone_E[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(G6, SEMIBREVE),
AUDIO_END
};
/*Vol 5*/
static const audio_note tone_F[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(AS6, SEMIBREVE),
AUDIO_END
};
/*Vol 6*/
static const audio_note tone_G[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(C7, SEMIBREVE),
AUDIO_END
};
/*Vol 7*/
static const audio_note tone_H[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(D7, SEMIBREVE),
AUDIO_END
};
/*Vol 8*/
static const audio_note tone_I[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(E7, SEMIBREVE),
AUDIO_END
};
/*Vol 9*/
static const audio_note tone_J[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(FS7, SEMIBREVE),
AUDIO_END
};
/*Vol 10*/
static const audio_note tone_K[] =
{
AUDIO_TEMPO(200), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(GS7, CROTCHET),
AUDIO_END
};
/*4 note rising scale*/
static const audio_note tone_L[] =
{
AUDIO_TEMPO(400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(GS4, CROTCHET),
AUDIO_NOTE(REST,DEMISEMIQUAVER),
AUDIO_NOTE(DS5, CROTCHET),
AUDIO_NOTE(REST,DEMISEMIQUAVER),
AUDIO_NOTE(GS5, CROTCHET),
AUDIO_NOTE(REST,DEMISEMIQUAVER),
AUDIO_NOTE(C6, CROTCHET),
AUDIO_END
};
/*4 note falling scale*/
static const audio_note tone_M[] =
{
AUDIO_TEMPO(400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(C6, CROTCHET),
AUDIO_NOTE(REST,DEMISEMIQUAVER),
AUDIO_NOTE(GS5, CROTCHET),
AUDIO_NOTE(REST,DEMISEMIQUAVER),
AUDIO_NOTE(DS5, CROTCHET),
AUDIO_NOTE(REST,DEMISEMIQUAVER),
AUDIO_NOTE(GS4, CROTCHET),
AUDIO_END
} ;
/*2 tone rising scale*/
static const audio_note tone_N[] =
{
AUDIO_TEMPO(150), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(E6, QUAVER),
AUDIO_NOTE(REST,DEMISEMIQUAVER),
AUDIO_NOTE(A6, QUAVER),
AUDIO_END
};
/*2 tone falling scale*/
static const audio_note tone_O[] =
{
AUDIO_TEMPO(100), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(A6, QUAVER),
AUDIO_NOTE(REST,DEMISEMIQUAVER),
AUDIO_NOTE(E6, QUAVER),
AUDIO_END
};
/*long low followed by short high*/
static const audio_note tone_P[] =
{
AUDIO_TEMPO(600), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(REST, SEMIQUAVER),
AUDIO_NOTE(G5, SEMIBREVE),
AUDIO_NOTE(REST, SEMIQUAVER),
AUDIO_NOTE(G7, CROTCHET),
AUDIO_END
};
/*connection*/
static const audio_note tone_Q[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(REST, CROTCHET),
AUDIO_NOTE(GS7 , SEMIBREVE),
AUDIO_END
};
/*power*/
static const audio_note tone_R[] =
{
AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(REST, HEMIDEMISEMIQUAVER),
AUDIO_NOTE(GS7 , CROTCHET),
AUDIO_END
};
/*error*/
static const audio_note tone_S[] =
{
AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(REST, HEMIDEMISEMIQUAVER),
AUDIO_NOTE(G5 , CROTCHET),
AUDIO_END
};
/*short cfm*/
static const audio_note tone_T[] =
{
AUDIO_TEMPO(2400), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(REST, CROTCHET),
AUDIO_NOTE(G6 , SEMIBREVE),
AUDIO_END
};
/*long cfm*/
static const audio_note tone_U[] =
{
AUDIO_TEMPO(150), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(REST, HEMIDEMISEMIQUAVER),
AUDIO_NOTE(G6 , MINIM),
AUDIO_END
};
/*Batt Low*/
static const audio_note tone_V[] =
{
AUDIO_TEMPO(120), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(REST, HEMIDEMISEMIQUAVER),
AUDIO_NOTE(G6 , CROTCHET),
AUDIO_END
};
/*Pair removal*/
static const audio_note tone_W[] =
{
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
};
/*spare 1 - same as W for now*/
static const audio_note tone_X[] =
{
AUDIO_TEMPO(800), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(REST, QUAVER_TRIPLET),
AUDIO_NOTE(G6 , MINIM_TRIPLET),
AUDIO_NOTE(REST, QUAVER),
AUDIO_NOTE(G6 , MINIM_TRIPLET),
AUDIO_END
};
/****************************************************************/
/*
OTHER TONES
*/
/****************************************************************/
static const audio_note battery_low_tone[] =
{
AUDIO_TEMPO(240), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(E6, QUAVER),
AUDIO_NOTE(AS6, QUAVER),
AUDIO_NOTE(E6, QUAVER),
AUDIO_NOTE(AS6, QUAVER),
AUDIO_NOTE(E6, QUAVER),
AUDIO_END
};
static const audio_note low_500ms_tone[] =
{
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_END
};
static const audio_note mute_reminder_tone[] =
{
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
};
/****************************************************************/
/*
RING TONES
*/
/****************************************************************/
static const audio_note 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
};
static const audio_note ring_g_s_t_q[] =
{
AUDIO_TEMPO(230), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE (G7, CROTCHET),
AUDIO_NOTE (G7, CROTCHET),
AUDIO_NOTE (A7, CROTCHET),
AUDIO_NOTE (FS7, CROTCHET),
AUDIO_NOTE_TIE (FS7, QUAVER),
AUDIO_NOTE (G7, QUAVER),
AUDIO_NOTE (A7, CROTCHET),
AUDIO_NOTE (B7, CROTCHET),
AUDIO_NOTE (B7, CROTCHET),
AUDIO_NOTE (C8, CROTCHET),
AUDIO_NOTE (B7, CROTCHET),
AUDIO_NOTE_TIE (B7, QUAVER),
AUDIO_NOTE (A7, QUAVER),
AUDIO_NOTE (G7, CROTCHET),
AUDIO_NOTE (A7, CROTCHET),
AUDIO_NOTE (G7, CROTCHET),
AUDIO_NOTE (FS7, CROTCHET),
AUDIO_NOTE (G7, MINIM),
AUDIO_NOTE_TIE (G7, CROTCHET),
AUDIO_END
};
static const audio_note ring_valkyries[] =
{
AUDIO_TEMPO(240), AUDIO_VOLUME(64), AUDIO_TIMBRE(sine),
AUDIO_NOTE(E5,QUAVER),
AUDIO_NOTE_TIE(E5,SEMIQUAVER),
AUDIO_NOTE(D5,SEMIQUAVER),
AUDIO_NOTE(E5,QUAVER),
AUDIO_NOTE(G5,CROTCHET),
AUDIO_NOTE_TIE(G5,QUAVER),
AUDIO_NOTE(E5,CROTCHET),
AUDIO_NOTE_TIE(E5,QUAVER),
AUDIO_NOTE(G5,QUAVER),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -