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

📄 headset_tones.c

📁 bluelab的一个很好的例程
💻 C
📖 第 1 页 / 共 3 页
字号:
/****************************************************************************
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 + -