Added multi-button read for recorder

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1434 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2002-07-24 16:30:34 +00:00
parent 51065bbaee
commit 9d4c0e398e

View file

@ -163,36 +163,38 @@ int button_set_repeat(int newmask)
*/ */
static int button_read(void) static int button_read(void)
{ {
int btn = BUTTON_NONE;
/* Check port B pins for ON and OFF */ /* Check port B pins for ON and OFF */
int data = PBDR; int data = PBDR;
if ((data & PBDR_BTN_ON) == 0) if ((data & PBDR_BTN_ON) == 0)
return BUTTON_ON; btn |= BUTTON_ON;
else if ((data & PBDR_BTN_OFF) == 0) else if ((data & PBDR_BTN_OFF) == 0)
return BUTTON_OFF; btn |= BUTTON_OFF;
/* Check F1-3 and UP */ /* Check F1-3 and UP */
data = adc_read(ADC_BUTTON_ROW1); data = adc_read(ADC_BUTTON_ROW1);
if (data >= LEVEL4) if (data >= LEVEL4)
return BUTTON_F3; btn |= BUTTON_F3;
else if (data >= LEVEL3) else if (data >= LEVEL3)
return BUTTON_UP; btn |= BUTTON_UP;
else if (data >= LEVEL2) else if (data >= LEVEL2)
return BUTTON_F2; btn |= BUTTON_F2;
else if (data >= LEVEL1) else if (data >= LEVEL1)
return BUTTON_F1; btn |= BUTTON_F1;
/* Check DOWN, PLAY, LEFT, RIGHT */ /* Check DOWN, PLAY, LEFT, RIGHT */
data = adc_read(ADC_BUTTON_ROW2); data = adc_read(ADC_BUTTON_ROW2);
if (data >= LEVEL4) if (data >= LEVEL4)
return BUTTON_DOWN; btn |= BUTTON_DOWN;
else if (data >= LEVEL3) else if (data >= LEVEL3)
return BUTTON_PLAY; btn |= BUTTON_PLAY;
else if (data >= LEVEL2) else if (data >= LEVEL2)
return BUTTON_LEFT; btn |= BUTTON_LEFT;
else if (data >= LEVEL1) else if (data >= LEVEL1)
return BUTTON_RIGHT; btn |= BUTTON_RIGHT;
return BUTTON_NONE; return btn;
} }
#elif HAVE_PLAYER_KEYPAD #elif HAVE_PLAYER_KEYPAD
@ -221,7 +223,7 @@ void button_init(void)
static int button_read(void) static int button_read(void)
{ {
int porta = PADR; int porta = PADR;
int btn = 0; int btn = BUTTON_NONE;
/* buttons are active low */ /* buttons are active low */
if(adc_read(0) < 0x180) if(adc_read(0) < 0x180)