diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/button.c | 67 |
1 files changed, 41 insertions, 26 deletions
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index 0b41fb10fe..e2a4e82a58 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c | |||
@@ -1028,16 +1028,21 @@ static int button_read(void) | |||
1028 | 1028 | ||
1029 | /* check F1..F3 and UP */ | 1029 | /* check F1..F3 and UP */ |
1030 | data = adc_read(ADC_BUTTON_ROW1); | 1030 | data = adc_read(ADC_BUTTON_ROW1); |
1031 | 1031 | ||
1032 | if (data >= LEVEL4) | 1032 | if (data >= LEVEL1) |
1033 | btn |= BUTTON_F3; | 1033 | { |
1034 | else if (data >= LEVEL3) | 1034 | if (data >= LEVEL3) |
1035 | btn |= BUTTON_UP; | 1035 | if (data >= LEVEL4) |
1036 | else if (data >= LEVEL2) | 1036 | btn |= BUTTON_F3; |
1037 | btn |= BUTTON_F2; | 1037 | else |
1038 | else if (data >= LEVEL1) | 1038 | btn |= BUTTON_UP; |
1039 | btn |= BUTTON_F1; | 1039 | else |
1040 | 1040 | if (data >= LEVEL2) | |
1041 | btn |= BUTTON_F2; | ||
1042 | else | ||
1043 | btn |= BUTTON_F1; | ||
1044 | } | ||
1045 | |||
1041 | /* Some units have mushy keypads, so pressing UP also activates | 1046 | /* Some units have mushy keypads, so pressing UP also activates |
1042 | the Left/Right buttons. Let's combat that by skipping the AN5 | 1047 | the Left/Right buttons. Let's combat that by skipping the AN5 |
1043 | checks when UP is pressed. */ | 1048 | checks when UP is pressed. */ |
@@ -1046,14 +1051,19 @@ static int button_read(void) | |||
1046 | /* check DOWN, PLAY, LEFT, RIGHT */ | 1051 | /* check DOWN, PLAY, LEFT, RIGHT */ |
1047 | data = adc_read(ADC_BUTTON_ROW2); | 1052 | data = adc_read(ADC_BUTTON_ROW2); |
1048 | 1053 | ||
1049 | if (data >= LEVEL4) | 1054 | if (data >= LEVEL1) |
1050 | btn |= BUTTON_DOWN; | 1055 | { |
1051 | else if (data >= LEVEL3) | 1056 | if (data >= LEVEL3) |
1052 | btn |= ROW2_BUTTON3; | 1057 | if (data >= LEVEL4) |
1053 | else if (data >= LEVEL2) | 1058 | btn |= BUTTON_DOWN; |
1054 | btn |= BUTTON_LEFT; | 1059 | else |
1055 | else if (data >= LEVEL1) | 1060 | btn |= ROW2_BUTTON3; |
1056 | btn |= ROW2_BUTTON1; | 1061 | else |
1062 | if (data >= LEVEL2) | ||
1063 | btn |= BUTTON_LEFT; | ||
1064 | else | ||
1065 | btn |= ROW2_BUTTON1; | ||
1066 | } | ||
1057 | } | 1067 | } |
1058 | 1068 | ||
1059 | #elif CONFIG_KEYPAD == PLAYER_PAD | 1069 | #elif CONFIG_KEYPAD == PLAYER_PAD |
@@ -1085,14 +1095,19 @@ static int button_read(void) | |||
1085 | /* Check the 4 direction keys */ | 1095 | /* Check the 4 direction keys */ |
1086 | data = adc_read(ADC_BUTTON_ROW1); | 1096 | data = adc_read(ADC_BUTTON_ROW1); |
1087 | 1097 | ||
1088 | if (data >= LEVEL4) | 1098 | if (data >= LEVEL1) |
1089 | btn |= BUTTON_LEFT; | 1099 | { |
1090 | else if (data >= LEVEL3) | 1100 | if (data >= LEVEL3) |
1091 | btn |= BUTTON_RIGHT; | 1101 | if (data >= LEVEL4) |
1092 | else if (data >= LEVEL2) | 1102 | btn |= BUTTON_LEFT; |
1093 | btn |= BUTTON_UP; | 1103 | else |
1094 | else if (data >= LEVEL1) | 1104 | btn |= BUTTON_RIGHT; |
1095 | btn |= BUTTON_DOWN; | 1105 | else |
1106 | if (data >= LEVEL2) | ||
1107 | btn |= BUTTON_UP; | ||
1108 | else | ||
1109 | btn |= BUTTON_DOWN; | ||
1110 | } | ||
1096 | 1111 | ||
1097 | #elif CONFIG_KEYPAD == GMINI100_PAD | 1112 | #elif CONFIG_KEYPAD == GMINI100_PAD |
1098 | 1113 | ||