diff options
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/Makefile | 5 | ||||
-rw-r--r-- | apps/plugins/rockboy/menu.c | 32 | ||||
-rw-r--r-- | apps/plugins/rockboy/rockboy.c | 7 | ||||
-rw-r--r-- | apps/plugins/rockboy/rockmacros.h | 5 | ||||
-rw-r--r-- | apps/plugins/rockboy/sound.h | 5 | ||||
-rw-r--r-- | apps/plugins/rockboy/sys_rockbox.c | 38 |
6 files changed, 71 insertions, 21 deletions
diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile index 8464e93586..bb2f7bd194 100644 --- a/apps/plugins/Makefile +++ b/apps/plugins/Makefile | |||
@@ -41,8 +41,8 @@ DIRS = . | |||
41 | #for all targets | 41 | #for all targets |
42 | SUBDIRS += searchengine databox | 42 | SUBDIRS += searchengine databox |
43 | 43 | ||
44 | #for any recorder and iRiver model | 44 | #for any recorder, iRiver or iPod model |
45 | ifneq (,$(strip $(foreach tgt,RECORDER IRIVER,$(findstring $(tgt),$(TARGET))))) | 45 | ifneq (,$(strip $(foreach tgt,RECORDER IRIVER IPOD_COLOR IPOD_VIDEO,$(findstring $(tgt),$(TARGET))))) |
46 | ifneq (-DIRIVER_IFP7XX,$(TARGET)) | 46 | ifneq (-DIRIVER_IFP7XX,$(TARGET)) |
47 | SUBDIRS += rockboy | 47 | SUBDIRS += rockboy |
48 | endif | 48 | endif |
@@ -148,6 +148,7 @@ clean: | |||
148 | $(BUILDDIR)/credits.raw $(OBJS) $(DEFS) | 148 | $(BUILDDIR)/credits.raw $(OBJS) $(DEFS) |
149 | @$(MAKE) -C lib clean OBJDIR=$(OBJDIR)/lib | 149 | @$(MAKE) -C lib clean OBJDIR=$(OBJDIR)/lib |
150 | @$(MAKE) -C rockboy clean OBJDIR=$(OBJDIR)/rockboy | 150 | @$(MAKE) -C rockboy clean OBJDIR=$(OBJDIR)/rockboy |
151 | @$(MAKE) -C mpeg2 clean OBJDIR=$(OBJDIR)/mpeg2 | ||
151 | @$(MAKE) -C searchengine clean OBJDIR=$(OBJDIR)/searchengine | 152 | @$(MAKE) -C searchengine clean OBJDIR=$(OBJDIR)/searchengine |
152 | 153 | ||
153 | -include $(DEPFILE) | 154 | -include $(DEPFILE) |
diff --git a/apps/plugins/rockboy/menu.c b/apps/plugins/rockboy/menu.c index a22aef46f8..84bfeaa3cb 100644 --- a/apps/plugins/rockboy/menu.c +++ b/apps/plugins/rockboy/menu.c | |||
@@ -10,6 +10,20 @@ | |||
10 | #include "rockmacros.h" | 10 | #include "rockmacros.h" |
11 | #include "mem.h" | 11 | #include "mem.h" |
12 | 12 | ||
13 | #if (CONFIG_KEYPAD == IPOD_4G_PAD) | ||
14 | #define MENU_BUTTON_UP BUTTON_SCROLL_BACK | ||
15 | #define MENU_BUTTON_DOWN BUTTON_SCROLL_FWD | ||
16 | #define MENU_BUTTON_LEFT BUTTON_LEFT | ||
17 | #define MENU_BUTTON_RIGHT BUTTON_RIGHT | ||
18 | #define MENU_BUTTON_CANCEL BUTTON_MENU | ||
19 | #else | ||
20 | #define MENU_BUTTON_UP BUTTON_UP | ||
21 | #define MENU_BUTTON_DOWN BUTTON_DOWN | ||
22 | #define MENU_BUTTON_LEFT BUTTON_LEFT | ||
23 | #define MENU_BUTTON_RIGHT BUTTON_RIGHT | ||
24 | #define MENU_BUTTON_CANCEL BUTTON_OFF | ||
25 | #endif | ||
26 | |||
13 | /* load/save state function declarations */ | 27 | /* load/save state function declarations */ |
14 | static void do_slot_menu(bool is_load); | 28 | static void do_slot_menu(bool is_load); |
15 | static void do_opt_menu(void); | 29 | static void do_opt_menu(void); |
@@ -115,10 +129,10 @@ int getbutton(char *text) | |||
115 | button = rb->button_get(true); | 129 | button = rb->button_get(true); |
116 | button=button&0x00000FFF; | 130 | button=button&0x00000FFF; |
117 | switch(button) { | 131 | switch(button) { |
118 | case BUTTON_LEFT: | 132 | case MENU_BUTTON_LEFT: |
119 | case BUTTON_RIGHT: | 133 | case MENU_BUTTON_RIGHT: |
120 | case BUTTON_UP: | 134 | case MENU_BUTTON_UP: |
121 | case BUTTON_DOWN: | 135 | case MENU_BUTTON_DOWN: |
122 | break; | 136 | break; |
123 | default: | 137 | default: |
124 | return button; | 138 | return button; |
@@ -581,7 +595,7 @@ static int do_menu(char *title, char **items, size_t num_items, int sel) { | |||
581 | 595 | ||
582 | /* handle the button */ | 596 | /* handle the button */ |
583 | switch (btn) { | 597 | switch (btn) { |
584 | case BUTTON_DOWN: | 598 | case MENU_BUTTON_DOWN: |
585 | /* select next item in list */ | 599 | /* select next item in list */ |
586 | sel_item = curr_item + 1; | 600 | sel_item = curr_item + 1; |
587 | if (sel_item >= (int) num_items) | 601 | if (sel_item >= (int) num_items) |
@@ -589,7 +603,7 @@ static int do_menu(char *title, char **items, size_t num_items, int sel) { | |||
589 | select_item(title, curr_item, sel_item); | 603 | select_item(title, curr_item, sel_item); |
590 | curr_item = sel_item; | 604 | curr_item = sel_item; |
591 | break; | 605 | break; |
592 | case BUTTON_UP: | 606 | case MENU_BUTTON_UP: |
593 | /* select prev item in list */ | 607 | /* select prev item in list */ |
594 | sel_item = curr_item - 1; | 608 | sel_item = curr_item - 1; |
595 | if (sel_item < 0) | 609 | if (sel_item < 0) |
@@ -597,13 +611,13 @@ static int do_menu(char *title, char **items, size_t num_items, int sel) { | |||
597 | select_item(title, curr_item, sel_item); | 611 | select_item(title, curr_item, sel_item); |
598 | curr_item = sel_item; | 612 | curr_item = sel_item; |
599 | break; | 613 | break; |
600 | case BUTTON_RIGHT: | 614 | case MENU_BUTTON_RIGHT: |
601 | /* select current item */ | 615 | /* select current item */ |
602 | ret = curr_item; | 616 | ret = curr_item; |
603 | done = true; | 617 | done = true; |
604 | break; | 618 | break; |
605 | case BUTTON_LEFT: | 619 | case MENU_BUTTON_LEFT: |
606 | case BUTTON_OFF: | 620 | case MENU_BUTTON_CANCEL: |
607 | /* cancel out of menu */ | 621 | /* cancel out of menu */ |
608 | ret = MENU_CANCEL; | 622 | ret = MENU_CANCEL; |
609 | done = true; | 623 | done = true; |
diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c index f6dea0eeea..da1017748f 100644 --- a/apps/plugins/rockboy/rockboy.c +++ b/apps/plugins/rockboy/rockboy.c | |||
@@ -113,6 +113,13 @@ void setoptions (void) { | |||
113 | options.SELECT=BUTTON_PLAY; | 113 | options.SELECT=BUTTON_PLAY; |
114 | options.MENU=BUTTON_OFF; | 114 | options.MENU=BUTTON_OFF; |
115 | 115 | ||
116 | #elif CONFIG_KEYPAD == IPOD_4G_PAD | ||
117 | options.A=BUTTON_NONE; | ||
118 | options.B=BUTTON_NONE; | ||
119 | options.START=BUTTON_SELECT; | ||
120 | options.SELECT=BUTTON_NONE; | ||
121 | options.MENU=(BUTTON_SELECT | BUTTON_REPEAT); | ||
122 | |||
116 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | 123 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD |
117 | options.A=BUTTON_PLAY; | 124 | options.A=BUTTON_PLAY; |
118 | options.B=BUTTON_EQ; | 125 | options.B=BUTTON_EQ; |
diff --git a/apps/plugins/rockboy/rockmacros.h b/apps/plugins/rockboy/rockmacros.h index 2d33b968ea..cefa0ad787 100644 --- a/apps/plugins/rockboy/rockmacros.h +++ b/apps/plugins/rockboy/rockmacros.h | |||
@@ -47,6 +47,11 @@ void loadstate(int fd); | |||
47 | void savestate(int fd); | 47 | void savestate(int fd); |
48 | #define USER_MENU_QUIT -2 | 48 | #define USER_MENU_QUIT -2 |
49 | 49 | ||
50 | /* Disable ICODE for the ARMs */ | ||
51 | #ifdef CPU_ARM | ||
52 | #undef ICODE_ATTR | ||
53 | #define ICODE_ATTR | ||
54 | #endif | ||
50 | 55 | ||
51 | /* libc functions */ | 56 | /* libc functions */ |
52 | #define isdigit(c) ((c) >= '0' && (c) <= '9') | 57 | #define isdigit(c) ((c) >= '0' && (c) <= '9') |
diff --git a/apps/plugins/rockboy/sound.h b/apps/plugins/rockboy/sound.h index 18fb371580..682e6c1e94 100644 --- a/apps/plugins/rockboy/sound.h +++ b/apps/plugins/rockboy/sound.h | |||
@@ -27,6 +27,11 @@ struct snd | |||
27 | 27 | ||
28 | extern struct snd snd; | 28 | extern struct snd snd; |
29 | 29 | ||
30 | #if defined(ICODE_ATTR) && defined(CPU_ARM) | ||
31 | #undef ICODE_ATTR | ||
32 | #define ICODE_ATTR | ||
33 | #endif | ||
34 | |||
30 | byte sound_read(byte r) ICODE_ATTR; | 35 | byte sound_read(byte r) ICODE_ATTR; |
31 | void sound_write(byte r, byte b)ICODE_ATTR; | 36 | void sound_write(byte r, byte b)ICODE_ATTR; |
32 | void sound_dirty(void)ICODE_ATTR; | 37 | void sound_dirty(void)ICODE_ATTR; |
diff --git a/apps/plugins/rockboy/sys_rockbox.c b/apps/plugins/rockboy/sys_rockbox.c index 578a864ca0..077727352d 100644 --- a/apps/plugins/rockboy/sys_rockbox.c +++ b/apps/plugins/rockboy/sys_rockbox.c | |||
@@ -25,6 +25,22 @@ | |||
25 | #include "hw.h" | 25 | #include "hw.h" |
26 | #include "config.h" | 26 | #include "config.h" |
27 | 27 | ||
28 | #if (CONFIG_KEYPAD == IPOD_4G_PAD) | ||
29 | |||
30 | #define ROCKBOY_PAD_LEFT BUTTON_LEFT | ||
31 | #define ROCKBOY_PAD_RIGHT BUTTON_RIGHT | ||
32 | #define ROCKBOY_PAD_UP BUTTON_MENU | ||
33 | #define ROCKBOY_PAD_DOWN BUTTON_PLAY | ||
34 | |||
35 | #else | ||
36 | |||
37 | #define ROCKBOY_PAD_LEFT BUTTON_LEFT | ||
38 | #define ROCKBOY_PAD_RIGHT BUTTON_RIGHT | ||
39 | #define ROCKBOY_PAD_UP BUTTON_UP | ||
40 | #define ROCKBOY_PAD_DOWN BUTTON_DOWN | ||
41 | |||
42 | #endif | ||
43 | |||
28 | rcvar_t joy_exports[] = | 44 | rcvar_t joy_exports[] = |
29 | { | 45 | { |
30 | RCV_END | 46 | RCV_END |
@@ -73,10 +89,10 @@ void ev_poll(void) | |||
73 | #endif | 89 | #endif |
74 | if(released) { | 90 | if(released) { |
75 | ev.type = EV_RELEASE; | 91 | ev.type = EV_RELEASE; |
76 | if(released & BUTTON_LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } | 92 | if(released & ROCKBOY_PAD_LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } |
77 | if(released & BUTTON_RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);} | 93 | if(released & ROCKBOY_PAD_RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);} |
78 | if(released & BUTTON_DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } | 94 | if(released & ROCKBOY_PAD_DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } |
79 | if(released & BUTTON_UP) { ev.code=PAD_UP; ev_postevent(&ev); } | 95 | if(released & ROCKBOY_PAD_UP) { ev.code=PAD_UP; ev_postevent(&ev); } |
80 | if(released & options.A) { ev.code=PAD_A; ev_postevent(&ev); } | 96 | if(released & options.A) { ev.code=PAD_A; ev_postevent(&ev); } |
81 | if(released & options.B) { ev.code=PAD_B; ev_postevent(&ev); } | 97 | if(released & options.B) { ev.code=PAD_B; ev_postevent(&ev); } |
82 | if(released & options.START) { | 98 | if(released & options.START) { |
@@ -90,10 +106,10 @@ void ev_poll(void) | |||
90 | } | 106 | } |
91 | if(pressed) { /* button press */ | 107 | if(pressed) { /* button press */ |
92 | ev.type = EV_PRESS; | 108 | ev.type = EV_PRESS; |
93 | if(pressed & BUTTON_LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } | 109 | if(pressed & ROCKBOY_PAD_LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } |
94 | if(pressed & BUTTON_RIGHT) { ev.code=PAD_RIGHT; ev_postevent(&ev);} | 110 | if(pressed & ROCKBOY_PAD_RIGHT) { ev.code=PAD_RIGHT; ev_postevent(&ev);} |
95 | if(pressed & BUTTON_DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } | 111 | if(pressed & ROCKBOY_PAD_DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } |
96 | if(pressed & BUTTON_UP) { ev.code=PAD_UP; ev_postevent(&ev); } | 112 | if(pressed & ROCKBOY_PAD_UP) { ev.code=PAD_UP; ev_postevent(&ev); } |
97 | if(pressed & options.A) { ev.code=PAD_A; ev_postevent(&ev); } | 113 | if(pressed & options.A) { ev.code=PAD_A; ev_postevent(&ev); } |
98 | if(pressed & options.B) { ev.code=PAD_B; ev_postevent(&ev); } | 114 | if(pressed & options.B) { ev.code=PAD_B; ev_postevent(&ev); } |
99 | if(pressed & options.START) { | 115 | if(pressed & options.START) { |
@@ -105,7 +121,9 @@ void ev_poll(void) | |||
105 | ev_postevent(&ev); | 121 | ev_postevent(&ev); |
106 | } | 122 | } |
107 | if(pressed & options.MENU) { | 123 | if(pressed & options.MENU) { |
108 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) | 124 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ |
125 | (CONFIG_KEYPAD == IRIVER_H300_PAD) || \ | ||
126 | (CONFIG_KEYPAD == IPOD_4G_PAD) | ||
109 | if (do_user_menu() == USER_MENU_QUIT) | 127 | if (do_user_menu() == USER_MENU_QUIT) |
110 | #endif | 128 | #endif |
111 | { | 129 | { |
@@ -264,7 +282,7 @@ void vid_update(int scanline) | |||
264 | cnt++; | 282 | cnt++; |
265 | } | 283 | } |
266 | rb->lcd_update_rect(0, scanline & ~3, LCD_WIDTH, 4); | 284 | rb->lcd_update_rect(0, scanline & ~3, LCD_WIDTH, 4); |
267 | #elif (LCD_HEIGHT >= 144) && defined(HAVE_LCD_COLOR) /* iriver H3x0, colour iPod */ | 285 | #elif defined(HAVE_LCD_COLOR) /* iriver H3x0, colour iPod */ |
268 | // handled in lcd.c now | 286 | // handled in lcd.c now |
269 | #endif /* LCD_HEIGHT */ | 287 | #endif /* LCD_HEIGHT */ |
270 | } | 288 | } |