This commit is contained in:
huxi
2025-12-03 11:12:34 +08:00
parent c23ae4f24c
commit bc195654bf
8163 changed files with 3799544 additions and 92 deletions
@@ -0,0 +1,25 @@
#ifndef __AI_AUDIO_H__
#define __AI_AUDIO_H__
#include "typedef.h"
#include "app_config.h"
enum {
AI_AUDIO_EVENT_ERR_REC_START = 1,
AI_AUDIO_EVENT_ERR_REC_STOP,
AI_AUDIO_EVENT_ERR_REC_DATA,
};
// 初始化
int ai_audio_init(void (* evt_cb)(int event));
// 启动录音
int ai_audio_start(void);
// 停止录音
// cancel1-取消
int ai_audio_stop(int cancel);
#endif//__AI_AUDIO_H__
@@ -0,0 +1,16 @@
#ifndef __AI_INTERACTION_H__
#define __AI_INTERACTION_H__
#include "typedef.h"
#include "app_config.h"
void ai_interaction_init(void);
int ai_interaction_rec_start(void);
int ai_interaction_rec_stop(void);
void ai_interaction_release(void);
#endif//__AI_INTERACTION_H__
@@ -0,0 +1,29 @@
#ifndef __AI_TEXT_H__
#define __AI_TEXT_H__
#include "typedef.h"
#include "app_config.h"
// 初始化
// rx_text()返回true代表外面已经处理,内部不再保存数据
int ai_text_init(int (* rx_text)(u8 ai_text, u8 *data, int len));
// 释放
void ai_text_release(void);
// 启动APP文本转语音
int ai_text_local_to_tts(void);
int ai_text_ai_to_tts(void);
// 临界区保护
void ai_text_enter_critical(void);
void ai_text_exit_critical(void);
// 获取文本,*buf为文本数据,返回值为文本长度。
// 获取文件数据接口及文本数据的使用应该在临界区保护范围内
int ai_text_get_local_text(u8 **buf);
int ai_text_get_ai_text(u8 **buf);
#endif//__AI_TEXT_H__
+112
View File
@@ -0,0 +1,112 @@
#ifndef __ALARM_H__
#define __ALARM_H__
#define RTC_ALM_EN 1
#include "typedef.h"
#include "system/includes.h"
#pragma pack(1)
typedef struct _RTC_TIME {
u16 dYear; ///<年份
u8 bMonth; ///<月份
u8 bDay; ///<天数
u8 bHour; ///<时
u8 bMin; ///<分
u8 bSec; ///<秒
// u8 bWeekday; ///<星期几
} RTC_TIME;
#pragma pack()
typedef struct __ALARM__ {
u8 index;
u8 sw;
u8 mode;
struct sys_time time;
u8 name_len;
} T_ALARM, *PT_ALARM;
typedef struct __alarm_vm__ {
u16 head;
T_ALARM alarm;
} T_ALARM_VM, *PT_ALARM_VM;
enum {
E_ALARM_WRITE_VM_ERR = 0x00,
E_ALARM_WRITE_VM_SUCC,
};
enum {
E_ALARM_MODE_ONCE = 0x00,
E_ALARM_MODE_EVERY_DAY = 0x01,
E_ALARM_MODE_EVERY_MONDAY = 0x02,
E_ALARM_MODE_EVERY_TUESDAY = 0x04,
E_ALARM_MODE_EVERY_WEDNESDAY = 0x08,
E_ALARM_MODE_EVERY_THURSDAY = 0x10,
E_ALARM_MODE_EVERY_FRIDAY = 0x20,
E_ALARM_MODE_EVERY_SATURDAY = 0x40,
E_ALARM_MODE_EVERY_SUNDAY = 0x80,
};
enum {
E_WEEK_MONDAY = 0x01,
E_WEEK_TUESDAY,
E_WEEK_WEDNESDAY,
E_WEEK_THURSDAY,
E_WEEK_FRIDAY,
E_WEEK_SATURDAY,
E_WEEK_SUNDAY,
};
typedef enum {
TIME_MEMBER_YEAR = 0x0,
TIME_MEMBER_MONTH,
TIME_MEMBER_DAY,
TIME_MEMBER_HOUR,
TIME_MEMBER_MIN,
TIME_MEMBER_SEC,
TIME_MEMBER_MAX,
} TIME_MEMBER_ENUM;
enum {
E_SUCCESS = 0x00,
E_FAILURE,
};
/* macro */
#define M_MAX_SNOOZE_ALARM_NUM 1//目前贪睡闹钟只支持一个,该值不能修改
#define M_MAX_ALARM_NUMS 5
#define M_MAX_ALARM_NAME_LEN 32
#define M_MAX_ALARM_INDEX (M_MAX_ALARM_NUMS-1)
#define M_MAX_ALARM_MODE (0xFE)
void alarm_init();
u8 alarm_get_info(PT_ALARM p, u8 index);
void rtc_update_time_api(struct sys_time *time);
void alarm_ring_start();
void alarm_active_flag_set(u8 flag);
u8 alarm_active_flag_get(void);
u8 rtc_calculate_week_val(struct sys_time *data_time);
void rtc_calculate_next_few_day(struct sys_time *data_time, u8 days); //未来几天的日期
u16 month_for_day(u8 month, u16 year);
void *is_sys_time_online();
void alarm_update_info_after_isr(void);
// void alarm_event_handler(struct sys_event *event, void *priv);
u8 alarm_add(PT_ALARM p, u8 index);
void alarm_stop(u8 reason);
void alarm_delete(u8 index);
void alarm_delete_all(void);
u8 alarm_get_active_index(void);
u8 alarm_get_total(void);
u8 get_alarm_number2table(u8 num, u8 *table);
void alarm_print_all_info(void);
void alarm_snooze();
void alm_wakeup_isr(void);
#endif //end of __ALARM_H__
+27
View File
@@ -0,0 +1,27 @@
#ifndef APP_ACTION_H
#define APP_ACTION_H
// #define ACTION_EARPHONE_MAIN 0x0001
// #define ACTION_A2DP_START 0x0002
// #define ACTION_ESCO_START 0x0003
// #define ACTION_BY_KEY_MODE 0x0004
//
// #define ACTION_IDLE_MAIN 0x0010
// #define ACTION_IDLE_POWER_OFF 0x0011
//
// #define ACTION_MUSIC_MAIN 0x0020
// #define ACTION_MUSIC_TWS_RX 0x0021
//
// #define ACTION_PC_MAIN 0x0030
//
// #define APP_NAME_BT "earphone"
// #define APP_NAME_IDLE "idle"
// #define APP_NAME_PC "pc"
// #define APP_NAME_MUSIC "music"
//
//
// #define ACTION_DO_NOTHING 0x0a1b2c02
#endif
+11
View File
@@ -0,0 +1,11 @@
#ifndef _APP_ANCBOX_H_
#define _APP_ANCBOX_H_
#include "typedef.h"
#include "system/event.h"
extern u8 ancbox_get_status(void);
extern void ancbox_clear_status(void);
#endif //_APP_CHARGESTORE_H_
+12
View File
@@ -0,0 +1,12 @@
#ifndef _APP_ANCTOOL_H_
#define _APP_ANCTOOL_H_
#include "typedef.h"
#include "anctool.h"
u8 app_anctool_spp_rx_data(u8 *packet, u16 size);
void app_anctool_spp_connect(void);
void app_anctool_spp_disconnect(void);
#endif //_APP_CHARGESTORE_H_
+36
View File
@@ -0,0 +1,36 @@
#ifndef _APP_CHARGE_H_
#define _APP_CHARGE_H_
#include "typedef.h"
#include "system/event.h"
#define LDO5V_OFF_TYPE_NORMAL_ON 0 //正常拔出开机
#define LDO5V_OFF_TYPE_NORMAL_OFF 1 //正常拔出关机
#define LDO5V_OFF_TYPE_LOWPOWER_OFF 2 //低电关机
#define LDO5V_OFF_TYPE_CHARGESTORE_OFF 3 //智能充电舱关机
struct app_charge_handler {
int (*handler)(int msg, int type);
};
#define APP_CHARGE_HANDLER(charge_handler, prio) \
const struct app_charge_handler charge_handler sec(.app_charge_handler.prio)
extern const struct app_charge_handler app_charge_handler_begin[];
extern const struct app_charge_handler app_charge_handler_end[];
#define for_each_app_charge_handler(p) \
for (p = app_charge_handler_begin; p < app_charge_handler_end; p++)
extern void charge_close_deal(void);
extern void charge_start_deal(void);
extern void ldo5v_keep_deal(void);
extern void charge_full_deal(void);
extern void charge_ldo5v_in_deal(void);
extern void charge_ldo5v_off_deal(void);
extern u8 get_charge_full_flag(void);
extern void app_charge_power_off_keep_mode();
#endif //_APP_CHARGE_H_
+87
View File
@@ -0,0 +1,87 @@
#ifndef _APP_CHARGESTORE_H_
#define _APP_CHARGESTORE_H_
#include "typedef.h"
#include "system/event.h"
//LDOIN升级口命令定义
#define CMD_TWS_CHANNEL_SET 0x01
#define CMD_TWS_REMOTE_ADDR 0x02
#define CMD_TWS_ADDR_DELETE 0x03
#define CMD_BOX_TWS_CHANNEL_SEL 0x04//测试盒获取地址
#define CMD_BOX_TWS_REMOTE_ADDR 0x05//测试盒交换地址
#define CMD_POWER_LEVEL_OPEN 0x06//开盖充电舱报告/获取电量
#define CMD_POWER_LEVEL_CLOSE 0x07//合盖充电舱报告/获取电量
#define CMD_RESTORE_SYS 0x08//恢复出厂设置
#define CMD_ENTER_DUT 0x09//进入测试模式
#define CMD_EX_FIRST_READ_INFO 0x0A//F95读取数据首包信息
#define CMD_EX_CONTINUE_READ_INFO 0x0B//F95读取数据后续包信息
#define CMD_EX_FIRST_WRITE_INFO 0x0C//F95写入数据首包信息
#define CMD_EX_CONTINUE_WRITE_INFO 0x0D//F95写入数据后续包信息
#define CMD_EX_INFO_COMPLETE 0x0E//F95完成信息交换
#define CMD_TWS_SET_CHANNEL 0x0F//F95设置左右声道信息
#define CMD_BOX_UPDATE 0x20//测试盒升级
#define CMD_BOX_MODULE 0x21//测试盒一级命令
#define CMD_SHUT_DOWN 0x80//充电舱关机,充满电关机,或者是低电关机
#define CMD_CLOSE_CID 0x81//充电舱盒盖
#define CMD_ANC_MODULE 0x90//ANC一级命令
#define CMD_FAIL 0xfe//失败
#define CMD_UNDEFINE 0xff//未知命令回复
struct chargestore_event {
u8 event;
u8 size;
u8 *packet;
};
enum {
TWS_CHANNEL_LEFT = 1, //左耳
TWS_CHANNEL_RIGHT, //右耳
};
enum {
TWS_DEL_TWS_ADDR = 1, //删除对箱地址
TWS_DEL_PHONE_ADDR,//删除手机地址
TWS_DEL_ALL_ADDR,//删除手机与对箱地址
};
struct _CHARGE_STORE_INFO {
u8 tws_local_addr[6];
u8 tws_remote_addr[6];
u8 tws_mac_addr[6];
u32 search_aa;
u32 pair_aa;
u8 local_channel;
u16 device_ind;
u16 reserved_data;
} _GNU_PACKED_;
typedef struct _CHARGE_STORE_INFO CHARGE_STORE_INFO;
extern u8 chargestore_get_power_level(void);
extern u8 chargestore_get_power_status(void);
extern u8 chargestore_get_cover_status(void);
extern u8 chargestore_get_sibling_power_level(void);
extern void chargestore_set_bt_init_ok(u8 flag);
extern u8 chargestore_get_earphone_online(void);
extern u8 chargestore_get_earphone_pos(void);
extern int chargestore_sync_chg_level(void);
extern void chargestore_set_power_level(u8 power);
extern void chargestore_set_sibling_chg_lev(u8 chg_lev);
extern void chargestore_set_phone_disconnect(void);
extern void chargestore_set_phone_connect(void);
extern u8 chargestore_check_going_to_poweroff(void);
extern void chargestore_shutdown_reset(void);
extern void testbox_set_testbox_tws_paired(u8 flag);
extern u8 testbox_get_testbox_tws_paired(void);
extern u8 testbox_get_touch_trim_en(u8 *sec);
extern u8 testbox_get_softpwroff_after_paired(void);
void chargestore_set_tws_channel_info(u8 channel);
bool chargestore_set_tws_remote_info(u8 *data, u8 len);
u16 chargestore_get_tws_remote_info(u8 *data);
#endif //_APP_CHARGESTORE_H_
+11
View File
@@ -0,0 +1,11 @@
#ifndef __APP_COMMON_H__
#define __APP_COMMON_H__
#include "typedef.h"
#include "call/call_common.h"
extern u8 app_common_key_var_2_event(u32 key_var);
void set_bt_esco_by_watch(bool flag);
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,45 @@
#ifndef APP_DEFAULT_MSG_HANDLER_H
#define APP_DEFAULT_MSG_HANDLER_H
#include "system/includes.h"
#include "system/event.h"
u8 get_sys_aduio_mute_statu(void);
void app_default_msg_handler(int *msg);
void app_common_key_msg_handler(int *msg);
void app_common_device_event_handler(int *msg);
#endif
+119
View File
@@ -0,0 +1,119 @@
#ifndef APP_MAIN_H
#define APP_MAIN_H
#include "app_msg.h"
#include "app_task.h"
#include "app_mode_manager/app_mode_manager.h"
#include "app_mode.h"
#include "poweroff.h"
#include "app_config.h"
#include "app_music.h"
#include "app_default_msg_handler.h"
#include "bt_background.h"
enum {
SYS_POWERON_BY_KEY = 1,
SYS_POWERON_BY_OUT_BOX,
};
enum {
SYS_POWEROFF_BY_KEY = 1,
SYS_POWEROFF_BY_IN_BOX,
SYS_POWEROFF_BY_TIMEOUT,
};
typedef struct _APP_VAR {
u8 volume_def_state;
s16 bt_volume;
s16 dev_volume;
s16 music_volume;
s16 call_volume;
s16 wtone_volume;
u8 opid_play_vol_sync;
u8 aec_dac_gain;
u8 aec_mic_gain;
u8 aec_mic1_gain;
u8 aec_mic2_gain;
u8 aec_mic3_gain;
u8 rf_power;
u8 goto_poweroff_flag;
u16 goto_poweroff_cnt;
u8 poweroff_sametime_flag;
u8 play_poweron_tone;
u8 remote_dev_company;
u8 siri_stu;
u8 cycle_mode;
u8 have_mass_storage;
u8 poweron_reason;
u8 poweroff_reason;
int auto_stop_page_scan_timer; //用于1拖2时,有一台连接上后,超过三分钟自动关闭Page Scan
u16 auto_off_time;
u16 warning_tone_v;
u16 poweroff_tone_v;
u16 phone_dly_discon_time;
u8 usb_mic_gain;
int wait_timer_do;
u32 start_time;
u8 pitch_mode;
s16 mic_eff_volume;
u8 goto_reboot_flag;
u8 a2dp_source_open_flag;
} APP_VAR;
struct bt_mode_var {
//phone
u8 phone_ring_flag; //来电响铃标志
u8 phone_num_flag; //通话号码获取标志
u8 phone_income_flag; //来电标志
u8 phone_call_dec_begin; //来电esco解码标志
u8 phone_ring_sync_tws; //tws来电铃声同步标志
u8 phone_ring_addr[6]; //响铃的手机地址
u8 inband_ringtone; //带内铃声,表示支不支持手机端铃声
u8 phone_vol; //手机音量
u16 phone_timer_id; //查询手机号码定时器
u8 last_call_type;
u8 income_phone_num[30]; //通话手机号码
u8 income_phone_len; //通话手机号码长度
s32 auto_connection_counter; //回链设备的总时间
int auto_connection_timer; //回连定时器
u8 auto_connection_addr[6]; //回连地址
int tws_con_timer;
u8 tws_start_con_cnt;
u8 tws_conn_state; //tws连接状态
bool search_tws_ing;
int sniff_timer; //进入sniff模式定时器
bool fast_test_mode;
u16 exit_check_timer;
u8 init_start; //蓝牙协议栈已经开始初始化标志位
u8 init_ok; //蓝牙初始化完成标志
u8 exiting; //蓝牙正在退出
u8 wait_exit; //蓝牙等待退出
u32 get_music_player_timer;
u8 ignore_discon_tone; // 1-退出蓝牙模式, 不响应discon提示音
u8 bt_close_bredr; //edr状态
u8 bt_direct_init; //蓝牙直接初始化
background_var background; //蓝牙后台相关变量
u8 smartbox_watch_upgrade_flag; //当手机app与手表传输过程中不能响应通话事件
u8 a2dp_en;// 手表控制a2dp 出声
u8 emitter_or_receiver;
};
typedef struct _BT_USER_COMM_VAR {
} BT_USER_COMM_VAR;
extern APP_VAR app_var;
extern struct bt_mode_var g_bt_hdl;
#define earphone (&bt_user_priv_var)
void app_power_off(void *priv);
void bt_bredr_enter_dut_mode(u8 mode, u8 inquiry_scan_en);
void bt_bredr_exit_dut_mode();
struct app_mode *app_mode_switch_handler(int *msg);
#endif
+14
View File
@@ -0,0 +1,14 @@
#ifndef __APP_MODE_H__
#define __APP_MODE_H__
extern const struct key_remap_table bt_mode_key_table[];
extern const struct key_remap_table spdif_mode_key_table[];
extern const struct key_remap_table fm_mode_key_table[];
extern const struct key_remap_table idle_mode_key_table[];
extern const struct key_remap_table linein_mode_key_table[];
extern const struct key_remap_table music_mode_key_table[];
extern const struct key_remap_table pc_mode_key_table[];
extern const struct key_remap_table record_mode_key_table[];
extern const struct key_remap_table rtc_mode_key_table[];
#endif
+21
View File
@@ -0,0 +1,21 @@
#ifndef APP_MODE_UPDATE_H
#define APP_MODE_UPDATE_H
#include "app_mode_manager/app_mode_manager.h"
struct app_mode *app_enter_update_mode(int arg);
#endif
+288
View File
@@ -0,0 +1,288 @@
#ifndef APP_MSG_H
#define APP_MSG_H
#include "os/os_api.h"
enum {
MSG_FROM_KEY = Q_MSG + 1,
MSG_FROM_TWS,
MSG_FROM_BT_STACK,
MSG_FROM_BT_HCI,
MSG_FROM_EARTCH,
MSG_FROM_BATTERY,
MSG_FROM_CHARGE_STORE,
MSG_FROM_TESTBOX,
MSG_FROM_ANCBOX,
MSG_FROM_TONE,
MSG_FROM_APP,
MSG_FROM_AUDIO,
MSG_FROM_CI_UART,
MSG_FROM_CDC,
MSG_FROM_CDC_DATA,
MSG_FROM_CFGTOOL_TWS_SYNC,
MSG_FROM_DEVICE,
MSG_FROM_RCSP,
MSG_FROM_RCSP_BT,
MSG_FROM_TWS_UPDATE_NEW,
MSG_FROM_CHGBOX,
MSG_FROM_CHGBOX_EAR,
};
struct app_msg_handler {
int owner;
int from;
int (*handler)(int *msg);
};
#define APP_MSG_PROB_HANDLER(msg_handler) \
const struct app_msg_handler msg_handler sec(.app_msg_prob_handler)
extern const struct app_msg_handler app_msg_prob_handler_begin[];
extern const struct app_msg_handler app_msg_prob_handler_end[];
#define for_each_app_msg_prob_handler(p) \
for (p = app_msg_prob_handler_begin; p < app_msg_prob_handler_end; p++)
#define APP_MSG_HANDLER(msg_handler) \
const struct app_msg_handler msg_handler sec(.app_msg_handler)
extern const struct app_msg_handler app_msg_handler_begin[];
extern const struct app_msg_handler app_msg_handler_end[];
#define for_each_app_msg_handler(p) \
for (p = app_msg_handler_begin; p < app_msg_handler_end; p++)
#define APP_KEY_MSG_FROM_TWS 1
#define APP_MSG_KEY 0x010000
#define APP_MSG_FROM_KEY(msg) (msg & APP_MSG_KEY)
#define APP_MSG_KEY_VALUE(msg) ((msg >> 8) & 0xff)
#define APP_MSG_KEY_ACTION(msg) (msg & 0xff)
#define APP_KEY_MSG_REMAP(key_value, key_action) \
(APP_MSG_KEY | (key_value << 8) | key_action)
enum {
APP_MSG_NULL = 0,
APP_MSG_KEY_POWER_ON,
APP_MSG_KEY_POWER_ON_HOLD,
APP_MSG_KEY_POWER_OFF,
APP_MSG_KEY_POWER_OFF_HOLD,
APP_MSG_KEY_POWER_OFF_RELEASE,
APP_MSG_KEY_POWER_OFF_INSTANTLY,
APP_MSG_WRITE_RESFILE_START,
APP_MSG_WRITE_RESFILE_STOP,
APP_MSG_MUSIC_PP,
APP_MSG_MUSIC_PREV,
APP_MSG_MUSIC_NEXT,
APP_MSG_MUSIC_CHANGE_DEV,
APP_MSG_MUSIC_AUTO_NEXT_DEV,
APP_MSG_MUSIC_PLAYE_NEXT_FOLDER,
APP_MSG_MUSIC_PLAYE_PREV_FOLDER,
APP_MSG_MUSIC_PLAY_FIRST,
APP_MSG_MUSIC_PLAY_REC_FOLDER_SWITCH,
APP_MSG_MUSIC_MOUNT_PLAY_START,
APP_MSG_MUSIC_PLAY_START,
APP_MSG_MUSIC_PLAY_START_BY_SCLUST,
APP_MSG_MUSIC_PLAY_START_BY_DEV,
APP_MSG_MUSIC_FR,
APP_MSG_MUSIC_FF,
APP_MSG_MUSIC_DEC_ERR,
APP_MSG_MUSIC_PLAYER_END,
APP_MSG_MUSIC_CHANGE_REPEAT,
APP_MSG_MUSIC_SPEED_UP,
APP_MSG_MUSIC_SPEED_DOWN,
APP_MSG_MUSIC_PLAYER_AB_REPEAT_SWITCH,
APP_MSG_MUSIC_MUTE,
APP_MSG_MUSIC_CHANGE_EQ,
APP_MSG_MUSIC_PLAY_BY_NUM,
APP_MSG_MUSIC_PLAY_START_AT_DEST_TIME,
APP_MSG_CALL_HANGUP,
APP_MSG_CALL_LAST_NO,
APP_MSG_CALL_THREE_WAY_ANSWER1,
APP_MSG_CALL_THREE_WAY_ANSWER2,
APP_MSG_CALL_SWITCH,
APP_MSG_HID_CONTROL,
APP_MSG_OPEN_SIRI,
APP_MSG_VOL_UP,
APP_MSG_VOL_DOWN,
APP_MSG_MAX_VOL,
APP_MSG_MIN_VOL,
APP_MSG_LOW_LANTECY,
APP_MSG_ADD_LINEIN_STREAM, //叠加linein数据流
APP_MSG_POWER_KEY_LONG,
APP_MSG_POWER_KEY_HOLD,
APP_MSG_SYS_MUTE,
APP_MSG_CEC_MUTE,
APP_MSG_CEC_VOL_UP,
APP_MSG_CEC_VOL_DOWN,
APP_MSG_PITCH_UP,
APP_MSG_PITCH_DOWN,
APP_MSG_SYS_TIMER,
APP_MSG_POWER_ON,
APP_MSG_POWER_OFF,
APP_MSG_GOTO_MODE,
APP_MSG_GOTO_NEXT_MODE,
APP_MSG_ENTER_MODE,
APP_MSG_EXIT_MODE,
APP_MSG_BT_GET_CONNECT_ADDR,
APP_MSG_BT_OPEN_PAGE_SCAN,
APP_MSG_BT_CLOSE_PAGE_SCAN,
APP_MSG_BT_ENTER_SNIFF,
APP_MSG_BT_EXIT_SNIFF,
APP_MSG_BT_A2DP_PAUSE,
APP_MSG_BT_A2DP_PLAY,
APP_MSG_BT_A2DP_START,
APP_MSG_BT_PAGE_DEVICE,
APP_MSG_BT_IN_PAIRING_MODE,
APP_MSG_TWS_PAIRED,
APP_MSG_TWS_UNPAIRED,
APP_MSG_TWS_PAIR_SUSS,
APP_MSG_TWS_CONNECTED,
APP_MSG_TWS_WAIT_PAIR, // 等待配对
APP_MSG_TWS_START_PAIR, // 手动发起配对
APP_MSG_TWS_START_CONN, // 开始回连TWS
APP_MSG_TWS_REMOVE_PAIR, // 取消配对
APP_MSG_TWS_START_REMOVE_PAIR, // 如果没有配对则发起配对,如果配对了则取消配对
APP_MSG_TWS_WAIT_CONN, // 等待TWS连接
APP_MSG_TWS_START_PAIR_AND_CONN_PROCESS, // 执行配对和连接的默认流程
APP_MSG_TWS_POWERON_PAIR_TIMEOUT, // TWS开机配对超时
APP_MSG_TWS_POWERON_CONN_TIMEOUT, // TWS开机回连超时
APP_MSG_TWS_START_PAIR_TIMEOUT,
APP_MSG_TWS_START_CONN_TIMEOUT,
APP_MSG_FM_SCAN_ALL,
APP_MSG_FM_SCAN_ALL_DOWN,
APP_MSG_FM_SCAN_ALL_UP,
APP_MSG_FM_SCAN_DOWN,
APP_MSG_FM_SCAN_UP,
APP_MSG_FM_PREV_STATION,
APP_MSG_FM_NEXT_STATION,
APP_MSG_FM_PREV_FREQ,
APP_MSG_FM_NEXT_FREQ,
APP_MSG_LINEIN_START,
APP_MSG_SPDIF_START,
APP_MSG_SPDIF_SWITCH_SOURCE,
APP_MSG_RTC_UP,
APP_MSG_RTC_DOWN,
APP_MSG_RTC_SW,
APP_MSG_RTC_SW_POS,
APP_MSG_REC_PP,
APP_MSG_REC_PAUSE, //暂停录音
APP_MSG_REC_DEL_CUR_FILE, //删除当前录音文件
APP_MSG_ENC_START,
APP_MSG_REVERB_OPNE,
APP_MSG_MIC_VOL_UP,
APP_MSG_MIC_VOL_DOWN,
APP_MSG_MIC_BASS_UP,
APP_MSG_MIC_BASS_DOWN,
APP_MSG_MIC_TREBLE_UP,
APP_MSG_MIC_TREBLE_DOWN,
APP_MSG_CHANGE_MODE,
APP_MSG_SWITCH_SOUND_EFFECT,
APP_MSG_MIC_EFFECT_ON_OFF,
APP_MSG_SWITCH_MIC_EFFECT,
APP_MSG_VOCAL_REMOVE,
//IR_NUM中间不允许插入msg
APP_MSG_IR_NUM0,
APP_MSG_IR_NUM1,
APP_MSG_IR_NUM2,
APP_MSG_IR_NUM3,
APP_MSG_IR_NUM4,
APP_MSG_IR_NUM5,
APP_MSG_IR_NUM6,
APP_MSG_IR_NUM7,
APP_MSG_IR_NUM8,
APP_MSG_IR_NUM9,
//IR_NUM中间不允许插入msg
APP_MSG_VOL_CHANGED,
APP_MSG_MUSIC_FILE_NUM_CHANGED,
APP_MSG_REPEAT_MODE_CHANGED,
APP_MSG_FM_INIT_OK,
APP_MSG_FM_REFLASH,
APP_MSG_FM_STATION,
APP_MSG_MUSIC_PLAY_STATUS,
APP_MSG_LINEIN_PLAY_STATUS,
APP_MSG_INPUT_FILE_NUM,
APP_MSG_RTC_SET,
APP_MSG_EQ_CHANGED,
APP_MSG_MUTE_CHANGED,
APP_MSG_LCD_OK,
APP_MSG_LCD_MENU,
APP_MSG_LCD_UP,
APP_MSG_LCD_DOWN,
APP_MSG_LCD_VOL_INC,
APP_MSG_LCD_VOL_DEC,
APP_MSG_LCD_MODE,
APP_MSG_LCD_POWER,
APP_MSG_LCD_POWER_START,
APP_MSG_SMART_VOICE_EVENT,
APP_MSG_JL_UI_HOME,
APP_MSG_JL_UI_SHORTCUT,
APP_MSG_JL_UI_POWEROFF,
APP_MSG_ALIPAY_A2U,
APP_MSG_ALIPAY_U2A,
APP_MSG_BT_EMITTER_PLAY,
APP_MSG_BT_EMITTER_PAUSE,
APP_MSG_PC_AUDIO_PLAY_OPEN,
APP_MSG_PC_AUDIO_PLAY_CLOSE,
APP_MSG_PC_AUDIO_MIC_OPEN,
APP_MSG_PC_AUDIO_MIC_CLOSE,
};
struct key_remap_table {
u8 key_value;
const int *remap_table;
int (*remap_func)(int *event);
};
int app_send_message(int msg, int arg);
int app_send_message2(int _msg, int arg1, int arg2);
int app_send_message_from(int from, int argc, int *msg);
int app_key_event_remap(const struct key_remap_table *table, int *_event);
int app_get_message(int *msg, int max_num, const struct key_remap_table *key_table);
#endif
+62
View File
@@ -0,0 +1,62 @@
#ifndef CONFIG_APP_MUSIC_H
#define CONFIG_APP_MUSIC_H
#include "system/includes.h"
#include "app_main.h"
#include "music/breakpoint.h"
#include "effect/effects_default_param.h"
#if (TCFG_USB_DM_MULTIPLEX_WITH_SD_DAT0)
#define MUSIC_DEV_ONLINE_START_AFTER_MOUNT_EN 0//如果是u盘和SD卡复用, 这里必须为0, 保证usb枚举的时候解码是停止的
#else
#define MUSIC_DEV_ONLINE_START_AFTER_MOUNT_EN 1
#endif
///模式参数结构体
struct __music_task_parm {
u8 type;
int val;
};
///music模式控制结构体
struct __music {
struct __music_task_parm task_parm;
u16 file_err_counter;//错误文件统计
u8 file_play_direct;//0:下一曲, 1:上一曲
u8 scandisk_break;//扫描设备打断标志
char device_tone_dev[16];
struct __breakpoint *breakpoint;
struct music_player *player_hd;
enum _speed_level speed_mode;
enum _pitch_level pitch_mode;
u8 music_busy;
u8 scandisk_mark;//扫描设备标志
u16 timer;
u8 auto_play: 1;
};
enum {
MUSIC_TASK_START_BY_NORMAL = 0x0,
MUSIC_TASK_START_BY_BREAKPOINT,
MUSIC_TASK_START_BY_SCLUST,
MUSIC_TASK_START_BY_NUMBER,
MUSIC_TASK_START_BY_PATH,
};
void music_task_dev_online_start(char *in_logo);
void music_task_set_parm(u8 type, int val);
void music_player_err_deal(int err);
//获取music app当前播放的设备
char *music_app_get_dev_cur(void);
/*获取music app当前的断点地址*/
struct audio_dec_breakpoint *music_app_get_dbp_addr(void);
int music_app_msg_handler(int *msg);
struct app_mode *app_enter_music_mode(int arg);
struct music_player *music_app_get_cur_hdl(void);
int music_device_msg_handler(int *msg);
#endif
+20
View File
@@ -0,0 +1,20 @@
#ifndef ONLINE_CONFIG_H
#define ONLINE_CONFIG_H
#define DEVICE_EVENT_FROM_CI_UART (('C' << 24) | ('I' << 16) | ('U' << 8) | '\0')
#define DEVICE_EVENT_FROM_CI_TWS (('C' << 24) | ('I' << 16) | ('T' << 8) | '\0')
#define CI_UART 0
#define CI_TWS 1
void ci_data_rx_handler(u8 type);
u32 eq_cfg_sync(u8 priority);
void ci_uart_write(u8 *buf, u16 len);
/**
* @brief 获取工具串口最大支持的协议包大小
*/
u16 get_ci_rx_size();
#endif
+24
View File
@@ -0,0 +1,24 @@
#ifndef APP_POWER_MANAGE_H
#define APP_POWER_MANAGE_H
#include "typedef.h"
#include "system/event.h"
#define LOW_POWER_WARN_TIME (60 * 1000) //低电提醒时间
void check_power_on_voltage(void);
u16 get_vbat_value(void);
u8 get_vbat_percent(void);
void vbat_check_init(void);
void vbat_timer_update(u32 msec);
void vbat_timer_delete(void);
void tws_sync_bat_level(void);
u8 get_tws_sibling_bat_level(void);
u8 get_tws_sibling_bat_persent(void);
bool get_vbat_need_shutdown(void);
u8 get_self_battery_level(void);
void app_power_set_tws_sibling_bat_level(u8 vbat, u8 percent);
#endif
+79
View File
@@ -0,0 +1,79 @@
#ifndef APP_TASK_H
#define APP_TASK_H
#include "typedef.h"
#include "app_mode_manager/app_mode_manager.h"
#include "os/os_type.h"
#define NULL_VALUE 0
enum app_mode_t {
APP_MODE_IDLE = 1,
APP_MODE_UPDATE = 2,
APP_MODE_POWERON = 3,
APP_MODE_POWEROFF = 3,
APP_MODE_BT = 4,
APP_MODE_MUSIC = 5,
APP_MODE_FM = 6,
APP_MODE_RECORD = 7,
APP_MODE_LINEIN = 8,
APP_MODE_RTC = 9,
APP_MODE_PC = 10,
APP_MODE_SPDIF = 11,
APP_MODE_RCSP = 12,
APP_MODE_SMARTBOX = 13,
};
//调整以下索引顺序就可以调整模式顺序
enum app_mode_index {
APP_MODE_BT_INDEX,
APP_MODE_MUSIC_INDEX,
APP_MODE_FM_INDEX,
APP_MODE_RECORD_INDEX,
APP_MODE_LINEIN_INDEX,
APP_MODE_RTC_INDEX,
APP_MODE_PC_INDEX,
APP_MODE_SPDIF_INDEX,
};
//这里是为了临时兼容一些旧版sdk 名称
#define APP_POWERON_TASK APP_MODE_POWERON
#define APP_POWEROFF_TASK APP_MODE_POWEROFF
#define APP_BT_TASK APP_MODE_BT
#define APP_MUSIC_TASK APP_MODE_MUSIC
#define APP_FM_TASK APP_MODE_FM
#define APP_RECORD_TASK APP_MODE_RECORD
#define APP_LINEIN_TASK APP_MODE_LINEIN
#define APP_RTC_TASK APP_MODE_RTC
#define APP_PC_TASK APP_MODE_PC
#define APP_SPDIF_TASK APP_MODE_SPDIF
#define APP_IDLE_TASK APP_MODE_IDLE
#define APP_WATCH_UPDATE_TASK APP_MODE_UPDATE
#define APP_RCSP_ACTION_TASK APP_MODE_RCSP
#define APP_SMARTBOX_ACTION_TASK APP_MODE_SMARTBOX
enum {
APP_MSG_SYS_EVENT = Q_EVENT,
/* 用户自定义消息 */
APP_MSG_SWITCH_TASK = Q_USER + 1,
APP_MSG_USER = Q_USER + 2,
};
extern int app_task_switch_to(u8 app_task, int priv);
extern int app_task_switch_back();
#define app_get_curr_task app_get_current_mode_name
#endif
+23
View File
@@ -0,0 +1,23 @@
#ifndef _APP_TESTBOX_H_
#define _APP_TESTBOX_H_
#include "typedef.h"
#include "system/event.h"
struct testbox_event {
u8 event;
u8 size;
u8 *packet;
};
extern void testbox_set_bt_init_ok(u8 flag);
extern u8 testbox_get_status(void);
extern void testbox_clear_status(void);
extern u8 testbox_get_ex_enter_dut_flag(void);
extern u8 testbox_get_ex_enter_storage_mode_flag(void);
extern u8 testbox_get_connect_status(void);
extern void testbox_clear_connect_status(void);
extern u8 testbox_get_keep_tws_conn_flag(void);
#endif //_APP_TESTBOX_H_
+57
View File
@@ -0,0 +1,57 @@
#ifndef APP_TONE_H
#define APP_TONE_H
#include "tone_player.h"
#include "ring_player.h"
#include "tws_tone_player.h"
enum tone_language {
TONE_ENGLISH,
TONE_CHINESE,
};
struct tone_files {
const char *num[10];
const char *power_on;
const char *power_off;
const char *bt_mode;
const char *bt_connect;
const char *bt_disconnect;
const char *phone_in;
const char *phone_out;
const char *phone_active;
const char *tws_connect;
const char *tws_disconnect;
const char *charge_start;
const char *charge_full;
const char *low_power;
const char *max_vol;
const char *low_latency_in;
const char *low_latency_out;
const char *normal;
const char *anc_on;
const char *anc_trans;
const char *anc_off;
const char *key_tone;
const char *music_mode;
const char *record_mode;
const char *device_sd;
const char *device_udisk;
const char *fm_mode;
const char *linein_mode;
const char *pc_mode;
const char *rtc_mode;
const char *spdif_mode;
};
void tone_language_set(enum tone_language lang);
enum tone_language tone_language_get();
const struct tone_files *get_tone_files();
#endif
+9
View File
@@ -0,0 +1,9 @@
#ifndef __APP_VERSION_H__
#define __APP_VERSION_H__
extern char __VERSION_BEGIN[];
extern char __VERSION_END[];
const char *sdk_version_info_get(void);
#endif
+323
View File
@@ -0,0 +1,323 @@
#ifndef __AUDIO_APP_DEF_H__
#define __AUDIO_APP_DEF_H__
#ifndef TCFG_AUDIO_DISABLE
#define TCFG_AUDIO_DISABLE DISABLE
#endif
#ifndef TCFG_DEC_G729_ENABLE
#define TCFG_DEC_G729_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_MP3_ENABLE
#define TCFG_DEC_MP3_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_WMA_ENABLE
#define TCFG_DEC_WMA_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_WAV_ENABLE
#define TCFG_DEC_WAV_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_FLAC_ENABLE
#define TCFG_DEC_FLAC_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_APE_ENABLE
#define TCFG_DEC_APE_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_M4A_ENABLE
#define TCFG_DEC_M4A_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_ALAC_ENABLE
#define TCFG_DEC_ALAC_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_AMR_ENABLE
#define TCFG_DEC_AMR_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_DTS_ENABLE
#define TCFG_DEC_DTS_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_MIDI_ENABLE
#define TCFG_DEC_MIDI_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_G726_ENABLE
#define TCFG_DEC_G726_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_MTY_ENABLE
#define TCFG_DEC_MTY_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_WTGV2_ENABLE
#define TCFG_DEC_WTGV2_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_SBC_ENABLE
#define TCFG_DEC_SBC_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_PCM_ENABLE
#define TCFG_DEC_PCM_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_CVSD_ENABLE
#define TCFG_DEC_CVSD_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_LC3_ENABLE
#define TCFG_DEC_LC3_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_OGG_VORBIS_ENABLE
#define TCFG_DEC_OGG_VORBIS_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_OGG_OPUS_ENABLE
#define TCFG_DEC_OGG_OPUS_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_AIFF_ENABLE
#define TCFG_DEC_AIFF_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_ID3_V1_ENABLE
#define TCFG_DEC_ID3_V1_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_ID3_V2_ENABLE
#define TCFG_DEC_ID3_V2_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_DECRYPT_ENABLE
#define TCFG_DEC_DECRYPT_ENABLE DISABLE
#endif
#ifndef TCFG_DEC_DECRYPT_KEY
#define TCFG_DEC_DECRYPT_KEY (0x12345678)
#endif
#ifndef TCFG_SPEED_PITCH_ENABLE
#define TCFG_SPEED_PITCH_ENABLE DISABLE
#endif
#if (TCFG_DEC_MP3_ENABLE)
#define DEC_EXT_MP3 "MP1MP2MP3"
#else
#define DEC_EXT_MP3 ""
#endif
#if (TCFG_DEC_WMA_ENABLE)
#define DEC_EXT_WMA "WMA"
#else
#define DEC_EXT_WMA ""
#endif
#if ( TCFG_DEC_WAV_ENABLE || TCFG_DEC_DTS_ENABLE)
#define DEC_EXT_WAV "WAVDTS"
#else
#define DEC_EXT_WAV ""
#endif
#if (TCFG_DEC_FLAC_ENABLE)
#define DEC_EXT_FLAC "FLA"
#else
#define DEC_EXT_FLAC ""
#endif
#if (TCFG_DEC_APE_ENABLE)
#define DEC_EXT_APE "APE"
#else
#define DEC_EXT_APE ""
#endif
#if (TCFG_DEC_M4A_ENABLE)
#define DEC_EXT_M4A "M4AAAC"
#else
#define DEC_EXT_M4A ""
#endif
#if (TCFG_DEC_M4A_ENABLE || TCFG_DEC_ALAC_ENABLE)
#define DEC_EXT_ALAC "MP4"
#else
#define DEC_EXT_ALAC ""
#endif
#if (TCFG_DEC_AMR_ENABLE)
#define DEC_EXT_AMR "AMR"
#else
#define DEC_EXT_AMR ""
#endif
#if (TCFG_DEC_DECRYPT_ENABLE)
#define DEC_EXT_DECRYPT "SMP"
#else
#define DEC_EXT_DECRYPT ""
#endif
#if (TCFG_DEC_MIDI_ENABLE)
#define DEC_EXT_MIDI "MID"
#else
#define DEC_EXT_MIDI ""
#endif
#if (TCFG_DEC_OGG_VORBIS_ENABLE || TCFG_DEC_OGG_OPUS_ENABLE)
#define DEC_EXT_OGG "OGG"
#else
#define DEC_EXT_OGG "OGG"
#endif
#if (TCFG_DEC_OGG_OPUS_ENABLE)
#define DEC_EXT_OGG_OPUS "OPU"
#else
#define DEC_EXT_OGG_OPUS ""
#endif
#if (TCFG_DEC_AIFF_ENABLE)
#define DEC_EXT_AIFF "AIF"
#else
#define DEC_EXT_AIFF ""
#endif
#define DEC_EXT_NAME DEC_EXT_MP3 DEC_EXT_WMA DEC_EXT_WAV DEC_EXT_FLAC DEC_EXT_APE DEC_EXT_M4A DEC_EXT_ALAC DEC_EXT_AMR DEC_EXT_DECRYPT DEC_EXT_MIDI DEC_EXT_OGG DEC_EXT_OGG_OPUS DEC_EXT_AIFF
#ifndef TCFG_ENC_OPUS_ENABLE
#define TCFG_ENC_OPUS_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_ENC_SPEEX_ENABLE
#define TCFG_ENC_SPEEX_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_ENC_LC3_ENABLE
#define TCFG_ENC_LC3_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef MIC_EFFECT_EQ_EN
#define MIC_EFFECT_EQ_EN DISABLE_THIS_MOUDLE
#endif
#ifndef ANC_TRAIN_MODE
#define ANC_TRAIN_MODE ANC_FF_EN
#endif
#ifndef ANC_MULT_ORDER_ENABLE
#define ANC_MULT_ORDER_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_ANC_BOX_ENABLE
#define TCFG_ANC_BOX_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AUDIO_ANC_ACOUSTIC_DETECTOR_EN
#define TCFG_AUDIO_ANC_ACOUSTIC_DETECTOR_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AUDIO_ANC_EAR_ADAPTIVE_EN
#define TCFG_AUDIO_ANC_EAR_ADAPTIVE_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AUDIO_SPATIAL_EFFECT_ENABLE
#define TCFG_AUDIO_SPATIAL_EFFECT_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AUDIO_DECODER_OCCUPY_TRACE
#define TCFG_AUDIO_DECODER_OCCUPY_TRACE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AUDIO_DEC_OUT_TASK
#define TCFG_AUDIO_DEC_OUT_TASK DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_MIXER_CYCLIC_TASK_EN
#define TCFG_MIXER_CYCLIC_TASK_EN DISABLE_THIS_MOUDLE
#endif
#ifndef SUPPORT_CHAGE_AUDIO_CLK
#define SUPPORT_CHAGE_AUDIO_CLK DISABLE_THIS_MOUDLE
#endif
#ifndef VOL_TAB_CUSTOM_EN
#define VOL_TAB_CUSTOM_EN DISABLE_THIS_MOUDLE
#endif
#ifndef SYS_DEFAULT_VOL
#define SYS_DEFAULT_VOL DISABLE_THIS_MOUDLE
#endif
#ifndef AUDIO_ENC_MPT_SELF_ENABLE
#define AUDIO_ENC_MPT_SELF_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef AUDIO_VBASS_LINK_VOLUME
#define AUDIO_VBASS_LINK_VOLUME DISABLE_THIS_MOUDLE
#endif
#ifndef AUDIO_OUTPUT_AUTOMUTE
#define AUDIO_OUTPUT_AUTOMUTE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AEC_SIMPLEX
#define TCFG_AEC_SIMPLEX DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_TONE2TWS_ENABLE
#define TCFG_TONE2TWS_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_DEC2TWS_ENABLE
#define TCFG_DEC2TWS_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CALL_USE_DIGITAL_VOLUME
#define TCFG_CALL_USE_DIGITAL_VOLUME DISABLE_THIS_MOUDLE
#endif
#ifndef MUSIC_DEVICE_TONE_EN
#define MUSIC_DEVICE_TONE_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SOURCE_DEV0_NODE_ENABLE
#define TCFG_SOURCE_DEV0_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SOURCE_DEV1_NODE_ENABLE
#define TCFG_SOURCE_DEV1_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_UART_NODE_ENABLE
#define TCFG_UART_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AUDIO_CVP_DMS_HYBRID_DNS_MODE
#define TCFG_AUDIO_CVP_DMS_HYBRID_DNS_MODE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AUDIO_CVP_DMS_AWN_DNS_MODE
#define TCFG_AUDIO_CVP_DMS_AWN_DNS_MODE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AUDIO_CVP_3MIC_MODE
#define TCFG_AUDIO_CVP_3MIC_MODE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AI_TX_NODE_ENABLE
#define TCFG_AI_TX_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SURROUND_DEMO_NODE_ENABLE
#define TCFG_SURROUND_DEMO_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CHANNEL_SWAP_NODE_ENABLE
#define TCFG_CHANNEL_SWAP_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SINK_DEV0_NODE_ENABLE
#define TCFG_SINK_DEV0_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SINK_DEV1_NODE_ENABLE
#define TCFG_SINK_DEV1_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_DNS_NODE_ENABLE
#define TCFG_DNS_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AGC_NODE_ENABLE
#define TCFG_AGC_NODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_EQ_ENABLE
#define TCFG_EQ_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef AUDIO_SPK_EQ_STERO
#define AUDIO_SPK_EQ_STERO DISABLE_THIS_MOUDLE
#endif
#endif //end of __AUDIO_APP_DEF_H__
+18
View File
@@ -0,0 +1,18 @@
#ifndef AUDIO_MANAGER_H
#define AUDIO_MANAGER_H
enum audio_msg {
AUDIO_EVENT_VOL_MAX = 0x0,
AUDIO_EVENT_VOL_MIN,
AUDIO_EVENT_ANC_ON,
AUDIO_EVENT_ANC_OFF,
AUDIO_EVENT_ANC_TRANS,
AUDIO_EVENT_A2DP_NO_ENERGY,
};
void audio_anc_event_to_user(int mode);
void audio_event_to_user(int event);
#endif
+48
View File
@@ -0,0 +1,48 @@
#ifndef BATTERY_MANAGER_H
#define BATTERY_MANAGER_H
#include "typedef.h"
enum battery_msg {
BAT_MSG_LOWPOWER = 0x20,
BAT_MSG_CHARGE_START,
BAT_MSG_CHARGE_FULL,
BAT_MSG_CHARGE_CLOSE,
BAT_MSG_CHARGE_ERR,
BAT_MSG_CHARGE_LDO5V_OFF,
POWER_EVENT_POWER_NORMAL,
POWER_EVENT_POWER_WARNING,
POWER_EVENT_POWER_LOW,
POWER_EVENT_POWER_CHANGE,
POWER_EVENT_SYNC_TWS_VBAT_LEVEL,
POWER_EVENT_POWER_CHARGE,
};
enum battery_offset_usr {
VBAT_OFFSET_USR_LCD = 0,
VBAT_OFFSET_USR_MAX,
};
extern void batmgr_send_msg(enum battery_msg msg, int arg);
u8 get_cur_battery_level(void);
/**@brief 用户层耗电补偿配置
* @param[in] idx 通道索引
* @param[in] mA 对应通道功耗值
* @return 0
*/
void battery_offset_usr_set(enum battery_offset_usr idx, u8 mA);
#endif
+209
View File
@@ -0,0 +1,209 @@
#ifndef EARPHONE_H
#define EARPHONE_H
#include "system/includes.h"
#include "app_config.h"
///搜索完整结束的事件
#define HCI_EVENT_INQUIRY_COMPLETE 0x01
///连接完成的事件
#define HCI_EVENT_CONNECTION_COMPLETE 0x03
///断开的事件,会有一些错误码区分不同情况的断开
#define HCI_EVENT_DISCONNECTION_COMPLETE 0x05
///连接中请求pin code的事件,给这个事件上来目前是做了一个确认的操作
#define HCI_EVENT_PIN_CODE_REQUEST 0x16
///连接设备发起了简易配对加密的连接
#define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31
///这个事件上来目前是做了一个连接确认的操作
#define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33
///这个事件是需要输入6个数字的连接消息,一般在键盘应用才会有
#define HCI_EVENT_USER_PASSKEY_REQUEST 0x34
///<可用于显示输入passkey位置 value 0:start 1:enrer 2:earse 3:clear 4:complete
#define HCI_EVENT_USER_PRESSKEY_NOTIFICATION 0x3B
///杰理自定义的事件,上电回连的时候读不到VM的地址。
#define HCI_EVENT_VENDOR_NO_RECONN_ADDR 0xF8
///杰理自定义的事件,有测试盒连接的时候会有这个事件
#define HCI_EVENT_VENDOR_REMOTE_TEST 0xFE
///杰理自定义的事件,可以认为是断开之后协议栈资源释放完成的事件
#define BTSTACK_EVENT_HCI_CONNECTIONS_DELETE 0x6D
#define ERROR_CODE_SUCCESS 0x00
///<回连超时退出消息
#define ERROR_CODE_PAGE_TIMEOUT 0x04
///<连接过程中linkkey错误
#define ERROR_CODE_AUTHENTICATION_FAILURE 0x05
///<连接过程中linkkey丢失,手机删除了linkkey,回连就会出现一次
#define ERROR_CODE_PIN_OR_KEY_MISSING 0x06
///<连接超时,一般拿远就会断开有这个消息
#define ERROR_CODE_CONNECTION_TIMEOUT 0x08
///<连接个数超出了资源允许
#define ERROR_CODE_SYNCHRONOUS_CONNECTION_LIMIT_TO_A_DEVICE_EXCEEDED 0x0A
///<回连的时候发现设备还没释放我们这个地址,一般直接断电开机回连会出现
#define ERROR_CODE_ACL_CONNECTION_ALREADY_EXISTS 0x0B
///<需要回连的设备资源不够。有些手机连了一个设备之后就会用这个拒绝。或者其它的资源原因
#define ERROR_CODE_CONNECTION_REJECTED_DUE_TO_LIMITED_RESOURCES 0x0D
///<有些可能只允许指定地址连接的,可能会用这个去拒绝连接。或者我们设备的地址全0或者有问题
#define ERROR_CODE_CONNECTION_REJECTED_DUE_TO_UNACCEPTABLE_BD_ADDR 0x0F
///<连接的时间太长了,手机要断开了。这种容易复现可以联系我们分析
#define ERROR_CODE_CONNECTION_ACCEPT_TIMEOUT_EXCEEDED 0x10
///<经常用的连接断开消息。就认为断开就行
#define ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION 0x13
///<正常的断开消息,本地L2CAP资源释放之后就会发这个值上来了
#define ERROR_CODE_CONNECTION_TERMINATED_BY_LOCAL_HOST 0x16
#define ERROR_CODE_ROLE_CHANGE_NOT_ALLOWED 0x21
///杰理自定义,在回连的过程中使用page cancel命令主动取消成功会有这个命令
#define CUSTOM_BB_AUTO_CANCEL_PAGE 0xFD //// app cancle page
///杰理自定义,库里面有些功能需要停止page的时候会有。比如page的时候来了电话
#define BB_CANCEL_PAGE 0xFE //// bb cancle page
struct sys_event;
#if (TCFG_USER_BLE_ENABLE && (CONFIG_BT_MODE == BT_NORMAL))
#if (BT_AI_SEL_PROTOCOL & LL_SYNC_EN)
int ll_sync_earphone_state_init();
int ll_sync_earphone_state_set_page_scan_enable();
int ll_sync_earphone_state_get_connect_mac_addr();
int ll_sync_earphone_state_cancel_page_scan();
int ll_sync_earphone_state_enter_soft_poweroff();
int ll_sync_earphone_state_tws_init(int paired);
int ll_sync_earphone_state_tws_connected(int first_pair, u8 *comm_addr);
int ll_sync_sys_event_handler_specific(struct sys_event *event);
#define EARPHONE_STATE_INIT() ll_sync_earphone_state_init()
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() ll_sync_earphone_state_set_page_scan_enable()
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() ll_sync_earphone_state_get_connect_mac_addr()
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() ll_sync_earphone_state_cancel_page_scan()
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() ll_sync_earphone_state_enter_soft_poweroff()
#define EARPHONE_STATE_TWS_INIT(a) ll_sync_earphone_state_tws_init(a)
#define EARPHONE_STATE_TWS_CONNECTED(a, b) ll_sync_earphone_state_tws_connected(a,b)
#define SYS_EVENT_HANDLER_SPECIFIC(a) ll_sync_sys_event_handler_specific(a)
#define SYS_EVENT_REMAP(a) 0
#define EARPHONE_STATE_SNIFF(a)
#define EARPHONE_STATE_ROLE_SWITCH(a)
#elif (BT_AI_SEL_PROTOCOL & TUYA_DEMO_EN)
int tuya_earphone_state_init();
int tuya_earphone_state_set_page_scan_enable();
int tuya_earphone_state_get_connect_mac_addr();
int tuya_earphone_state_cancel_page_scan();
int tuya_earphone_state_enter_soft_poweroff();
int tuya_earphone_state_tws_init(int paired);
int tuya_earphone_state_tws_connected(int first_pair, u8 *comm_addr);
int tuya_sys_event_handler_specific(struct sys_event *event);
#define EARPHONE_STATE_INIT() tuya_earphone_state_init()
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() tuya_earphone_state_set_page_scan_enable()
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() tuya_earphone_state_get_connect_mac_addr()
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() tuya_earphone_state_cancel_page_scan()
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() tuya_earphone_state_enter_soft_poweroff()
#define EARPHONE_STATE_TWS_INIT(a) tuya_earphone_state_tws_init(a)
#define EARPHONE_STATE_TWS_CONNECTED(a, b) tuya_earphone_state_tws_connected(a,b)
#define SYS_EVENT_HANDLER_SPECIFIC(a) tuya_sys_event_handler_specific(a)
#define SYS_EVENT_REMAP(a) 0
#define EARPHONE_STATE_SNIFF(a)
#define EARPHONE_STATE_ROLE_SWITCH(a)
#elif TCFG_WIRELESS_MIC_ENABLE
#define EARPHONE_STATE_INIT() do { } while(0)
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() do { } while(0)
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() do { } while(0)
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() do { } while(0)
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() do { } while(0)
#define EARPHONE_STATE_TWS_INIT(a) do { } while(0)
#define EARPHONE_STATE_TWS_CONNECTED(a, b) do { } while(0)
#define SYS_EVENT_HANDLER_SPECIFIC(a) do { } while(0)
#define SYS_EVENT_REMAP(a) 0
#define EARPHONE_STATE_SNIFF(a)
#define EARPHONE_STATE_ROLE_SWITCH(a)
#elif TCFG_WIRELESS_MIC_ENABLE
#define EARPHONE_STATE_INIT() do { } while(0)
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() do { } while(0)
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() do { } while(0)
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() do { } while(0)
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() do { } while(0)
#define EARPHONE_STATE_TWS_INIT(a) do { } while(0)
#define EARPHONE_STATE_TWS_CONNECTED(a, b) do { } while(0)
#define SYS_EVENT_HANDLER_SPECIFIC(a) do { } while(0)
#define SYS_EVENT_REMAP(a) 0
#define EARPHONE_STATE_SNIFF(a)
#define EARPHONE_STATE_ROLE_SWITCH(a)
#else
#define EARPHONE_STATE_INIT() do { } while(0)
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() do { } while(0)
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() do { } while(0)
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() do { } while(0)
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() do { } while(0)
#define EARPHONE_STATE_TWS_INIT(a) do { } while(0)
#define EARPHONE_STATE_TWS_CONNECTED(a, b) do { } while(0)
#define SYS_EVENT_HANDLER_SPECIFIC(a) do { } while(0)
#define SYS_EVENT_REMAP(a) 0
#define EARPHONE_STATE_SNIFF(a)
#define EARPHONE_STATE_ROLE_SWITCH(a)
#endif
#else
#define EARPHONE_STATE_INIT() do { } while(0)
#define EARPHONE_STATE_SET_PAGE_SCAN_ENABLE() do { } while(0)
#define EARPHONE_STATE_GET_CONNECT_MAC_ADDR() do { } while(0)
#define EARPHONE_STATE_CANCEL_PAGE_SCAN() do { } while(0)
#define EARPHONE_STATE_ENTER_SOFT_POWEROFF() do { } while(0)
#define EARPHONE_STATE_TWS_INIT(a) do { } while(0)
#define EARPHONE_STATE_TWS_CONNECTED(a, b) do { } while(0)
#define SYS_EVENT_HANDLER_SPECIFIC(a) do { } while(0)
#define SYS_EVENT_REMAP(a) 0
#define EARPHONE_STATE_SNIFF(a)
#define EARPHONE_STATE_ROLE_SWITCH(a)
#endif
#define BT_RECEIVER_EN 0
#define BT_EMITTER_EN 1
typedef enum {
AVCTP_OPID_VOLUME_UP = 0x41,
AVCTP_OPID_VOLUME_DOWN = 0x42,
AVCTP_OPID_MUTE = 0x43,
AVCTP_OPID_PLAY = 0x44,
AVCTP_OPID_STOP = 0x45,
AVCTP_OPID_PAUSE = 0x46,
AVCTP_OPID_NEXT = 0x4B,
AVCTP_OPID_PREV = 0x4C,
} AVCTP_CMD_TYPE;
extern struct bt_mode_var g_bt_hdl;
extern u8 bt_app_exit_check(void);
extern void bt_mode_app_msg_handler(int *msg);
extern const struct key_remap_table *get_key_remap_table();
int bt_get_low_latency_mode();
void bt_set_low_latency_mode(int enable);
bool is_siri_open();
struct app_mode *app_enter_bt_mode(int arg);
void tone_ring_player_stop();
bool bt_check_already_initializes(void);
u8 is_bredr_close(void);
u8 get_link_inquiry_state();
void bt_search_device(void);
void bt_search_stop(void);
u8 bt_emitter_pp(u8 pp);
void emitter_open(u8 source);
void emitter_close(u8 source);
u8 connect_last_source_device_from_vm();
void bredr_conn_dev(u8 *mac);
void bredr_search_device();
void bt_emitter_start_search_device();
#endif
+67
View File
@@ -0,0 +1,67 @@
#ifndef BT_BACKGROUND_H
#define BT_BACKGROUND_H
#include "generic/typedef.h"
#include "avctp_user.h"
#include "app_msg.h"
typedef enum {
BACKGROUND_EVENT_NO_MACTH = 0, //不需要进行处理
BACKGROUND_SWITCH_TO_BT, //需要进行切换到蓝牙模式
BACKGROUND_PHONE_CALL_SWITCH_TO_BT, //由于电话引起的任务切换
BACKGROUND_EVENT_ORIGINAL_DEAL, //需要再次走原本流程处理
BACKGROUND_A2DP_SLIENCE_DETECT, //后台进行能量检测
} BACKGROUND_EVENT_RESULT;
typedef enum {
BACKGROUND_GOBACK_WITH_MODE_SWITCH, //由模式切换回到蓝牙模式
BACKGROUND_GOBACK_WITH_MUSIC, //由播放歌曲回到蓝牙模式
BACKGROUND_GOBACK_WITH_PHONE, //由通话回到蓝牙模式
BACKGROUND_GOBACK_WITH_OTHER, //其他情况回到蓝牙模式
} BACKGROUND_GOBACK_MODE;
typedef struct _background_var {
BACKGROUND_GOBACK_MODE backmode;
u8 background_working;
u8 close_bt_hw_in_background; // 1-处于后台模式时关闭整个蓝牙,重新进入蓝牙再初始化
u16 goback_timer; // 后台由电话切回蓝牙模式之后需要再电话结束之后返回原来模式的定时器
u8 goback_mode; // 通话结束之后需要切回哪个模式
u8 goback_fitler; // 后台返回过滤,通话可能会有多个消息触发返回,防止多次发消息切模式
bool poweron_need_switch_mode; // 开机如果有需要切换模式需要等待进入蓝牙模式初始化完成之后才切模式
u8 poweron_mode; // 记录poweron任务时需要切换的任务模式,等待蓝牙初始化完成之后才跳转到此模式
struct list_head forward_msg_head;
int (*original_hci_handler)(struct bt_event *); //注册蓝牙模式的消息处理函数给后台调用
int (*original_status_handler)(struct bt_event *); //注册蓝牙模式的消息处理函数给后台调用
} background_var;
struct forward_msg {
int msg_from; // 后台切到前台之后还需要转发的消息来源
int msg[4]; // 后台切换到前台之后需要转发的消息
struct list_head entry;
};
bool bt_background_active(void);
void bt_switch_to_foreground(int action, bool exit_curr_app);
int bt_background_check_if_can_enter();
bool bt_in_background(void);
bool bt_background_msg_forward_filter(int *msg);
void bt_background_init(int (*hci_handler)(struct bt_event *), int (*status_handler)(struct bt_event *));
void bt_background_resume(void);
void bt_background_suspend(void);
void bt_background_set_switch_mode(u8 mode);
bool bt_background_switch_mode_check(void);
void bt_background_switch_mode_after_initializes(void);
#endif
+49
View File
@@ -0,0 +1,49 @@
#ifndef APP_BT_BLE_H
#define APP_BT_BLE_H
#include "typedef.h"
// #define ADV_RSP_PACKET_MAX 31
#define ADV_RAND_MAX 7
// typedef struct {
// u16 pid; //厂家id,默认用杰理的id (0x5d6)
// u8 private_data[17];//厂家自定义数据内容
// } manufacturer_data_t;
enum {
ICON_TYPE_INQUIRY = 0,
ICON_TYPE_CONNECTED,
ICON_TYPE_RECONNECT,
ICON_TYPE_PRE_DEV,
};
enum {
ADV_ST_NULL,
ADV_ST_PRE1,
ADV_ST_PRE2,
ADV_ST_INQUIRY,
ADV_ST_CONN,
ADV_ST_RECONN,
ADV_ST_DISMISS,
ADV_ST_FAST_DISMISS,
ADV_ST_END,
};
extern void bt_ble_icon_set(u8 *info, u8 len);
extern u8 bt_ble_get_adv_enable(void);
extern void bt_ble_icon_open(u8 type);
extern void bt_ble_icon_close(u8 dismiss_flag);
extern void bt_ble_icon_set_comm_address(u8 *addr);
extern void bt_ble_icon_reset(void);
extern void bt_ble_set_control_en(u8 en);
extern void bt_ble_icon_slave_en(u8 en);
extern u8 bt_ble_icon_get_adv_state(void);
extern void bt_ble_icon_role_switch(u8 role);
extern void bt_ble_icon_state_sniff(u8 state);
void bt_make_ble_address(u8 *ble_address, u8 *edr_address);
#endif
+31
View File
@@ -0,0 +1,31 @@
#ifndef BT_EVENT_FUNC_H
#define BT_EVENT_FUNC_H
void bt_send_keypress(u8 key);
void bt_send_pair(u8 en);
void bt_init_ok_search_index(void);
void bt_status_init_ok(void);
void bt_read_remote_name(u8 status, u8 *addr, u8 *name);
void user_get_bt_music_info(u8 type, u32 time, u8 *info, u16 len);
void spp_data_handler(u8 packet_type, u16 ch, u8 *packet, u16 size);
int bt_get_battery_value();
void bt_fast_test_api(void);
void bt_dut_api(u8 param);
void bt_fix_fre_api(u8 fre);
void bt_fix_txrx_api(u8 mode, u8 *mac_addr, u8 fre, u8 packet_type, u16 payload);
void bt_updata_fix_rx_result();
void bt_bredr_exit_dut_mode();
void bt_hci_event_inquiry(struct bt_event *bt);
void bt_discovery_and_connectable_using_loca_mac_addr(u8 inquiry_scan_en, u8 page_scan_en);
void bt_hci_event_disconnect(struct bt_event *bt);
void bt_hci_event_connection_timeout(struct bt_event *bt);
u8 bt_sco_state(void);
void bt_music_player_time_timer_deal(u8 en);
int bt_app_msg_handler(int *msg);
extern void sys_auto_sniff_controle(u8 enable, u8 *addr);
typedef void(*bt_lrc_cb_t)(u8 type, u32 time, u8 *info, u16 len);
void bt_register_lyric_callback(bt_lrc_cb_t cb);
#endif
+17
View File
@@ -0,0 +1,17 @@
#ifndef BT_KEY_FUNC_H
#define BT_KEY_FUNC_H
void bt_key_music_pp();
void bt_key_music_prev();
void bt_key_music_next();
void bt_key_vol_up();
void bt_key_vol_down();
void bt_key_call_last_on(void);
void bt_key_call_hang_up(void);
void bt_key_call_siri(void);
void bt_key_hid_control(void);
void bt_key_call_three_way_answer1(void);
void bt_key_call_three_way_answer2(void);
void bt_key_call_switch(void);
#endif
@@ -0,0 +1,24 @@
#ifndef BT_SLIENCE_DETECT_H
#define BT_SLIENCE_DETECT_H
#include "generic/typedef.h"
enum {
BT_SLIENCE_NO_DETECTING,
BT_SLIENCE_NO_ENERGY,
BT_SLIENCE_HAVE_ENERGY,
};
void bt_start_a2dp_slience_detect(u8 *bt_addr, int ingore_packet_num);
void bt_stop_a2dp_slience_detect(u8 *bt_addr);
int bt_slience_detect_get_result(u8 *bt_addr);
void bt_reset_a2dp_slience_detect();
bool bt_a2dp_slience_detecting();
int bt_slience_get_detect_addr(u8 *bt_addr);
#endif
+212
View File
@@ -0,0 +1,212 @@
#ifndef APP_BT_TWS_H
#define APP_BT_TWS_H
#include "classic/tws_api.h"
#include "classic/tws_event.h"
#include "system/includes.h"
#include "app_config.h"
#define TWS_FUNC_ID_VOL_SYNC TWS_FUNC_ID('V', 'O', 'L', 'S')
#define TWS_FUNC_ID_VBAT_SYNC TWS_FUNC_ID('V', 'B', 'A', 'T')
#define TWS_FUNC_ID_CHARGE_SYNC TWS_FUNC_ID('C', 'H', 'G', 'S')
#define TWS_FUNC_ID_BOX_SYNC TWS_FUNC_ID('B', 'O', 'X', 'S')
#define TWS_FUNC_ID_AI_DMA_RAND TWS_FUNC_ID('A', 'I', 'D', 'M')
#define TWS_FUNC_ID_AI_SPEECH_STOP TWS_FUNC_ID('A', 'I', 'S', 'T')
#define TWS_FUNC_ID_APP_MODE TWS_FUNC_ID('M', 'O', 'D', 'E')
#define TWS_FUNC_ID_AI_SYNC TWS_FUNC_ID('A', 'I', 'P', 'A')
#define TWS_FUNC_ID_EAR_DETECT_SYNC TWS_FUNC_ID('E', 'D', 'E', 'T')
#define TWS_FUNC_ID_LL_SYNC_STATE TWS_FUNC_ID('L', 'L', 'S', 'S')
#define TWS_FUNC_ID_TUYA_STATE TWS_FUNC_ID('T', 'U', 'Y', 'A')
enum {
DEBUG_LINK_PAGE_STATE = 0,
DEBUG_LINK_INQUIRY_STATE,
DEBUG_LINK_PAGE_SCAN_STATE,
DEBUG_LINK_INQUIRY_SCAN_STATE,
DEBUG_LINK_CONNECTION_STATE,
DEBUG_LINK_PAGE_TWS_STATE,
DEBUG_LINK_PAGE_SCAN_TWS_STATE,
};
enum {
BT_TWS_STATUS_INIT_OK = 1,
BT_TWS_STATUS_SEARCH_START,
BT_TWS_STATUS_SEARCH_TIMEOUT,
BT_TWS_STATUS_PHONE_CONN,
BT_TWS_STATUS_PHONE_DISCONN,
};
enum {
SYNC_TONE_TWS_CONNECTED = 1,
SYNC_TONE_PHONE_CONNECTED,
SYNC_TONE_PHONE_DISCONNECTED,
SYNC_TONE_PHONE_NUM,
SYNC_TONE_PHONE_RING,
SYNC_TONE_PHONE_NUM_RING,
SYNC_TONE_MAX_VOL,
SYNC_TONE_POWER_OFF,
SYNC_TONE_ANC_ON,
SYNC_TONE_ANC_OFF,
SYNC_TONE_ANC_TRANS,
SYNC_TONE_EARDET_IN,
SYNC_TONE_VOICE_RECOGNIZE,
};
enum {
SYNC_LED_STA_TWS_CONN,
SYNC_LED_STA_PHONE_CONN,
SYNC_LED_STA_PHONE_DISCONN,
};
enum {
SYNC_CMD_SHUT_DOWN_TIME,
SYNC_CMD_POWER_OFF_TOGETHER,
SYNC_CMD_EARPHONE_CHAREG_START,
SYNC_CMD_IRSENSOR_EVENT_NEAR,
SYNC_CMD_IRSENSOR_EVENT_FAR,
#if(USE_DMA_TONE)
SYNC_CMD_CUT_TWS_TONE, //断开对耳提示音
SYNC_CMD_START_SPEECH_TONE,//AI键提示音
SYNC_CMD_DMA_CONNECTED_ALL_FINISH_TONE, //AI连接成功
SYNC_CMD_NEED_BT_TONE, //需要连接蓝牙
SYNC_CMD_PLEASE_OPEN_XIAODU_TONE,//请打开小度
#endif
#if(RCSP_ADV_EN)
SYNC_CMD_SYNC_ADV_SETTING,
SYNC_CMD_ADV_COMMON_SETTING_SYNC,
SYNC_CMD_APP_RESET_LED_UI,
SYNC_CMD_MUSIC_INFO,
SYNC_CMD_RCSP_AUTH_RES,
SYNC_CMD_MUSIC_PLAYER_STATE,
SYNC_CMD_MUSIC_PLAYER_TIEM_EN,
#endif
SYNC_CMD_OPUS_CLOSE,
};
enum {
TWS_SYNC_VOL = 0,
TWS_SYNC_VBAT,
TWS_SYNC_CHG,
TWS_SYNC_CALL_VOL,
TWS_SYNC_PBG_INFO,
TWS_APP_DATA_SEND,
TWS_AI_DMA_RAND,
TWS_DATA_SEND,
TWS_UPDATE_START,
TWS_UPDATE_RESULT_EXCHANGE,
TWS_UPDATE_RESULT_EXCHANGE_RES,
TWS_UPDATE_OVER,
TWS_UPDATE_OVER_CONFIRM,
TWS_UPDATE_OVER_CONFIRM_REQ,
TWS_UPDATE_OVER_CONFIRM_RES,
TWS_UPDATE_VERIFY,
TWS_AI_A2DP_DROP_FRAME_CTL,
};
struct tws_sync_info_t {
u8 type;
union {
s8 volume_lev;
u16 vbat_lev;
u8 chg_lev;
u8 conn_type;
u8 data[9];
u8 data_large[32];
} u;
};
struct tws_sync_big_info_t {
u8 type;
u8 sub_type;
union {
u8 pbg_info[36];
} u;
};
typedef struct time_stamp_bt_name {
u8 bt_name[32];
u32 time_stamp;
} tws_time_stamp_bt_name;
#define TWS_WAIT_CONN_TIMEOUT (400)
#define TWS_SYNC_TIME_DO 400
// #define TWS_CON_SUPER_TIMEOUT 8000
#define TWS_CON_SEARCH_TIMEOUT 0x07//(n*1.28s)
u8 *tws_set_auto_pair_code(void);
bool bt_tws_is_paired();
char bt_tws_get_local_channel();
int bt_tws_poweron();
int bt_tws_poweroff();
void bt_tws_connect_sibling(int timeout);
int bt_tws_start_search_sibling();
void bt_tws_hci_event_connect();
int bt_tws_phone_connected();
void bt_tws_phone_page_timeout();
void bt_tws_phone_connect_timeout();
void bt_tws_phone_disconnected();
int bt_tws_sync_phone_num(void *priv);
int bt_tws_sync_led_status();
int get_bt_tws_connect_status();
u8 get_bt_tws_discon_dly_state();
void bt_tws_sync_volume();
u8 tws_network_audio_was_started(void);
void tws_network_local_audio_start(void);
u32 bt_tws_future_slot_time(u32 msecs);
void bt_tws_play_tone_at_same_time(int tone_name, int msec);
void bt_tws_led_state_sync(int led_state, int msec);
bool get_tws_sibling_connect_state(void);
void tws_cancle_all_noconn();
void bt_tws_key_msg_sync(int key_msg);
int bt_tws_connction_status_event_handler(int *msg);
void bt_tws_remove_pairs();
void bt_tws_detach_and_remove_pairs(void);
int bt_tws_start_pair(void);
void tws_sniff_controle_check_disable(void);
void tws_sniff_controle_check_enable(void);
void tws_page_scan_deal_by_esco(u8 esco_flag);
void tws_set_search_sbiling_state(u8 state);
u16 bt_tws_get_state(void);
extern void send_page_device_addr_2_sibling();
extern void tws_dual_conn_state_handler();
void bt_page_scan_for_test(u8 inquiry_en);
void set_tws_task_interval(int tws_task_interval);
#endif
+28
View File
@@ -0,0 +1,28 @@
#ifndef __CALL_COMMON_H__
#define __CALL_COMMON_H__
#include "typedef.h"
#include "cat1/cat1_common.h"
void call_dial_number(int number_len, char *number);
void call_ctrl_answer();
void call_ctrl_hangup();
u8 call_ctrl_get_status(void);
char *call_ctrl_get_phone_num(void);
void call_ctrl_set_call_sel(int sel);
int call_ctrl_get_call_sel(void);
void call_ctrl_input_mute(u8 mute);
int call_ctrl_get_input_mute(void);
#endif
+203
View File
@@ -0,0 +1,203 @@
#ifndef __CAT1_COMMON_H__
#define __CAT1_COMMON_H__
#include "typedef.h"
#include "app_config.h"
// #include "ual_gnss_export.h"
// #include "aic_srv_tele_sms.h"
// #include "ual_tele_sms_export.h"
#if TCFG_CAT1_UNISOC_ENABLE
#define SMS_MAX_NUMBER UAL_TELE_SMS_NUMBER_MAX_LEN
#elif TCFG_CAT1_AICXTEK_ENABLE
#define SMS_MAX_NUMBER TS_SMS_NUM_MAX_LEN
#else
#define SMS_MAX_NUMBER 21
#endif
#if TCFG_CAT1_UNISOC_ENABLE
#define SMS_MAX_CONTENT UAL_TELE_SMS_CONTENT_MAX_LEN
#elif TCFG_CAT1_AICXTEK_ENABLE
#define SMS_MAX_CONTENT TS_SMS_PDU_MAX_LEN
#else
#define SMS_MAX_CONTENT 441
#endif
// 升级相关的枚举
enum : u8 {
// 升级任务的消息处理
CAT1_UPDATE_MSG_SUCC = 0,
CAT1_UPDATE_MSG_FAIL,
CAT1_UPDATE_MSG_TIMEOUT,
CAT1_UPDATE_MSG_DATA_TRANS_END,
CAT1_UPDATE_MSG_START,
CAT1_UPDATE_MSG_STARTING, // 5
CAT1_UPDATE_MSG_BT_DISCONNECT,
CAT1_GET_VERSION,
CAT1_UPDATE_MSG_DATA_TRANS,
CAT1_UPDATE_MSG_UPDATE_END,
};
// 模块电源状态
typedef enum cat1_power_state {
CAT1_POWER_STATE_POWEROFF = 0,
CAT1_POWER_STATE_POWERON,
CAT1_POWER_STATE_OTHER = 0xff,
} cat1_power_state_t;
struct s_wifi_info {
int rssi;
char mac_addr[20];
};
//gps相关结构体
struct s_gps_info {
float longitude;
float latitude;
float height;
int ttff_time;
int satellite_num;
// ual_gnss_satellite_info_t satellite_info[UAL_GNSS_SATELLITE_MAX_NUM];
};
//cat1状态结构体
struct s_cat1_status {
int lte_net_enable;
int is_flight_mode;
int lte_call_enable;
int lte_enable;
int lte_can_touch;
int flight_mode_can_touch;
int is_call_register;
};
//短信结构体
struct s_cat1_sms_info {
char number[SMS_MAX_NUMBER];
char content[SMS_MAX_CONTENT];
};
//短信发送结构体
struct input_content_t {
char content[SMS_MAX_CONTENT];
int index;
};
struct cat1_send_sms_info_t {
int input_index;
int offline_show_timer;
int sending_count;
int sending_show_timer;
int timeout_show_timer;
struct input_content_t input_content;
};
bool cat1_call_answer(void); //接听电话
bool cat1_call_hangup(void); //挂断电话
bool cat1_call_number(int number_len, char *number); //拨打电话
bool cat1_get_call_status(u8 *status); //获取通话状态
bool cat1_get_call_phone_num(char **phone_num); //获取电话号码
bool cat1_check_call_enable(void); //检查是否可以进行通话
//4G模块上电
bool cat1_ctrl_poweron(void);
bool cat1_ctrl_poweroff(void);
bool cat1_ctrl_is_poweron(void);
//设置飞行模式
void cat1_set_flight_mode(bool flag);
bool cat1_get_flight_mode(void);
//设置移动网络
int cat1_get_lte_net_onoff(void);
void cat1_set_lte_net_onoff(int flag);
//设置通话能力
int cat1_get_lte_call_onoff(void);
void cat1_set_lte_call_onoff(int flag);
//设置移动网络
int cat1_get_lte_onoff(void);
void cat1_set_lte_onoff(int flag);
char *cat1_get_operator(void); //获取运营商名称
char *cat1_get_smsc(void); //获取短信中心号码
int cat1_send_sms(int number_len, char *number, int content_len, char *content); //发送短信
void cat1_set_send_sms_number(char *number, int offset, int len);
char *cat1_get_send_sms_number(void);
void cat1_set_send_sms_content(char *content, int offset, int len);
char *cat1_get_send_sms_content(void);
void clear_send_sms(void);
void clear_send_sms_content(void);
int cat1_get_signal_level(void); //获取信号强度
//从工模中配置参数
int cat1_get_engineering_mode(void);
void cat1_set_engineering_mode(int flag);
//从设置菜单中配置参数
int cat1_get_set_mode(void);
void cat1_set_set_mode(int flag);
int cat1_get_call_register(void);
void cat1_set_call_register(int flag);
//4G模块是否可以上下电
int cat1_get_lte_can_touch(void);
void cat1_set_lte_can_touch(int flag);
//飞行模式是否可以设置
int cat1_get_flight_can_touch(void);
void cat1_set_flight_can_touch(int flag);
void cat1_init(void); //4G模块初始化
void cat1_close(void); //4G模块关闭
void cat1_audio_close(void);
int cat1_audio_open(void);
int app_cat1_audio_start(void);
int app_cat1_audio_stop(void);
int app_cat1_check_support(void);
bool cat1_call_use_modem_volume(void);
void cat1_call_set_modem_volume(int volume);
int cat1_call_get_modem_volume(void);
void cat1_call_input_mute(u8 mute);
int cat1_call_get_input_mute_status(void);
// 提供给cat1_update.c的接口
cat1_power_state_t cat1_module_get_power_state(void);
u8 cat1_module_get_vender_id(void);
u16 cat1_module_get_version_total_len(void);
u8 cat1_module_pasre_version(u8 *ver_buf);
int cat1_module_fota_start(u32 packet_size, u32 timeout);
int cat1_module_fota_end(void);
int cat1_module_fota_trans_data(u8 *data, u32 len);
u8 cat1_module_can_get_version(void);
int cat1_module_fota_close(void);
u16 cat1_module_get_update_end_timeout(void);
// 提供给其它模块的接口
void cat1_module_update_init(void);
u16 cat1_module_update_basic_info_get(u8 *buf, u16 len);
u16 cat1_module_update_get_update_result_info(u8 *buf, u16 len);
u8 cat1_module_update_start(u32 size);
void cat1_module_post_update_result(u8 type, int result);
u8 cat1_module_is_updating(void);
void cat1_module_update_task_del(u8 result);
#endif
+8
View File
@@ -0,0 +1,8 @@
#ifndef _CVP_USER_H_
#define _CVP_USER_H_
#include "generic/typedef.h"
#include "user_cfg.h"
#endif
@@ -0,0 +1,41 @@
#ifndef DEFAULT_EVENT_HANDLER_H
#define DEFAULT_EVENT_HANDLER_H
#include "system/includes.h"
// void default_event_handler(struct sys_event *event);
#endif
@@ -0,0 +1,24 @@
#ifndef __DEV_MULTIPLEX_API_H__
#define __DEV_MULTIPLEX_API_H__
#include "generic/typedef.h"
#include "app_config.h"
#include "usb/host/usb_host.h"
extern usb_dev g_usb_id;
void mult_sdio_resume();
int mult_sdio_suspend();
int dev_sd_change_usb();
int dev_usb_change_sd();
int mult_sd_online_mount_before(int sd_dev, usb_dev usb_id);
int mult_sd_offline_before(void *logo, usb_dev usb_id);
int mult_sd_online_mount_after(int sd_dev, usb_dev usb_id, int err);
int mult_usb_online_mount_after(usb_dev usb_id, int err);
int mult_usb_mount_before(usb_dev usb_id);
int mult_usb_mount_offline(usb_dev usb_id);
void pc_dm_multiplex_init();
void pc_dm_multiplex_exit();
#endif//__DEV_MULTIPLEX_API_H__
+42
View File
@@ -0,0 +1,42 @@
#ifndef DEV_STATIS_H
#define DEV_STATIS_H
// #include "system/includes.h"
// #include "system/event.h"
int dev_status_event_filter(int *msg);
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef __DUAL_CONN_H__
#define __DUAL_CONN_H__
extern bool check_page_mode_active(void);
#if TCFG_USER_TWS_ENABLE
extern void tws_dual_conn_close();
#else
extern void dual_conn_close();
extern void dual_conn_user_bt_connect(u8 *addr);
#endif
#endif
+11
View File
@@ -0,0 +1,11 @@
#ifndef _FM_H_
#define _FM_H_
#include "system/event.h"
struct app_mode *app_enter_fm_mode(int arg);
int fm_app_msg_handler(int *msg);
#endif
+25
View File
@@ -0,0 +1,25 @@
#ifndef _FM_SEVER__H_
#define _FM_SEVER__H_
void fm_volume_pp(void);//播放暂停
void fm_scan_down();//半自动收台
void fm_scan_up();//半自动收台
void fm_scan_all();//全自动收音
void fm_delete_freq();//删当前频点
void fm_prev_station();//上下台
void fm_next_station();//上下台
void fm_volume_up();//声音调节
void fm_volume_down();//声音调整
void fm_next_freq();//上下频点
void fm_prev_freq();//上下频点
void fm_scan_stop(void);//停止搜索,停止后会自动跳到最后一个台
void fm_api_init();//资源申请,读取vm
void fm_api_release();//释放
u8 fm_get_cur_channel(void);
u16 fm_get_cur_fre(void);
void fm_clear_all_station(); //清全部电台
u8 get_fm_scan_status(void); //获取fm 搜台状态
#endif
+122
View File
@@ -0,0 +1,122 @@
#ifndef _FM_MANAGE_H
#define _FM_MANAGE_H
#include "printf.h"
#include "cpu.h"
#if defined CONFIG_IIC_VERSION2
#include "iic_hw_v2.h"
#else
#include "iic_hw_v1.h"
#endif
#include "iic_soft.h"
#include "timer.h"
#include "app_config.h"
#include "event.h"
#include "system/includes.h"
#include "typedef.h"
#define FREQ_STEP (100)//100 步进
#define REAL_FREQ_MIN (8750)
#define REAL_FREQ_MAX (10800)
#define VIRTUAL_FREQ_STEP (FREQ_STEP/10)
#define REAL_FREQ(x) ((REAL_FREQ_MIN-VIRTUAL_FREQ_STEP) + (x)*VIRTUAL_FREQ_STEP)
#define VIRTUAL_FREQ(x) ((x - (REAL_FREQ_MIN-VIRTUAL_FREQ_STEP))/VIRTUAL_FREQ_STEP)
#define MAX_CHANNEL ((REAL_FREQ_MAX - REAL_FREQ_MIN)/VIRTUAL_FREQ_STEP + 1)
enum {
FM_CUR_FRE = 0,
FM_FRE_DEC = 1,
FM_FRE_INC = 2,
};
typedef struct {
u8(*init)(void *priv);
u8(*close)(void *priv);
u8(*set_fre)(void *priv, u16 fre);
u8(*mute)(void *priv, u8 flag);
u8(*read_id)(void *priv);
u8 logo[20];
} FM_INTERFACE;
struct _fm_dev_info {
u8 iic_hdl;
u8 iic_delay; //这个延时并非影响iic的时钟频率,而是2Byte数据之间的延时
u8 logo[20];
};
struct _fm_dev_platform_data {
u8 iic_hdl;
u8 iic_delay; //这个延时并非影响iic的时钟频率,而是2Byte数据之间的延时
};
extern FM_INTERFACE fm_dev_begin[];
extern FM_INTERFACE fm_dev_end[];
#define REGISTER_FM(fm) \
static FM_INTERFACE fm SEC_USED(.fm_dev)
#define list_for_each_fm(c) \
for (c=fm_dev_begin; c<fm_dev_end; c++)
#define FM_DEV_PLATFORM_DATA_BEGIN(data) \
static const struct _fm_dev_platform_data data = {
#define FM_DEV_PLATFORM_DATA_END() \
};
extern u8 fm_dev_iic_write(u8 w_chip_id, u8 register_address, u8 *buf, u32 data_len);
extern u8 fm_dev_iic_readn(u8 r_chip_id, u8 register_address, u8 *buf, u8 data_len);
extern struct _fm_dev_info t_fm_dev_info;
int fm_manage_check_online();
int fm_manage_init();
int fm_manage_start();
bool fm_manage_set_fre(u16 fre);
u16 fm_manage_get_fre();
void fm_manage_close(void);
void fm_manage_mute(u8 mute);
int fm_dev_init(void *_data);
void fm_mutex_init(void *priv);
void fm_mutex_stop(void *priv);
extern void fm_inside_trim(u32 freq);
extern void save_scan_freq_org(u32 freq);
//内部收音优化使用
extern int fm_get_device_en(char *logo);
extern void fm_file_set_logo(char *logo, int len);
extern int fm_player_open(void);
#if 0
#define iic_init(iic, config) hw_iic_init(iic, config)
#define iic_deinit(iic) hw_iic_deinit(iic)
#define iic_start(iic) hw_iic_start(iic)
#define iic_stop(iic) hw_iic_stop(iic)
#define iic_tx_byte(iic, byte) hw_iic_tx_byte(iic, byte)
#define iic_rx_byte(iic, ack, err) hw_iic_rx_byte(iic, ack, err)
#define iic_read_buf(iic, buf, len) hw_iic_read_buf(iic, buf, len)
#define iic_write_buf(iic, buf, len) hw_iic_write_buf(iic, buf, len)
#define iic_suspend(iic) hw_iic_suspend(iic)
#define iic_resume(iic) hw_iic_resume(iic)
#else
#define iic_init(iic, config) soft_iic_init(iic, config)
#define iic_deinit(iic) soft_iic_deinit(iic)
#define iic_start(iic) soft_iic_start(iic)
#define iic_stop(iic) soft_iic_stop(iic)
#define iic_tx_byte(iic, byte) soft_iic_tx_byte(iic, byte)
#define iic_rx_byte(iic, ack, err) soft_iic_rx_byte(iic, ack, err)
#define iic_read_buf(iic, buf, len) soft_iic_read_buf(iic, buf, len)
#define iic_write_buf(iic, buf, len) soft_iic_write_buf(iic, buf, len)
#define iic_suspend(iic) soft_iic_suspend(iic)
#define iic_resume(iic) soft_iic_resume(iic)
#endif
#endif
+34
View File
@@ -0,0 +1,34 @@
#ifndef _FM_RW_H_
#define _FM_RW_H_
#include "fm_manage.h"
#define MEM_FM_LEN ((MAX_CHANNEL+7)/8)
#define FM_VM_MASK (0x1234+MAX_CHANNEL)//自动mask
#pragma pack(1)//不平台对齐编译
typedef struct _FM_INFO_ {
u16 mask;
u16 curFreq;//x-874
u16 curChanel;//1~206
u16 total_chanel;
u8 dat[MEM_FM_LEN];
} FM_INFO;
#pragma pack()
u16 get_total_mem_channel(void);//获取记忆有效台数
u16 get_channel_via_fre(u16 fre);//输入真实频率
u16 get_fre_via_channel(u16 channel);
void clear_all_fm_point(void);
void save_fm_point(u16 fre);//输入真实频率
void delete_fm_point(u16 fre);//输入虚拟频率
void fm_read_info(FM_INFO *info);
void fm_save_info(FM_INFO *info);
void fm_last_ch_save(u16 channel);
void fm_last_freq_save(u16 freq);//输入真实频率
void fm_vm_check(void);
#endif
+19
View File
@@ -0,0 +1,19 @@
#ifndef APP_MODE_IDLE_H
#define APP_MODE_IDLE_H
enum {
IDLE_MODE_CHARGE,
IDLE_MODE_PLAY_POWEROFF,
IDLE_MODE_WAIT_POWEROFF,
};
extern unsigned char goto_poweroff_first_flag;
extern int idle_app_msg_handler(int *msg);
extern struct app_mode *app_enter_idle_mode(int arg);
extern void idle_key_poweron_deal(int msg);
extern void power_off_deal(int msg);
extern void power_off_instantly();
#endif
+100
View File
@@ -0,0 +1,100 @@
#ifndef __KEY_EVENT_DEAL_H__
#define __KEY_EVENT_DEAL_H__
#include "typedef.h"
#include "bt_profile_cfg.h"
#if 1
enum {
KEY_POWER_ON = 0x80,
KEY_POWEROFF,
KEY_POWEROFF_HOLD,
KEY_MUSIC_PP,
KEY_MUSIC_PREV,
KEY_MUSIC_NEXT,
KEY_VOL_UP,
KEY_VOL_DOWN,
KEY_CALL_LAST_NO,
KEY_CALL_HANG_UP,
KEY_CALL_ANSWER,
KEY_CALL_ANSWER_UP,
KEY_OPEN_SIRI,
KEY_HID_CONTROL,
KEY_LOW_LANTECY,
KEY_MODE_SWITCH,
KEY_EQ_MODE,
KEY_THIRD_CLICK,
KEY_MUSIC_FF,
KEY_MUSIC_FR,
KEY_MUSIC_PLAYER_START,
KEY_MUSIC_PLAYER_END,
KEY_MUSIC_PLAYER_DEC_ERR,
KEY_MUSIC_DEVICE_TONE_END,
KEY_MUSIC_PLAYER_QUIT,
KEY_MUSIC_PLAYER_AUTO_NEXT,
KEY_MUSIC_PLAYER_PLAY_FIRST,
KEY_MUSIC_PLAYER_PLAY_LAST,
KEY_MUSIC_CHANGE_REPEAT,
KEY_MUSIC_CHANGE_DEV,
KEY_MUSIC_AUTO_NEXT_DEV,
KEY_MUSIC_CHANGE_DEV_REPEAT,
KEY_MUSIC_SET_PITCH,
KEY_MUSIC_SET_SPEED,
KEY_MUSIC_PLAYE_BY_DEV_FILENUM,
KEY_MUSIC_PLAYE_BY_DEV_SCLUST,
KEY_MUSIC_PLAYE_BY_DEV_PATH,
KEY_MUSIC_DELETE_FILE,
KEY_MUSIC_PLAYE_NEXT_FOLDER,
KEY_MUSIC_PLAYE_PREV_FOLDER,
KEY_MUSIC_PLAYE_REC_FOLDER_SWITCH,
KEY_MUSIC_PLAYER_AB_REPEAT_SWITCH,
KEY_SEND_SPEECH_START,
KEY_SEND_SPEECH_STOP,
#if (BT_FOR_APP_EN)
KEY_AI_DEC_SUSPEND,
KEY_AI_DEC_RESUME,
#endif
KEY_EARTCH_ENABLE,
KEY_EARTCH_DISABLE,
KEY_ANC_SWITCH,
KEY_MUSIC_EFF, //播歌音效切换
KEY_PHONE_PITCH,//通话上行 变声切换
MSG_HALF_SECOND,
KEY_CLEAN_PHONE_INFO,
KEY_CLEAN_PHONE_INFO_HOLD,
KEY_CLEAN_PHONE_INFO_UP,
KEY_BOX_POWER_CLICK,
KEY_BOX_POWER_LONG,
KEY_BOX_POWER_HOLD,
KEY_BOX_POWER_UP,
KEY_BOX_POWER_DOUBLE,
KEY_BOX_POWER_THREE,
KEY_BOX_POWER_FOUR,
KEY_BOX_POWER_FIVE,
KEY_NULL = 0xFF,
};
#endif
enum {
ONE_KEY_CTL_NEXT_PREV = 1,
ONE_KEY_CTL_VOL_UP_DOWN,
};
enum {
EARTCH_STATE_IN,
EARTCH_STATE_OUT,
EARTCH_STATE_TRIM_OK,
EARTCH_STATE_TRIM_ERR,
};
// extern int app_earphone_key_event_handler(struct sys_event *);
#endif
+24
View File
@@ -0,0 +1,24 @@
#ifndef _LINEIN_H_
#define _LINEIN_H_
#include "system/event.h"
int linein_device_event_handler(struct sys_event *event);
void app_linein_tone_play_start(u8 mix);
int linein_start(void);
void linein_stop(void);
void linein_key_vol_up();
void linein_key_vol_down();
u8 linein_get_status(void);
int linein_volume_pp(void);
struct app_mode *app_enter_linein_mode(int arg);
int linein_app_msg_handler(int *msg);
#endif
+23
View File
@@ -0,0 +1,23 @@
#ifndef _LINEIN_DEV_H_
#define _LINEIN_DEV_H_
#include "typedef.h"
#include "device/device.h"
struct linein_dev_data {
u8 enable;
u8 port;
u8 up : 1;
u8 down : 1;
u32 ad_channel;
u16 ad_vol;
};
u8 linein_is_online(void);
void linein_set_online(u8 online);
void linein_detect_timer_add();
void linein_detect_timer_del();
extern const struct device_operations linein_dev_ops;
#endif
+9
View File
@@ -0,0 +1,9 @@
#ifndef LOW_LATENCY_H
#define LOW_LATENCY_H
void bt_set_low_latency_mode(int enable);
int bt_get_low_latency_mode(void);
#endif
+750
View File
@@ -0,0 +1,750 @@
#ifndef MACRO_DEFAULT_H
#define MACRO_DEFAULT_H
//*********************************************************************************//
// CACHE CONFIG //
//*********************************************************************************//
#ifndef TCFG_FREE_ICACHE_WAY
#define TCFG_FREE_ICACHE_WAY 0
#endif
#ifndef TCFG_FREE_DCACHE_WAY
#define TCFG_FREE_DCACHE_WAY 0
#endif
#ifndef TCFG_ICACHE_RUN_DATA_CODE
#define TCFG_ICACHE_RUN_DATA_CODE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_ICACHE_RUN_BT_STATIC_RAM
#define TCFG_ICACHE_RUN_BT_STATIC_RAM DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_DCACHE_RUN_GPU_BUF
#define TCFG_DCACHE_RUN_GPU_BUF DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_DCACHE_RUN_BT_STATIC_RAM
#define TCFG_DCACHE_RUN_BT_STATIC_RAM DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_ICACHE_RUN_GPU_BUF
#define TCFG_ICACHE_RUN_GPU_BUF DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_ICACHE_DYNAMIC_SWITCH
#define TCFG_ICACHE_DYNAMIC_SWITCH DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_ICACHE_RUN_FTL_BUF
#define TCFG_ICACHE_RUN_FTL_BUF DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// KEY CONFIG //
//*********************************************************************************//
#ifndef MULT_KEY_ENABLE
#define MULT_KEY_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CTMU_TOUCH_KEY_ENABLE
#define TCFG_CTMU_TOUCH_KEY_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_TOUCH_KEY_ENABLE
#define TCFG_TOUCH_KEY_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_UART_KEY_ENABLE
#define TCFG_UART_KEY_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_RDEC_KEY_ENABLE
#define TCFG_RDEC_KEY_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_ADKEY_RTCVDD_ENABLE
#define TCFG_ADKEY_RTCVDD_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_EAR_DETECT_ENABLE
#define TCFG_EAR_DETECT_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_KEY_TONE_EN
#define TCFG_KEY_TONE_EN DISABLE_THIS_MOUDLE
#endif
#ifndef MOUSE_KEY_SCAN_MODE
#define MOUSE_KEY_SCAN_MODE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// SD CONFIG //
//*********************************************************************************//
#ifndef TCFG_SD0_ENABLE
#define TCFG_SD0_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SD1_ENABLE
#define TCFG_SD1_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_IO_MULTIPLEX_WITH_SD
#define TCFG_IO_MULTIPLEX_WITH_SD DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SD_ALWAY_ONLINE_ENABLE
#define TCFG_SD_ALWAY_ONLINE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SD0_SD1_USE_THE_SAME_HW
#define TCFG_SD0_SD1_USE_THE_SAME_HW DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// USB CONFIG //
//*********************************************************************************//
#ifndef TCFG_USB_SLAVE_USER_HID
#define TCFG_USB_SLAVE_USER_HID DISABLE_THIS_MOUDLE
#endif
#ifndef USB_EP_PROTECT
#define USB_EP_PROTECT DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// FLASH CONFIG //
//*********************************************************************************//
#ifndef FLASH_INSIDE_REC_ENABLE
#define FLASH_INSIDE_REC_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_NOR_FAT
#define TCFG_NOR_FAT DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_NOR_FS
#define TCFG_NOR_FS DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_NOR_VM
#define TCFG_NOR_VM DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_NOR_REC
#define TCFG_NOR_REC DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_VIR_UDISK_ENABLE
#define TCFG_VIR_UDISK_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_VIRFAT_FLASH_ENABLE
#define TCFG_VIRFAT_FLASH_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_NANDFLASH_DEV_ENABLE
#define TCFG_NANDFLASH_DEV_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_NORFLASH_SFC_DEV_ENABLE
#define TCFG_NORFLASH_SFC_DEV_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_UI_RES_USE_FAT_FTL_ENABLE
#define TCFG_UI_RES_USE_FAT_FTL_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_NORFLASH_DEV_ENABLE
#define TCFG_NORFLASH_DEV_ENABLE DISABLE
#endif
#ifndef TCFG_NANDFLASH_UI_FAT_ENABLE
#define TCFG_NANDFLASH_UI_FAT_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_NANDFLASH_UI_FAT_LOGO
#define TCFG_NANDFLASH_UI_FAT_LOGO "UI_FAT"
#endif
//*********************************************************************************//
// PSRAM CONFIG //
//*********************************************************************************//
#ifndef TCFG_PSRAM_DEV_ENABLE
#define TCFG_PSRAM_DEV_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_PSRAM_UI_EFFECT
#define TCFG_PSRAM_UI_EFFECT DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// DEV CONFIG //
//*********************************************************************************//
#ifndef TCFG_RECORD_FOLDER_DEV_ENABLE
#define TCFG_RECORD_FOLDER_DEV_ENABLE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// DRIVER CONFIG //
//*********************************************************************************//
#ifndef TCFG_UART0_ENABLE
#define TCFG_UART0_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef NTC_DET_EN
#define NTC_DET_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BACKLIGHT_PWM_MODE
#define TCFG_BACKLIGHT_PWM_MODE 0
#endif
#ifndef TCFG_GX8002_NPU_ENABLE
#define TCFG_GX8002_NPU_ENABLE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// CHARGE CONFIG //
//*********************************************************************************//
#ifndef TCFG_CHARGESTORE_ENABLE
#define TCFG_CHARGESTORE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CHARGE_BOX_ENABLE
#define TCFG_CHARGE_BOX_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CHARGE_OFF_POWERON_EN
#define TCFG_CHARGE_OFF_POWERON_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CHARGE_BOX_UI_ENABLE
#define TCFG_CHARGE_BOX_UI_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CHARGE_MOUDLE_OUTSIDE
#define TCFG_CHARGE_MOUDLE_OUTSIDE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SHORT_PROTECT_ENABLE
#define TCFG_SHORT_PROTECT_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_WIRELESS_ENABLE
#define TCFG_WIRELESS_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_LDO_DET_ENABLE
#define TCFG_LDO_DET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CURRENT_LIMIT_ENABLE
#define TCFG_CURRENT_LIMIT_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_TEMPERATURE_ENABLE
#define TCFG_TEMPERATURE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_HANDSHAKE_ENABLE
#define TCFG_HANDSHAKE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_USB_KEY_UPDATE_ENABLE
#define TCFG_USB_KEY_UPDATE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_USB_KEY_UPDATE_ENABLE
#define TCFG_USB_KEY_UPDATE_ENABLE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// OTA CONFIG //
//*********************************************************************************//
#ifndef CONFIG_UPDATE_JUMP_TO_MASK
#define CONFIG_UPDATE_JUMP_TO_MASK DISABLE_THIS_MOUDLE
#endif
#ifndef CONFIG_REUSABLE_RESERVE
#define CONFIG_REUSABLE_RESERVE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// PRODUCT CONFIG //
//*********************************************************************************//
#ifndef PRODUCT_TEST_ENABLE
#define PRODUCT_TEST_ENABLE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// MODE & USER CONFIG //
//*********************************************************************************//
#ifndef TCFG_APP_RTC_EN
#define TCFG_APP_RTC_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_APP_RECORD_EN
#define TCFG_APP_RECORD_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_APP_FM_EMITTER_EN
#define TCFG_APP_FM_EMITTER_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_FM_INSIDE_ENABLE
#define TCFG_FM_INSIDE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef SOUNDCARD_ENABLE
#define SOUNDCARD_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_DATA_STORAGE_ENABLE
#define TCFG_DATA_STORAGE_ENABLE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// pay 配置 //
//*********************************************************************************//
#ifndef TCFG_PAY_ALIOS_ENABLE
#define TCFG_PAY_ALIOS_ENABLE 0
#endif
#ifndef TCFG_PAY_TRANSITCODE_ENABLE
#define TCFG_PAY_TRANSITCODE_ENABLE 0
#endif
#ifndef TCFG_PAY_ALIOS_WAY_T_HEAD
#define TCFG_PAY_ALIOS_WAY_T_HEAD 1
#endif
#ifndef TCFG_PAY_ALIOS_WAY_SEL
#define TCFG_PAY_ALIOS_WAY_SEL 0
#endif
#ifndef TCFG_PAY_ALIOS_PRODUCT_MODEL
#define TCFG_PAY_ALIOS_PRODUCT_MODEL " "
#endif
#ifndef ALIPAY_SE_USE_RESET_PIN
#define ALIPAY_SE_USE_RESET_PIN 0
#endif
//*********************************************************************************//
// UI CONFIG //
//*********************************************************************************//
#ifndef TCFG_LCD_SPI_RM69330_ENABLE
#define TCFG_LCD_SPI_RM69330_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_LCD_SPI_SH8601A_ENABLE
#define TCFG_LCD_SPI_SH8601A_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_LCD_SPI_ST7789V_ENABLE
#define TCFG_LCD_SPI_ST7789V_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_LCD_SPI_ST7789_BOE1_54_ENABLE
#define TCFG_LCD_SPI_ST7789_BOE1_54_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SIMPLE_LCD_ENABLE
#define TCFG_SIMPLE_LCD_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_TP_SLEEP_EN
#define TCFG_TP_SLEEP_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_LUA_ENABLE
#define TCFG_LUA_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_UI_SHUT_DOWN_TIME
#define TCFG_UI_SHUT_DOWN_TIME DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_TP_BL6133_ENABLE
#define TCFG_TP_BL6133_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef LCD_POWER_DOWN_EN
#define LCD_POWER_DOWN_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TP_POWER_DOWN_EN
#define TP_POWER_DOWN_EN DISABLE_THIS_MOUDLE
#endif
#ifndef CONFIG_LCD_BUF_STATIC_RAM_LEN
#define CONFIG_LCD_BUF_STATIC_RAM_LEN 0
#endif
//*********************************************************************************//
// 第三方CONFIG //
//*********************************************************************************//
#ifndef TCFG_PAY_ALIOS_ENABLE
#define TCFG_PAY_ALIOS_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_PAY_TRANSITCODE_ENABLE
#define TCFG_PAY_TRANSITCODE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_LP_NFC_TAG_ENABLE
#define TCFG_LP_NFC_TAG_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef USE_DMA_TONE
#define USE_DMA_TONE DISABLE_THIS_MOUDLE
#endif
#ifndef AI_APP_PROTOCOL
#define AI_APP_PROTOCOL DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_AI_INTERACTION_ENABLE
#define TCFG_AI_INTERACTION_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_IFLYTEK_ENABLE
#define TCFG_IFLYTEK_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_APP_CAT1_EN
#define TCFG_APP_CAT1_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CAT1_AICXTEK_ENABLE
#define TCFG_CAT1_AICXTEK_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CAT1_UNISOC_ENABLE
#define TCFG_CAT1_UNISOC_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef USE_DMA_UART_TEST
#define USE_DMA_UART_TEST DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// sensor CONFIG //
//*********************************************************************************//
#ifndef TCFG_GSENSOR_ENABLE
#define TCFG_GSENSOR_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_HR_SENSOR_ENABLE
#define TCFG_HR_SENSOR_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_SPO2_SENSOR_ENABLE
#define TCFG_SPO2_SENSOR_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_IRSENSOR_ENABLE
#define TCFG_IRSENSOR_ENABLE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// BT CONFIG //
//*********************************************************************************//
#ifndef CONFIG_DOUBLE_BANK_ENABLE
#define CONFIG_DOUBLE_BANK_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BT_BLE_ADV_ENABLE
#define TCFG_BT_BLE_ADV_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_USER_EMITTER_ENABLE
#define TCFG_USER_EMITTER_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef USER_SUPPORT_PROFILE_PBAP
#define USER_SUPPORT_PROFILE_PBAP DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BT_SUPPORT_MAP
#define TCFG_BT_SUPPORT_MAP DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_USER_BT_CLASSIC_ENABLE
#define TCFG_USER_BT_CLASSIC_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef SMART_BOX_EN
#define SMART_BOX_EN DISABLE_THIS_MOUDLE
#endif
#ifndef FINDMY_EN
#define FINDMY_EN DISABLE_THIS_MOUDLE
#endif
#ifndef LEA_BIG_CTRLER_TX_EN
#define LEA_BIG_CTRLER_TX_EN DISABLE_THIS_MOUDLE
#endif
#ifndef LEA_BIG_CTRLER_RX_EN
#define LEA_BIG_CTRLER_RX_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_EARPHONE_PROTOCOL
#define TCFG_EARPHONE_PROTOCOL DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BLE_DEMO_SELECT
#define TCFG_BLE_DEMO_SELECT DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_MULTI_BLE_EN
#define RCSP_MULTI_BLE_EN DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_BTMATE_EN
#define RCSP_BTMATE_EN DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_DEVICE_STATUS_ENABLE
#define RCSP_DEVICE_STATUS_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_BT_CONTROL_ENABLE
#define RCSP_BT_CONTROL_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_EN
#define RCSP_ADV_EN DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_ANC_VOICE
#define RCSP_ADV_ANC_VOICE DISABLE_THIS_MOUDLE
#endif
#ifndef UPDATE_MD5_ENABLE
#define UPDATE_MD5_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_NAME_SET_ENABLE
#define RCSP_ADV_NAME_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_KEY_SET_ENABLE
#define RCSP_ADV_KEY_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_LED_SET_ENABLE
#define RCSP_ADV_LED_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_MIC_SET_ENABLE
#define RCSP_ADV_MIC_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_WORK_SET_ENABLE
#define RCSP_ADV_WORK_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_HIGH_LOW_SET
#define RCSP_ADV_HIGH_LOW_SET DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_MUSIC_INFO_ENABLE
#define RCSP_ADV_MUSIC_INFO_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_KARAOKE_SET_ENABLE
#define RCSP_ADV_KARAOKE_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_PRODUCT_MSG_ENABLE
#define RCSP_ADV_PRODUCT_MSG_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_ASSISTED_HEARING
#define RCSP_ADV_ASSISTED_HEARING DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_AI_NO_PICK
#define RCSP_ADV_AI_NO_PICK DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_SCENE_NOISE_REDUCTION
#define RCSP_ADV_SCENE_NOISE_REDUCTION DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_WIND_NOISE_DETECTION
#define RCSP_ADV_WIND_NOISE_DETECTION DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_VOICE_ENHANCEMENT_MODE
#define RCSP_ADV_VOICE_ENHANCEMENT_MODE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_COLOR_LED_SET_ENABLE
#define RCSP_ADV_COLOR_LED_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_KARAOKE_EQ_SET_ENABLE
#define RCSP_ADV_KARAOKE_EQ_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_EQ_SET_ENABLE
#define RCSP_ADV_EQ_SET_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_FIND_DEVICE_ENABLE
#define RCSP_ADV_FIND_DEVICE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_FILE_OPT
#define RCSP_FILE_OPT DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_UPDATE_EN
#define RCSP_UPDATE_EN DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_MULTI_BLE_MASTER_NUMS
#define RCSP_MULTI_BLE_MASTER_NUMS DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_MULTI_BLE_SLAVE_NUMS
#define RCSP_MULTI_BLE_SLAVE_NUMS DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_APP_MUSIC_EN
#define RCSP_APP_MUSIC_EN DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_APP_RTC_EN
#define RCSP_APP_RTC_EN DISABLE_THIS_MOUDLE
#endif
#ifndef JL_RCSP_EXTRA_FLASH_OPT
#define JL_RCSP_EXTRA_FLASH_OPT DISABLE_THIS_MOUDLE
#endif
#ifndef WATCH_FILE_TO_FLASH
#define WATCH_FILE_TO_FLASH DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_ADV_ADAPTIVE_NOISE_REDUCTION
#define RCSP_ADV_ADAPTIVE_NOISE_REDUCTION DISABLE_THIS_MOUDLE
#endif
#ifndef JL_RCSP_SIMPLE_TRANSFER
#define JL_RCSP_SIMPLE_TRANSFER DISABLE_THIS_MOUDLE
#endif
#ifndef JL_RCSP_SENSORS_DATA_OPT
#define JL_RCSP_SENSORS_DATA_OPT DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_USER_BLE_CTRL_BREDR_EN
#define TCFG_USER_BLE_CTRL_BREDR_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CONNECTED_ENABLE
#define TCFG_CONNECTED_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BROADCAST_ENABLE
#define TCFG_BROADCAST_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BLE_AUDIO_TEST_EN
#define TCFG_BLE_AUDIO_TEST_EN DISABLE_THIS_MOUDLE
#endif
#ifndef PRINT_DMA_DATA_EN
#define PRINT_DMA_DATA_EN DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_MULTI_BLE_SLAVE_N
#define RCSP_MULTI_BLE_SLAVE_N DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_BLE_MASTER
#define RCSP_BLE_MASTER DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_BLE_CLIENT_EN
#define RCSP_BLE_CLIENT_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BT_VOL_SYNC_ENABLE
#define TCFG_BT_VOL_SYNC_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef BT_SUPPORT_MUSIC_VOL_SYNC
#define BT_SUPPORT_MUSIC_VOL_SYNC DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_REVERBERATION_SETTING
#define RCSP_REVERBERATION_SETTING DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_DRC_VAL_SETTING
#define RCSP_DRC_VAL_SETTING DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_KARAOKE_SOUND_EFFECT
#define RCSP_KARAOKE_SOUND_EFFECT DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_KARAOKE_ATMOSPHERE
#define RCSP_KARAOKE_ATMOSPHERE DISABLE_THIS_MOUDLE
#endif
#ifndef RCSP_KARAOKE_SOUND_PARAM
#define RCSP_KARAOKE_SOUND_PARAM DISABLE_THIS_MOUDLE
#endif
#ifndef USER_SUPPORT_DUAL_A2DP_SOURCE
#define USER_SUPPORT_DUAL_A2DP_SOURCE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_WIRELESS_MIC_ENABLE
#define TCFG_WIRELESS_MIC_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef OTA_TWS_SAME_TIME_NEW
#define OTA_TWS_SAME_TIME_NEW DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BT_BLE_BREDR_SAME_ADDR
#define TCFG_BT_BLE_BREDR_SAME_ADDR DISABLE_THIS_MOUDLE
#endif
#ifndef DOUBLE_BT_SAME_MAC
#define DOUBLE_BT_SAME_MAC DISABLE_THIS_MOUDLE
#endif
#ifndef DOUBLE_BT_SAME_NAME
#define DOUBLE_BT_SAME_NAME DISABLE_THIS_MOUDLE
#endif
#ifndef BT_CTKD_CONN_SPEED
#define BT_CTKD_CONN_SPEED DISABLE_THIS_MOUDLE
#endif
#ifndef CONFIG_DISPLAY_DETAIL_BAT
#define CONFIG_DISPLAY_DETAIL_BAT DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_COLORLED_ENABLE
#define TCFG_COLORLED_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef CONFIG_NO_DISPLAY_BUTTON_ICON
#define CONFIG_NO_DISPLAY_BUTTON_ICON 1 //BLE广播不显示按键界面,智能充电仓置1
#endif //CONFIG_NO_DISPLAY_BUTTON_ICON
#ifndef USER_SUPPORT_PROFILE_PAN
#define USER_SUPPORT_PROFILE_PAN 0
#endif
//*********************************************************************************//
// power CONFIG //
//*********************************************************************************//
#ifndef TCFG_VBAT_TRIM_EN
#define TCFG_VBAT_TRIM_EN DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_BATTER_OFFSET_EN
#define TCFG_BATTER_OFFSET_EN DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// 彩屏仓 CONFIG //
//*********************************************************************************//
#ifndef TCFG_COLOR_SCREEN_CHARGING_CASE_ENABLE
#define TCFG_COLOR_SCREEN_CHARGING_CASE_ENABLE DISABLE_THIS_MOUDLE
#endif
#ifndef TCFG_CHARGE_BOX_ENABLE
#define TCFG_CHARGE_BOX_ENABLE DISABLE_THIS_MOUDLE
#endif
//*********************************************************************************//
// VIDEO CONFIG //
//*********************************************************************************//
#ifndef TCFG_VIDEO_DIAL_ENABLE
#define TCFG_VIDEO_DIAL_ENABLE DISABLE
#endif
#ifndef UVC_JPG_DATA_WRITE2SD
#define UVC_JPG_DATA_WRITE2SD DISABLE
#endif
#ifndef TCFG_CAMERA_MANAGER_ENABLE
#define TCFG_CAMERA_MANAGER_ENABLE DISABLE
#endif
#ifndef TCFG_CAMERA_DEV_BF30A2
#define TCFG_CAMERA_DEV_BF30A2 DISABLE
#endif
#endif //MACRO_DEFAULT_H
+13
View File
@@ -0,0 +1,13 @@
#ifndef __AUDIO_MIC_EFFECT_H
#define __AUDIO_MIC_EFFECT_H
bool mic_effect_player_runing();
int mic_effect_player_open();
void mic_effect_player_close();
void mic_effect_player_pause(u8 mark);
void mic_effect_set_dvol(u8 vol);
void mic_effect_dvol_up(void);
void mic_effect_dvol_down(void);
void mic_effect_set_irq_point_unit(u16 point_unit);
#endif
+9
View File
@@ -0,0 +1,9 @@
#ifndef MIX_RECORD_INTERFACE_H
#define MIX_RECORD_INTERFACE_H
void mix_recorder_start();
void mix_recorder_stop();
int get_mix_recorder_status(void);
int mix_record_device_msg_handler(int *msg);
#endif
+34
View File
@@ -0,0 +1,34 @@
#ifndef PBG_USER_H_
#define PBG_USER_H_
#include "typedef.h"
enum {
PBG_POS_IN_EAR = 0, //入耳
PBG_POS_OUT_BOX, //出仓
PBG_POS_IN_BOX, //在仓
PBG_POS_NOT_EXIST, //不在线
PBG_POS_KEEP_NOW = 0x0f, //维持,不改变
PBG_POS_MAX, //
};
struct pbg_event {
u8 event;
u8 args[3];
};
#define BD_ADDR_LEN 6
typedef uint8_t bd_addr_t[BD_ADDR_LEN];
void pbg_user_set_tws_state(u8 conn_flag);
void pbg_user_recieve_sync_info(u8 *sync_info);
void pbg_user_mic_fixed_deal(u8 mode);
void pbg_user_event_deal(struct pbg_event *evt);
/*bool pbg_user_key_vaild(u8 *key_msg, struct sys_event *event);*/
void pbg_user_ear_pos_sync(u8 left, u8 right);
void pbg_user_battery_level_sync(u8 *dev_bat);
int pbg_user_is_connected(void);
#endif
+12
View File
@@ -0,0 +1,12 @@
#ifndef _PC_H_
#define _PC_H_
#include "system/event.h"
#include "music/music_player.h"
struct app_mode *app_enter_pc_mode(int arg);
int pc_app_msg_handler(int *msg);
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef _POWERON_H_
#define _POWERON_H_
#include "system/event.h"
struct app_mode *app_enter_poweron_mode(int arg);
#endif
+21
View File
@@ -0,0 +1,21 @@
#ifndef APP_POWEROFF_H
#define APP_POWEROFF_H
enum poweroff_reason {
POWEROFF_NORMAL, //普通关机,默认播放关机提示音
POWEROFF_RESET, //系统复位
POWEROFF_POWER_KEEP, //充电仓没电情况下的关机
POWEROFF_NORMAL_TWS, //TWS同时关机,默认播放关机提示音
};
void sys_enter_soft_poweroff(enum poweroff_reason reason);
void sys_auto_shut_down_disable(void);
void sys_auto_shut_down_enable(void);
#endif
+46
View File
@@ -0,0 +1,46 @@
#ifndef _RECORD_H_
#define _RECORD_H_
#include "system/event.h"
//录音去头时间,单位ms
#define CUT_HEAD_TIME (0)
//录音去尾时间,单位ms
#define CUT_TAIL_TIME (0)
//wav 头的大小
#define WAV_HEAD_SIZE (13 * 4)
struct app_mode *app_enter_record_mode(int arg);
int record_app_msg_handler(int *msg);
int record_device_msg_handler(int *msg);
void record_ui_del_mutex(void); //仅供record_ui使用
//用来设置录音文件的后缀名称,例如为 .mp3 或者 .wav等等
void local_set_record_file_suffix(const char *_suffix);
//开始播放录音文件
void app_recorder_file_play_start(void);
//停止播放录音文件,参数决定是否释放盘符
void app_recorder_file_play_stop(void);
//创建录音的互斥量,可供外部调用
void app_local_record_mutex_create(void);
//播放录音文件夹
void app_recorder_play_record_folder(void);
//播放上一首录音文件
void app_recorder_file_play_prev(void);
//播放下一首录音文件
void app_recorder_file_play_next(void);
//是否录音文件正在播放
bool is_recorder_file_play_runing(void);
//删除正在播放的录音文件
void app_recorder_del_cur_play_file(void);
//是否正在录音
u8 is_recorder_runing(void);
//以下两个函数均是给UI调用的
//获取正在解码的录音文件时间
int app_recorder_get_play_file_time(void);
//获取正在编码的录音文件时间
int app_recorder_get_enc_time(void);
#endif
+21
View File
@@ -0,0 +1,21 @@
#ifndef APP_RTC_H
#define APP_RTC_H
#include "rtc/rtc.h"
void set_rtc_sw(void);
void set_rtc_pos(void);
void set_rtc_up(void);
void set_rtc_down(void);
extern struct app_mode *app_enter_rtc_mode(int arg);
extern int rtc_app_msg_handler(int *msg);
struct rtc_dev_data {
u8 port;
u8 edge; //0 leading edge, 1 falling edge
u8 port_en;
u8 rtc_ldo;
u8 clk_res;
};
#endif
+41
View File
@@ -0,0 +1,41 @@
#ifndef __RTC_UI_H__
#define __RTC_UI_H__
//=================================================================================//
// RTC模式数据结构 //
//=================================================================================//
/*
显示内容, 每个模式下显示内容是固定的, 枚举是有穷的;
*/
enum rtc_menu_mode {
UI_RTC_ACTION_SHOW_TIME, //显示时间
UI_RTC_ACTION_SHOW_DATE, //显示日期
UI_RTC_ACTION_YEAR_SET, //年设置
UI_RTC_ACTION_MONTH_SET, //月设置
UI_RTC_ACTION_DAY_SET, //日设置
UI_RTC_ACTION_HOUR_SET, //时设置
UI_RTC_ACTION_MINUTE_SET, //分设置
UI_RTC_ACTION_ALARM_UP, //闹铃响
UI_RTC_ACTION_STRING_SET,//设置字符
};
struct ui_rtc_time {
u16 Year;
u8 Month;
u8 Day;
u8 Hour;
u8 Min;
u8 Sec;
};
struct ui_rtc_display {
enum rtc_menu_mode rtc_menu; //用于选择是否闪烁/常亮;
struct ui_rtc_time time;
const char *str;
};
struct ui_rtc_display *rtc_ui_get_display_buf();
#endif
+48
View File
@@ -0,0 +1,48 @@
#ifndef __SCENE_SWITCH_H_
#define __SCENE_SWITCH_H_
#include "system/includes.h"
#include "media/includes.h"
/* 需要根据 music_mode 数组进行排列 */
enum {
BT_MODE,
AUX_MODE,
FILE_MODE,
FM_MODE,
SPDIF_MODE,
PC_MODE,
NOT_SUPPORT_MODE,
};
/* 音乐模式:获取场景序号 */
u8 get_current_scene();
/* 音乐模式:设置默认场景序号 */
void set_default_scene(u8 index);
/* 音乐模式:获取EQ0配置序号 */
u8 get_music_eq_preset_index(void);
void set_music_eq_preset_index(u8 index);
/* 音乐模式:根据参数组序号进行场景切换 */
void effect_scene_set(u8 scene);
/* 音乐模式:根据参数组个数顺序切换场景 */
void effect_scene_switch();
/* mic混响:获取场景序号 */
u8 get_mic_current_scene();
/* mic混响:根据参数组序号进行场景切换 */
void mic_effect_scene_set(u8 scene);
/* mic混响:根据参数组个数顺序切换场景 */
void mic_effect_scene_switch();
void music_vocal_remover_switch(void);
void music_vocal_remover_update_parm();
u8 get_music_vocal_remover_statu(void);
#endif
@@ -0,0 +1,127 @@
#ifndef _SMARTBOX_INFO_MANAGER_H_
#define _SMARTBOX_INFO_MANAGER_H_
#include "typedef.h"
#include "utils/sys_time.h"
enum {
OUT_OF_BOX = 0, // 不在仓
IN_BOX = 1, // 在仓
};
enum {
LID_OPEN = 1, // 开盖
LID_CLOSE, // 关盖
};
struct s_box_info {
u8 app_state; // app连接状态 0:不连接 1:连接
u8 phone_state ; // 手机连接状态,0:不连接 1:连接
u8 earphone_state; // 耳机连接状态,0:不连接 1:连接
u8 l_ear_bat ; // L耳电量
u8 r_ear_bat ; // R耳电量
u8 l_inbox; // L耳入仓
u8 r_inbox; // R耳入仓
s8 box_bat ; // 充电仓电量
u8 music_state; // 耳机播放状态
u8 earphone_vol ; // 耳机音量
u8 anc_mode ; // anc模式,0关 1开 2通透
u8 eq_mode; // eq模式
u8 ui_bl_levl; // 仓背光亮度
u8 l_charging; // L耳充电状态
u8 r_charging; // R耳充电状态
u8 box_charging; // 充电仓充电状态
u8 l_finding; // 查找L耳
u8 r_finding; // 查找R耳
u8 box_clid_status; // 充电仓开关盖状态
u8 language; // 语言
u8 low_power; // 低电状态
u8 phone_call_state; // 通话状态
u8 phone_call_mute; // 通话是否静音
u8 local_page; // 本地页面记录
u8 emitter_status; // 蓝牙发射器状态
u8 box_touch_switch; // 充电仓触摸开关
u8 box_voice_switch; // 充电仓触摸开关
u8 llatenyc_on; // 低延时模式
struct sys_time phone_time; // 系统时间
u8 key_info[8]; //按键信息
u8 eq_gain[10]; //
};
typedef struct __custom_edr_info {
u8 emitter_addr[6];
} custom_edr_info __attribute__((aligned(4)));
u8 sbox_bt_app_flag_get(void);
/*耳机与手机连接状态*/
u8 sbox_bt_connect_flag_get(void);
/*仓与耳机连接状态*/
u8 sbox_ble_connect_flag_get(void);
u8 sbox_battery_left_get(void);
u8 sbox_battery_right_get(void);
u8 sbox_battery_box_get(void);
u8 sbox_music_ui_state_get(void);
u8 sbox_volume_get(void);
u8 sbox_anc_mode_get(void);
u8 sbox_equalizer_mode_get(void);
u8 sbox_backlight_level_get(void);
u8 sbox_left_charging_get(void);
u8 sbox_right_charging_get(void);
u8 sbox_box_charging_get(void);
u8 sbox_left_finding_get(void);
u8 sbox_right_finding_get(void);
u8 sbox_box_clid_status_get(void);
u8 sbox_language_ui_get(void);
u8 sbox_low_power_get(void);
u8 sbox_phone_call_state_get(void);
u8 sbox_phone_call_mute_get(void);
u8 sbox_box_hour_get(void);
u8 sbox_box_minute_get(void);
u8 sbox_box_second_get(void);
u8 sbox_box_time_get(struct sys_time *time);
u8 sbox_local_page_get(void);
u8 sbox_emitter_state_get(void);
u8 sbox_r_inbox_get(void);
u8 sbox_l_inbox_get(void);
void sbox_bt_connect_flag_set(u8 data);
void sbox_ble_connect_flag_set(u8 data);
void sbox_battery_left_set(u8 data);
void sbox_battery_right_set(u8 data);
void sbox_battery_box_set(u8 data);
void sbox_music_ui_state_set(u8 data);
void sbox_volume_set(u8 data);
void sbox_anc_mode_set(u8 data);
void sbox_equalizer_mode_set(u8 data);
void sbox_backlight_level_set(u8 data);
void sbox_left_charging_set(u8 data);
void sbox_right_charging_set(u8 data);
void sbox_box_charging_set(u8 data);
void sbox_left_finding_set(u8 data);
void sbox_right_finding_set(u8 data);
void sbox_box_clid_status_set(u8 data);
void sbox_language_ui_set(u8 data);
void sbox_low_power_set(u8 data);
void sbox_phone_call_state_set(u8 data);
void sbox_phone_call_mute_set(u8 data);
void sbox_box_year_set(u8 data);
void sbox_box_month_set(u8 data);
void sbox_box_day_set(u8 data);
void sbox_box_hour_set(u8 data);
void sbox_box_minute_set(u8 data);
void sbox_box_second_set(u8 data);
void sbox_local_page_set(u8 data);
void sbox_emitter_state_set(u8 state);
void sbox_r_inbox_set(u8 state);
void sbox_l_inbox_set(u8 state);
u8 *sbox_emitter_addr_get(void);
void ear_inbox_state_deal(u8 status);
void sbox_phone_time_set(u16 year, u8 month, u8 day, u8 hour, u8 min, u8 sec);
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef __SNIFF_H__
#define __SNIFF_H__
//蓝牙sniff检测使能
void bt_sniff_enable(void);
//蓝牙sniff检测关闭
void bt_sniff_disable(void);
#endif
+11
View File
@@ -0,0 +1,11 @@
#ifndef _SPDIF_APP_H_
#define _SPDIF_APP_H_
#include "system/event.h"
struct app_mode *app_enter_spdif_mode(int arg);
int spdif_app_msg_handler(int *msg);
#endif
+50
View File
@@ -0,0 +1,50 @@
#ifndef __SPDIF_PLAYER_H
#define __SPDIF_PLAYER_H
#include "effect/effects_default_param.h"
/* spdif_player_open
* @description: 打开spdif 数据流
* @return0 - 成功。其它值失败
* @node:
*/
int spdif_player_open(void);
/* spdif_player_close
* @description: 关闭spdif 数据流
* @return
* @node:
*/
void spdif_player_close(void);
//更新保存数据流音量mute状态
void update_spdif_player_mute_state(void);
/*
* @description: 通过消息队列重启 spdif 数据流
* @return0 表示消息发送成功
* @node:
*/
int spdif_restart_by_taskq(void);
/*
* @description: 通过消息队列打开 spdif 数据流
* @return0 表示消息发送成功
* @node:
*/
int spdif_open_player_by_taskq(void);
/*
* @description: 返回1代表spdif数据流打开了
* @node:
*/
bool spdif_player_runing();
int spdif_file_pitch_up();
int spdif_file_pitch_down();
int spdif_file_set_pitch(enum _pitch_level pitch_mode);
void spdif_file_pitch_mode_init(enum _pitch_level pitch_mode);
#endif
@@ -0,0 +1,37 @@
#ifndef _JL_CODE_H
#define _JL_CODE_H
#define JL_CODE_MODE_EAN_13 0 // 仅能编码数字,且长度固定为12
#define JL_CODE_MODE_CODE_39 1 // 仅能编码数字、大写字母、“+- /%$.”。输出长度为(n+2)*13
#define JL_CODE_MODE_CODE_128 2 // ASCII都能编码,输出长度为(n+3)*11+2
#define JL_CODE_MODE_QR_CODE 3 // ASCII都能编码
enum code_result {
success = 1,
Input_mode_err,
EAN_13_input_err,
EAN_13_output_err,
CODE_39_input_err,
CODE_39_input_data_err,
CODE_39_output_err,
CODE_128_input_err,
CODE_128_output_err,
QR_CODE_input_err,
QR_CODE_check_ecc_err,
QR_CODE_version_err,
QR_CODE_add_ecc_err,
};
typedef struct {
int l_size;
} jl_code_param_t;
void jl_code_init(int code128_mode, unsigned char qr_version, unsigned char qr_max_version, unsigned char qr_ecc_level, int qr_code_max_input_len_, int qr_buf_size, int img_w);
int jl_code_process(unsigned char mode_t, char *src, int length, int *out_len, int *line_size);
void jl_code_set_info(jl_code_param_t *jl_code_param_);
void jl_code_get_data(int len, int row, unsigned char *outdata);
unsigned char *get_qrcode_rawdata();
void jl_code_deinit();
int ui_qrcode_init();
int ui_qrcode_uninit();
#endif
@@ -0,0 +1,88 @@
#ifndef __RES_CONFIG_H__
#define __RES_CONFIG_H__
#include "app_config.h"
#if TCFG_NANDFLASH_UI_FAT_ENABLE &&(!TCFG_VIRFAT_INSERT_FLASH_ENABLE)
#define EXTERN_PATH "storage/"TCFG_NANDFLASH_UI_FAT_LOGO"/C/" // 用于存储JL sidebar font
#else
#define EXTERN_PATH "storage/virfat_flash/C/"
#endif
#define INTERN_PATH "mnt/sdfile/res/"
#define RES_PATH EXTERN_PATH
#define UPGRADE_PATH INTERN_PATH"ui_upgrade/"
#if TCFG_NANDFLASH_DEV_ENABLE&&(!TCFG_SDFILE_INSERT_FLASH_ENABLE)
#if TCFG_NANDFLASH_UI_FAT_ENABLE
#define MODE_PATH "storage/"TCFG_NANDFLASH_UI_FAT_LOGO"/C/" // 用于存储JL sidebar font
#else
#define MODE_PATH "storage/virfat_flash/C/" // 用于存储JL sidebar font
#endif
#else
#define MODE_PATH "storage/res_nor_mode/C/" // 用于存储JL sidebar font
#endif
#define JL_PATH MODE_PATH"JL/"
#define SIDEBAR_PATH MODE_PATH"sidebar/"
#define FONT_PATH MODE_PATH"font/"
#define UI_STY_CHECK_PATH \
MODE_PATH"JL/JL.sty", \
RES_PATH"watch/watch.sty",\
RES_PATH"watch1/watch1.sty",\
RES_PATH"watch2/watch2.sty",\
RES_PATH"watch3/watch3.sty",\
RES_PATH"watch4/watch4.sty",\
RES_PATH"watch5/watch5.sty",
#define UI_RES_CHECK_PATH \
MODE_PATH"JL/JL.res", \
RES_PATH"watch/watch.res",\
RES_PATH"watch1/watch1.res",\
RES_PATH"watch2/watch2.res",\
RES_PATH"watch3/watch3.res",\
RES_PATH"watch4/watch4.res",\
RES_PATH"watch5/watch5.res",\
#define UI_STR_CHECK_PATH \
MODE_PATH"JL/JL.str", \
RES_PATH"watch/watch.str", \
RES_PATH"watch1/watch1.str",\
RES_PATH"watch2/watch2.str",\
RES_PATH"watch3/watch3.str",\
RES_PATH"watch4/watch4.str",\
RES_PATH"watch5/watch5.str",
#define UI_STY_WATCH_PATH \
RES_PATH"watch/watch.sty",\
RES_PATH"watch1/watch1.sty",\
RES_PATH"watch2/watch2.sty",\
RES_PATH"watch3/watch3.sty",\
RES_PATH"watch4/watch4.sty",\
RES_PATH"watch5/watch5.sty",
#define UI_USED_DOUBLE_BUFFER 1//使用双buf推屏
#define UI_WATCH_RES_ENABLE 1//表盘功能
#define UI_UPGRADE_RES_ENABLE 1//升级界面功能
#ifdef CONFIG_BOARD_JL707N_CSC_DEMO //仓
#define WATCH_RES_NAME "WATCH"
#define WATCH_RES_NAME_SMALL "watch"
#define BGP_RES_NAME "VIE"
#define BGP_RES_NAME_SMALL "vie"
#else//手表
#define WATCH_RES_NAME "WATCH"
#define WATCH_RES_NAME_SMALL "watch"
#define BGP_RES_NAME "BGP_W"
#define BGP_RES_NAME_SMALL "bgp_w"
#define AVI_RES_NAME "AVI"
#define AVI_RES_NAME_SMALL "avi"
#endif
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,543 @@
//generated by ResBuilder
#ifndef _RESULT_STR_INDEX_H_
#define _RESULT_STR_INDEX_H_
////StrResID Define Table////
#define M001 1
#define M002 2
#define M003 3
#define M004 4
#define M005 5
#define M006 6
#define M007 7
#define M008 8
#define M009 9
#define M010 10
#define M011 11
#define M012 12
#define M013 13
#define M014 14
#define M015 15
#define M016 16
#define M017 17
#define M018 18
#define M019 19
#define M020 20
#define M021 21
#define M022 22
#define M023 23
#define M024 24
#define M025 25
#define M026 26
#define M027 27
#define M030 28
#define M031 29
#define M032 30
#define M033 31
#define M034 32
#define M035 33
#define M036 34
#define M037 35
#define M038 36
#define M039 37
#define M040 38
#define M041 39
#define M042 40
#define M043 41
#define M044 42
#define M045 43
#define M046 44
#define M047 45
#define M048 46
#define M049 47
#define M050 48
#define M051 49
#define M052 50
#define M053 51
#define M054 52
#define M055 53
#define M056 54
#define M057 55
#define M058 56
#define M059 57
#define M060 58
#define M061 59
#define M062 60
#define M063 61
#define M064 62
#define M065 63
#define M066 64
#define M067 65
#define M077 66
#define M078 67
#define M079 68
#define M080 69
#define M081 70
#define M082 71
#define M083 72
#define M085 73
#define M086 74
#define M087 75
#define M088 76
#define M089 77
#define M090 78
#define M091 79
#define M092 80
#define M093 81
#define M094 82
#define M095 83
#define M096 84
#define M097 85
#define M098 86
#define M099 87
#define M100 88
#define M101 89
#define M102 90
#define M103 91
#define M104 92
#define M105 93
#define M107 94
#define M108 95
#define M109 96
#define M110 97
#define M111 98
#define M112 99
#define M113 100
#define M114 101
#define M115 102
#define M116 103
#define M117 104
#define M118 105
#define M119 106
#define M120 107
#define M121 108
#define M122 109
#define M123 110
#define M124 111
#define M125 112
#define M126 113
#define M127 114
#define M128 115
#define M129 116
#define M131 117
#define M133 118
#define M134 119
#define M135 120
#define M136 121
#define M137 122
#define M138 123
#define M139 124
#define M140 125
#define M141 126
#define M142 127
#define M143 128
#define M144 129
#define M145 130
#define M146 131
#define M147 132
#define M148 133
#define M149 134
#define M150 135
#define M151 136
#define M152 137
#define M153 138
#define M154 139
#define M155 140
#define M157 141
#define M158 142
#define M159 143
#define M160 144
#define M161 145
#define M162 146
#define M163 147
#define M164 148
#define M165 149
#define M166 150
#define M167 151
#define M168 152
#define M169 153
#define M170 154
#define M171 155
#define M172 156
#define M173 157
#define M174 158
#define M175 159
#define M176 160
#define M177 161
#define M178 162
#define M179 163
#define M180 164
#define M181 165
#define M182 166
#define M183 167
#define M184 168
#define M185 169
#define M186 170
#define M187 171
#define M188 172
#define M189 173
#define M190 174
#define M191 175
#define M192 176
#define M193 177
#define M194 178
#define M195 179
#define M196 180
#define M197 181
#define M198 182
#define M199 183
#define M200 184
#define M201 185
#define M202 186
#define M203 187
#define M204 188
#define M205 189
#define M206 190
#define M207 191
#define M208 192
#define M209 193
#define M210 194
#define M211 195
#define M212 196
#define M213 197
#define M214 198
#define M215 199
#define M219 200
#define M220 201
#define M221 202
#define M223 203
#define M225 204
#define M226 205
#define M227 206
#define M228 207
#define M229 208
#define M230 209
#define M231 210
#define M232 211
#define M233 212
#define M234 213
#define M235 214
#define M239 215
#define M240 216
#define M241 217
#define M242 218
#define M243 219
#define M244 220
#define M245 221
#define M246 222
#define M247 223
#define M248 224
#define M249 225
#define M250 226
#define M251 227
#define M252 228
#define M253 229
#define M254 230
#define M255 231
#define M256 232
#define M257 233
#define M258 234
#define M259 235
#define M260 236
#define M261 237
#define M262 238
#define M263 239
#define M264 240
#define M265 241
#define M266 242
#define M267 243
#define M268 244
#define M269 245
#define M270 246
#define M271 247
#define M272 248
#define M273 249
#define M274 250
#define M275 251
#define M276 252
#define M277 253
#define M278 254
#define M279 255
#define M280 256
#define M281 257
#define M282 258
#define M283 259
#define M284 260
#define M285 261
#define M286 262
#define M287 263
#define M288 264
#define M289 265
#define M290 266
#define M291 267
#define M292 268
#define M293 269
#define M294 270
#define M295 271
#define M296 272
#define M297 273
#define M298 274
#define M299 275
#define M300 276
#define M301 277
#define M302 278
#define M303 279
#define M304 280
#define M305 281
#define M306 282
#define M308 283
#define M309 284
#define M310 285
#define M311 286
#define M312 287
#define M313 288
#define M314 289
#define M315 290
#define M316 291
#define M317 292
#define M319 293
#define M321 294
#define M322 295
#define M323 296
#define M324 297
#define M326 298
#define M327 299
#define M328 300
#define M329 301
#define M330 302
#define M331 303
#define M332 304
#define M333 305
#define M334 306
#define M335 307
#define M336 308
#define M337 309
#define M338 310
#define M339 311
#define M340 312
#define M342 313
#define M343 314
#define M344 315
#define M345 316
#define M346 317
#define M347 318
#define M348 319
#define M349 320
#define M350 321
#define M351 322
#define M352 323
#define M353 324
#define M354 325
#define M355 326
#define M356 327
#define M357 328
#define M358 329
#define M360 330
#define M362 331
#define M363 332
#define M364 333
#define M365 334
#define M366 335
#define M367 336
#define M369 337
#define M370 338
#define M371 339
#define M372 340
#define M378 341
#define M379 342
#define M380 343
#define M381 344
#define M382 345
#define M383 346
#define M384 347
#define M385 348
#define M387 349
#define M388 350
#define M389 351
#define M390 352
#define M391 353
#define M392 354
#define M393 355
#define M394 356
#define M395 357
#define M396 358
#define M397 359
#define M398 360
#define M399 361
#define M400 362
#define M401 363
#define M402 364
#define M403 365
#define M404 366
#define M405 367
#define M406 368
#define M407 369
#define M408 370
#define M409 371
#define M410 372
#define M411 373
#define M412 374
#define M413 375
#define M414 376
#define M415 377
#define M416 378
#define M417 379
#define M418 380
#define M429 381
#define M420 382
#define M421 383
#define M422 384
#define M423 385
#define M424 386
#define M425 387
#define M426 388
#define M427 389
#define M428 390
#define M430 391
#define M431 392
#define M432 393
#define M433 394
#define M434 395
#define M435 396
#define M436 397
#define M437 398
#define M438 399
#define M439 400
#define M440 401
#define M441 402
#define M442 403
#define M443 404
#define M444 405
#define M445 406
#define M446 407
#define M447 408
#define M454 409
#define M455 410
#define M456 411
#define M457 412
#define M458 413
#define M459 414
#define M461 415
#define M462 416
#define M463 417
#define M464 418
#define M465 419
#define M466 420
#define M467 421
#define M468 422
#define M469 423
#define M470 424
#define M471 425
#define M472 426
#define M473 427
#define M474 428
#define M475 429
#define M476 430
#define M477 431
#define M478 432
#define M479 433
#define M480 434
#define M481 435
#define M482 436
#define M484 437
#define M485 438
#define M486 439
#define M487 440
#define M488 441
#define M489 442
#define M490 443
#define M491 444
#define M492 445
#define M493 446
#define M494 447
#define M495 448
#define M507 449
#define M508 450
#define M509 451
#define M510 452
#define M511 453
#define M512 454
#define M513 455
#define M514 456
#define M515 457
#define M516 458
#define M517 459
#define M518 460
#define M519 461
#define M520 462
#define M521 463
#define M522 464
#define M523 465
#define M524 466
#define M525 467
#define M526 468
#define M527 469
#define M528 470
#define M529 471
#define M530 472
#define M531 473
#define M532 474
#define M533 475
#define M534 476
#define M535 477
#define M536 478
#define M537 479
#define M538 480
#define M539 481
#define M542 482
#define M543 483
#define M547 484
#define M548 485
#define M549 486
#define M551 487
#define M552 488
#define M554 489
#define M555 490
#define M556 491
#define M557 492
#define M558 493
#define M559 494
#define M563 495
#define M564 496
#define M565 497
#define M566 498
#define M567 499
#define M568 500
#define M569 501
#define M570 502
#define M571 503
#define M572 504
#define M573 505
#define M574 506
#define M575 507
#define M576 508
#define M577 509
#define M578 510
#define M579 511
#define M580 512
#define M581 513
#define M582 514
#define M583 515
#define M584 516
#define M585 517
#define M586 518
#define M587 519
#define M588 520
#define M589 521
#define M590 522
#define M591 523
#define M592 524
#define M593 525
#define M594 526
#define M595 527
#define M596 528
#define M597 529
#define M598 530
#define M599 531
#define M600 532
#define M601 533
#define M602 534
#define M603 535
#define M604 536
#endif
@@ -0,0 +1,28 @@
#ifndef UI_TOOL_ENAME_DIAL
#define UI_TOOL_ENAME_DIAL
#define DIAL_BASEFORM 0X4002000
#define DIAL_BASEFORM_1 0X4021000
#define DIAL_BASEFORM_2 0X4001000
#define DIAL_MESSAGE_LAYOUT 0X4020C00
#define DIAL_NEWFRAME_10 0X4006C02
#define DIAL_NEWFRAME_2 0X4006400
#define DIAL_NEWFRAME_3 0X4006800
#define DIAL_NEWFRAME_4 0X4006C00
#define DIAL_NEWFRAME_5 0X4006401
#define DIAL_NEWFRAME_6 0X4006801
#define DIAL_NEWFRAME_7 0X4006C01
#define DIAL_NEWFRAME_8 0X4006402
#define DIAL_NEWFRAME_9 0X4006802
#define DIAL_PAGE_0 0X4000800
#define DIAL_PAGE_1 0X4020801
#define DIAL_TIME 0X4002800
#define DIAL_UI_ROTATE 0X0
#define DIAL_UI_VERSION 0X100B580E
#define DIAL_WATCH 0X4006000
#define DIAL_WATCH_LAYOUT 0X4000C00
#define STYLE_DIAL_ID(x) DIAL_##x
#endif //UI_TOOL_ENAME_DIAL_H
@@ -0,0 +1,27 @@
#ifndef UI_TOOL_ENAME_DIAL
#define UI_TOOL_ENAME_DIAL
#define DIAL_BASEFORM 0X4002000
#define DIAL_BASEFORM_1 0X4021000
#define DIAL_BASEFORM_2 0X4001000
#define DIAL_BASEFORM_3 0X4002800
#define DIAL_BASEFORM_4 0X4002001
#define DIAL_BASEFORM_5 0X4003C00
#define DIAL_BASEFORM_6 0X4002002
#define DIAL_BASEFORM_7 0X4003C01
#define DIAL_BASEFORM_8 0X4002003
#define DIAL_MESSAGE_LAYOUT 0X4020C00
#define DIAL_NEWFRAME_2 0X4006400
#define DIAL_NEWFRAME_3 0X4006800
#define DIAL_NEWFRAME_4 0X4006C00
#define DIAL_PAGE_0 0X4000800
#define DIAL_PAGE_1 0X4020801
#define DIAL_UI_ROTATE 0X0
#define DIAL_UI_VERSION 0X4090009
#define DIAL_WATCH 0X4006000
#define DIAL_WATCH_LAYOUT 0X4000C00
#define STYLE_DIAL_ID(x) DIAL_##x
#endif //UI_TOOL_ENAME_DIAL_H
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,307 @@
#ifndef UI_TOOL_ENAME
#define UI_TOOL_ENAME
#define ALARM_CLOCK_CANCEL_BUTTON_PIC 0X62004
#define ALARM_CLOCK_LAYER 0X61000
#define ALARM_CLOCK_LAYOUT 0X60C00
#define ALARM_CLOCK_NEXT_BUTTON_PIC 0X62002
#define ALARM_CLOCK_PREV_BUTTON_PIC 0X62001
#define ALARM_CLOCK_RING_LAYOUT 0XA0C00
#define ALARM_CLOCK_RING_REPEAT_PIC 0XA2001
#define ALARM_CLOCK_RING_STOP_PIC 0XA2002
#define ALARM_CLOCK_RUNNING_LAYOUT 0X60C02
#define ALARM_CLOCK_RUNNING_TIME 0X62800
#define ALARM_CLOCK_SETTING_BUTTON_PIC 0X62000
#define ALARM_CLOCK_SETTING_TIME_PIC 0X62003
#define ALARM_CLOCK_SET_LAYOUT 0X60C01
#define BASEFORM 0X41000
#define BASEFORM_1 0X40C00
#define BASEFORM_10 0X180C02
#define BASEFORM_11 0X243000
#define BASEFORM_12 0X180C03
#define BASEFORM_1252 0X1C2002
#define BASEFORM_1277 0X260C04
#define BASEFORM_1279 0X260C05
#define BASEFORM_1281 0X260C06
#define BASEFORM_13 0XA3001
#define BASEFORM_1318 0X260C07
#define BASEFORM_1354 0X260C08
#define BASEFORM_14 0X180C04
#define BASEFORM_1401 0X260C09
#define BASEFORM_1402 0X261000
#define BASEFORM_1409 0X262000
#define BASEFORM_1423 0X260C0A
#define BASEFORM_1424 0X260C0B
#define BASEFORM_1425 0X260C0C
#define BASEFORM_1426 0X260C0D
#define BASEFORM_1427 0X260C0E
#define BASEFORM_1428 0X260C0F
#define BASEFORM_1441 0X262002
#define BASEFORM_1442 0X262003
#define BASEFORM_1443 0X260C11
#define BASEFORM_1445 0X260C12
#define BASEFORM_1447 0X260C13
#define BASEFORM_1449 0X260C14
#define BASEFORM_1451 0X260C15
#define BASEFORM_1453 0X260C16
#define BASEFORM_1455 0X260C17
#define BASEFORM_1457 0X260C18
#define BASEFORM_1459 0X260C19
#define BASEFORM_1461 0X260C1A
#define BASEFORM_1463 0X260C1B
#define BASEFORM_1465 0X260C1C
#define BASEFORM_1467 0X262006
#define BASEFORM_1468 0X262007
#define BASEFORM_15 0X183001
#define BASEFORM_16 0X183002
#define BASEFORM_17 0X183003
#define BASEFORM_18 0X183004
#define BASEFORM_19 0X180C08
#define BASEFORM_2 0XE2000
#define BASEFORM_20 0X180C09
#define BASEFORM_21 0X100C00
#define BASEFORM_22 0X180C0A
#define BASEFORM_23 0X180C0B
#define BASEFORM_24 0X183006
#define BASEFORM_240 0X101000
#define BASEFORM_25 0X183007
#define BASEFORM_3 0XE1000
#define BASEFORM_30 0XA2000
#define BASEFORM_41 0X2A3001
#define BASEFORM_43 0X242000
#define BASEFORM_46 0XE5400
#define BASEFORM_488 0X2A1000
#define BASEFORM_497 0X2A3000
#define BASEFORM_5 0X183000
#define BASEFORM_534 0X222000
#define BASEFORM_545 0X83000
#define BASEFORM_546 0X82005
#define BASEFORM_547 0X83002
#define BASEFORM_56 0X22000
#define BASEFORM_609 0XA1000
#define BASEFORM_690 0X2A2000
#define BASEFORM_7 0X223003
#define BASEFORM_776 0X1C0C02
#define BASEFORM_8 0X180C01
#define BASEFORM_9 0XA3000
#define BATCHARGE_LAYOUT 0XE0C00
#define BATCHARGE_PERSENT_VALUE 0XE3C00
#define BRIGHTNESS_ADD_BUTTON 0X242002
#define BRIGHTNESS_PIC 0X242003
#define BRIGHTNESS_SUBSTRACT_BUTTON 0X242001
#define BRIGHTNESS_VALUE_LAYER 0X241000
#define BRIGHTNESS_VALUE_LAYOUT 0X240C00
#define CALENDAR_DATA 0X260C01
#define CHARGE_PROG 0XE5000
#define CLOCK_TIME 0X260C02
#define DAY_NUM_FIR 0X263C09
#define DAY_NUM_FOU 0X263C0C
#define DAY_NUM_SEC 0X263C0A
#define DAY_NUM_THI 0X263C0B
#define DENOISE_ADAPTIVE_PIC 0X142003
#define DENOISE_LAYER 0X141000
#define DENOISE_LAYOUT 0X140C00
#define DENOISE_OFF_PIC 0X142000
#define DENOISE_ON_PIC 0X142001
#define DENOISE_TITLE_TEXT 0X143000
#define DENOISE_TRANSPARENCY_PIC 0X142002
#define DIAL_LAYER 0X1000
#define DIAL_LAYOUT 0XC00
#define EQUALIZER_DISPLAY_TEXT 0X163000
#define EQUALIZER_LAYER 0X161000
#define EQUALIZER_LAYOUT 0X160C00
#define EQUALIZER_NEXT_PIC 0X162001
#define EQUALIZER_PRE_PIC 0X162000
#define EQUALIZER_TEXT 0X163001
#define FINDING 0X220C02
#define FIND_4 0X222001
#define FIND_5 0X222002
#define FIND_6 0X222003
#define FIND_7 0X222004
#define FIND_8 0X223001
#define FIND_9 0X223002
#define FIND_EARPHONE_LAYER 0X221000
#define FIND_EARPHON_LAY 0X220C00
#define FIND_EARPHON_LAYOUT 0X220C01
#define FIND_EAR_CTRL 0X220C03
#define HOUR_NUM_FIR 0X263C0D
#define HOUR_NUM_FOU 0X263C10
#define HOUR_NUM_SEC 0X263C0E
#define HOUR_NUM_THI 0X263C0F
#define H_M_S 0X262800
#define LANGUAGE_SELECT_LAYER 0X201000
#define LANGUAGE_SELECT_LAYOUT 0X200C00
#define LANGUAGE_TEXT 0X203000
#define LANGUAGE_TITLE_TEXT 0X203001
#define LOCKSELECT_LAST 0X1C2000
#define LOCKSELECT_LAYER 0X1C1000
#define LOCKSELECT_LAYOUT 0X1C0C00
#define LOCKSELECT_NEXT 0X1C2001
#define LOCKSMALL 0X1C0C01
#define MIN_NUM_FIR 0X263C11
#define MIN_NUM_FOU 0X263C14
#define MIN_NUM_SEC 0X263C12
#define MIN_NUM_THI 0X263C13
#define MON_NUM_FIR 0X263C05
#define MON_NUM_FOU 0X263C08
#define MON_NUM_SEC 0X263C06
#define MON_NUM_THI 0X263C07
#define MUSIC_CHANGE_BUTTON 0X182003
#define MUSIC_CONTROL_LAYOUT 0X180C05
#define MUSIC_LAYER 0X181000
#define MUSIC_LAYOUT 0X180C06
#define MUSIC_LIST 0X181400
#define MUSIC_LIST_BUTTON 0X182004
#define MUSIC_LOCAL_LAYOUT 0X180C00
#define MUSIC_MODE_LAYOUT 0X180C07
#define MUSIC_MODE_LIST 0X181401
#define MUSIC_NEXT_PIC 0X182002
#define MUSIC_PLAY_PIC 0X182001
#define MUSIC_PRE_PIC 0X182000
#define MUSIC_TITLE_TEXT 0X183005
#define NEWFRAME_2 0X63000
#define NEWFRAME_3 0X63001
#define NEWFRAME_CLOCK 0X262001
#define NOTICE_DETAIL_CLEAR_PIC 0X2A2009
#define NOTICE_DETAIL_CONTEXT_TEXT 0X2A3009
#define NOTICE_DETAIL_LAYOUT 0X2A0C06
#define NOTICE_DETAIL_TITLE_TEXT 0X2A3008
#define NOTICE_DETAIL_TYPE_PIC 0X2A2008
#define NOTICE_DIALOG 0X2A0C07
#define NOTICE_DIALOG_BG 0X2A200A
#define NOTICE_DIALOG_CONTENT 0X2A300B
#define NOTICE_DIALOG_PIC 0X2A200B
#define NOTICE_DIALOG_TIME 0X2A2803
#define NOTICE_DIALOG_TITLE 0X2A300A
#define NOTICE_LAYOUT 0X2A0C00
#define NOTICE_LIST 0X2A1400
#define NOTICE_LIST_CLEAR_ALL_PIC 0X2A2001
#define NOTICE_LIST_ITEM0 0X2A0C03
#define NOTICE_LIST_ITEM1 0X2A0C04
#define NOTICE_LIST_ITEM2 0X2A0C05
#define NOTICE_LIST_ITEM_BG0 0X2A2002
#define NOTICE_LIST_ITEM_BG1 0X2A2004
#define NOTICE_LIST_ITEM_BG2 0X2A2006
#define NOTICE_LIST_ITEM_CONTENT_TEXT0 0X2A3003
#define NOTICE_LIST_ITEM_CONTENT_TEXT1 0X2A3005
#define NOTICE_LIST_ITEM_CONTENT_TEXT2 0X2A3007
#define NOTICE_LIST_ITEM_TIME0 0X2A2800
#define NOTICE_LIST_ITEM_TIME1 0X2A2801
#define NOTICE_LIST_ITEM_TIME2 0X2A2802
#define NOTICE_LIST_ITEM_TYPE_PIC0 0X2A2003
#define NOTICE_LIST_ITEM_TYPE_PIC1 0X2A2005
#define NOTICE_LIST_ITEM_TYPE_PIC2 0X2A2007
#define NOTICE_LIST_ITEM_TYPE_TEXT0 0X2A3002
#define NOTICE_LIST_ITEM_TYPE_TEXT1 0X2A3004
#define NOTICE_LIST_ITEM_TYPE_TEXT2 0X2A3006
#define NOTICE_LIST_LAYOUT 0X2A0C02
#define NOTICE_NO_MSG_LAYOUT 0X2A0C01
#define PAGE_0 0X800
#define PAGE_1 0X20801
#define PAGE_10 0X14080A
#define PAGE_11 0X16080B
#define PAGE_12 0X18080C
#define PAGE_13 0X1A080D
#define PAGE_14 0X1C080E
#define PAGE_15 0X1E080F
#define PAGE_16 0X200810
#define PAGE_17 0X220811
#define PAGE_18 0X240812
#define PAGE_19 0X260813
#define PAGE_2 0X40802
#define PAGE_20 0X280814
#define PAGE_21 0X2A0815
#define PAGE_3 0X60803
#define PAGE_4 0X80804
#define PAGE_5 0XA0805
#define PAGE_6 0XC0806
#define PAGE_7 0XE0807
#define PAGE_8 0X100808
#define PAGE_9 0X120809
#define PHONE_10 0X82003
#define PHONE_12 0X82004
#define PHONE_2 0X82000
#define PHONE_3 0X82001
#define PHONE_4 0X83001
#define PHONE_6 0X82002
#define PHONE_9 0X82800
#define PHONE_CALL_STATE_LAYOUT 0X80C00
#define PHONE_CALL_STATUS_ACTIVE_LAYOUT 0X80C02
#define PHONE_CALL_STATUS_INCOMING_LAYOUT 0X80C01
#define PHONE_CALL_STATUS_LAYER 0X81000
#define PHONE_CALL_STATUS_OUTGOING_LAYOUT 0X80C03
#define PHOTOGRAGH_LAYER 0XC1000
#define PHOTOGRAPH_CLICK_PIC 0XC2000
#define PHOTOGRAPH_LAYOUT 0XC0C00
#define POWER_ON_LAYER 0X21000
#define POWER_ON_LAYOUT 0X20C00
#define REBOOT_PIC 0X282001
#define REBOOT_TEXT 0X283001
#define RESET_2 0X283003
#define RESET_PIC 0X282002
#define RESET_TEXT 0X283002
#define SD_MUSIC_EAR_PLAY 0X183009
#define SD_MUSIC_LOCAL_PLAY 0X183008
#define SEC_NUM_FIR 0X263C15
#define SEC_NUM_FOU 0X263C18
#define SEC_NUM_SEC 0X263C16
#define SEC_NUM_THI 0X263C17
#define SETTING_LANGUAGE_LEFT_PIC 0X202000
#define SETTING_LANGUAGE_RIGHT_PIC 0X202001
#define SET_TIMER_DAY_VLIST 0X261402
#define SET_TIMER_HOUR_VLIST 0X261403
#define SET_TIMER_MIN_VLIST 0X261404
#define SET_TIMER_MOUTH_VLIST 0X261401
#define SET_TIMER_SEC_VLIST 0X261405
#define SET_TIMER_YEAR_VLIST 0X261400
#define SET_TIME_MAIN 0X260C00
#define SHIPPING_MODE_PIC 0X282003
#define SHUTDOWN_AND_RESET_LAYER 0X281000
#define SHUTDOWN_AND_RESET_LAYOUT 0X280C00
#define SHUTDOWN_PIC 0X282000
#define SHUTDOWN_TEXT 0X283000
#define TAKE_2 0X223000
#define TIKTOK_LAYER 0X1E1000
#define TIKTOK_LAYOUT 0X1E0C00
#define TIKTOK_NEXT_PIC 0X1E2000
#define TIKTOK_PIC 0X1E2002
#define TIKTOK_PREVIOUS_PIC 0X1E2001
#define TIMER_1 0X260C03
#define TIMER_2 0X260C10
#define TIMER_29 0X262004
#define TIMER_30 0X262005
#define TIMER_31 0X262008
#define TIMER_32 0X262009
#define UI_ROTATE 0X0
#define UI_VERSION 0X21327598
#define UNIFORM_TOPBAR_CHARGING_CASE_CAPACITY 0X1A3C02
#define UNIFORM_TOPBAR_CHARGING_CASE_CAPACITY_1 0X1A3C05
#define UNIFORM_TOPBAR_CHARGING_CASE_PIC 0X1A2003
#define UNIFORM_TOPBAR_CHARGING_CASE_PIC_1 0X1A2007
#define UNIFORM_TOPBAR_EARPHONE 0X1A2000
#define UNIFORM_TOPBAR_EARPHONE_1 0X1A2004
#define UNIFORM_TOPBAR_LAYER 0X1A1000
#define UNIFORM_TOPBAR_LAYOUT 0X1A0C00
#define UNIFORM_TOPBAR_LAYOUT_1 0X1A0C01
#define UNIFORM_TOPBAR_L_EAR_CAPACITY 0X1A3C00
#define UNIFORM_TOPBAR_L_EAR_CAPACITY_1 0X1A3C03
#define UNIFORM_TOPBAR_L_EAR_PIC 0X1A2001
#define UNIFORM_TOPBAR_L_EAR_PIC_1 0X1A2005
#define UNIFORM_TOPBAR_R_EAR_CAPACITY 0X1A3C01
#define UNIFORM_TOPBAR_R_EAR_CAPACITY_1 0X1A3C04
#define UNIFORM_TOPBAR_R_EAR_PIC 0X1A2002
#define UNIFORM_TOPBAR_R_EAR_PIC_1 0X1A2006
#define UNIFORM_TOPBAR_TIME 0X1A2800
#define UNIFORM_TOPBAR_TIME_1 0X1A2801
#define VOLUME_ADD_PIC 0X122001
#define VOLUME_DISPLAY_NUM 0X123C00
#define VOLUME_LAYER 0X121000
#define VOLUME_LAYOUT 0X120C00
#define VOLUME_SUB_PIC 0X122000
#define YEAR_NUM_FIR 0X263C01
#define YEAR_NUM_FOU 0X263C04
#define YEAR_NUM_SEC 0X263C02
#define YEAR_NUM_THI 0X263C03
#define Y_M_D 0X263C00
#endif //UI_TOOL_ENAME_H
@@ -0,0 +1,5 @@
#ifndef UI_TOOL_ENAME_SIDEBAR
#define UI_TOOL_ENAME_SIDEBAR
#endif //UI_TOOL_ENAME_SIDEBAR_H
@@ -0,0 +1,13 @@
#ifndef UI_TOOL_ENAME_SIDEBAR
#define UI_TOOL_ENAME_SIDEBAR
#define SIDEBAR_BASEFORM_277 0X8001000
#define SIDEBAR_PAGE_0 0X8000800
#define SIDEBAR_TOP 0X8000C00
#define SIDEBAR_UI_ROTATE 0X0
#define SIDEBAR_UI_VERSION 0X18002400
#define STYLE_SIDEBAR_ID(x) SIDEBAR_##x
#endif //UI_TOOL_ENAME_SIDEBAR_H
@@ -0,0 +1,22 @@
#ifndef UI_TOOL_ENAME_UPGRADE
#define UI_TOOL_ENAME_UPGRADE
#define UPGRADE_BASEFORM_1 0X10002000
#define UPGRADE_BASEFORM_14 0X10005401
#define UPGRADE_BASEFORM_16 0X10005400
#define UPGRADE_PAGE_0 0X10000800
#define UPGRADE_UI_ROTATE 0X0
#define UPGRADE_UI_VERSION 0X30021006
#define UPGRADE_UPGRADE_BASEFORM_2 0X10001000
#define UPGRADE_UPGRADE_LAYOUT 0X10000C00
#define UPGRADE_UPGRADE_LOADING 0X10000C01
#define UPGRADE_UPGRADE_PERCENT_VALUE 0X10003C00
#define UPGRADE_UPGRADE_PROGRESS_BCAKUP 0X10005000
#define UPGRADE_UPGRADE_PROGRESS_PERCENT 0X10005001
#define UPGRADE_UPGRADE_STAGE_VALUE 0X10003C01
#define STYLE_UPGRADE_ID(x) UPGRADE_##x
#endif //UI_TOOL_ENAME_UPGRADE_H
@@ -0,0 +1,13 @@
#ifndef UI_TOOL_ENAME_UPGRADE
#define UI_TOOL_ENAME_UPGRADE
#define UPGRADE_PAGE_0 0X10000800
#define UPGRADE_UI_ROTATE 0X0
#define UPGRADE_UI_VERSION 0X30002400
#define UPGRADE_UPGRADE_BASEFORM_2 0X10001000
#define UPGRADE_UPGRADE_LAYOUT 0X10000C00
#define STYLE_UPGRADE_ID(x) UPGRADE_##x
#endif //UI_TOOL_ENAME_UPGRADE_H
+332
View File
@@ -0,0 +1,332 @@
#ifndef _JLUI_API_H_
#define _JLUI_API_H_
#include "app_config.h"
#include "ui/lcd/lcd_drive.h"
#include "jlui/ui.h"
#include "jlui_app/ui_style.h"
#include "app_msg.h"
#if CONFIG_JL_UI_ENABLE
#define KEY_CHANGE_PAGE APP_MSG_CHANGE_MODE
#define KEY_OK APP_MSG_LCD_OK
enum {
//按键会经过ui的消息 请放这里
KEY_UI_HOME = 0x40,
KEY_UI_SHORTCUT,
KEY_UI_POWEROFF,
KEY_UI_MENU_LIST,
KEY_UI_MINUS,
KEY_UI_PLUS,
KEY_UI_TRIPLE_CLICK,
};
#define GRT_CUR_MENU (0)
#define GET_MAIN_MENU (1)
#define CURR_WINDOW_MAIN (0)
enum ui_devices_type {
LED_7,
LCD_SEG3X9,
TFT_LCD,//彩屏
DOT_LCD,//点阵屏
};
//板级配置数据结构
struct ui_devices_cfg {
enum ui_devices_type type;
void *private_data;
};
struct touch_event {
int event;
int x;
int y;
int has_energy;
};
extern const struct ui_devices_cfg ui_cfg_data;
//led7 api
#if (TCFG_UI_ENABLE&&(CONFIG_UI_STYLE == STYLE_JL_LED7))
extern int led7_ui_init(const struct ui_devices_cfg *ui_cfg);
extern void ui_set_main_menu(enum ui_menu_main menu);
extern void ui_menu_reflash(u8 break_in);//break_in 是否打断显示,例如显示设置过程中需要刷新新界面。是是否打断设置界面显示
extern u8 ui_get_app_menu(u8);
extern void ui_set_led(u8 app_menu, u8 on, u8 phase, u16 highlight, u16 period);
extern void ui_set_auto_reflash(u32 msec);//自动刷新主页
extern void ui_close_main_menu();
extern void ui_set_tmp_menu(u8 app_menu, u16 ret_time, s32 arg, void (*timeout_cb)(u8 menu));
extern void ui_common(void *hd, void *private, u8 menu, u32 arg);//公共显示
#endif // #if (TCFG_UI_ENABLE&&(CONFIG_UI_STYLE == STYLE_JL_LED7))
//lcd api
//
extern int lcd_ui_init(void *arg);
extern int ui_hide_main(int id);
extern int ui_show_main(int id);
extern u8 get_need_password();
extern void set_need_password(u8 flag);
extern u8 get_screen_saver_status();
extern void ui_screen_recover(u8 recover_cur_page);
extern void ui_screen_saver(void *p);
extern int get_cur_srreen_width_and_height(u16 *screen_width, u16 *screen_height);
extern int get_cur_srreen_radius_and_fill_argb(u16 *screen_radius, u32 *screen_fill_argb);
extern u8 get_return_index();
extern u8 ui_return_page_pop(u8 dir);
extern int ui_return_page_pop_spec(u32 page_id); // 跳转到指定页面,清除中间的page记录
extern u8 ui_return_page_sub();
extern u8 ui_return_page_add(int page_id);
extern u32 ui_return_page_id();
extern u32 ui_return_prev_page_id(void);
extern void ui_return_page_push(int page_id);
extern void ui_return_page_clear();
extern void ui_return_page_del(int page_id);
/*
int (*entry)(int); // 返回trueentry回调里面自定义处理;返回false或者回调为NULL,默认显示page
int (*exit)(int); // 返回trueexit回调里面自定义处理;返回false或者回调为NULL,默认清除记录
*/
extern int ui_preemption_page_push(int page_id, int (*entry)(int), int (*exit)(int), u8 priority);
extern int ui_preemption_page_pop(int page_id);
extern int ui_preemption_page_del(int page_id);
extern int ui_preemption_page_check(void);
u32 ui_menu_enter_anim_enable();
u32 ui_menu_enter_anim_disable();
u32 ui_menu_enter_anim_flag_get();
extern int ui_auto_sw_page_effect_post(int curr_win, int next_win, u16 effect_mode, void *user_effect, void *effect_priv);
enum {
SCALE_EFFECT_OUT,
SCALE_EFFECT_IN,
};
extern int ui_page_scale_effect_post(int curr_win, int next_win, int dir);
typedef enum {
SLIDE_MODE_OFF,
SLIDE_MODE_NOT_RIGHT_ALL,
SLIDE_MODE_NOT_RIGHT_FIRST,
SLIDE_MODE_NOT_LOOP,
} CARD_SLIDE_MODE;
#define SIDEBAR_LEFT_IN_FIRST_PAGE 1
#define SIDEBAR_LEFT_IN_ALL_PAGE 2
extern int ui_page_manager_mode_set(u8 mode);
extern int ui_page_manager_mode_get(void);
extern void ui_card_enable(void);
extern void ui_card_disable(void);
extern u8 ui_card_get_move_mode();
extern void ui_card_set_move_mode(u8 mode);
extern int ui_show_window_slide(u32 page_id, int mode, int step);
extern int ui_server_msg_post(const char *msg, ...);
extern int ui_hide_curr_main();
extern int ui_touch_msg_post(struct touch_event *event);
extern int ui_touch_msg_post_withcallback(struct touch_event *event, void (*cb)(u8 finish));
extern int ui_key_msg_post(int msg);
extern void key_ui_takeover(u8 on);
extern int key_is_ui_takeover();
extern void ui_touch_timer_delete();
extern void ui_touch_timer_start();
extern void ui_auto_shut_down_modify(void);
extern void ui_auto_shut_down_re_run(void);
extern void ui_auto_shut_down_enable(void);
extern u8 ui_auto_shut_down_disable(void);
extern void ui_set_shut_down_time(u16 time);
extern int ui_get_shut_down_time();
extern void ui_set_shut_down_time_ms(u32 time_ms);
extern int ui_get_shut_down_time_ms();
extern u32 *get_ui_mem_id();
extern u32 get_ui_mem_id_size();
extern void set_ui_open_flag(u8 flag);
extern u8 get_ui_open_flag();
extern u8 get_ui_init_status();
extern void ui_backlight_close(void);
extern void ui_backlight_open(u8 recover_cur_page);
extern int watch_get_style();
extern int watch_set_style(int style);
extern void ui_auto_goto_dial_enable(void);
extern void ui_auto_goto_dial_disable(void);
extern void ui_send_event(u16 event, u32 val);
extern void ui_moto_run(u8 run_mode);
extern void cs_ui_popup_page(u32 page_id);
//表盘管理
extern void watch_set_need_reload(u8 need);
extern int watch_set_style(int style);
extern int watch_set_style_by_name(char *name);
extern int watch_get_style();
extern int watch_get_style_by_name(char *name);
extern char *watch_get_item(int style);
extern int watch_get_items_num();
extern char *watch_get_full_path();
extern char *watch_get_cur_path();
extern char *watch_get_root_path();
extern int watch_get_cur_path_len();
//表盘背景管理
extern u32 watch_bgp_get_nums();
extern char *watch_bgp_get_item(u8 sel_item);
extern char *watch_bgp_get_name(int item);
extern char *watch_bgp_add(char *bgp);
extern int watch_bgp_del(char *bgp);
extern int watch_bgp_set_related(char *bgp, u8 cur_watch, u8 del);
extern char *watch_bgp_get_related(u8 cur_watch);
extern char *watch_bgp_get_related_path(u8 cur_watch);
extern int watch_bgp_related_del_all(char *bgp);
extern int watch_bgp_get_index(char *bgp_name);
extern char *watch_bgp_get_item_without_path(s8 sel_item);
//多页面显示
extern int ui_show_multi_page();
extern int ui_hide_multi_page();
//=================================================================================//
// UI API //
//=================================================================================//
#if (TCFG_UI_ENABLE)
#if(CONFIG_UI_STYLE == STYLE_JL_LED7)//led7 显示
#define UI_INIT(a) led7_ui_init(a)
#define UI_SHOW_WINDOW(a) ui_set_main_menu(a)
#define UI_HIDE_WINDOW(...) ui_close_main_menu()
#define UI_HIDE_CURR_WINDOW() ui_close_main_menu()
#define UI_GET_WINDOW_ID() ui_get_app_menu(GET_MAIN_MENU)
#define UI_GET_CURR_MENU() ui_get_app_menu(GRT_CUR_MENU)
#define UI_REFLASH_WINDOW(a) ui_menu_reflash(a)
#define UI_SHOW_MENU ui_set_tmp_menu
#define UI_MSG_POST(...)
#else
#if (CONFIG_LVGL_UI_ENABLE)
#define UI_INIT(...)
#define UI_SHOW_WINDOW(...)
#define UI_HIDE_WINDOW(...)
#define UI_GET_WINDOW_ID() (-1)
#define UI_HIDE_CURR_WINDOW()
#define UI_SHOW_MENU(...)
#define UI_MSG_POST(...)
#define UI_REFLASH_WINDOW(a)
#define UI_MOTO_RUN(...)
#define UI_WINDOW_BACK_PUSH(a)
#define UI_WINDOW_BACK_SHOW(a)
#define UI_WINDOW_BACK_SPEC_SHOW(a)
#define UI_WINDOW_BACK_CLEAN()
#define UI_WINDOW_BACK_SUB()
#define UI_WINDOW_BACK_INDEX()
#define UI_WINDOW_BACK_DEL(a)
#define UI_WINDOW_PREEMPTION_POSH(a,b,c,d) (-1)
#define UI_WINDOW_PREEMPTION_DEL(a)
#define UI_WINDOW_PREEMPTION_POP(a)
#define UI_WINDOW_PREEMPTION_CHECK() (false)
/*#define platform_get_file(a)*/
#else
#define UI_INIT(a) lcd_ui_init(a)
#define UI_SHOW_WINDOW(a) ui_show_main(a)
#define UI_HIDE_WINDOW(a) ui_hide_main(a)
#define UI_HIDE_CURR_WINDOW() ui_hide_curr_main()
#define UI_GET_WINDOW_ID() ui_get_current_window_id()
#define UI_MSG_POST ui_server_msg_post
#define UI_SHOW_MENU(...)
#define UI_GET_CURR_MENU()
#define UI_REFLASH_WINDOW(a)
#define UI_MOTO_RUN(a) ui_moto_run(a)
#define UI_WINDOW_BACK_PUSH(a) ui_return_page_push(a)
#define UI_WINDOW_BACK_SHOW(a) ui_return_page_pop(a)
#define UI_WINDOW_BACK_SPEC_SHOW(a) ui_return_page_pop_spec(a)
#define UI_WINDOW_BACK_CLEAN() ui_return_page_clear()
#define UI_WINDOW_BACK_ADD(a) ui_return_page_add(a)
#define UI_WINDOW_BACK_SUB() ui_return_page_sub()
#define UI_WINDOW_BACK_INDEX() get_return_index()
#define UI_WINDOW_BACK_DEL(a) ui_return_page_del(a)
#define UI_WINDOW_PREEMPTION_POSH(a,b,c,d) ui_preemption_page_push(a,b,c,d)
#define UI_WINDOW_PREEMPTION_POP(a) ui_preemption_page_pop(a)
#define UI_WINDOW_PREEMPTION_DEL(a) ui_preemption_page_del(a)
#define UI_WINDOW_PREEMPTION_CHECK() ui_preemption_page_check()
#define CS_UI_POPUP_PAGE(a) cs_ui_popup_page(a)
#define UI_SHOW_MULTI_PAGE() ui_show_multi_page()
#define UI_HIDE_MULTI_PAGE() ui_hide_multi_page()
#endif
#endif
#else
//common api lcd屏和led7 通用api
#define UI_INIT(...)
#define UI_SHOW_WINDOW(...)
#define UI_HIDE_WINDOW(...)
#define UI_GET_WINDOW_ID() (-1)
#define UI_HIDE_CURR_WINDOW()
#define UI_SHOW_MENU(...)
#define UI_MSG_POST(...)
#define UI_REFLASH_WINDOW(a)
#define UI_MOTO_RUN(...)
#define UI_WINDOW_BACK_PUSH(a)
#define UI_WINDOW_BACK_SHOW(a)
#define UI_WINDOW_BACK_SPEC_SHOW(a)
#define UI_WINDOW_BACK_CLEAN()
#define UI_WINDOW_BACK_SUB()
#define UI_WINDOW_BACK_INDEX()
#define UI_WINDOW_BACK_DEL(a)
#define UI_WINDOW_PREEMPTION_POSH(a,b,c,d) (-1)
#define UI_WINDOW_PREEMPTION_DEL(a)
#define UI_WINDOW_PREEMPTION_POP(a)
#define UI_WINDOW_PREEMPTION_CHECK() (false)
#define CS_UI_POPUP_PAGE(a)
#endif /* #if TCFG_UI_ENABLE */
// UI抢占显示,最大PAGE_PREEMPTION_MAX-1
#define UI_WINDOW_PREEMPTION_TYPE_TIMER_COUNTDOWN 1 // 计时器
#define UI_WINDOW_PREEMPTION_TYPE_ALARM 2 // 闹钟
#define UI_WINDOW_PREEMPTION_TYPE_PHONE 3 // 电话
#define UI_WINDOW_PREEMPTION_TYPE_CHARGE 3 // 充电
#define UI_WINDOW_PREEMPTION_TYPE_SPORT 4 // 锻炼
#define UI_WINDOW_PREEMPTION_TYPE_DETECTION 4 // 久坐提醒
#define UI_WINDOW_PREEMPTION_TYPE_FALL 4 // 跌倒检测
#define UI_WINDOW_PREEMPTION_TYPE_UPGRADE 5 // 升级
#define UI_WINDOW_PREEMPTION_TYPE_PC 5 // PC
#define UI_WINDOW_PREEMPTION_TYPE_POWEROFF 6 // 关机
#define UI_WINDOW_PREEMPTION_TYPE_POP_UP 7 // 开关盖
#endif // #if CONFIG_JL_UI_ENABLE
#endif
@@ -0,0 +1,187 @@
#ifndef __jlui_app_ui_effect__
#define __jlui_app_ui_effect__
#include "ui_core.h"
#include "jlui/ui_page_manager.h"
#include "jlui/ui_page_switch.h"
struct ui_page_draw {
pJLGPUTaskHead_t *new_task_list;
struct rect *rec_page_rect;
struct rect *rec_gpu_rect;
struct rect *rec_lcd_rect;
u32 new_list_create;
u32 list_total;
};
struct ui_effect_module {
int style;
int (*ontouch)(struct element_touch_event *);
int (*get_status)(void);
void (*uninit)(void);
int (*effect_draw)(pJLGPUMultTaskList_t mult_list, struct ui_page_draw *draw);
};
extern struct ui_effect_module ui_effect_module_begin[];
extern struct ui_effect_module ui_effect_module_end[];
#define REGISTER_UI_EFFECT_MODULE(mode) \
const struct ui_effect_module ui_effect_mod_##mode \
sec(.ui_effect_module) = {\
.style = mode,
struct ui_effect_module *ui_effect_get_handle_by_style(int style);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_effect_set_alpha 修改透明度
*
* @param elm 控件句柄
* @param alpha 透明度
* @param child 是否更新子控件为同一透明度
* @param redraw 是否刷新
*/
/* ------------------------------------------------------------------------------------*/
void ui_effect_set_alpha(struct element *elm, int alpha, int child, int redraw);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_ram_image_attrs_set 创建ram图像信息
*
* @param img
* @param data
* @param data_len
* @param width
* @param height
* @param format
*
* @return
*/
/* ------------------------------------------------------------------------------------*/
int ui_ram_image_attrs_set(struct ui_image_attrs *img, u8 *data, int data_len, int width, int height, int format);
/* ------------------------------------------------------------------------------------*/
/**
* @brief jlgpu_create_task_list_by_image 添加图片任务
*
* @param head
* @param image_attr
* @param xoffset
* @param yoffset
*
* @return
*/
/* ------------------------------------------------------------------------------------*/
pJLGPUTaskHead_t jlgpu_create_task_list_by_image(pJLGPUTaskHead_t head, struct ui_image_attrs *image_attr, int xoffset, int yoffset);
/* ------------------------------------------------------------------------------------*/
/**
* @brief jlgpu_create_task_list_by_image_set_blend_mode 创建图片任务链
*
* @param head
* @param image_attr
* @param xoffset
* @param yoffset
* @param blend_mode 指定blend方式
*
* @return
*/
/* ------------------------------------------------------------------------------------*/
pJLGPUTaskHead_t jlgpu_create_task_list_by_image_set_blend_mode(pJLGPUTaskHead_t head, struct ui_image_attrs *image_attr, int xoffset, int yoffset, int blend_mode);
/* ------------------------------------------------------------------------------------*/
/**
* @brief menu_enter_app_anim 页面进入动画
*
* @param app_id 要进入的页面
* @param touch_x 触点x
* @param touch_y 触点y
*/
/* ------------------------------------------------------------------------------------*/
void menu_enter_app_anim(u32 app_id, int touch_x, int touch_y);
/* ------------------------------------------------------------------------------------*/
/**
* @brief menu_enter_app_state 状态判断
*
* @return
*/
/* ------------------------------------------------------------------------------------*/
int menu_enter_app_state();
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_set_pos 设置返回坐标
*
* @param pos_x
* @param pos_y
*/
/* ------------------------------------------------------------------------------------*/
void ui_return_page_effect_set_pos(u16 pos_x, u16 pos_y);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_set_en 使能返回特效
*
* @param enable
*/
/* ------------------------------------------------------------------------------------*/
void ui_return_page_effect_set_en(u8 enable);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_set_win 记录需要从哪个页面返回
*
* @param window
*/
/* ------------------------------------------------------------------------------------*/
void ui_return_page_effect_set_win(u32 window);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_enable 返回特效配置
*
* @param window
* @param pos_x
* @param pos_y
* @param enable
*/
/* ------------------------------------------------------------------------------------*/
void ui_return_page_effect_enable(u32 window, u16 pos_x, u16 pos_y, u8 enable);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_init 返回特效
*
* @param ret_page 返回页面
*
* @return 0 支持启动返回特效,-1 不支持返回特效
*/
/* ------------------------------------------------------------------------------------*/
int ui_return_page_effect_init(u32 ret_page);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_move 跟手滑动
*
* @param xoffset
* @param yoffset
*/
/* ------------------------------------------------------------------------------------*/
void ui_return_page_effect_move(int xoffset, int yoffset);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_free 抬手动画
*/
/* ------------------------------------------------------------------------------------*/
void ui_return_page_effect_free();
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_touch 返回跟手
*
* @param e
*
* @return
*/
/* ------------------------------------------------------------------------------------*/
int ui_return_page_effect_touch(struct element_touch_event *e);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_return_page_effect_in_move 返回动画状态
*
* @return
*/
/* ------------------------------------------------------------------------------------*/
int ui_return_page_effect_in_move();
#endif
@@ -0,0 +1,12 @@
#ifndef __UI_MENU_MANAGE_H__
#define __UI_MENU_MANAGE_H__
#define MENU_SEL_ID_APP_MENU 0
#define MENU_APP_RECORD 1
#define MENU_SEL_ID_MAX 2
u32 ui_menu_map_by_sel(u32 sel, u32 menu_type);
#endif
@@ -0,0 +1,33 @@
//generated by ResBuilder in 2023-05-07 22:59:59
#ifndef _RESULT_PIC_INDEX_H_
#define _RESULT_PIC_INDEX_H_
////BmpResID Define Table////
//PAGE 0
#define PAGE0_4994_03_MENU_ICON_STATE_SEL 0x000001 // images\03.menu_icon_state_sel.png
#define PAGE0_de6b_04_MENU_ICON_HEART_SEL 0x000002 // images\04.menu_icon_heart_sel.bmp
#define PAGE0_4e97_04_MENU_ICON_HEART_SEL 0x000003 // images\04.menu_icon_heart_sel.png
#define PAGE0_5dad_05_MENU_ICON_BLOOD_SEL 0x000004 // images\05.menu_icon_blood_sel.png
#define PAGE0_060f_BIRD_1 0x000005 // images\bird_1.png
#define PAGE0_18e2_CLOCK 0x000006 // images\clock.bmp
#define PAGE0_7b17_COMPASS 0x000007 // images\compass.png
#define PAGE0_daca_COMPASS1 0x000008 // images\compass1.png
#define PAGE0_9d77_HOUR 0x000009 // images\hour.png
#define PAGE0_976c_ICON1 0x00000a // images\icon1.png
#define PAGE0_26a3_ICON2 0x00000b // images\icon2.png
#define PAGE0_5fd9_MINUTE_SEC 0x00000c // images\minute_sec.png
#define PAGE0_38d6_SCA1 0x00000d // images\sca1.bmp
#define PAGE0_8919_SCA2 0x00000e // images\sca2.bmp
#define PAGE0_e65c_SCA3 0x00000f // images\sca3.bmp
#define PAGE0_95e3_SCA5 0x000010 // images\sca5.bmp
#define PAGE0_e4c4_TEST0 0x000011 // images\test0.jpg
#define PAGE0_8b81_TEST1 0x000012 // images\test1.jpg
#define PAGE0_3a4e_TEST2 0x000013 // images\test2.jpg
#define PAGE0_550b_TEST3 0x000014 // images\test3.jpg
#define PAGE0_5435_TEXT 0x000015 // images\text.png
#define PAGE0_17d5_WEIXIN_20220507102155 0x000016 // images\weixin_20220507102155.png
#define PAGE0_97e0_WHITE 0x000017 // images\white.bmp
#endif
@@ -0,0 +1,7 @@
#ifndef __UI_RESOURCE_H__
#define __UI_RESOURCE_H__
#include "jlui_app/result_pic_index.h"
#include "jlui_app/result_str_index.h"
#endif
@@ -0,0 +1,432 @@
#ifndef UI_STYLE_H
#define UI_STYLE_H
#include "app_config.h"
#if (CONFIG_UI_STYLE == STYLE_JL_WATCH_PUBLIC_MODLS)
#include "jlui_app/style_JL_new.h"
#include "jlui_app/style_DIAL_new.h"
#include "jlui_app/style_upgrade_new.h"
#include "jlui_app/style_sidebar.h"
#define ID_WINDOW_DIAL DIAL_PAGE_0
#define ID_WINDOW_POWER_ON PAGE_1
#define ID_WINDOW_POWER_OFF PAGE_2
#define ID_WINDOW_MENU_LIST PAGE_3
#define ID_WINDOW_MENU_STAR PAGE_4
#define ID_WINDOW_DAYACTIVE PAGE_5
#define ID_WINDOW_SETTING PAGE_7
#define ID_WINDOW_UNDISTURB PAGE_8
#define ID_WINDOW_SHUTDOWN PAGE_9
#define ID_WINDOW_REBOOT PAGE_10
#define ID_WINDOW_SETTING_PASSWORD PAGE_11
#define ID_WINDOW_HEALTH_TIPS PAGE_12
#define ID_WINDOW_LOW_POWER PAGE_13
#define ID_WINDOW_BACK2FACTORY PAGE_14
#define ID_WINDOW_TIMER PAGE_15
#define ID_WINDOW_STOPWATCH PAGE_16
#define ID_WINDOW_ALIPAY PAGE_17
#define ID_WINDOW_APP_QRCODE PAGE_18
#define ID_WINDOW_ABOUT PAGE_19
#define ID_WINDOW_POWERON_PASSWORD PAGE_20
#define ID_WINDOW_SIRI PAGE_21
#define ID_WINDOW_SETTING_BRIGHTNESS PAGE_22
#define ID_WINDOW_SETTING_VOICE PAGE_23
#define ID_WINDOW_CONN_NEW_PHONE PAGE_24
#define ID_WINDOW_COMPASS PAGE_25
#define ID_WINDOW_PHONE PAGE_26
#define ID_WINDOW_PHONE_KEYPAD PAGE_27
#define ID_WINDOW_PHONE_CALL_STATUS PAGE_28
#define ID_WINDOW_ALARM PAGE_29
#define ID_WINDOW_ALARM_RINGING PAGE_30
#define ID_WINDOW_MUSIC_PLAYER PAGE_31
#define ID_WINDOW_WEATHER PAGE_32
#define ID_WINDOW_PHOTOGRAGH PAGE_33
#define ID_WINDOW_CALCULATOR PAGE_34
#define ID_WINDOW_CALENDAR PAGE_35
#define ID_WINDOW_MENU_WATERFALLS PAGE_36
#define ID_WINDOW_MENU_WOMEN_HEALTH PAGE_37
#define ID_WINDOW_BATCHARGE PAGE_38
#define ID_WINDOW_SPORT_TARGET PAGE_39
#define ID_WINDOW_SPORT_TARGET_KM_SET PAGE_40
#define ID_WINDOW_SPORT_RESULT PAGE_41
#define ID_WINDOW_MOMENTUM PAGE_42
#define ID_WINDOW_SPORTING PAGE_43
#define ID_WINDOW_INDOOR_SPORTS PAGE_44
#define ID_WINDOW_OUTDOOR_SPORTS PAGE_45
#define ID_WINDOW_SPORT_INTENSITY PAGE_46
#define ID_WINDOW_RUNLIGHT PAGE_47
#define ID_WINDOW_BREATH_TRAIN PAGE_48
#define ID_WINDOW_HEART PAGE_49
#define ID_WINDOW_OXYGEN PAGE_50
#define ID_WINDOW_SLEEPAID PAGE_51
#define ID_WINDOW_SLEEP PAGE_52
#define ID_WINDOW_BLOODPRESSURE PAGE_53
#define ID_WINDOW_HEAT PAGE_54
#define ID_WINDOW_SETTING_COMMON PAGE_55
#define ID_WINDOW_COMPONENT PAGE_56
#define ID_WINDOW_DIAL_SEL PAGE_57
#define ID_WINDOW_SHORTCUT_MENU PAGE_59
#define ID_WINDOW_NOTICE PAGE_60
#define ID_WINDOW_SPORT_TARGET_TIME_SET PAGE_62
#define ID_WINDOW_SPORT_TARGET_CAL_SET PAGE_63
#define ID_WINDOW_FOOTBALL PAGE_64
#define ID_WINDOW_RESTART_SHUTDOWN PAGE_65
#define ID_WINDOW_BEDSIDE_WATCH PAGE_67
#define ID_WINDOW_FLASHLIGHT PAGE_68
#define ID_WINDOW_ENGINEERING_MODE PAGE_69
#define ID_WINDOW_LOW_POWER_TIPS PAGE_70
#define ID_WINDOW_BT_DISCONN_TIPS PAGE_71
#define ID_WINDOW_WOMEN_HEALTH_WARNING PAGE_72
#define ID_WINDOW_RUBIKS_CUBE PAGE_73
#define ID_WINDOW_FINDMY PAGE_74
#define ID_WINDOW_BT_EMITTER PAGE_75
#define ID_WINDOW_SMARTWIN PAGE_76
#define ID_WINDOW_DIAL_MODE_SEL PAGE_77
#define ID_WINDOW_APP_IFLYTEK PAGE_78
#define ID_WINDOW_AI_DIAL PAGE_79
#define ID_WINDOW_NET_IFLY PAGE_80
#define ID_WINDOW_UVC PAGE_81
#define ID_WINDOW_CAMERA PAGE_82
#define ID_WINDOW_PC PAGE_83
#define ID_WINDOW_FINDPHONE 0
#define ID_WINDOW_UPGRADE UPGRADE_PAGE_0
#define ID_WINDOW_DEFAULT ID_WINDOW_DIAL//没有页面时返回
#define CONFIG_UI_STYLE_JL_PUBLIC_MODLS_ENABLE
#endif//STYLE_JL_WATCH_PUBLIC_MODLS
#if (CONFIG_UI_STYLE == STYLE_JL_CSC_PUBLIC_MODLS)
#include "jlui_app/style_JL_new_csc.h"
#include "jlui_app/style_DIAL_new_csc.h"
#include "jlui_app/style_upgrade_new_csc.h"
#include "jlui_app/style_sidebar_csc.h"
#define PAGE_NULL (-1)
#define ID_WINDOW_DIAL DIAL_PAGE_0
#define ID_WINDOW_POWER_ON PAGE_1
#define ID_WINDOW_POWER_OFF PAGE_2
#define ID_WINDOW_APP_QRCODE PAGE_NULL //APP下载二维码
#define ID_WINDOW_PAGE_EFFECTS_SW PAGE_NULL
#define ID_WINDOW_MENU_EFFECTS_SW PAGE_NULL
#define ID_WINDOW_TIMER PAGE_NULL
#define ID_WINDOW_ALARM_CLOCK PAGE_3
#define ID_WINDOW_QRCODE PAGE_NULL //APP连接二维码
#define ID_WINDOW_ABOUT PAGE_NULL
#define ID_WINDOW_PHONE PAGE_NULL
#define ID_WINDOW_PHONE_KEYPAD PAGE_NULL
#define ID_WINDOW_PHONE_CALL_STATUS PAGE_4
#define ID_WINDOW_ALARM_RINGING PAGE_5
#define ID_WINDOW_WEATHER PAGE_NULL
#define ID_WINDOW_PHOTOGRAGH PAGE_6
#define ID_WINDOW_CALENDAR PAGE_NULL
#define ID_WINDOW_MENU_WOMEN_HEALTH PAGE_NULL
#define ID_WINDOW_BATCHARGE PAGE_7
#define ID_WINDOW_NOTICE PAGE_21
#define ID_WINDOW_LANGUAGE_SELECT PAGE_NULL
#define ID_WINDOW_FOOTBALL PAGE_NULL
#define ID_WINDOW_FLASHLIGHT PAGE_NULL
#define ID_WINDOW_ENGINEERING_MODE PAGE_NULL
#define ID_WINDOW_VOLUME PAGE_9
#define ID_WINDOW_EARPHONE_DISNOISE PAGE_10
#define ID_WINDOW_EQUALIZER PAGE_11
#define ID_WINDOW_MUSIC_PLAYER PAGE_12
#define ID_WINDOW_H_LIST PAGE_NULL
#define ID_WINDOW_TOPBAR PAGE_13
#define ID_WINDOW_MUSIC_LRC PAGE_NULL
#define ID_WINDOW_BG_SELECT PAGE_NULL
#define ID_WINDOW_LOCK_SELECT PAGE_14
#define ID_WINDOW_POP_UP PAGE_NULL
#define ID_WINDOW_TIKTOK PAGE_15
#define ID_WINDOW_LANGUAGE PAGE_16
#define ID_WINDOW_FIND_EARPHONE PAGE_17
#define ID_WINDOW_LCD_BRIGHTNESS PAGE_18
#define ID_WINDOW_LCD_LIGHT_TIME PAGE_NULL
#define ID_WINDOW_APP_MENU PAGE_NULL
#define ID_WINDOW_SET_MENU PAGE_NULL
#define ID_WINDOW_SURE PAGE_NULL
#define ID_WINDOW_TOUCH_AWAKE PAGE_NULL
#define ID_WINDOW_TIME_SETTING PAGE_19
#define ID_WINDOW_RESTART_SHUTDOWN PAGE_20
#define ID_WINDOW_KEY_SET PAGE_NULL
#define ID_WINDOW_EFFECT_SEL PAGE_NULL
#define ID_WINDOW_BEDSIDE_WATCH PAGE_NULL
#define ID_WINDOW_SPORTING PAGE_NULL
#define ID_WINDOW_SPORT_RESULT PAGE_NULL
#define ID_WINDOW_POWERON_PASSWORD PAGE_NULL
#define ID_WINDOW_COMPONENT PAGE_NULL
#define ID_WINDOW_SHORTCUT_MENU PAGE_NULL
#define ID_WINDOW_STOPWATCH PAGE_NULL
#define ID_WINDOW_INDOOR_SPORTS PAGE_NULL
#define ID_WINDOW_OUTDOOR_SPORTS PAGE_NULL
#define ID_WINDOW_FINDPHONE 0
#define ID_WINDOW_UPGRADE UPGRADE_PAGE_0
#define ID_WINDOW_DEFAULT ID_WINDOW_MUSIC_PLAYER//没有页面时返回
#define CONFIG_UI_STYLE_JL_CSC_PUBLIC_MODLS_ENABLE
#endif//STYLE_JL_CSC_PUBLIC_MODLS
#if (CONFIG_UI_STYLE == STYLE_JL_WTACH_NEW)
#include "jlui_app/style_JL_new.h"
#include "jlui_app/style_DIAL_new.h"
#include "jlui_app/style_upgrade_new.h"
#include "jlui_app/style_sidebar.h"
#ifdef PAGE_0
#undef PAGE_0
#define PAGE_0 DIAL_PAGE_0
#endif
// #define ID_WINDOW_BT PAGE_76
#define ID_WINDOW_DIAL PAGE_0
#define ID_WINDOW_BT PAGE_0
#define ID_WINDOW_CLOCK PAGE_0
#define ID_WINDOW_ACTIVERECORD PAGE_1
#define ID_WINDOW_SLEEP PAGE_2
#define ID_WINDOW_MAIN PAGE_3
#define ID_WINDOW_POWER_ON PAGE_4
#define ID_WINDOW_POWER_OFF PAGE_5
#define ID_WINDOW_VMENU PAGE_7
#define ID_WINDOW_PHONE PAGE_6
#define ID_WINDOW_MUSIC PAGE_10
#define ID_WINDOW_CALL_DIAL PAGE_13
#define ID_WINDOW_IDLE PAGE_15
#define ID_WINDOW_STAR_MENU PAGE_17
#define ID_WINDOW_PHONEBOOK PAGE_19
#define ID_WINDOW_PHONEBOOK_SYNC PAGE_20
#define ID_WINDOW_MUSIC_SET PAGE_21
#define ID_WINDOW_CALLRECORD PAGE_22
#define ID_WINDOW_PAGE PAGE_23
#define ID_WINDOW_MUSIC_BROWER PAGE_28
#define ID_WINDOW_PC PAGE_32
#define ID_WINDOW_STOPWATCH PAGE_33
#define ID_WINDOW_CALCULAGRAPH PAGE_34
#define ID_WINDOW_SET PAGE_41
#define ID_WINDOW_SCREEN_DISP PAGE_42
#define ID_WINDOW_VOICE_SET PAGE_43
#define ID_WINDOW_SHAKE_LEVEL PAGE_44
#define ID_WINDOW_UNDISTURB_MODE PAGE_45
#define ID_WINDOW_ABOUT PAGE_46
#define ID_WINDOW_TRAIN_SET PAGE_47
#define ID_WINDOW_TOUCH_SEND PAGE_48
#define ID_WINDOW_USER_GUIDE PAGE_49
#define ID_WINDOW_SYS_MENU PAGE_50
#define ID_WINDOW_ALARM PAGE_51
#define ID_WINDOW_FLASHLIGHT PAGE_52
#define ID_WINDOW_FINDPHONE PAGE_53
#define ID_WINDOW_TRAIN PAGE_54
#define ID_WINDOW_SPORT_SHOW PAGE_55
#define ID_WINDOW_BREATH_TRAIN PAGE_57
#define ID_WINDOW_ALTIMETER PAGE_63
#define ID_WINDOW_BARO PAGE_64
#define ID_WINDOW_WEATHER PAGE_66
#define ID_WINDOW_PRESSURE PAGE_67
#define ID_WINDOW_COMPASS PAGE_73
#define ID_WINDOW_ALARM_RING_START PAGE_74
#define ID_WINDOW_STYLE PAGE_75
#define ID_WINDOW_HEART PAGE_76
#define ID_WINDOW_BLOOD_OXYGEN PAGE_77
#define ID_WINDOW_SPORT_INFO PAGE_78
#define ID_WINDOW_SPORT_CTRL PAGE_79
#define ID_WINDOW_SPORT_RECORD PAGE_80
#define ID_WINDOW_MESS PAGE_81
#define ID_WINDOW_FALL PAGE_83
#define ID_WINDOW_DETECTION PAGE_84
#define ID_WINDOW_LANGUAGE PAGE_85
#define ID_WINDOW_SHUTDOWN_OR_RESET PAGE_86
#define ID_WINDOW_TRAIN_STATUS PAGE_87
#define ID_WINDOW_SPORT_COURSE PAGE_88
#define ID_WINDOW_ALARM_RING_STOP PAGE_89
#define ID_WINDOW_ALARM_RING_SOON PAGE_90
#define ID_WINDOW_ALIPAY PAGE_94
#define ID_WINDOW_BT_SETTING PAGE_95
#define ID_WINDOW_RECORD PAGE_96
#define ID_WINDOW_CALENDAR PAGE_97
#define ID_WINDOW_CALCULATOR PAGE_98
#define ID_WINDOW_DRAWER PAGE_99
#define ID_WINDOW_CARD_BAG PAGE_100
#define ID_WINDOW_AI PAGE_103
#define ID_WINDOW_AI_DIAL PAGE_104
#define ID_WINDOW_CALL_CHANNEL_SEL PAGE_105
#define ID_WINDOW_CAT1_SETTING PAGE_106
#define ID_WINDOW_CAT1_AICXTEK_ENGINEERING PAGE_107
#define ID_WINDOW_CAT1_CALL_SMS_SEL PAGE_108
#define ID_WINDOW_CAT1_SMS_REPLY PAGE_109
#define ID_WINDOW_CAT1_UNISOC_ENGINEERING PAGE_110
#define ID_WINDOW_FINDMY_SETTING PAGE_111
#define ID_WINDOW_NET_IFLY PAGE_112
#define ID_WINDOW_UPGRADE UPGRADE_PAGE_0
#define CONFIG_UI_STYLE_JL_ENABLE
#endif
#if(CONFIG_UI_STYLE == STYLE_JL_SOUNDBOX)
#include "ui/style_jl02.h"//点阵//
#define ID_WINDOW_MAIN PAGE_0
#define ID_WINDOW_BT PAGE_1
#define ID_WINDOW_FM PAGE_2
#define ID_WINDOW_CLOCK PAGE_3
#define ID_WINDOW_MUSIC PAGE_4
#define ID_WINDOW_LINEIN PAGE_0
#define ID_WINDOW_POWER_ON PAGE_5
#define ID_WINDOW_POWER_OFF PAGE_6
#define ID_WINDOW_SYS PAGE_7
#endif
#if(CONFIG_UI_STYLE == STYLE_JL_LED7)//led7 显示
#define ID_WINDOW_BT UI_BT_MENU_MAIN
#define ID_WINDOW_FM UI_FM_MENU_MAIN
#define ID_WINDOW_CLOCK UI_RTC_MENU_MAIN
#define ID_WINDOW_MUSIC UI_MUSIC_MENU_MAIN
#define ID_WINDOW_LINEIN UI_AUX_MENU_MAIN
#define ID_WINDOW_PC UI_PC_MENU_MAIN
#define ID_WINDOW_POWER_ON UI_IDLE_MENU_MAIN
#define ID_WINDOW_POWER_OFF UI_IDLE_MENU_MAIN
#define ID_WINDOW_SPDIF UI_IDLE_MENU_MAIN
#define ID_WINDOW_IDLE UI_IDLE_MENU_MAIN
#endif
#if ((CONFIG_UI_STYLE == STYLE_JL_WTACH) || (CONFIG_UI_STYLE == STYLE_JL_WTACH_NEW))
#if (defined(ID_WINDOW_ACTIVERECORD) && defined(TCFG_UI_ENABLE_SPORTRECORD) && (!TCFG_UI_ENABLE_SPORTRECORD))
#undef ID_WINDOW_ACTIVERECORD
#define ID_WINDOW_ACTIVERECORD 0
#endif
#if (defined(ID_WINDOW_MUSIC) && defined(TCFG_UI_ENABLE_MUSIC) && (!TCFG_UI_ENABLE_MUSIC))
#undef ID_WINDOW_MUSIC
#define ID_WINDOW_MUSIC 0
#endif
#if (defined(ID_WINDOW_MUSIC_SET) && defined(TCFG_UI_ENABLE_MUSIC_MENU) && (!TCFG_UI_ENABLE_MUSIC_MENU))
#undef ID_WINDOW_MUSIC_SET
#define ID_WINDOW_MUSIC_SET 0
#endif
#if (defined(ID_WINDOW_MUSIC_BROWER) && defined(TCFG_UI_ENABLE_FILE) && (!TCFG_UI_ENABLE_FILE))
#undef ID_WINDOW_MUSIC_BROWER
#define ID_WINDOW_MUSIC_BROWER 0
#endif
#if (defined(ID_WINDOW_PHONEBOOK) && defined(TCFG_UI_ENABLE_PHONEBOOK) && (!TCFG_UI_ENABLE_PHONEBOOK))
#undef ID_WINDOW_PHONEBOOK
#define ID_WINDOW_PHONEBOOK 0
#undef ID_WINDOW_PHONEBOOK_SYNC
#define ID_WINDOW_PHONEBOOK_SYNC 0
#endif
#if (defined(ID_WINDOW_PC) && defined(TCFG_UI_ENABLE_PC) && (!TCFG_UI_ENABLE_PC))
#undef ID_WINDOW_PC
#define ID_WINDOW_PC 0
#endif
#if (defined(ID_WINDOW_STOPWATCH) && defined(TCFG_UI_ENABLE_STOPWATCH) && (!TCFG_UI_ENABLE_STOPWATCH))
#undef ID_WINDOW_STOPWATCH
#define ID_WINDOW_STOPWATCH 0
#endif
#if (defined(ID_WINDOW_CALCULAGRAPH) && defined(TCFG_UI_ENABLE_TIMER_ACTION) && (!TCFG_UI_ENABLE_TIMER_ACTION))
#undef ID_WINDOW_CALCULAGRAPH
#define ID_WINDOW_CALCULAGRAPH 0
#endif
#if (defined(ID_WINDOW_ALARM) && defined(TCFG_UI_ENABLE_ALARM) && (!TCFG_UI_ENABLE_ALARM))
#undef ID_WINDOW_ALARM
#define ID_WINDOW_ALARM 0
#endif
#if (defined(ID_WINDOW_FLASHLIGHT) && defined(TCFG_UI_ENABLE_FLASHLIGHT) && (!TCFG_UI_ENABLE_FLASHLIGHT))
#undef ID_WINDOW_FLASHLIGHT
#define ID_WINDOW_FLASHLIGHT 0
#endif
#if (defined(ID_WINDOW_FINDPHONE) && defined(TCFG_UI_ENABLE_FINDPHONE) && (!TCFG_UI_ENABLE_FINDPHONE))
#undef ID_WINDOW_FINDPHONE
#define ID_WINDOW_FINDPHONE 0
#endif
#if (defined(ID_WINDOW_WEATHER) && defined(TCFG_UI_ENABLE_WEATHER) && (!TCFG_UI_ENABLE_WEATHER))
#undef ID_WINDOW_WEATHER
#define ID_WINDOW_WEATHER 0
#endif
#if (defined(ID_WINDOW_MESS) && defined(TCFG_UI_ENABLE_NOTICE) && (!TCFG_UI_ENABLE_NOTICE))
#undef ID_WINDOW_MESS
#define ID_WINDOW_MESS 0
#endif
#if (defined(ID_WINDOW_ALTIMETER) && defined(TCFG_UI_ENABLE_ALTIMETER) && (!TCFG_UI_ENABLE_ALTIMETER))
#undef ID_WINDOW_ALTIMETER
#define ID_WINDOW_ALTIMETER 0
#endif
#if (defined(ID_WINDOW_BARO) && defined(TCFG_UI_ENABLE_PRESSURE) && (!TCFG_UI_ENABLE_PRESSURE))
#undef ID_WINDOW_BARO
#define ID_WINDOW_BARO 0
#endif
#if (defined(ID_WINDOW_SPORT_INFO) && defined(TCFG_UI_ENABLE_SPORT_INFO) && (!TCFG_UI_ENABLE_SPORT_INFO))
#undef ID_WINDOW_SPORT_INFO
#define ID_WINDOW_SPORT_INFO 0
#endif
#if (defined(ID_WINDOW_BLOOD_OXYGEN) && defined(TCFG_UI_ENABLE_OXYGEN) && (!TCFG_UI_ENABLE_OXYGEN))
#undef ID_WINDOW_BLOOD_OXYGEN
#define ID_WINDOW_BLOOD_OXYGEN 0
#endif
#if (defined(ID_WINDOW_SPORT_RECORD) && defined(TCFG_UI_ENABLE_SPORTRECORD) && (!TCFG_UI_ENABLE_SPORTRECORD))
#undef ID_WINDOW_SPORT_RECORD
#define ID_WINDOW_SPORT_RECORD 0
#endif
#if (defined(ID_WINDOW_TRAIN) && defined(TCFG_UI_ENABLE_TRAIN) && (!TCFG_UI_ENABLE_TRAIN))
#undef ID_WINDOW_TRAIN
#define ID_WINDOW_TRAIN 0
#undef ID_WINDOW_SPORT_SHOW
#define ID_WINDOW_SPORT_SHOW 0
#endif
#if (defined(ID_WINDOW_BREATH_TRAIN) && defined(TCFG_UI_ENABLE_BREATH_TRAIN) && (!TCFG_UI_ENABLE_BREATH_TRAIN))
#undef ID_WINDOW_BREATH_TRAIN
#define ID_WINDOW_BREATH_TRAIN 0
#endif
#if (defined(ID_WINDOW_PRESSURE) && defined(TCFG_UI_ENABLE_HEAT) && (!TCFG_UI_ENABLE_HEAT))
#undef ID_WINDOW_PRESSURE
#define ID_WINDOW_PRESSURE 0
#endif
#if (defined(ID_WINDOW_HEART) && defined(TCFG_UI_ENABLE_HEART) && (!TCFG_UI_ENABLE_HEART))
#undef ID_WINDOW_HEART
#define ID_WINDOW_HEART 0
#endif
#if (defined(ID_WINDOW_SLEEP) && defined(TCFG_UI_ENABLE_SLEEP) && (!TCFG_UI_ENABLE_SLEEP))
#undef ID_WINDOW_SLEEP
#define ID_WINDOW_SLEEP 0
#endif
#if (defined(ID_WINDOW_CALL_CHANNEL_SEL) && defined(TCFG_APP_CAT1_EN) && (!TCFG_APP_CAT1_EN))
#undef ID_WINDOW_CALL_CHANNEL_SEL
#define ID_WINDOW_CALL_CHANNEL_SEL 0
#endif
#endif // #if ((CONFIG_UI_STYLE == STYLE_JL_WTACH) || (CONFIG_UI_STYLE == STYLE_JL_WTACH_NEW))
#endif
@@ -0,0 +1,152 @@
#ifndef _UI_SYS_PARAM__H_
#define _UI_SYS_PARAM__H_
#include "ui/ui_api.h"
#define MAX_CARD_SELECT (16)
#define MAX_CARD_BACKUP_SELECT (14)
#if (defined(CONFIG_UI_STYLE_JL_CSC_PUBLIC_MODLS_ENABLE))
#define LANGUAGE_NUM (16)
#else
#define LANGUAGE_NUM (4)
#endif
#define SYS_PARAM_NUM (30)
#define TCFG_MOTO_PWM_H (80)
#define TCFG_MOTO_PWM_L (30)
#define TCFG_MOTO_PWM_NULL (0)
#define POWERON_PASSWORD_LEN (5)
#define MAX_LIGHTLEVEL (5)
#define MIN_LIGHTLEVEL (0)
#define UI_LIGHT_LEVEL_MAX (10)
#define UI_LIGHT_LEVEL_MIN (1)
enum {
UI_PAGE_LIST_DEL,
UI_PAGE_LIST_ADD,
UI_PAGE_LIST_MOVE,
};
enum {
CardSetNum,
LightLevel,
DarkTime,
ShortcutKey,
LastSysVol,
LightAlwayEn,
LightTime,
AllDayUndisturbEn,
TimeUndisturbEn,
UndisturbStimeH,
UndisturbStimeM,
UndisturbEtimeH,
UndisturbEtimeM,
TrainAutoEn,
ConnNewPhone,
Language,
MenuStyle,
MotoMode,
twenty_four_time, // 24小时制
move_mode, // 转场动画
raise_hand_screen_on, // 抬手亮屏
screen_off_dial, // 熄屏表盘
bed_light, // 床头灯
health_tips, // 健康提醒
low_power_mode, // 省电模式
curr_sel_dial, // 当前表盘
shortcut_info_sel, //快捷
smartwin_en, //灵动岛使能
LastDarkTime, // 恢复上次熄屏时长
LastLightLevel, // 恢复上次亮度
};
struct sys_param {
u8 label;
int value;
};
struct sys_vm_param {
u8 valid;
u8 card_select[MAX_CARD_SELECT];
struct sys_param sys_param_table[SYS_PARAM_NUM];
};
struct set_info {
int show_layout;
u8 last_card_set_num;
u8 card[MAX_CARD_BACKUP_SELECT];
u8 vlist_card_index[4];
u8 vslider_percent;
/* u8 last_shake_level_sel; */
u8 make_sure;
};
struct password_t { // 用于密码的设置
u8 is_password_open;
u8 index;
u8 status;
u8 time_cnt;
u32 timer_id;
char final_password[POWERON_PASSWORD_LEN]; // 保存的密码
char password[POWERON_PASSWORD_LEN]; // 用于键盘输入
char new_password[POWERON_PASSWORD_LEN]; // 用于保存暂存的新密码
};
extern struct set_info set;
extern struct sys_vm_param ui_sys_param;
int write_UIInfo_to_vm(void *info);
int read_UIInfo_from_vm();
void erase_UIInfo_in_vm();
void restore_sys_settings();
void set_ui_sys_param(u8 label, int value);
int get_ui_sys_param(u8 label);
void ui_set_dark_time(u8 sel);
void screen_light_alway_switch(u8 on);
int get_light_level();
void ui_ajust_light(u8 level);
void ui_set_voice(int precent);
int ui_voice_to_percent(s8 volume);
void ui_volume_up(u8 step);
void ui_volume_down(u8 step);
void ui_voice_mute(u8 en);
u8 ui_get_voice_mute(void);
void ui_set_voice_mute(u8 en);
void ui_page_list_update(u32 *id_list, u8 num);
void ui_moto_init(int gpio);
void ui_moto_set_H_L(u8 mode);
void ui_moto_run(u8 run_mode);
void watch_reboot_or_shutdown(u8 flag, u8 erase);
int ui_check_list_tyep(int page_id);
u8 ui_show_minus();
u8 ui_show_plus();
u8 ui_show_shortcut_key();
bool ui_show_menu_check_win(int win_id);
int ui_show_menu_get_index(int *out_win_id);
bool ui_show_menu_force(void);
bool ui_show_menu_sw(int idx);
bool ui_show_menu_page();
bool ui_show_menu_list();
int ui_get_card_anim_by_idex(int index);
bool ui_card_anim_sw(int idx);
bool ui_card_anim_next();
u8 ui_key_shutdown_or_reboot(u8 flag);
int sys_check_time_is_undisturb(void);
int ui_show_menu_total_num(void);
#if (defined(CONFIG_UI_STYLE_JL_CSC_PUBLIC_MODLS_ENABLE))
void csc_set_ui_language_type(u8 index);
u8 csc_get_ui_language_type(void);
#endif
#endif
@@ -0,0 +1,22 @@
#ifndef __WATCH_SYSCFG_MANAGE_H__
#define __WATCH_SYSCFG_MANAGE_H__
struct watch_syscfg_operataions {
const char *name;
int (*read)(void);
int (*write)(void *priv);
};
#define SYSCFG_WRITE_ERASE_STATUS ((void *)-1)
#define REGISTER_WATCH_SYSCFG(node) \
const struct watch_syscfg_operataions node sec(.watch_syscfg)
void watch_syscfg_read(const char *name);
void watch_syscfg_write(const char *name, void *arg);
void watch_syscfg_read_all();
void watch_syscfg_write_all(void *p);
#endif
+83
View File
@@ -0,0 +1,83 @@
#ifndef __LCD_CONF_H__
#define __LCD_CONF_H__
#include "app_config.h"
#if defined(TCFG_LCD_SPI_ICNA3310B_ENABLE) && TCFG_LCD_SPI_ICNA3310B_ENABLE
#define LCD_WIDTH 466
#define LCD_HEIGHT 466
#endif
#if defined(TCFG_LCD_SPI_GC9B71_ENABLE) && TCFG_LCD_SPI_GC9B71_ENABLE
#define LCD_WIDTH 320
#define LCD_HEIGHT 386
#endif
#if defined(TCFG_LCD_SPI_ST77916_ENABLE) && TCFG_LCD_SPI_ST77916_ENABLE
#define LCD_WIDTH 320
#define LCD_HEIGHT 385
#endif
#if defined(TCFG_LCD_SPI_SH8501A_ENABLE) && TCFG_LCD_SPI_SH8501A_ENABLE
#define LCD_WIDTH 240
#define LCD_HEIGHT 296
#endif
#if defined(TCFG_LCD_SPI_SH8601A_ENABLE) && TCFG_LCD_SPI_SH8601A_ENABLE
#define LCD_WIDTH 454
#define LCD_HEIGHT 454
#endif
#if defined(TCFG_LCD_QSPI_ST77903_V2_ENABLE) && TCFG_LCD_QSPI_ST77903_V2_ENABLE
#define LCD_WIDTH 400
#define LCD_HEIGHT 400
#endif
#if defined(TCFG_LCD_QSPI_jd9161c_ENABLE) && TCFG_LCD_QSPI_jd9161c_ENABLE
#define LCD_WIDTH 480
#define LCD_HEIGHT 480
#endif
#if defined(TCFG_LCD_SPI_RM69330_ENABLE) && TCFG_LCD_SPI_RM69330_ENABLE
#define LCD_WIDTH 454
#define LCD_HEIGHT 454
#endif
#if defined(TCFG_LCD_QSPI_SD3302_ENABLE) && TCFG_LCD_QSPI_SD3302_ENABLE
#define LCD_WIDTH 466
#define LCD_HEIGHT 466
#endif
#if defined(TCFG_LCD_MCU_JD5858_ENABLE) && TCFG_LCD_MCU_JD5858_ENABLE
#define LCD_WIDTH 360
#define LCD_HEIGHT 360
#endif
#if defined(TCFG_LCD_RGB_ST7789V_ENABLE) && TCFG_LCD_RGB_ST7789V_ENABLE
#define LCD_WIDTH 240
#define LCD_HEIGHT 240
#endif
#if defined(TCFG_LCD_RGB_ENABLE) && TCFG_LCD_RGB_ENABLE
#define LCD_WIDTH 480
#define LCD_HEIGHT 272
#endif
#if defined(TCFG_LCD_GC9307_172X320) && TCFG_LCD_GC9307_172X320
#define LCD_WIDTH 172
#define LCD_HEIGHT 320
#endif
#ifndef LCD_WIDTH
#error "Macro LCD_WIDTH Undefined"
#endif
#ifndef LCD_HEIGHT
#error "Macro LCD_HEIGHT Undefined"
#endif
#endif
+376
View File
@@ -0,0 +1,376 @@
#ifndef __LCD_DRIVER_H__
#define __LCD_DRIVER_H__
#include "os/os_type.h"
#include "dbi.h"
#ifdef Reset
#undef Reset
#endif
#ifndef SPI_LCD_DEBUG_ENABLE
#define SPI_LCD_DEBUG_ENABLE 0
#endif
#if (SPI_LCD_DEBUG_ENABLE == 0)
#define lcd_d(...)
#define lcd_w(...)
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
#elif (SPI_LCD_DEBUG_ENABLE == 1)
#define lcd_d(...)
#define lcd_w(fmt, ...) printf("[LCD WARNING]: "fmt, ##__VA_ARGS__)
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
#else
#define lcd_d(fmt, ...) printf("[LCD DEBUG]: "fmt, ##__VA_ARGS__)
#define lcd_w(fmt, ...) printf("[LCD WARNING]: "fmt, ##__VA_ARGS__)
#define lcd_e(fmt, ...) printf("[LCD ERROR]: "fmt, ##__VA_ARGS__)
#endif
// 注意:以下配置组合为固定搭配,不可随意更改
// 切换配置使用上面的宏选择
#if defined(CONFIG_CPU_BR28) || defined(CONFIG_CPU_BR35)
#include "app_config.h"
#define SPI_SUBMODE(config) (((config)>>16)&0xf0)
#define SPI_WIRE(config) (((config)>>16)&0x0f)
#define PIXEL_nPnT(config) (((config))&0xe0)
#define PIXEL_nTnB(config) (((config))&0x1f)
#define SPI_IF_MODE(config) (((config)>>16)&0xff)
#define OUT_FORMAT(config) (((config)>>8)&0xff)
#define PIXEL_TYPE(config) (((config))&0xff)
#define LCD_CONFIG(mode, format, type) (((mode)<<16) | ((format)<<8) | (type))
/////////////////////////////////////////////spi 3wire///////////////////////////////////////////////
#define SPI_3WIRE_RGB888_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T8B)
#define SPI_3WIRE_RGB888_1T24B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB888, PIXEL_1P1T|PIXEL_1T24B)
#define SPI_3WIRE_RGB666_1T18B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB666, PIXEL_1P1T|PIXEL_1T18B)
#define SPI_3WIRE_RGB565_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T8B)
#define SPI_3WIRE_RGB565_1T16B LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB565, PIXEL_1P1T|PIXEL_1T16B)
/////////////////////////////////////////////spi 4wire///////////////////////////////////////////////
#define SPI_4WIRE_RGB888_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T8B)
#define SPI_4WIRE_RGB888_1T24B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB888, PIXEL_1P1T|PIXEL_1T24B)
#define SPI_4WIRE_RGB666_1T18B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB666, PIXEL_1P1T|PIXEL_1T18B)
#define SPI_4WIRE_RGB565_1T8B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T8B)
#define SPI_4WIRE_RGB565_1T16B LCD_CONFIG(SPI_MODE|SPI_WIRE4, FORMAT_RGB565, PIXEL_1P1T|PIXEL_1T16B)
////////////////////////////////////////////dspi 3wire///////////////////////////////////////////////
#define DSPI_3WIRE_RGB565_1T8B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB565, PIXEL_1P1T|PIXEL_1T8B)
#define DSPI_3WIRE_RGB666_1T9B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB666, PIXEL_1P1T|PIXEL_1T9B)
#define DSPI_3WIRE_RGB666_1T6B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB666, PIXEL_2P3T|PIXEL_1T6B)
#define DSPI_3WIRE_RGB888_1T12B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB888, PIXEL_1P1T|PIXEL_1T12B)
#define DSPI_3WIRE_RGB888_1T8B LCD_CONFIG(DSPI_MODE|SPI_WIRE3, FORMAT_RGB888, PIXEL_2P3T|PIXEL_1T8B)
////////////////////////////////////////////dspi 4wire///////////////////////////////////////////////
#define DSPI_4WIRE_RGB565_1T8B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB565, PIXEL_1P1T|PIXEL_1T8B)
#define DSPI_4WIRE_RGB666_1T9B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB666, PIXEL_1P1T|PIXEL_1T9B)
#define DSPI_4WIRE_RGB666_1T6B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB666, PIXEL_2P3T|PIXEL_1T6B)
#define DSPI_4WIRE_RGB888_1T12B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB888, PIXEL_1P1T|PIXEL_1T12B)
#define DSPI_4WIRE_RGB888_1T8B LCD_CONFIG(DSPI_MODE|SPI_WIRE4, FORMAT_RGB888, PIXEL_2P3T|PIXEL_1T8B)
///////////////////////////////////////////////qspi//////////////////////////////////////////////////
#define QSPI_RGB565_SUBMODE0_1T8B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE0, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T8B)
#define QSPI_RGB666_SUBMODE0_1T8B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE0, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T8B)
#define QSPI_RGB888_SUBMODE0_1T8B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE0, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T8B)
#define QSPI_RGB565_SUBMODE1_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE1, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_SUBMODE1_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE1, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_SUBMODE1_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE1, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB565_SUBMODE2_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE2, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_SUBMODE2_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE2, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_SUBMODE2_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SUBMODE2, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB565_RAMLESS_1T2B LCD_CONFIG(QSPI_MODE|QSPI_RAMLESS, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_RAMLESS_1T2B LCD_CONFIG(QSPI_MODE|QSPI_RAMLESS, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_RAMLESS_1T2B LCD_CONFIG(QSPI_MODE|QSPI_RAMLESS, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB565_FT2388_1T2B LCD_CONFIG(QSPI_MODE|QSPI_FT2388, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_FT2388_1T2B LCD_CONFIG(QSPI_MODE|QSPI_FT2388, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_FT2388_1T2B LCD_CONFIG(QSPI_MODE|QSPI_FT2388, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB565_SD3302_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SD3302, FORMAT_RGB565, PIXEL_1P2T|PIXEL_1T2B)
#define QSPI_RGB666_SD3302_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SD3302, FORMAT_RGB666, PIXEL_1P3T|PIXEL_1T2B)
#define QSPI_RGB888_SD3302_1T2B LCD_CONFIG(QSPI_MODE|QSPI_SD3302, FORMAT_RGB888, PIXEL_1P3T|PIXEL_1T2B)
#define RGB_SPI_3WIRE_RGB565 LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB565, 0)
#define RGB_SPI_3WIRE_RGB666 LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB666, 0)
#define RGB_SPI_3WIRE_RGB888 LCD_CONFIG(SPI_MODE|SPI_WIRE3, FORMAT_RGB888, 0)
#define MCU_8BITS_RGB565 LCD_CONFIG(0, FORMAT_RGB565, 0)
#define MCU_8BITS_RGB666 LCD_CONFIG(0, FORMAT_RGB666, 0)
#define MCU_8BITS_RGB888 LCD_CONFIG(0, FORMAT_RGB888, 0)
#endif // #if defined(CONFIG_CPU_BR28)
//////////////////////////////lcd mode end///////////////////////////
//~~~~~~~~~~~~~~~~~~~~~~~屏驱相关的参数和结构体~~~~~~~~~~~~~~~~~~~~~~~~~~//
// 屏幕初始化代码延时标志
#ifndef REGFLAG_DELAY
#define REGFLAG_DELAY_FLAG 0xff5aa5ff
#define REGFLAG_DELAY ((REGFLAG_DELAY_FLAG>>24)&0xff),((REGFLAG_DELAY_FLAG>>16)&0xff),((REGFLAG_DELAY_FLAG>>8)&0xff),(REGFLAG_DELAY_FLAG&0xff)
#endif
#ifndef REGFLAG_CONFIRM
#define REGFLAG_CONFIRM_FLAG 0xff5bb5ff
#define REGFLAG_CONFIRM ((REGFLAG_CONFIRM_FLAG>>24)&0xff),((REGFLAG_CONFIRM_FLAG>>16)&0xff),((REGFLAG_CONFIRM_FLAG>>8)&0xff),(REGFLAG_CONFIRM_FLAG&0xff)
#endif
// 区分屏幕初始化代码开始和结束的标志
#define BEGIN_FLAG 0x12345678
#define END_FLAG 0x87654321
#define _BEGIN_ ((BEGIN_FLAG>>24)&0xff),((BEGIN_FLAG>>16)&0xff),((BEGIN_FLAG>>8)&0xff),(BEGIN_FLAG&0xff)
#define _END_ ((END_FLAG>>24)&0xff),((END_FLAG>>16)&0xff),((END_FLAG>>8)&0xff),(END_FLAG&0xff)
struct lcd_drive {
char *logo; //屏驱logo
u8 column_addr_align; //列对齐(默认为1)
u8 row_addr_align; //行对齐(默认为1)
u8 *lcd_cmd; // 初始化命令列表
int cmd_cnt;
// 显示形状描述
u16 radius; // 圆角半径
u32 fill_argb; // 不显示区域填充色
// 配置参数
void *param;
// 应用层函数
void (*reset)(void); /* 复位函数 */
int (*backlight_ctrl)(u8);
int (*power_ctrl)(u8);
void (*entersleep)(void);
void (*exitsleep)(void);
u32(*read_id)(void);
u32 lcd_id; //屏幕id
};
#define REGISTER_LCD_DEVICE(lcd) \
const struct lcd_drive lcd sec(.lcd_device_info) __attribute__((used))
extern struct lcd_drive lcd_device_begin[];
extern struct lcd_drive lcd_device_end[];
struct lcd_platform_data {
int pin_reset;
int pin_en;
int pin_en_ex;
int pin_bl;
int pin_te;
};
// enum LCD_COLOR {
// LCD_COLOR_RGB888,
// LCD_COLOR_RGB565,
// LCD_COLOR_MONO,
// };
// 使用 dbi 模块定义的颜色格式
#define LCD_COLOR_RGB888 OUTPUT_FORMAT_RGB888
#define LCD_COLOR_RGB565 OUTPUT_FORMAT_RGB565
enum LCD_IF {
LCD_SPI,
LCD_MCU,
LCD_RGB,
LCD_EMI,
};
struct lcd_info {
u16 width;
u16 height;
u16 stride;
u16 radius;
u32 fill_argb;
u8 fps;
u8 color_format;
u8 interface;
u8 col_align;
u8 row_align;
u8 buf_num;
u8 bl_status;
u8 *buffer;
int buffer_size;
};
struct lcd_interface {
void (*init)(void *);
void (*get_screen_info)(struct lcd_info *info);
void (*buffer_malloc)(u8 **buf, u32 *size);
void (*buffer_free)(u8 *buf);
void (*draw)(u8 *buf, int xstart, int xend, int ystart, int yend);
void (*draw_continue)(u8 *buf, int xstart, int xend, int ystart, int yend);
void (*set_draw_area)(u16 xs, u16 xe, u16 ys, u16 ye);
void (*clear_screen)(u32 color, int xstart, int xend, int ystart, int yend);
int (*backlight_ctrl)(u8 on);
int (*power_ctrl)(u8 on);
void (*draw_page)(u8 *buf, u8 page_star, u8 page_len);//刷新页(点阵屏)
};
extern struct lcd_interface lcd_interface_begin[];
extern struct lcd_interface lcd_interface_end[];
#define REGISTER_LCD_INTERFACE(lcd) \
static const struct lcd_interface lcd sec(.lcd_if_info) __attribute__((used))
struct lcd_interface *lcd_get_hdl();
#define LCD_SPI_PLATFORM_DATA_BEGIN(data) \
const struct lcd_platform_data data
#define LCD_SPI_PLATFORM_DATA_END() \
extern struct mcpwm_config lcd_pwm_p_data;
/**
* @brief lcd bl引脚输出控制
*
* @param val 电平输出值
*
*/
void lcd_bl_ctrl(u8 val);
/**
* @brief lcd en引脚输出控制
*
* @param val 电平输出值
*
*/
void lcd_en_ctrl(u8 val);
/*
* Description: 获取 LCD 背光状态
* Returns : 0 背光熄灭
* 1 背光点亮
*/
int lcd_backlight_status();
/*
* Description: 获取 LCD sleep状态
* Returns : 0 sleep out
* 1 sleep in
*/
int lcd_sleep_status();
// int lcd_drv_backlight_ctrl(u8 percent);
// int lcd_drv_power_ctrl(u8 on);
int lcd_backlight_ctrl(u8 on);
/*
* Description: 发送屏幕初始化指令
* @param cmd_list 初始化命令地址
* @param cmd_cnt 初始化命令长度
*/
void lcd_drv_cmd_list(u8 *cmd_list, int cmd_cnt);
/*
* Description: LCD 设备初始化
*
* Arguments : 匹配模式, 屏驱LOGO
*
* Returns : 屏设备句柄
*
* Notes : 1、当只有一个屏驱时,不进行匹配,直接返回该屏驱句柄
*
* 2、两种匹配方式 LOGO 或者 ID
*
* 3、若存在屏设备句柄时直接返回
*/
struct lcd_drive *lcd_drv_get_hdl(u8 mode, const char *logo);
/*
* Description: LCD 设备初始化
*
* Arguments : 匹配模式, 屏驱ID
*
* Returns : 屏设备句柄
*/
struct lcd_drive *lcd_drv_get_hdl_by_id();
/*
* Description: LCD 设备初始化
*
* Arguments : 匹配模式, 屏驱LOGO
*
* Returns : 屏设备句柄
*/
struct lcd_drive *lcd_drv_get_hdl_by_logo(const char *logo);
/*
* Description: 获取 LCD 设备信息
*
* Arguments : *info LCD 设备信息缓存结构体,根据结构体内容赋值即可
*
* Returns : 0 获取成功
*/
int lcd_drv_get_info(void *info);
/*
* Description: 获取向 LCD 设备发送一帧数据所需时间(us)
*
* Returns : 发送一帧数据的时间
*/
extern u32 lcd_get_spi_frame_period_us(void);
/*
* Description: 获取 LCD 设备刷新一行所需时间(us)
*
* Returns : 刷新一行的时间
*/
extern u8 lcd_get_te_line_period_us(void);
/*
* Description: 获取 LCD 设备刷新一帧所需时间(us)
*
* Returns : 刷新一帧的时间
*/
extern u32 lcd_get_te_frame_period_us(void);
/*
* Description: 获取 LCD 设备的宽度
*
* Returns : LCD 宽度
*/
extern int lcd_get_screen_width();
/*
* Description: 获取 LCD 设备的高度
*
* Returns : LCD 高度
*/
extern int lcd_get_screen_height();
// 两毫秒延时
extern void delay_2ms(int cnt);
/*************************************************************************/
struct lcd_sleep_headler {
char *name;
void (*enter)(void);
void (*exit)(void);
};
#define REGISTER_LCD_SLEEP_HEADLER(target) \
const struct lcd_sleep_headler target sec(.lcd_sleep_headler)
extern const struct lcd_sleep_headler lcd_sleep_ctrl_headler_begin[];
extern const struct lcd_sleep_headler lcd_sleep_ctrl_headler_end[];
#define list_for_each_lcd_sleep_headler(p) \
for (p = (struct lcd_sleep_headler *)lcd_sleep_ctrl_headler_begin; p < lcd_sleep_ctrl_headler_end; p++)
/*************************************************************************/
#endif
+87
View File
@@ -0,0 +1,87 @@
#ifndef _UI_API_H_
#define _UI_API_H_
#include "app_config.h"
#include "ui/lcd/lcd_drive.h"
#if CONFIG_JL_UI_ENABLE
#include "jlui_app/ui_api.h"
#else // #if CONFIG_JL_UI_ENABLE
enum ui_devices_type {
LED_7,
LCD_SEG3X9,
TFT_LCD,//彩屏
DOT_LCD,//点阵屏
};
//板级配置数据结构
struct ui_devices_cfg {
enum ui_devices_type type;
void *private_data;
};
#if (!TCFG_UI_ENABLE) || (CONFIG_UI_STYLE == STYLE_UI_SIMPLE)
#define UI_INIT(...)
#define UI_SHOW_WINDOW(...)
#define UI_HIDE_WINDOW(...)
#define UI_GET_WINDOW_ID() (-1)
#define UI_HIDE_CURR_WINDOW()
#define UI_SHOW_MENU(...)
#define UI_MSG_POST(...)
#define UI_REFLASH_WINDOW(a)
#define UI_MOTO_RUN(...)
#define UI_WINDOW_BACK_PUSH(a)
#define UI_WINDOW_BACK_SHOW(a) (-1)
#define UI_WINDOW_BACK_SPEC_SHOW(a)
#define UI_WINDOW_BACK_CLEAN()
#define UI_WINDOW_BACK_SUB()
#define UI_WINDOW_BACK_INDEX()
#define UI_WINDOW_BACK_DEL(a)
#define UI_WINDOW_PREEMPTION_POSH(a,b,c,d) (-1)
#define UI_WINDOW_PREEMPTION_DEL(a)
#define UI_WINDOW_PREEMPTION_POP(a)
#define UI_WINDOW_PREEMPTION_CHECK() (false)
#define CS_UI_POPUP_PAGE(a)
#define UI_SHOW_MULTI_PAGE()
#define UI_HIDE_MULTI_PAGE()
#define ID_WINDOW_POWER_ON 0
#define ID_WINDOW_POWERON_PASSWORD 0
#define ID_WINDOW_DIAL 0
#define ID_WINDOW_SETTING 0
#ifndef ID_WINDOW_FINDPHONE
#define ID_WINDOW_FINDPHONE 0
#endif
#ifndef ID_WINDOW_SPORTING
#define ID_WINDOW_SPORTING 0
#endif
#ifndef ID_WINDOW_PHONE_CALL_STATUS
#define ID_WINDOW_PHONE_CALL_STATUS 0
#endif
#endif
#endif // #if CONFIG_JL_UI_ENABLE
enum ui_card_run_type {
UI_CARD_RUN_NULL,
UI_CARD_RUN_SINGLE_PAGE,
UI_CARD_RUN_MULTI_PAGE,
};
enum ui_card_run_type ui_card_get_status();
void ui_card_run_stop(void);
#endif
+265
View File
@@ -0,0 +1,265 @@
#ifndef _UI_APP_DEF_H_
#define _UI_APP_DEF_H_
#if (CONFIG_JL_UI_ENABLE || CONFIG_LVGL_UI_ENABLE)
#define TCFG_UI_ENABLE 1 //UI配置
#else
#ifdef TCFG_UI_ENABLE
#undef TCFG_UI_ENABLE
#endif
#define TCFG_UI_ENABLE 0
#ifdef TCFG_SPI_LCD_ENABLE
#undef TCFG_SPI_LCD_ENABLE
#endif
#define TCFG_SPI_LCD_ENABLE 0
#ifdef TCFG_TOUCH_PANEL_ENABLE
#undef TCFG_TOUCH_PANEL_ENABLE
#endif
#define TCFG_TOUCH_PANEL_ENABLE 0
#endif
#define STYLE_UI_SIMPLE (1)//没有ui框架
#define STYLE_JL_SOUNDBOX (2)//点阵屏demo
#define STYLE_JL_WTACH (3)//彩屏demo
#define STYLE_JL_WTACH_NEW (4)//彩屏demo
#define STYLE_JL_CHARGE (5)//点阵屏充电仓
#define STYLE_JL_LED7 (6)//led7
#define STYLE_JL_SOUNDBAR (7)//soundbar点阵屏
#define STYLE_JL_WATCH_PUBLIC_MODLS (8)//方屏
#define STYLE_JL_CSC_PUBLIC_MODLS (9)//彩屏仓
#if (TCFG_UI_ENABLE && CONFIG_JL_UI_ENABLE)
#if (defined TCFG_COLOR_SCREEN_CHARGING_CASE_ENABLE) && TCFG_COLOR_SCREEN_CHARGING_CASE_ENABLE
#define CONFIG_UI_STYLE STYLE_JL_CSC_PUBLIC_MODLS //彩屏仓UI类型
#else
#define CONFIG_UI_STYLE STYLE_JL_WATCH_PUBLIC_MODLS //UI类型
#endif
#else
#define CONFIG_UI_STYLE STYLE_UI_SIMPLE //UI类型
#endif
//*********************************************************************************//
// UI_APP配置(公共配置) //
//*********************************************************************************//
#if (CONFIG_UI_STYLE == STYLE_JL_WATCH_PUBLIC_MODLS)
#define TCFG_UI_ENABLE_STANDBY_DIAL ENABLE // 表盘浏览
#define TCFG_UI_ENABLE_PULLDOWN_MENU DISABLE // 下拉菜单
#define TCFG_UI_ENABLE_LEFT_MENU ENABLE // 左滑侧边栏,ui_page_manager.h把SIDEBAR_LEFT_MENU_ENABLE置1关闭卡片管理表盘右滑功能
#define TCFG_UI_ENABLE_SYS_SET ENABLE // 设置
#define TCFG_UI_ENABLE_SHORTCUT_MENU ENABLE // 快捷菜单
#define TCFG_UI_ENABLE_UPGRATE ENABLE // 升级
// 需要使能TCFG_APP_RTC_EN
#define TCFG_UI_ENABLE_ALARM ENABLE // 闹钟功能
#define TCFG_UI_ENABLE_STOPWATCH ENABLE // 计时器
#define TCFG_UI_ENABLE_TIMER_ACTION ENABLE // 倒计时
// 需要使能TCFG_APP_PC_EN
#define TCFG_UI_ENABLE_PC DISABLE // PC模式
// 需要使能TCFG_APP_RECORD_EN
#define TCFG_UI_ENABLE_RECORD DISABLE // RECORD模式
// 需要使能TCFG_APP_MUSIC_EN
#define TCFG_UI_ENABLE_MUSIC ENABLE // 音乐
#define TCFG_UI_ENABLE_MUSIC_MENU DISABLE // 音乐菜单
#define TCFG_UI_ENABLE_FILE DISABLE // 文件浏览
// 需要使能TCFG_USER_EMITTER_ENABLE
#define TCFG_UI_ENABLE_BT_EMITTER ENABLE //蓝牙耳机
#define TCFG_UI_ENABLE_PHONE_ACTION ENABLE // 蓝牙通话
#define TCFG_UI_ENABLE_PHONEBOOK DISABLE // 电话本
#define TCFG_UI_ENABLE_FINDPHONE DISABLE // 找手机
#define TCFG_UI_ENABLE_NOTICE ENABLE // 手机消息通知
#define TCFG_UI_ENABLE_WEATHER ENABLE // 天气
#define TCFG_UI_ENABLE_FLASHLIGHT ENABLE // 手电筒
#define TCFG_UI_ENABLE_QR_CODE ENABLE // 二维码
#define TCFG_UI_ENABLE_CALENDAR ENABLE // 日历
#define TCFG_UI_ENABLE_CALCULATOR ENABLE // 计算器
#define TCFG_UI_ENABLE_COMPASS ENABLE // 指南针
#define TCFG_UI_ENABLE_POWERON_PASSWORD ENABLE // 开机密码
// 需要使能TCFG_BMP280_ENABLE
#define TCFG_UI_ENABLE_ALTIMETER DISABLE // 海拔高度
#define TCFG_UI_ENABLE_PRESSURE DISABLE // 海拔气压
// 需要使能TCFG_GSENSOR_ENABLE、TCFG_HR_SENSOR_ENABLE
#define TCFG_UI_ENABLE_SPORT_INFO DISABLE // 运动状态
#define TCFG_UI_ENABLE_SPORTRECORD DISABLE // 运动记录
#define TCFG_UI_ENABLE_TRAIN DISABLE // 锻炼
#define TCFG_UI_ENABLE_SPORTRECORD_BROWSE DISABLE // 运动记录浏览
#define TCFG_UI_ENABLE_OXYGEN ENABLE // 血氧饱和度
#define TCFG_UI_ENABLE_HEART ENABLE // 心率
#define TCFG_UI_ENABLE_BREATH_TRAIN ENABLE // 呼吸训练
#define TCFG_UI_ENABLE_HEAT ENABLE // 压力
#define TCFG_UI_ENABLE_SLEEP ENABLE // 睡眠
#define TCFG_UI_ENABLE_BLOODPRESS ENABLE // 血压
#define TCFG_UI_ENABLE_ALIPAY_CODE DISABLE // 支付宝
#define TCFG_UI_ENABLE_AI_INTERACTION DISABLE // APP版本AI表盘
#define TCFG_UI_ENABLE_IFLYTEK DISABLE // 科大讯飞网络版
#define TCFG_UI_ENABLE_DEMO DISABLE //示例
#define TCFG_UI_ENABLE_MENU_STAR_NEW DISABLE //新满天星
#define TCFG_UI_ENABLE_SCREENSHOT DISABLE //截屏
#define TCFG_UI_DRAW_DEMO_ENABLE ENABLE //绘图demo
#define TCFG_UI_ANIM_DEMO_ENABLE DISABLE //动画demo
#define TCFG_UI_ENABLE_VOICE_ASSISTANT ENABLE // 语音助手
#define TCFG_UI_DIAL_ENABLE ENABLE //表盘
#define TCFG_UI_DIAL_SEL_ENABLE ENABLE //表盘选择
#define TCFG_UI_MENU_LIST_ENABLE ENABLE //列表菜单
#define TCFG_UI_MENU_WATERFALLS_ENABLE ENABLE //瀑布菜单
#define TCFG_UI_MENSE_MANAGE_ENABLE ENABLE //女性
#define TCFG_UI_ENABLE_PHOTOGRAGH ENABLE //拍照
#define TCFG_UI_ENABLE_RUNLIGHT ENABLE //跑步灯
#define TCFG_UI_ENABLE_BATCHARGE ENABLE //充电
#define TCFG_UI_ENABLE_INDOORSPORTS ENABLE //室内运动
#define TCFG_UI_ENABLE_OUTDOORSPORTS ENABLE //室外运动
#define TCFG_UI_ENABLE_SPORTING ENABLE //运动
#define TCFG_UI_ENABLE_SPORT_INTENSITY ENABLE //运动强度
#define TCFG_UI_ENABLE_MOMENTUM ENABLE //运动量
#define TCFG_UI_ENABLE_SLEEPAID ENABLE //助眠
#define TCFG_UI_ENABLE_PULLUP_MENU ENABLE //上拉菜单
#define TCFG_UI_ENABLE_FOOTBALL ENABLE //足球
#define TCFG_UI_BEDSIDE_WATCH_ENABLE ENABLE //床头时钟
#define TCFG_UI_ENABLE_ENGINEERING_MODE ENABLE //工程模式
#define TCFG_UI_ENABLE_RUBIKS_CUBE ENABLE //魔方
#define TCFG_UI_SD_MUSIC_ENABLE ENABLE //sd music
#define TCFG_UI_UVC_SHOW_ENABLE TCFG_HOST_UVC_ENABLE //uvc ui显示demo
#define TCFG_UI_CAMERA_ENABLE TCFG_CAMERA_MANAGER_ENABLE //摄像头、相册
#define TCFG_UI_APP_EFFECT_ENABLE ENABLE //特效
#define TCFG_UI_EFFECT_USED_DEMO DISABLE //用户自定义特效demo
#define TCFG_UI_ENABLE_SMARTWIN ENABLE // 灵动岛
#if (!TCFG_APP_BT_EN) //关闭蓝牙相关UI
#undef TCFG_UI_ENABLE_BT_PAGE_ACTION
#define TCFG_UI_ENABLE_BT_PAGE_ACTION DISABLE // 蓝牙耳机列表
#undef TCFG_UI_ENABLE_BT_SCAN
#define TCFG_UI_ENABLE_BT_SCAN DISABLE // 搜索蓝牙耳机
#undef TCFG_UI_ENABLE_PAGE_TOUCH
#define TCFG_UI_ENABLE_PAGE_TOUCH DISABLE // 已保存蓝牙耳机列表
#undef TCFG_UI_ENABLE_SCAN_TOUCH
#define TCFG_UI_ENABLE_SCAN_TOUCH DISABLE // 搜索蓝牙耳机
#undef TCFG_UI_ENABLE_PHONE_ACTION
#define TCFG_UI_ENABLE_PHONE_ACTION DISABLE // 蓝牙通话
#undef TCFG_UI_ENABLE_PHONEBOOK
#define TCFG_UI_ENABLE_PHONEBOOK DISABLE // 电话本
#undef TCFG_UI_ENABLE_FINDPHONE
#define TCFG_UI_ENABLE_FINDPHONE DISABLE // 找手机
#undef TCFG_UI_ENABLE_NOTICE
#define TCFG_UI_ENABLE_NOTICE DISABLE // 手机消息通知
#undef TCFG_UI_ENABLE_WEATHER
#define TCFG_UI_ENABLE_WEATHER DISABLE // 天气
#undef TCFG_UI_ENABLE_QR_CODE
#define TCFG_UI_ENABLE_QR_CODE DISABLE // 二维码
#undef TCFG_UI_ENABLE_VOICE_ASSISTANT
#define TCFG_UI_ENABLE_VOICE_ASSISTANT DISABLE // 语音助手
#undef TCFG_UI_ENABLE_PHOTOGRAGH
#define TCFG_UI_ENABLE_PHOTOGRAGH DISABLE // 拍照
#endif
#elif (CONFIG_UI_STYLE == STYLE_JL_CSC_PUBLIC_MODLS)
#define TCFG_UI_ENABLE_SYS_SET ENABLE // 设置
#define TCFG_UI_DIAL_ENABLE ENABLE //表盘
// // 转场动画特效
#define TCFG_UI_APP_EFFECT_ENABLE ENABLE //特效
#define TCFG_UI_PAGE_MOVE_MODE_SCALE_DOUBLE ENABLE // 缩放
#define TCFG_UI_MOVE_MODE_FLIP ENABLE // 翻页
#define TCFG_UI_MOVE_MODE_CUBE ENABLE // 3D立方体
#define TCFG_UI_MOVE_MODE_REFLECTION ENABLE // 3D灯笼 + 倒影( 暂时使用中心轴翻转的前端
#define TCFG_UI_MOVE_MODE_HEXAGON ENABLE // 3D灯笼
#define TCFG_UI_MOVE_MODE_CUBE_REFLECTION ENABLE // 3D立方体 + 倒影
#define TCFG_UI_PAGE_MOVE_MODE_CENTER_FLIP ENABLE //中心轴
#define TCFG_UI_PAGE_MOVE_MODE_EDGE_FLIP ENABLE //边沿
#define TCFG_UI_PAGE_MOVE_MODE_CUBE_FLIP ENABLE //立方体翻页
#define TCFG_UI_PAGE_MOVE_MODE_DRIFT_FLIP ENABLE //飘移翻页
#define TCFG_UI_PAGE_MOVE_MODE_BOARD_FLIP ENABLE //翻板
#define TCFG_UI_PAGE_MOVE_MODE_BOARD_SLICING_FLIP ENABLE //切片翻板
#define TCFG_UI_SD_MUSIC_ENABLE DISABLE //sd music
#define TCFG_UI_ENABLE_BT_EMITTER DISABLE //蓝牙耳机
#define TCFG_UI_BG_ENABLE DISABLE //背景图功能
#define TCFG_UI_USE_COMMON_BACKGROUND_SWITCH_ENABLE ENABLE //表盘和普通功能共用背景图,省空间使用
#define TCFG_UI_WEATHER_ENABLE DISABLE //天气页面
#define TCFG_UI_PHONE_CALL_ENABLE ENABLE //电话通话页面
#define TCFG_UI_PHONE_KEYPAD_ENABLE DISABLE //电话键盘页面
#define TCFG_UI_PHONE_CALL_LOG_ENABLE DISABLE //电话记录页面
#define TCFG_UI_ABOUT_ENABLE DISABLE //关于页面
#define TCFG_UI_TIMER_ENABLE ENABLE //计时器
#define TCFG_UI_PHOTOGRAHT_ENABLE ENABLE //拍照页面
#define TCFG_UI_SETTING_ENABLE ENABLE //设置页面
#define TCFG_UI_TOUCH_CTRL_ENABLE DISABLE //触摸使能
#define TCFG_UI_TIME_SET_ENABLE ENABLE //时间设置页面
#define TCFG_UI_FIND_EARPHONE_ENABLE ENABLE //查找耳机页面
#define TCFG_UI_UP_MOVE_DEMO_ENABLE DISABLE //上划演示页面
#define TCFG_UI_MUSIC_CTRL_ENABLE ENABLE //音乐控制页面
#define TCFG_UI_DENOISE_ENABLE ENABLE //anc页面
#define TCFG_UI_VOLUME_ENABLE ENABLE //音量页面
#define TCFG_UI_MSG_NOTICE ENABLE //消息通知页面
#define TCFG_UI_FOOTBALL_MENU ENABLE //足球菜单页面
#define TCFG_UI_ARC_MENU DISABLE //弧形菜单页面
#define TCFG_UI_SECOND_MENU DISABLE //二级菜单页面
#define TCFG_UI_ALARM_CLOCK_ENABLE ENABLE //闹钟页面
#define TCFG_UI_ENABLE_FLASHLIGHT DISABLE //手电筒
#define TCFG_UI_LANGUAGE_SEL_ENABLE ENABLE //语言选择页面
#define TCFG_UI_EQ_ENABLE ENABLE //eq页面
#define TCFG_UI_TIKTOK_ENABLE ENABLE //tiktok页面
#define TCFG_UI_ENABLE_BATCHARGE ENABLE //充电页面
#define TCFG_UI_ENABLE_UPGRATE ENABLE //升级
#define TCFG_UI_DIAL_SEL_ENABLE ENABLE //表盘选择
#define TCFG_UI_MENU_LIST_ENABLE DISABLE //列表菜单
#define TCFG_UI_ENABLE_SMARTWIN DISABLE // 灵动岛
#else
//这里主要为了没有ui时候,避免编译错误
//转场动画特效
#define TCFG_UI_APP_EFFECT_ENABLE ENABLE //特效
#define TCFG_UI_PAGE_MOVE_MODE_SCALE_DOUBLE ENABLE // 缩放
#define TCFG_UI_MOVE_MODE_FLIP ENABLE // 翻页
#define TCFG_UI_MOVE_MODE_CUBE ENABLE // 3D立方体
#define TCFG_UI_MOVE_MODE_REFLECTION ENABLE // 3D灯笼 + 倒影( 暂时使用中心轴翻转的前端
#define TCFG_UI_MOVE_MODE_HEXAGON ENABLE // 3D灯笼
#define TCFG_UI_MOVE_MODE_CUBE_REFLECTION ENABLE // 3D立方体 + 倒影
#define TCFG_UI_PAGE_MOVE_MODE_CENTER_FLIP ENABLE //中心轴
#define TCFG_UI_PAGE_MOVE_MODE_EDGE_FLIP ENABLE //边沿
#define TCFG_UI_PAGE_MOVE_MODE_CUBE_FLIP ENABLE //立方体翻页
#define TCFG_UI_PAGE_MOVE_MODE_DRIFT_FLIP ENABLE //飘移翻页
#define TCFG_UI_PAGE_MOVE_MODE_BOARD_FLIP ENABLE //翻板
#define TCFG_UI_PAGE_MOVE_MODE_BOARD_SLICING_FLIP ENABLE //切片翻板
#endif
//*********************************************************************************//
// UI_APP配置(差异项配置) //
//*********************************************************************************//
#if (CONFIG_UI_STYLE == STYLE_JL_WATCH_PUBLIC_MODLS)
#endif//(CONFIG_UI_STYLE == STYLE_JL_WATCH_PUBLIC_MODLS)
#if (CONFIG_UI_STYLE ==STYLE_JL_WTACH_NEW)
#endif//(CONFIG_UI_STYLE ==STYLE_JL_WTACH_NEW)
#endif
+75
View File
@@ -0,0 +1,75 @@
#ifndef __UI_MANAGE_H_
#define __UI_MANAGE_H_
#include "typedef.h"
typedef enum {
STATUS_NULL = 0,
STATUS_POWERON,
STATUS_POWEROFF,
STATUS_POWERON_LOWPOWER,
STATUS_BT_INIT_OK,
STATUS_BT_CONN,
STATUS_BT_SLAVE_CONN_MASTER,
STATUS_BT_MASTER_CONN_ONE,
STATUS_BT_DISCONN,
STATUS_BT_TWS_CONN,
STATUS_BT_TWS_DISCONN,
STATUS_PHONE_INCOME,
STATUS_PHONE_OUT,
STATUS_PHONE_ACTIV,
STATUS_CHARGE_START,
STATUS_CHARGE_FULL,
STATUS_CHARGE_CLOSE,
STATUS_CHARGE_ERR,
STATUS_LOWPOWER,
STATUS_CHARGE_LDO5V_OFF,
STATUS_EXIT_LOWPOWER,
STATUS_NORMAL_POWER,
STATUS_POWER_NULL,
STATUS_MUSIC_MODE,
STATUS_MUSIC_PLAY,
STATUS_MUSIC_PAUSE,
STATUS_LINEIN_MODE,
STATUS_LINEIN_PLAY,
STATUS_LINEIN_PAUSE,
STATUS_PC_MODE,
STATUS_PC_PLAY,
STATUS_PC_PAUSE,
STATUS_FM_MODE,
STATUS_RECORD_MODE,
STATUS_SPDIF_MODE,
STATUS_RTC_MODE,
STATUS_DEMO_MODE,
} UI_STATUS;
typedef struct __LED_REMAP_STATUS {
u8 charge_start; //开始充电
u8 charge_full; //充电完成
u8 power_on; //开机
u8 power_off; //关机
u8 lowpower; //低电
u8 max_vol; //最大音量
u8 phone_in; //来电
u8 phone_out; //去电
u8 phone_activ; //通话中
u8 bt_init_ok; //蓝牙初始化完成
u8 bt_connect_ok; //蓝牙连接成功
u8 bt_disconnect; //蓝牙断开
u8 tws_connect_ok; //蓝牙连接成功
u8 tws_disconnect; //蓝牙断开
u8 music_play; //音乐模式播放音乐
u8 music_pause; //音乐模式停止播放
u8 linein_play; //Linein模式播放音乐
u8 linein_mute; //Linein模式静音
} _GNU_PACKED_ LED_REMAP_STATUS;
int ui_manage_init(void);
void ui_update_status(u8 status);
u8 get_ui_busy_status();
void *led_get_remap_t(void);
#endif
+142
View File
@@ -0,0 +1,142 @@
#ifndef _USER_CFG_ID_H_
#define _USER_CFG_ID_H_
//=================================================================================//
// 与APP CASE相关配置项[1 ~ 50] //
//=================================================================================//
#define CFG_EARTCH_ENABLE_ID 1
#define CFG_PBG_MODE_INFO 2
#define VM_FM_INFO 3
#define CFG_SCENE_INDEX 4
#define VM_LP_NFC_TAG_BUF_DATA 5
#define CFG_SPK_EQ_SEG_SAVE 6
#define CFG_SPK_EQ_GLOBAL_GAIN_SAVE 7
#define CFG_BCS_MAP_WEIGHT 8
#define ADV_SEQ_RAND 9
#define CFG_HAVE_MASS_STORAGE 10
#define CFG_MUSIC_MODE 11
#define LP_KEY_EARTCH_TRIM_VALUE 12
#define CFG_RCSP_ADV_ANC_VOICE 13
#define CFG_RCSP_ADV_ANC_VOICE_MODE 14
#define CFG_RCSP_ADV_ANC_VOICE_KEY 15
#define CFG_VOLUME_ENHANCEMENT_MODE 16
#define CFG_UI_SYS_INFO 17
#define CFG_DMS_MALFUNC_STATE_ID 18//dms故障麦克风检测默认使用哪个mic的参数id
#define CFG_EQ0_INDEX 19
#define CFG_MIC_EFF_VOLUME_INDEX 20
#define VM_WATCH_SELECT 21
#define VM_UI_SYS_INFO 22
#define VM_UI_FILE_LIST 23
#define VM_RESET_EX_FLASH_FLAG 24
#define VM_ALARM_0 25
#define VM_ALARM_1 26
#define VM_ALARM_2 27
#define VM_ALARM_3 28
#define VM_ALARM_4 29
#define VM_ALARM_SNOOZE 30
#define VM_ALARM_MASK 31
#define VM_ALARM_NAME_0 32
#define VM_ALARM_NAME_1 33
#define VM_ALARM_NAME_2 34
#define VM_ALARM_NAME_3 35
#define VM_ALARM_NAME_4 36
#define VM_CHARGE_PROGI_VOLT 37 //保留的progi口的恒流时候电压
// findmy
#define CFG_FMNA_BLE_ADDRESS_INFO 38
#define CFG_FMNA_SOFTWARE_AUTH_START 39
#define CFG_FMNA_SOFTWARE_AUTH_END (CFG_FMNA_SOFTWARE_AUTH_START + 4)
#define CFG_FMNA_SOFTWARE_AUTH_FLAG 44
#define CFG_FMY_INFO 45
#define PT_TEST_RESULT 46//
#define CFG_VBG_TRIM 47 //保存VBG配置参数id
#define CFG_DIAL_TYPE_SEL 48 //保存VBG配置参数id
//#MAX 50
//=================================================================================//
// SDK配置拓展配置项 使用 [145 ~200] //
//=================================================================================//
#define CFG_RCSP_ADV_HIGH_LOW_VOL 145
#define CFG_RCSP_ADV_EQ_MODE_SETTING 146
#define CFG_RCSP_ADV_EQ_DATA_SETTING 147
#define CFG_RCSP_ADV_TIME_STAMP 148
#define CFG_RCSP_ADV_WORK_SETTING 149
#define CFG_RCSP_ADV_MIC_SETTING 150
#define CFG_RCSP_ADV_LED_SETTING 151
#define CFG_RCSP_ADV_KEY_SETTING 152
#define CFG_RCSP_MISC_DRC_SETTING 153
#define CFG_RCSP_MISC_REVERB_ON_OFF 154
#define VM_ALARM_RING_NAME_0 155
#define VM_ALARM_RING_NAME_1 156
#define VM_ALARM_RING_NAME_2 157
#define VM_ALARM_RING_NAME_3 158
#define VM_ALARM_RING_NAME_4 159
#define VM_COLOR_LED_SETTING 160
#define VM_EXTRA_FLASH_UPDATE_FLAG 161
#define VM_EXTRA_FLASH_ALL_UPDATE_FLAG 162
#define USER_PASSWORD 163 // 用户开机密码
#define USER_PASSWORD_ON 164 // 用户开机密码功能是否开启
#define VM_SPORT_INFO_SWITCH_FLAG 165
#define VM_SPORT_INFO_MODE_FLAG 166
#define VM_SPORT_INFO_EXERCISE_HEART_RATE 167
#define VM_SPORT_INFO_PERSONAL_INFO_FLAG 168
#define VM_SPORT_INFO_SEDENTARY 169
#define VM_SPORT_INFO_SLEEP_DETECTION 170
#define VM_SPORT_INFO_FALL_DETECTION 171
#define VM_SPORT_INFO_RAISE_WRIST 172
#define VM_SPORT_INFO_DAILY_DATA 173
#define VM_SHM_DAILY_ACTIVE 174
#define VM_SHM_DAILY_ACTIVE_TARGET 175
#define VM_MENSE_INFO 176
/*手表应用数据存储*/
#define VM_SMALL_FILE_MANAGER 177
#define VM_SMALL_FILE_PHONEBOOK 178
#define VM_SMALL_FILE_CALL_LOG 179
#define VM_SMALL_FILE_WEATHER 180
#define VM_SMALL_FILE_MESSAGE_0 181
#define VM_SMALL_FILE_MESSAGE_1 182
#define VM_SMALL_FILE_MESSAGE_2 183
#define VM_SMALL_FILE_MESSAGE_3 184
#define VM_SMALL_FILE_MESSAGE_4 185
#define VM_SMALL_FILE_SPORTRECORD_0 186
#define VM_SMALL_FILE_SPORTRECORD_1 187
#define VM_SMALL_FILE_BLOOD_OXYGEN_0 188
#define VM_SMALL_FILE_BLOOD_OXYGEN_1 189
#define VM_SMALL_FILE_BLOOD_OXYGEN_2 190
#define VM_SMALL_FILE_BLOOD_OXYGEN_3 191
#define VM_SMALL_FILE_SLEEP_0 192
#define VM_SMALL_FILE_SLEEP_1 193
#define VM_SMALL_FILE_SLEEP_2 194
#define VM_SMALL_FILE_SLEEP_3 195
#define VM_SMALL_FILE_HEART 196
#define VM_SMALL_FILE_START VM_SMALL_FILE_MANAGER
#define VM_SMALL_FILE_END VM_SMALL_FILE_HEART
/*手表应用数据存储*/
#define VM_BATTERY_INFO 197
/*蓝牙耳机列表数据*/
#define CFG_BT_PAGE_LIST 198
/*手表升级相关数据*/
#define VM_REUSABLE_SPECIAL_UPDATE_INFO 199 // 用于记录先推loader再升级资源的状态位
//MAX200
//=================================================================================//
// 用户自定义配置项 使用 [201 ~ 255] //
//=================================================================================//
/*彩屏仓配置 begin*/
#define VM_CSBG_SEQUENCE 201
#define CFG_CHGBOX_ADDR 202//记忆耳机的mac地址
#define VM_BAT_PRESENT 203//记忆电量
#define FIRST_START_INFO 204//首次上电
/*彩屏仓配置 end*/
//MAX255
#endif /* #ifndef _USER_CFG_ID_H_ */
+9
View File
@@ -0,0 +1,9 @@
#ifndef __VOL_SYNC_H__
#define __VOL_SYNC_H__
void vol_sys_tab_init(void);
void set_music_device_volume(int volume);
int phone_get_device_vol(void);
void opid_play_vol_sync_fun(s16 *vol, u8 mode);
#endif