5 #include "task_display.h"
6 #include "task_audio.h"
8 #define MENU_CMD_FILEINFO 'f'
9 #define MENU_CMD_ROTARY 'r'
10 #define MENU_CMD_SWITCH 's'
11 #define MENU_CMD_REMOTE 'i'
15 int menu_file_info(const char *filename, int location)
17 int len = strlen(filename);
18 char *p = kz_kmalloc(2 + len + 1);
19 p[0] = MENU_CMD_FILEINFO;
21 strcpy(&p[2], filename);
23 kz_send(MSGBOX_ID_MENU, 2 + len + 1, p);
27 int menu_rotary_from_isr(int left, int right)
29 char *p = kx_kmalloc(4);
30 p[0] = MENU_CMD_ROTARY;
34 kx_send(MSGBOX_ID_MENU, 4, p);
38 int menu_switch_from_isr(int sw1, int sw2, int swr)
40 char *p = kx_kmalloc(4);
41 p[0] = MENU_CMD_SWITCH;
45 kx_send(MSGBOX_ID_MENU, 4, p);
49 int menu_remote_from_isr(char *signal, int siz)
51 char *p = kx_kmalloc(8);
52 p[0] = MENU_CMD_REMOTE;
60 kx_send(MSGBOX_ID_MENU, 8, p);
66 display_led_write(1, 0); \
67 display_led_toggle(0); \
72 display_led_write(0, 0); \
73 display_led_toggle(1); \
76 static int menu_cmdproc(char *p)
80 case MENU_CMD_FILEINFO:
81 display_draw_progressbar(5, 20, 121 - 5, 25, 0, 100, p[1]);
82 display_draw_text(24, 2, &p[2]);
103 case MENU_CMD_REMOTE:
106 ((uint32)p[4] << 24) |
107 ((uint32)p[5] << 16) |
108 ((uint32)p[6] << 8) |
111 *
\e$B%j%b%3%s$N%3!<%I$O!"%a!<%+$K$h$C$F0[$J$k!#
\e(B
117 audio_volume(volume, volume);
123 audio_volume(volume, volume);
151 int task_menu(int argc, char *argv[])
154 display_draw_box(0, 0, 121, 31, 1);
155 display_draw_logo(2, 2, 0);
157 audio_volume(volume, volume);
162 kz_recv(MSGBOX_ID_MENU, &size, &p);