5 #include "task_display.h"
7 #define MENU_CMD_FILEINFO 'f'
8 #define MENU_CMD_ROTARY 'r'
9 #define MENU_CMD_SWITCH 's'
10 #define MENU_CMD_REMOTE 'i'
12 static int _volume = 250;
14 int menu_audio_info(int *volume)
20 int menu_file_info(const char *filename, int location)
22 int len = strlen(filename);
23 char *p = kz_kmalloc(2 + len + 1);
24 p[0] = MENU_CMD_FILEINFO;
26 strcpy(&p[2], filename);
28 kz_send(MSGBOX_ID_MENU, 2 + len + 1, p);
32 int menu_rotary_from_isr(int left, int right)
34 char *p = kx_kmalloc(4);
35 p[0] = MENU_CMD_ROTARY;
39 kx_send(MSGBOX_ID_MENU, 4, p);
43 int menu_switch_from_isr(int sw1, int sw2, int swr)
45 char *p = kx_kmalloc(4);
46 p[0] = MENU_CMD_SWITCH;
50 kx_send(MSGBOX_ID_MENU, 4, p);
54 int menu_remote_from_isr(char *signal, int siz)
56 char *p = kx_kmalloc(8);
57 p[0] = MENU_CMD_REMOTE;
65 kx_send(MSGBOX_ID_MENU, 8, p);
71 display_led_write(1, 0); \
72 display_led_toggle(0); \
77 display_led_write(0, 0); \
78 display_led_toggle(1); \
83 display_led_toggle(2); \
88 display_led_toggle(3); \
91 static int menu_cmdproc(char *p)
95 case MENU_CMD_FILEINFO:
96 display_draw_progressbar(5, 20, 121 - 5, 25, 0, 100, p[1]);
97 display_draw_text(24, 2, &p[2]);
107 case MENU_CMD_SWITCH:
118 case MENU_CMD_REMOTE:
121 ((uint32)p[4] << 24) |
122 ((uint32)p[5] << 16) |
123 ((uint32)p[6] << 8) |
126 *
\e$B%j%b%3%s$N%3!<%I$O!"%a!<%+$K$h$C$F0[$J$k!#
\e(B
166 int task_menu(int argc, char *argv[])
169 display_draw_box(0, 0, 121, 31, 1);
170 display_draw_logo(2, 2, 0);
175 kz_recv(MSGBOX_ID_MENU, &size, &p);