From 94dc016a94b04e6c114c08cdfa3a224047edeea1 Mon Sep 17 00:00:00 2001 From: Karl Kurbjun Date: Fri, 17 Apr 2009 03:56:06 +0000 Subject: M:Robe 500: Remove some dead code and cleanup button handling git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20720 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/tms320dm320/debug-dm320.c | 52 ------------ .../arm/tms320dm320/mrobe-500/button-mr500.c | 98 +++++++++------------- 2 files changed, 41 insertions(+), 109 deletions(-) (limited to 'firmware/target') diff --git a/firmware/target/arm/tms320dm320/debug-dm320.c b/firmware/target/arm/tms320dm320/debug-dm320.c index 5dfe9bbae7..53acd3f655 100755 --- a/firmware/target/arm/tms320dm320/debug-dm320.c +++ b/firmware/target/arm/tms320dm320/debug-dm320.c @@ -35,58 +35,11 @@ #include "tsc2100.h" #endif -#if defined(PCM_TEST) -/* Leaving this in for potential debugging for other targets */ -#include "pcm.h" -#include "debug-target.h" -#include "dsp-target.h" -#include "dsp/ipc.h" -#define ARM_BUFFER_SIZE (PCM_SIZE) - -static signed short *the_rover = (signed short *)0x1900000; -static unsigned int index_rover = 0; - -void pcmtest_get_more(unsigned char** start, size_t* size) -{ - unsigned long sdem_addr; - sdem_addr = (unsigned long)the_rover + index_rover; - - *start = (unsigned char*)(sdem_addr); - *size = ARM_BUFFER_SIZE; - - index_rover += ARM_BUFFER_SIZE; - if (index_rover >= 4*1024*1024) - { - index_rover = 0; - } - - DEBUGF("pcm_sdram at 0x%08lx, sdem_addr 0x%08lx", - (unsigned long)the_rover, (unsigned long)sdem_addr); -} -#endif - bool __dbg_ports(void) { -#if defined(PCM_TEST) - int fd; - int bytes; - - fd = open("/test.raw", O_RDONLY); - bytes = read(fd, the_rover, 4*1024*1024); - close(fd); - - DEBUGF("read %d rover bytes", bytes); - - pcm_play_data(&pcmtest_get_more,(unsigned char*)the_rover, ARM_BUFFER_SIZE); -#endif - return false; } -#ifndef CREATIVE_ZVx -extern char r_buffer[5]; -extern int r_button; -#endif bool __dbg_hw_info(void) { int line = 0, oldline; @@ -171,11 +124,6 @@ bool __dbg_hw_info(void) address+=0x800; else if (button==BUTTON_RC_REW) address-=0x800; - - snprintf(buf, sizeof(buf), "Buffer: 0x%02x%02x%02x%02x%02x", - r_buffer[0], r_buffer[1], r_buffer[2], r_buffer[3],r_buffer[4] ); lcd_puts(0, line++, buf); - snprintf(buf, sizeof(buf), "Button: 0x%08x, HWread: 0x%08x", - (unsigned int)button, r_button); lcd_puts(0, line++, buf); #else button = button_get(false); if(button & BUTTON_POWER) diff --git a/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c index daa53f794f..036f777340 100644 --- a/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c +++ b/firmware/target/arm/tms320dm320/mrobe-500/button-mr500.c @@ -35,12 +35,6 @@ #include "string.h" #include "touchscreen.h" -#define BUTTON_TIMEOUT 50 - -#define BUTTON_START_BYTE 0xF0 -#define BUTTON_START_BYTE2 0xF4 /* not sure why, but sometimes you get F0 or F4, */ - /* but always the same one for the session? */ -static short last_x, last_y, last_z1, last_z2; /* for the touch screen */ static bool touch_available = false; static bool hold_button = false; @@ -129,93 +123,83 @@ inline bool button_hold(void) return hold_button; } -#define TOUCH_MARGIN 8 -char r_buffer[5]; -int r_button = BUTTON_NONE; int button_read_device(int *data) { - int retval, button1_location, button2_location; + char r_buffer[5]; + int r_button = BUTTON_NONE; + static int oldbutton = BUTTON_NONE; static bool oldhold = false; - static long last_touch = 0; - r_button=BUTTON_NONE; *data = 0; + /* Handle touchscreen */ if (touch_available) { short x,y; - bool send_touch = false; + short last_z1, last_z2; + tsc2100_read_values(&x, &y, &last_z1, &last_z2); - if (TIME_BEFORE(last_touch + HZ/5, current_tick)) - { - if ((x > last_x + TOUCH_MARGIN) || - (x < last_x - TOUCH_MARGIN) || - (y > last_y + TOUCH_MARGIN) || - (y < last_y - TOUCH_MARGIN)) - { - send_touch = true; - } - } - else - send_touch = true; - if (send_touch) - { - last_x = x; - last_y = y; - *data = touch_to_pixels(x, y); - r_button |= touchscreen_to_pixels((*data&0xffff0000)>>16, - *data&0x0000ffff, data); - oldbutton = r_button; - } - last_touch = current_tick; + + *data = touch_to_pixels(x, y); + r_button |= touchscreen_to_pixels((*data&0xffff0000)>>16, + *data&0x0000ffff, data); + oldbutton = r_button; + touch_available = false; + last_touch=current_tick; } else { /* Touch hasn't happened in a while, clear the bits */ if(last_touch+3>current_tick) - { oldbutton&=(0xFF); - } } + /* Handle power button */ if ((IO_GIO_BITSET0&0x01) == 0) { r_button |= BUTTON_POWER; oldbutton=r_button; } + else + oldbutton&=~BUTTON_POWER; - retval=uart1_gets_queue(r_buffer, 5); - - for(button1_location=0;button1_location<4;button1_location++) + /* Handle remote buttons */ + if(uart1_gets_queue(r_buffer, 5)>=0) { - if((r_buffer[button1_location]&0xF0)==0xF0 - && (r_buffer[button1_location+1]&0xF0)!=0xF0) - break; - } - button1_location++; - if(button1_location==5) - button1_location=0; + int button_location; - if(button1_location==4) - button2_location=0; - else - button2_location=button1_location+1; + for(button_location=0;button_location<4;button_location++) + { + if((r_buffer[button_location]&0xF0)==0xF0 + && (r_buffer[button_location+1]&0xF0)!=0xF0) + break; + } + + if(button_location==4) + button_location=0; + + button_location++; + + r_button |= r_buffer[button_location]; + + /* Find the hold status location */ + if(button_location==4) + button_location=0; + else + button_location++; + + hold_button=((r_buffer[button_location]&0x80)?true:false); - if(retval>=0) - { uart1_clear_queue(); - r_button |= r_buffer[button1_location]; oldbutton=r_button; - hold_button=((r_buffer[button2_location]&0x80)?true:false); } else - { r_button=oldbutton; - } + /* Take care of hold notices */ #ifndef BOOTLOADER /* give BL notice if HB state chaged */ if (hold_button != oldhold) -- cgit v1.2.3