Files
player/Project/Src/MyWinApp/mywin_user_set.c

181 lines
5.1 KiB
C
Raw Normal View History

#include "mywin_user_set.h"
#include "dac.h"
2025-06-27 00:32:57 +08:00
#include "flash_manager.h"
#include "mywin_inc.h"
2025-06-27 00:32:57 +08:00
#include "mywin_user_backlightset.h"
#include "mywin_user_bluetooth.h"
#include "mywin_user_debug.h"
2025-06-27 00:32:57 +08:00
#include "mywin_user_filder.h"
#include "mywin_user_light.h"
#include "mywin_user_menu.h"
#include "mywin_user_sysfile.h"
2025-06-27 00:32:57 +08:00
#include "mywin_user_theme.h"
#include "mywin_user_time.h"
#include "mywin_user_timeset.h"
2025-06-27 00:32:57 +08:00
#include "nrf.h"
const static MENU_ItemStruct ptr[] = {
{0, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"}, {0, "ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"}, {0, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"}, {0, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
{0, "<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD>"}, {0, "ϵͳ<EFBFBD>ļ<EFBFBD>"}, {0, "<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"}, {0, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"},
2025-07-05 19:47:28 +08:00
{0, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ"}
2025-06-27 00:32:57 +08:00
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
WIN_MenuStruct *MENU_Setting(WIN_WindowStruct *base, WIN_PicStruct *pic) {
WIN_MenuStruct *menu = WIN_CreatMenu(
base, (void (*)(WIN_WindowStruct *, WIN_MsgStruct *))MENU_SettingMsgLoop,
0, 0, base->x_size, base->y_size);
((WIN_WindowStruct *)menu)->intercept = 1; // <20><><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
WIN_SetBackPicPath((WIN_WindowStruct *)menu, base->pic_path);
MENU_SetTitle(menu, 0, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
2025-06-27 00:32:57 +08:00
MENU_SetMaxItem(menu, 9);
for (int i = 0; i < 9; i++) {
MENU_AddItem(menu, ptr[i].img, (char *)ptr[i].txt);
}
2025-06-27 00:32:57 +08:00
WIN_ShowWindow((WIN_WindowStruct *)menu);
return menu;
2025-06-27 00:32:57 +08:00
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õı<C3B5><C4B1><EFBFBD>
// #define APP_SOURCE (*(u32 *)(0x08020000+4*7))
// #define APP_APPNAME (*(char **)(0x08020000+4*8))
// #define APP_SIZE (*(u32 *)(0x08020000+4*9))
#define APP_SOURCE (*(u32 *)(0x08000000 + 4 * 7))
#define APP_APPNAME (*(char **)(0x08000000 + 4 * 8))
#define APP_SIZE (*(u32 *)(0x08000000 + 4 * 9))
2025-06-27 00:32:57 +08:00
static void enter_sound(WIN_WindowStruct *base);
static void MENU_DoEnter(WIN_MenuStruct *menu) {
// ѡ<><D1A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (MENU_GetIndex(menu) == 0)
MENU_ThemeSet((WIN_WindowStruct *)menu);
else if (MENU_GetIndex(menu) == 1)
TIMEBOX_TimeSet((WIN_WindowStruct *)menu);
else if (MENU_GetIndex(menu) == 2)
MENU_LightSet((WIN_WindowStruct *)menu); // BACKLIGHTSETBOX_BackLightSet ();
else if (MENU_GetIndex(menu) == 3) {
MSGBOX_Inquiry((WIN_WindowStruct *)menu, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<EFBFBD>ٰ<EFBFBD>һ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"ȷ<EFBFBD><EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
} else if (MENU_GetIndex(menu) == 4) {
char *txt = mymalloc(512);
if (APP_SOURCE) {
sprintf(txt,
"<EFBFBD>ͺţ<EFBFBD>RC520\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.11 Beta1\n<EFBFBD><EFBFBD><EFBFBD>룺%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>IAP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n"
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>%d Byte",
__DATE__ " " __TIME__, APP_APPNAME, APP_SIZE);
} else {
sprintf(txt,
"<EFBFBD>ͺţ<EFBFBD>RC520\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1.11 Beta1\n<EFBFBD><EFBFBD><EFBFBD>룺%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>SWD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
__DATE__ " " __TIME__);
}
MSGBOX_TipsTime((WIN_WindowStruct *)menu, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", txt, "ȷ<EFBFBD><EFBFBD>", 5000);
myfree(txt);
} else if (MENU_GetIndex(menu) == 5)
SYSFILE_ChooseFile((WIN_WindowStruct *)menu);
else if (MENU_GetIndex(menu) == 6)
FILDER_ChooseFile((WIN_WindowStruct *)menu, "0:");
else if (MENU_GetIndex(menu) == 7)
enter_sound((WIN_WindowStruct *)menu);
else if (MENU_GetIndex(menu) == 8)
DEBUG_EnterPrint();
else
MSGBOX_TipsTime((WIN_WindowStruct *)menu, "<EFBFBD><EFBFBD>ʾ", MENU_GetSelectItem(menu),
"ȷ<EFBFBD><EFBFBD>", 5000);
2025-06-27 00:32:57 +08:00
}
// <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void MENU_SettingMsgLoop(WIN_MenuStruct *menu, WIN_MsgStruct *msg) {
WIN_MoveStruct *m = 0;
WIN_TouchStruct *t = 0;
WIN_KeyStruct *k = 0;
switch (msg->msg) {
case WIN_MSG_KEY:
k = msg->data.p;
if (k->shortPress & KEY_VALUE_ENTER) {
MENU_DoEnter(menu);
} else {
MENU_DefaultMsgLoop(menu, msg);
2025-06-27 00:32:57 +08:00
}
break; // case WIN_MSG_KEY:
case WIN_MSG_MOVE:
m = msg->data.p;
switch (m->moveType) {
case MOVE_DATA_SHORT:
// if (m->y_move>((WIN_WindowStruct
//*)menu)->y_size/2-20&&m->y_move<((WIN_WindowStruct *)menu)->y_size/2+20)
// {
// MENU_DoEnter(menu);
// }
break;
default:
MENU_DefaultMsgLoop(menu, msg);
break;
2025-06-27 00:32:57 +08:00
}
break;
case WIN_MSG_CHID:
switch (msg->data.v) {
case CHID_DELETE:
break;
case CHID_USER: {
if (msg->srcWin == menu->bar) {
if (msg->data2.v == SCROLLBAR_PRESSED) {
MENU_DoEnter(menu);
}
} else {
MENU_DefaultMsgLoop(menu, msg);
}
} break;
default:
break;
}
break;
default:
MENU_DefaultMsgLoop(menu, msg);
break;
}
2025-06-27 00:32:57 +08:00
}
// <20><>ȡһ<C8A1><D2BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>ɹ<EFBFBD>
static int recv_value(uint16_t *value) {
uint8_t v1 = 0;
uint8_t v2 = 0;
if (nrf_read_byte(&v1) == NRF_OK && nrf_read_byte(&v2) == NRF_OK) {
*value = (v2 << 8) | v1;
2025-06-27 00:32:57 +08:00
return 0;
} else {
nrf_clear();
return -1;
}
2025-06-27 00:32:57 +08:00
}
static int g_work = 0;
static int cb_sound_fun(void *ptr) {
DAC_FifolInit();
nrf_init();
nrf_set_no_respond(1);
g_work = 1;
uint16_t value = 0;
DAC_SetSetValuwFun(recv_value);
while (g_work) {
// while(recv_value(&value)==0)
// {
// DAC_SaveValue(value);
// }
rt_thread_delay(5);
}
DAC_FifoDeInit();
nrf_deinit();
return 0;
2025-06-27 00:32:57 +08:00
}
static void cb_sound_bread(void *ptr) { g_work = 0; }
2025-06-27 00:32:57 +08:00
static void enter_sound(WIN_WindowStruct *base) {
int ret = WORKING_DoWorkPro(base, "<EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ", cb_sound_fun, 0,
cb_sound_bread, 0, 0, 18);
2025-06-27 00:32:57 +08:00
}