forked from len0rd/rockbox
iRiver: Support for remote control buttons
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5909 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
dd52043cac
commit
f48ec1f7fc
3 changed files with 45 additions and 5 deletions
|
@ -171,6 +171,8 @@ unsigned char adc_scan(int channel)
|
||||||
|
|
||||||
CS_HI;
|
CS_HI;
|
||||||
|
|
||||||
|
adcdata[channel] = data;
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,7 +188,7 @@ static void adc_tick(void)
|
||||||
if(++adc_counter == HZ)
|
if(++adc_counter == HZ)
|
||||||
{
|
{
|
||||||
adc_counter = 0;
|
adc_counter = 0;
|
||||||
adcdata[ADC_BATTERY] = adc_scan(ADC_BATTERY);
|
adc_scan(ADC_BATTERY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,8 +203,6 @@ void adc_init(void)
|
||||||
GPIO_OUT &= ~0x00400000; /* CLK low */
|
GPIO_OUT &= ~0x00400000; /* CLK low */
|
||||||
|
|
||||||
tick_add_task(adc_tick);
|
tick_add_task(adc_tick);
|
||||||
|
|
||||||
adcdata[3] = adc_scan(3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif CONFIG_CPU == TCC730
|
#elif CONFIG_CPU == TCC730
|
||||||
|
|
|
@ -351,7 +351,7 @@ static int button_read(void)
|
||||||
|
|
||||||
#if CONFIG_KEYPAD == IRIVER_H100_PAD
|
#if CONFIG_KEYPAD == IRIVER_H100_PAD
|
||||||
|
|
||||||
data = adc_scan(0);
|
data = adc_scan(ADC_BUTTONS);
|
||||||
|
|
||||||
if (data < 0x80)
|
if (data < 0x80)
|
||||||
if (data < 0x30)
|
if (data < 0x30)
|
||||||
|
@ -377,6 +377,38 @@ static int button_read(void)
|
||||||
if (data < 0xf0)
|
if (data < 0xf0)
|
||||||
btn = BUTTON_REC;
|
btn = BUTTON_REC;
|
||||||
|
|
||||||
|
data = adc_scan(ADC_REMOTE);
|
||||||
|
|
||||||
|
if (data < 0x74)
|
||||||
|
if (data < 0x40)
|
||||||
|
if (data < 0x20)
|
||||||
|
if(data < 0x10)
|
||||||
|
btn = BUTTON_RC_STOP;
|
||||||
|
else
|
||||||
|
btn = BUTTON_RC_VOL_DOWN;
|
||||||
|
else
|
||||||
|
btn = BUTTON_RC_VOL;
|
||||||
|
else
|
||||||
|
if (data < 0x58)
|
||||||
|
btn = BUTTON_RC_VOL_UP;
|
||||||
|
else
|
||||||
|
btn = BUTTON_RC_BITRATE;
|
||||||
|
else
|
||||||
|
if (data < 0xb0)
|
||||||
|
if (data < 0x88)
|
||||||
|
btn = BUTTON_RC_REC;
|
||||||
|
else
|
||||||
|
btn = BUTTON_RC_SOURCE;
|
||||||
|
else
|
||||||
|
if (data < 0xd8)
|
||||||
|
if(data < 0xc0)
|
||||||
|
btn = BUTTON_RC_FF;
|
||||||
|
else
|
||||||
|
btn = BUTTON_RC_MENU;
|
||||||
|
else
|
||||||
|
if (data < 0xf0)
|
||||||
|
btn = BUTTON_RC_REW;
|
||||||
|
|
||||||
data = GPIO1_READ;
|
data = GPIO1_READ;
|
||||||
if ((data & 0x20) == 0)
|
if ((data & 0x20) == 0)
|
||||||
btn |= BUTTON_ON;
|
btn |= BUTTON_ON;
|
||||||
|
|
|
@ -66,7 +66,15 @@ bool button_hold(void);
|
||||||
#define BUTTON_UP 0x0010
|
#define BUTTON_UP 0x0010
|
||||||
#define BUTTON_DOWN 0x0020
|
#define BUTTON_DOWN 0x0020
|
||||||
|
|
||||||
#define BUTTON_RC_ON (BUTTON_REMOTE | BUTTON_ON)
|
#define BUTTON_RC_ON (BUTTON_REMOTE | 0x00010000)
|
||||||
|
#define BUTTON_RC_STOP (BUTTON_REMOTE | 0x00020000)
|
||||||
|
#define BUTTON_RC_VOL (BUTTON_REMOTE | 0x00040000)
|
||||||
|
#define BUTTON_RC_BITRATE (BUTTON_REMOTE | 0x00200000)
|
||||||
|
#define BUTTON_RC_REC (BUTTON_REMOTE | 0x00400000)
|
||||||
|
#define BUTTON_RC_SOURCE (BUTTON_REMOTE | 0x00800000)
|
||||||
|
#define BUTTON_RC_MENU (BUTTON_REMOTE | 0x01000000)
|
||||||
|
#define BUTTON_RC_FF (BUTTON_REMOTE | 0x02000000)
|
||||||
|
#define BUTTON_RC_REW (BUTTON_REMOTE | 0x04000000)
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == RECORDER_PAD
|
#elif CONFIG_KEYPAD == RECORDER_PAD
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue