From e8f8d9e7e93bd211a754b0722977f5ac72a4ba30 Mon Sep 17 00:00:00 2001 From: Dave Chapman Date: Fri, 20 Jan 2006 20:59:07 +0000 Subject: Initial support for iPod color and video. The Nano has a 176x132 LCD, which is the first colour LCD smaller than the gameboy's 160x144 display - so it needs work to skip scanlines. Button handling still needs more work - only up/down/left/right/start are currently mapped. Code is removed from IRAM due to 'relocation truncated to fit: R_ARM_PC24' errors. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8400 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/rockboy/sys_rockbox.c | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) (limited to 'apps/plugins/rockboy/sys_rockbox.c') 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 @@ #include "hw.h" #include "config.h" +#if (CONFIG_KEYPAD == IPOD_4G_PAD) + +#define ROCKBOY_PAD_LEFT BUTTON_LEFT +#define ROCKBOY_PAD_RIGHT BUTTON_RIGHT +#define ROCKBOY_PAD_UP BUTTON_MENU +#define ROCKBOY_PAD_DOWN BUTTON_PLAY + +#else + +#define ROCKBOY_PAD_LEFT BUTTON_LEFT +#define ROCKBOY_PAD_RIGHT BUTTON_RIGHT +#define ROCKBOY_PAD_UP BUTTON_UP +#define ROCKBOY_PAD_DOWN BUTTON_DOWN + +#endif + rcvar_t joy_exports[] = { RCV_END @@ -73,10 +89,10 @@ void ev_poll(void) #endif if(released) { ev.type = EV_RELEASE; - if(released & BUTTON_LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } - if(released & BUTTON_RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);} - if(released & BUTTON_DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } - if(released & BUTTON_UP) { ev.code=PAD_UP; ev_postevent(&ev); } + if(released & ROCKBOY_PAD_LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } + if(released & ROCKBOY_PAD_RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);} + if(released & ROCKBOY_PAD_DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } + if(released & ROCKBOY_PAD_UP) { ev.code=PAD_UP; ev_postevent(&ev); } if(released & options.A) { ev.code=PAD_A; ev_postevent(&ev); } if(released & options.B) { ev.code=PAD_B; ev_postevent(&ev); } if(released & options.START) { @@ -90,10 +106,10 @@ void ev_poll(void) } if(pressed) { /* button press */ ev.type = EV_PRESS; - if(pressed & BUTTON_LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } - if(pressed & BUTTON_RIGHT) { ev.code=PAD_RIGHT; ev_postevent(&ev);} - if(pressed & BUTTON_DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } - if(pressed & BUTTON_UP) { ev.code=PAD_UP; ev_postevent(&ev); } + if(pressed & ROCKBOY_PAD_LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } + if(pressed & ROCKBOY_PAD_RIGHT) { ev.code=PAD_RIGHT; ev_postevent(&ev);} + if(pressed & ROCKBOY_PAD_DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } + if(pressed & ROCKBOY_PAD_UP) { ev.code=PAD_UP; ev_postevent(&ev); } if(pressed & options.A) { ev.code=PAD_A; ev_postevent(&ev); } if(pressed & options.B) { ev.code=PAD_B; ev_postevent(&ev); } if(pressed & options.START) { @@ -105,7 +121,9 @@ void ev_poll(void) ev_postevent(&ev); } if(pressed & options.MENU) { -#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) +#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ + (CONFIG_KEYPAD == IRIVER_H300_PAD) || \ + (CONFIG_KEYPAD == IPOD_4G_PAD) if (do_user_menu() == USER_MENU_QUIT) #endif { @@ -264,7 +282,7 @@ void vid_update(int scanline) cnt++; } rb->lcd_update_rect(0, scanline & ~3, LCD_WIDTH, 4); -#elif (LCD_HEIGHT >= 144) && defined(HAVE_LCD_COLOR) /* iriver H3x0, colour iPod */ +#elif defined(HAVE_LCD_COLOR) /* iriver H3x0, colour iPod */ // handled in lcd.c now #endif /* LCD_HEIGHT */ } -- cgit v1.2.3