From 984cd6e568c841f4110f070161ad28fbe4c85342 Mon Sep 17 00:00:00 2001 From: Michiel Van Der Kolk Date: Fri, 4 Mar 2005 12:48:29 +0000 Subject: New lcd mode; drop top 8 and bottom 8 lines git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6135 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/rockboy/lcd.c | 11 ++++++----- apps/plugins/rockboy/sys_rockbox.c | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 8 deletions(-) (limited to 'apps/plugins') diff --git a/apps/plugins/rockboy/lcd.c b/apps/plugins/rockboy/lcd.c index e202e72b8b..637a44c9c9 100644 --- a/apps/plugins/rockboy/lcd.c +++ b/apps/plugins/rockboy/lcd.c @@ -739,13 +739,14 @@ void lcd_refreshline(void) if (!(R_LCDC & 0x80)) return; /* should not happen... */ + if ( ((fb.mode==0)&&(R_LY >= 128)) || + ((fb.mode==1)&&(R_LY < 16)) || + ((fb.mode==2)&&((R_LY<8)||(R_LY>=136))) + #if LCD_HEIGHT == 64 - if ( ((fb.mode==0)&&(R_LY >= 128 || R_LY & 1)) || - ((fb.mode==1)&&(R_LY < 16 || R_LY & 1))) /* calculate only even lines */ -#else - if ( ((fb.mode==0)&&(R_LY >= 128)) || - ((fb.mode==1)&&(R_LY < 16))) + || (R_LY & 1) /* calculate only even lines */ #endif + ) return; updatepatpix(); diff --git a/apps/plugins/rockboy/sys_rockbox.c b/apps/plugins/rockboy/sys_rockbox.c index 3773b67f02..9bc3a6b350 100644 --- a/apps/plugins/rockboy/sys_rockbox.c +++ b/apps/plugins/rockboy/sys_rockbox.c @@ -71,7 +71,7 @@ void joy_close(void) #endif -unsigned int oldbuttonstate = 0, newbuttonstate; +unsigned int oldbuttonstate = 0, newbuttonstate,holdbutton; void ev_poll(void) { @@ -82,7 +82,9 @@ void ev_poll(void) pressed = newbuttonstate & ~oldbuttonstate; oldbuttonstate = newbuttonstate; #if CONFIG_KEYPAD == IRIVER_H100_PAD - fb.mode=rb->button_hold(); + if (rb->button_hold()&~holdbutton) + fb.mode=(fb.mode+1)%3; + holdbutton=rb->button_hold(); #endif if(released) { ev.type = EV_RELEASE; @@ -161,7 +163,12 @@ void vid_update(int scanline) #if LCD_HEIGHT == 64 /* Archos */ int balance = 0; if (fb.mode==1) - scanline-=16; + scanline-=16; + else if (fb.mode==2) { + scanline-=8; + if(scanline>=128) + return; + } scanline_remapped = scanline / 16; frameb = rb->lcd_framebuffer + scanline_remapped * LCD_WIDTH; while (cnt < 160) { @@ -235,6 +242,11 @@ void vid_update(int scanline) #else /* LCD_HEIGHT != 64, iRiver */ if (fb.mode==1) scanline-=16; + else if (fb.mode==2) { + scanline-=8; + if(scanline>=128) + return; + } #ifdef GRAYSCALE scanline_remapped = scanline / 4; #else -- cgit v1.2.3