77 lines
2.1 KiB
C
77 lines
2.1 KiB
C
#include "include.h"
|
||
#include "func.h"
|
||
|
||
#define TRACE_EN 0
|
||
|
||
#if TRACE_EN
|
||
#define TRACE(...) printf(__VA_ARGS__)
|
||
#else
|
||
#define TRACE(...)
|
||
#endif
|
||
|
||
///CM Init时,判断该Page参数是否有效,有效则加载
|
||
bool cm_loadparam(void *buff, uint page)
|
||
{
|
||
u8 *buf = buff;
|
||
uint key;
|
||
TRACE("cm_loadparam: %d\n", page);
|
||
if (page == SYS_CM_PAGE_NUM) {
|
||
sys_cb.vol = buf[PARAM_SYS_VOL];
|
||
|
||
// sys_cb.lang_id = LANG_SELECT;
|
||
|
||
|
||
#if MUSIC_BREAKPOINT_EN
|
||
if (f_msc.cur_dev == DEV_SDCARD) {
|
||
memcpy(&f_msc.brkpt, buf + PARAM_MSC_BRKPT_SD, 10);
|
||
} else if (f_msc.cur_dev == DEV_SDCARD1) {
|
||
memcpy(&f_msc.brkpt, buf + PARAM_MSC_BRKPT_SD1, 10);
|
||
} else {
|
||
memcpy(&f_msc.brkpt, buf + PARAM_MSC_BRKPT_USB, 10);
|
||
}
|
||
#endif // MUSIC_BREAKPOINT_EN
|
||
|
||
if(sys_cb.vol > VOL_MAX) {
|
||
TRACE("vol: %d error\n", sys_cb.vol);
|
||
return false; //音量值无效
|
||
}
|
||
key = GET_LE32(buf + PARAM_RANDOM_KEY);
|
||
if (key == 0 || key == UINT_MAX) {
|
||
TRACE("key: %d error\n", key);
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
///CM Init时,如果找不到有效的参数,则进行出厂值设置
|
||
void cm_factory(void *buff, uint page)
|
||
{
|
||
u8 *buf = buff;
|
||
memset(buf, 0, 250);
|
||
|
||
TRACE("cm_factory: %d\n", page);
|
||
if (page == SYS_CM_PAGE_NUM) {
|
||
//系统参数初始化
|
||
sys_cb.vol = SYS_INIT_VOLUME;
|
||
sys_cb.hfp_vol = SYS_INIT_VOLUME / sys_cb.hfp2sys_mul;
|
||
#if MUSIC_BREAKPOINT_EN
|
||
memset(&f_msc.brkpt, 0, 10);
|
||
#endif // MUSIC_BREAKPOINT_EN
|
||
|
||
|
||
// sys_cb.lang_id = LANG_SELECT;
|
||
|
||
|
||
#if FUNC_MUSIC_EN
|
||
f_msc.file_num = 1;
|
||
PUT_LE16(buf + PARAM_MSC_NUM_SD, f_msc.file_num);
|
||
PUT_LE16(buf + PARAM_MSC_NUM_USB, f_msc.file_num);
|
||
#endif
|
||
buf[PARAM_SYS_VOL] = sys_cb.vol;
|
||
//buf[PARAM_HSF_VOL] = sys_cb.hfp_vol;
|
||
// buf[PARAM_LANG_ID] = sys_cb.lang_id;
|
||
PUT_LE32(buf + PARAM_RANDOM_KEY, sys_get_rand_key());
|
||
}
|
||
}
|