doubao_chat/apps/wifi_story_machine/include/app_music.h

283 lines
11 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _APP_MUSIC_H
#define _APP_MUSIC_H
#include "system/includes.h"
#include "app_config.h"
#include "server/audio_server.h"
#ifdef CONFIG_RESUME_LOCAL_PLAY_FILE
#ifdef CONFIG_APE_DEC_ENABLE
#define BREAKPOINT_DATA_LEN 2040
#elif defined CONFIG_FLAC_DEC_ENABLE
#define BREAKPOINT_DATA_LEN 688
#elif defined CONFIG_M4A_DEC_ENABLE
#define BREAKPOINT_DATA_LEN 536
#endif
#ifndef BREAKPOINT_DATA_LEN
#define BREAKPOINT_DATA_LEN 32
#endif
#endif
struct music_dec_ops {
int (*switch_dir)(int fsel_mode);
int (*switch_file)(int fsel_mode);
int (*dec_file)(void *file, int, void *, int);
int (*dec_play_pause)(u8 notify);
int (*dec_breakpoint)(int);
int (*dec_stop)(int);
int (*dec_volume)(int);
int (*dec_progress)(int);
int (*dec_seek)(int);
int (*dec_status)(int);
};
struct net_breakpoint {
u32 fptr;
u16 url_len;
char *url;
const char *ai_name;
struct audio_dec_breakpoint dec_bp;
};
struct local_breakpoint {
#ifdef CONFIG_RESUME_LOCAL_PLAY_FILE
u32 sclust;
u32 fsize;
u8 data[BREAKPOINT_DATA_LEN];
#endif
struct audio_dec_breakpoint local_bp;
};
enum {
PICTURE_DET_EXIT_MODE = 0,
PICTURE_DET_ENTER_MODE = 1,
};
enum {
NET_MUSIC_MODE = 0, //网络播放模式,包括云识别还有绘本识别
BT_MUSIC_MODE, //蓝牙播放模式,包括媒体播放和打电话
LOCAL_MUSIC_MODE, //本地flash播放
SDCARD0_MUSIC_MODE, //sd0播放
SDCARD1_MUSIC_MODE, //sd1播放
UDISK0_MUSIC_MODE, //usb1.1-u盘播放
UDISK1_MUSIC_MODE, //usb2.0-u盘播放
AUX_MUSIC_MODE, //LINEIN播放模式
FM_MUSIC_MODE, //FM电台播放
SDCARD_MUSIC_MODE = SDCARD0_MUSIC_MODE, //兼容旧版sd卡播放
UDISK_MUSIC_MODE = UDISK0_MUSIC_MODE, //兼容旧版u盘播放
};
enum {
LOOP_PLAY_MODE = 0, //循环播放模式
SINGLE_PLAY_MODE, //单曲播放模式
RANDOM_PLAY_MODE, //随机播放模式
};
#ifdef CONFIG_UI_ENABLE
enum {
UI_MSG_LAST_SONG = 1, //上一首
UI_MSG_PAUSE_START, //播放开
UI_MSG_PAUSE_STOP, //播放关
UI_MSG_NEXT_SONG, //下一首
UI_MSG_SET_VOLUME, //设置音量
UI_MSG_SONG_NAME, //显示歌曲名字
UI_MSG_SD_LOG, //SA卡图标状态
UI_MSG_POWER_LOG, //电池电量
UI_MSG_ALL_TIME, //播放总时间
UI_MSG_CURRENT_TIME, //当前播放时间
UI_MSG_STARTUP_LOG, //开机图片显示
UI_MSG_UPDATE, //ui升级
UI_MSG_SHOW_PERSENT, //ui显示百分比
UI_MSG_UPGRADE_FAIL, //ui升级失败
};
#endif //CONFIG_UI_ENABLE
typedef enum {
/*01*/ APP_LOCAL_PROMPT_POWER_ON = 1, //开机提示音
/*02*/ APP_LOCAL_PROMPT_POWER_OFF, //关机提示音
/*03*/ APP_LOCAL_PROMPT_PLAY_DOMAIN_MUSIC, //领域播放:儿歌
/*04*/ APP_LOCAL_PROMPT_PLAY_DOMAIN_STORY, //领域播放:故事
/*05*/ APP_LOCAL_PROMPT_PLAY_DOMAIN_SINOLOGY, //领域播放:国学
/*06*/ APP_LOCAL_PROMPT_PLAY_DOMAIN_ENGLISH, //领域播放:英语
/*07*/ APP_LOCAL_PROMPT_BT_OPEN, //打开蓝牙
/*08*/ APP_LOCAL_PROMPT_BT_CLOSE, //关闭蓝牙
/*09*/ APP_LOCAL_PROMPT_BT_CONNECTED, //蓝牙连接成功
/*10*/ APP_LOCAL_PROMPT_BT_DISCONNECT, //蓝牙断开连接
/*11*/ APP_LOCAL_PROMPT_WIFI_CONNECTING, //wifi正在连接
/*12*/ APP_LOCAL_PROMPT_WIFI_CONNECT_SUCCESS, //wifi连接成功
/*13*/ APP_LOCAL_PROMPT_WIFI_CONNECT_FAIL, //wifi连接失败
/*14*/ APP_LOCAL_PROMPT_WIFI_DISCONNECT, //wifi断开连接
/*15*/ APP_LOCAL_PROMPT_WIFI_CONFIG_START, //进入配网模式
/*16*/ APP_LOCAL_PROMPT_WIFI_CONFIG_INFO_RECV, //配网信息接收成功
/*17*/ APP_LOCAL_PROMPT_WIFI_FIRST_CONFIG, //提示进行第一次配网
/*18*/ APP_LOCAL_PROMPT_WIFI_CONFIG_TIMEOUT, //配网超时
/*19*/ APP_LOCAL_PROMPT_LIGHT_OPEN, //打开灯光
/*20*/ APP_LOCAL_PROMPT_LIGHT_CLOSE, //关闭灯光
/*21*/ APP_LOCAL_PROMPT_AI_ASR_FAIL, //服务器暂未连接成功,云端识别请求失败
/*22*/ APP_LOCAL_PROMPT_AI_TRANSLATE_FAIL, //服务器暂未连接成功,翻译请求失败
/*23*/ APP_LOCAL_PROMPT_AI_PICTURE_FAIL, //服务器暂未连接成功,绘本请求失败
/*24*/ APP_LOCAL_PROMPT_SEND_MESSAGE_FAIL, //服务器暂未连接成功,留言发送失败
/*25*/ APP_LOCAL_PROMPT_RECV_NEW_MESSAGE, //接收到新的留言信息
/*26*/ APP_LOCAL_PROMPT_MESSAGE_TOO_SHORT, //发送的留言过短
/*27*/ APP_LOCAL_PROMPT_MESSAGE_EMPTY, //没有新的留言信息
/*28*/ APP_LOCAL_PROMPT_LOW_BATTERY_LEVEL, //电池电量不足
/*29*/ APP_LOCAL_PROMPT_LOW_BATTERY_SHUTDOWN, //低电关机
/*30*/ APP_LOCAL_PROMPT_ENTER_AI_TRANSLATE_MODE,//进入翻译模式
/*31*/ APP_LOCAL_PROMPT_ENTER_AI_ASR_MODE, //进入云端识别模式
/*32*/ APP_LOCAL_PROMPT_ENTER_AI_PICTURE_MODE, //进入绘本识别模式
/*33*/ APP_LOCAL_PROMPT_EXIT_AI_PICTURE_MODE, //退出绘本识别模式
/*34*/ APP_LOCAL_PROMPT_PICTURE_RECOGNIZE_FAIL, //绘本识别失败
/*35*/ APP_LOCAL_PROMPT_SERVER_CONNECTED, //服务器连接成功
/*36*/ APP_LOCAL_PROMPT_SERVER_DISCONNECT, //服务器连接断开
/*37*/ APP_LOCAL_PROMPT_ASR_EMPTY, //ASR识别结果为空,提示再说一遍
/*38*/ APP_LOCAL_PROMPT_KWS_ENABLE, //打开打断唤醒功能
/*39*/ APP_LOCAL_PROMPT_KWS_DISABLE, //关闭打断唤醒功能
/*40*/ APP_LOCAL_PROMPT_REVERB_ENABLE, //进入混响模式
/*41*/ APP_LOCAL_PROMPT_REVERB_DISABLE, //退出混响模式
/*42*/ APP_LOCAL_PROMPT_ENTER_NETWORK_MODE, //进入网络媒体播放模式
/*43*/ APP_LOCAL_PROMPT_ENTER_FLASH_MUSIC_MODE, //进入FLASH音乐播放模式
/*44*/ APP_LOCAL_PROMPT_ENTER_SDCARD_MUSIC_MODE,//进入SD卡音乐播放模式
/*45*/ APP_LOCAL_PROMPT_ENTER_UDISK_MUSIC_MODE, //进入U盘音乐播放模式
/*46*/ APP_LOCAL_PROMPT_ENTER_FM_MUSIC_MODE, //进入FM音乐播放模式
/*47*/ APP_LOCAL_PROMPT_PHONE_RING, //来电提示
/*48*/ APP_LOCAL_PROMPT_AI_LISTEN_START, //开始云端识别
/*49*/ APP_LOCAL_PROMPT_AI_LISTEN_STOP, //结束云端识别
/*50*/ APP_LOCAL_PROMPT_VOLUME_SET, //设置音量
/*51*/ APP_LOCAL_PROMPT_VOLUME_FULL, //音量已经设置最大值
/*52*/ APP_LOCAL_PROMPT_DEVICE_BIND_SUCCESS, //设备绑定成功
/*53*/ APP_LOCAL_PROMPT_DEVICE_BIND_FAIL, //设备绑定失败
/*54*/ APP_LOCAL_PROMPT_DEVICE_UNBIND_DEFAULT, //设备解绑
/*55*/ APP_LOCAL_PROMPT_DEVICE_UNBIND_SUCCESS, //设备解绑成功
/*56*/ APP_LOCAL_PROMPT_DEVICE_UNBIND_FAIL, //设备解绑失败
/*57*/ APP_LOCAL_PROMPT_DEVICE_INFO_RESTORE, //恢复出厂设置
/*58*/ APP_LOCAL_PROMPT_DEVICE_RESTART, //设备重启
/*59*/ APP_LOCAL_PROMPT_OTA_UPGRADE_START, //OTA升级开始
/*60*/ APP_LOCAL_PROMPT_OTA_UPGRADE_SUCCESS, //OTA升级成功
/*61*/ APP_LOCAL_PROMPT_OTA_UPGRADE_FAIL, //OTA升级失败
/*62*/ APP_LOCAL_PROMPT_ALARM, //闹铃
/*63*/ APP_LOCAL_PROMPT_SCHEDULE, //时刻表
/*64*/ APP_LOCAL_PROMPT_ENTER_AUX_MUSIC_MODE, //进入AUX音乐播放模式
/*65*/ APP_LOCAL_PROMPT_FORMAT_NOT_SUPPORT, //播放器不支持的媒体格式
/*66*/ APP_LOCAL_PROMPT_SEEK_UNSUPPORTED, //不支持快进快退的本地提示音
/*67*/ APP_LOCAL_PROMPT_ENTER_BT_EMITTER_MODE, //进入蓝牙发射器模式
/*68*/ APP_LOCAL_PROMPT_EXIT_BT_EMITTER_MODE, //退出蓝牙发射器模式
/****/ APP_LOCAL_PROMPT_NUMM,
} APP_LOCAL_PROMPT_TYPE_E;
struct app_music_hdl {
#ifdef CONFIG_NET_ENABLE
u8 rec_again : 1;
u8 net_connected : 1;
u8 picture_det_mode : 1;
u8 wifi_config_state : 1;
u8 ai_connected : 1;
u8 upgrading : 1;
u8 wait_download_suspend : 1;
u8 wechat_flag : 1;
u8 listening : 2;
u8 play_tts : 1;
u8 reconnecting : 1;
u8 net_cfg_fail : 1;
u8 net_connected_frist : 1;
u8 _net_dhcp_ready : 1;
u8 reserve : 1;
u8 voice_mode;
u8 wechat_url_num;
u16 wait_download;
u16 coexistence_timer;
u16 cancel_dns_timer;
int download_ready;
void *net_file;
void *save_url;
const char *url;
const char *ai_name;
struct server *ai_server;
struct net_breakpoint net_bp;
struct list_head wechat_list;
#endif
u8 mode;
u8 last_mode;
u8 led_mode : 4;
u8 last_play_status : 2;
u8 force_switch_file : 1;
u8 bt_auto_play_another_dev : 1;
u8 bt_emitter_enable : 1;
u8 led_breath_on : 1;
u8 mute : 1;
u8 local_play_all : 1; //全盘播放
u8 local_play_mode : 2;
u8 last_local_play_mode : 2;
u8 play_voice_prompt : 1;
u8 bt_music_enable : 1;
u8 reverb_enable : 1;
u8 wakeup_support : 1;
u8 call_flag : 1;
u8 bt_connecting : 1;
u8 key_disable : 2;
u8 light_intensity;
u8 battery_per;
u8 media_dev_online; //bit0:sd_card bit1:udisk bit2:card_reader bit7:first_dec_success
char volume;
volatile u8 run_flag;
u16 wait_sd;
u16 wait_sd1;
u16 wait_udisk;
u16 wait_udisk1;
u16 udisk_upgrade_timer;
u16 udisk1_upgrade_timer;
int seek_step;
int play_time;
int save_play_time;
int total_time;
int save_total_time;
int wait_switch_file;
void *cmp_file;
FILE *local_bp_file;
FILE *file;
int dec_end_args[4];
void *dec_end_file;
void *dec_end_handler;
struct vfscan *fscan;
struct vfscan *dir_list;
struct server *dec_server;
struct server *enc_server;
struct local_breakpoint lbp;
struct audio_dec_breakpoint local_bp;
const char *local_path;
const struct music_dec_ops *dec_ops;
struct server *led_ui;
void *spectrum_fft_hdl;
void *eq_hdl;
void *digital_vol_hdl;
void *cache_buf;
void *virtual_audio;
void *virtual_bass;
cbuffer_t save_cbuf;
OS_SEM w_sem;
OS_SEM r_sem;
#ifdef LOAD_SDRAM_PROMPT_PLAY
u8 sdram_prompt_dir;
u8 sdram_prompt_flag;
u8 last_sdram_prompt_flag;
u8 sdram_save_dec_type[4];
#endif
};
void set_app_music_volume(int volume, u8 mode);
int get_app_music_volume(void);
int get_app_music_playtime(void);
int get_app_music_total_time(void);
int get_app_music_light_intensity(void);
int get_app_music_battery_power(void);
#endif