?? headset_tones.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 + -