Skip to content

Commit 76aa664

Browse files
authored
JSlider single-pin fix (#420)
* Modifying jslider to fix single-pin assignment issue. * Fixed variable names
1 parent 368f942 commit 76aa664

2 files changed

Lines changed: 17 additions & 18 deletions

File tree

headers/addons/jslider.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ class JSliderInput : public GPAddon {
3333
DpadMode dpadState; // Saved locally for debounce
3434
DpadMode dDebState; // Debounce JSlider State
3535
uint32_t uDebTime; // Debounce JSlider Time
36-
uint8_t pinSliderLS;
37-
uint8_t pinSliderRS;
3836
};
3937

4038
#endif // _JSlider_H_

src/addons/jslider.cpp

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,30 +12,31 @@
1212

1313
bool JSliderInput::available() {
1414
const SliderOptions& options = Storage::getInstance().getAddonOptions().sliderOptions;
15-
return ( options.enabled && isValidPin(options.pinLS) && isValidPin(options.pinRS) );
15+
return ( options.enabled && (isValidPin(options.pinLS) || isValidPin(options.pinRS)) );
1616
}
1717

1818
void JSliderInput::setup()
1919
{
2020
const SliderOptions& options = Storage::getInstance().getAddonOptions().sliderOptions;
21-
pinSliderLS = options.pinLS;
22-
pinSliderRS = options.pinRS;
23-
24-
gpio_init(pinSliderLS); // Initialize pin
25-
gpio_set_dir(pinSliderLS, GPIO_IN); // Set as INPUT
26-
gpio_pull_up(pinSliderLS); // Set as PULLUP
27-
gpio_init(pinSliderRS);
28-
gpio_set_dir(pinSliderRS, GPIO_IN); // Set as INPUT
29-
gpio_pull_up(pinSliderRS); // Set as PULLUP
21+
if ( isValidPin(options.pinLS)) {
22+
gpio_init(options.pinLS); // Initialize pin
23+
gpio_set_dir(options.pinLS, GPIO_IN); // Set as INPUT
24+
gpio_pull_up(options.pinLS); // Set as PULLUP
25+
}
26+
if ( isValidPin(options.pinRS)) {
27+
gpio_init(options.pinRS);
28+
gpio_set_dir(options.pinRS, GPIO_IN); // Set as INPUT
29+
gpio_pull_up(options.pinRS); // Set as PULLUP
30+
}
3031
}
3132

3233
DpadMode JSliderInput::read() {
33-
if ( pinSliderLS != (uint8_t)-1 && pinSliderRS != (uint8_t)-1) {
34-
if ( !gpio_get(pinSliderLS)) {
35-
return DPAD_MODE_LEFT_ANALOG;
36-
} else if ( !gpio_get(pinSliderRS)) {
37-
return DPAD_MODE_RIGHT_ANALOG;
38-
}
34+
const SliderOptions& options = Storage::getInstance().getAddonOptions().sliderOptions;
35+
if ( isValidPin(options.pinLS) && !gpio_get(options.pinLS)) {
36+
return DPAD_MODE_LEFT_ANALOG;
37+
}
38+
if ( isValidPin(options.pinRS) && !gpio_get(options.pinRS)) {
39+
return DPAD_MODE_RIGHT_ANALOG;
3940
}
4041
return DPAD_MODE_DIGITAL;
4142
}

0 commit comments

Comments
 (0)