83 lines
2.5 KiB
C
83 lines
2.5 KiB
C
#ifndef _TONE_PLAYER_
|
|
#define _TONE_PLAYER_
|
|
|
|
#include "app_config.h"
|
|
|
|
struct sin_param {
|
|
int idx_increment;
|
|
int points;
|
|
int decay;
|
|
};
|
|
|
|
#define TONE_STOP 0
|
|
#define TONE_START 1
|
|
|
|
#define DEVICE_EVENT_FROM_TONE (('T' << 24) | ('N' << 16) | ('E' << 8) | '\0')
|
|
|
|
#define TONE_DEFAULT_VOL SYS_MAX_VOL
|
|
|
|
enum {
|
|
IDEX_TONE_NUM_0,
|
|
IDEX_TONE_NUM_1,
|
|
IDEX_TONE_NUM_2,
|
|
IDEX_TONE_NUM_3,
|
|
IDEX_TONE_NUM_4,
|
|
IDEX_TONE_NUM_5,
|
|
IDEX_TONE_NUM_6,
|
|
IDEX_TONE_NUM_7,
|
|
IDEX_TONE_NUM_8,
|
|
IDEX_TONE_NUM_9,
|
|
IDEX_TONE_BT_MODE,
|
|
IDEX_TONE_BT_CONN,
|
|
IDEX_TONE_BT_DISCONN,
|
|
IDEX_TONE_TWS_CONN,
|
|
IDEX_TONE_TWS_DISCONN,
|
|
IDEX_TONE_LOW_POWER,
|
|
IDEX_TONE_POWER_OFF,
|
|
IDEX_TONE_POWER_ON,
|
|
IDEX_TONE_RING,
|
|
IDEX_TONE_MAX_VOL,
|
|
IDEX_TONE_NONE = 0xFF,
|
|
};
|
|
|
|
#define TONE_NUM_0 CONFIG_ROOT_PATH"tone/0.*"
|
|
#define TONE_NUM_1 CONFIG_ROOT_PATH"tone/1.*"
|
|
#define TONE_NUM_2 CONFIG_ROOT_PATH"tone/2.*"
|
|
#define TONE_NUM_3 CONFIG_ROOT_PATH"tone/3.*"
|
|
#define TONE_NUM_4 CONFIG_ROOT_PATH"tone/4.*"
|
|
#define TONE_NUM_5 CONFIG_ROOT_PATH"tone/5.*"
|
|
#define TONE_NUM_6 CONFIG_ROOT_PATH"tone/6.*"
|
|
#define TONE_NUM_7 CONFIG_ROOT_PATH"tone/7.*"
|
|
#define TONE_NUM_8 CONFIG_ROOT_PATH"tone/8.*"
|
|
#define TONE_NUM_9 CONFIG_ROOT_PATH"tone/9.*"
|
|
#define TONE_BT_MODE CONFIG_ROOT_PATH"tone/bt.*"
|
|
#define TONE_BT_CONN CONFIG_ROOT_PATH"tone/bt_conn.*"
|
|
#define TONE_BT_DISCONN CONFIG_ROOT_PATH"tone/bt_dconn.*"
|
|
#define TONE_TWS_CONN CONFIG_ROOT_PATH"tone/tws_conn.*"
|
|
#define TONE_TWS_DISCONN CONFIG_ROOT_PATH"tone/tws_dconn.*"
|
|
#define TONE_LOW_POWER CONFIG_ROOT_PATH"tone/low_power.*"
|
|
#define TONE_POWER_OFF CONFIG_ROOT_PATH"tone/power_off.*"
|
|
#define TONE_POWER_ON CONFIG_ROOT_PATH"tone/power_on.*"
|
|
#define TONE_RING CONFIG_ROOT_PATH"tone/ring.*"
|
|
#define TONE_MAX_VOL CONFIG_ROOT_PATH"tone/vol_max.*"
|
|
#define TONE_MUSIC CONFIG_ROOT_PATH"tone/music.*"
|
|
#define TONE_LINEIN CONFIG_ROOT_PATH"tone/linein.*"
|
|
|
|
#define TONE_REPEAT_BEGIN(a) (char *)((0x1 << 30) | (a & 0xffff))
|
|
#define TONE_REPEAT_END() (char *)(0x2 << 30)
|
|
|
|
#define IS_REPEAT_BEGIN(a) ((((u32)a >> 30) & 0x3) == 0x1 ? 1 : 0)
|
|
#define IS_REPEAT_END(a) ((((u32)a >> 30) & 0x3) == 0x2 ? 1 : 0)
|
|
#define TONE_REPEAT_COUNT(a) (((u32)a) & 0xffff)
|
|
|
|
|
|
void tone_stop();
|
|
int tone_play(const char *name);
|
|
int tone_play_index(u8 index);
|
|
int tone_sin_play(int time_ms, u8 wait);
|
|
int tone_get_status();
|
|
|
|
int tone_file_list_play(const char **list);
|
|
int tone_file_list_stop(void);
|
|
#endif
|