Scott Shawcroft
0d8bca92e2
Merge pull request #2810 from dherrada/master
...
Pyi integration
2020-05-15 10:31:05 -07:00
Jeff Epler
23ba58bbf5
Gamepad & GamepadShift: Initially allocate as long-lived
...
This makes less heap churn and decreases code size a tiny bit
2020-05-13 10:14:37 -05:00
Jeff Epler
fbf052bb27
Gamepad & GamepadShift: Enable ticks while object exists
...
Otherwise, button presses might not be noticed.
2020-05-13 10:14:37 -05:00
Scott Shawcroft
4e8de3c554
Swap sphinx to autoapi and the inline stubs
2020-05-12 17:28:24 -07:00
dherrada
4f33a20d17
Added gamepad, gamepadshift, and i2cslave
2020-05-07 15:10:44 -04:00
Radomir Dopieralski
5e265f4fbd
When clearing gamepad buffer, use the last button state, not 0
...
When reading the accumulated button presses in gamepad and gamepadshift,
don't clear the buffer to "no buttons pressed", but instead set it to
the current (last checked) state. This clears the accumulated presses,
but retains any ongoing ones.
This fixes #1935
2019-06-12 11:42:41 -07:00
Dan Halbert
b5e283af68
Merge pull request #1808 from pewpew-game/gamepad-doc
...
Update GamePad docs to include pull-downs
2019-04-17 11:06:19 -04:00
Radomir Dopieralski
e46bf7e7c6
Update GamePad docs to include pull-downs
2019-04-17 11:18:30 +02:00
Scott Shawcroft
6132a05fd9
Include cleanup and style tweaks
2019-04-16 10:19:07 -07:00
Scott Shawcroft
0e03a321e4
Fully split gamepadshift from gamepad
2019-04-16 10:11:54 -07:00
Scott Shawcroft
c927e6b938
Split GamePadShift from GamePad to save space on most boards.
2019-04-15 15:40:06 -07:00
Radomir Dopieralski
c0a553e90f
Add title to docs
2019-04-12 22:52:19 +02:00
Radomir Dopieralski
016efb5c68
Add GamePadShift to docs
2019-04-12 22:00:03 +02:00
Radomir Dopieralski
4dc286fa14
Reorganize the gamepad code
2019-04-12 20:43:29 +02:00
Radomir Dopieralski
049e80993d
Sync gampad_singleton with the long lived copy
2019-04-12 20:43:29 +02:00
Radomir Dopieralski
ae60968563
More refactoring
2019-04-12 20:43:29 +02:00
Radomir Dopieralski
7e89beeb31
Optimize the size of code for gamepad
2019-04-12 20:43:29 +02:00
Radomir Dopieralski
a7925930fa
Read one bit per system clock tick in GamePadShift
2019-04-12 20:43:29 +02:00
Radomir Dopieralski
6ff4e0ecb0
Add GamePadShift for handling shift-register-based buttons
2019-04-12 20:43:29 +02:00
Scott Shawcroft
747f2cfe26
Add subclass support to displayio.
...
Also, swap make_news to accept a kwarg map and refine param checking.
Fixes #1237
2019-01-14 17:29:19 -08:00
Scott Shawcroft
933add6cd8
Support internationalisation.
2018-08-07 14:58:57 -07:00
Radomir Dopieralski
b219ce6d37
Add gamepad_singleton to root pointers
2018-05-30 23:11:22 +02:00
Radomir Dopieralski
c37b69e1a5
Make the gamepad singleton long-lived
...
So that it is not later moved.
2018-05-30 23:11:22 +02:00
Radomir Dopieralski
42e36a883b
Remove volatile from the gamepad struct
2018-05-23 21:49:20 +02:00
Radomir Dopieralski
f17a235b40
Raise an error if more than 8 buttons passed to gamepad
2018-05-23 21:41:56 +02:00
Radomir Dopieralski
240678e714
Avoid uninitialized gamepad on exception
...
Raise exceptions before the gamepad_singleton is created.
Also, use mp_raise for creating the exceptions.
2018-05-23 21:39:06 +02:00
Radomir Dopieralski
edf2935ab1
Make gamepad.get_pressed work when gamepad was created from frozen code
...
For some reason, when the GamePad is created from frozen code, the
get_pressed method would always return 0. This fixes it, and makes it
work properly no matter how the object was created.
2018-05-23 12:44:22 +02:00
Radomir Dopieralski
52d05bbc37
Cache pullup state in gamepad
...
Don't check the pin's pull direction on every tick, instead cache it
at the beginning. Also avoid a "can't get pull of output pin" error
when one of the pins passed is in output mode.
2018-05-23 11:26:16 +02:00
Radomir Dopieralski
6ca4fd82ed
Add a type check to the gamepad module
...
Make sure that all the arguments passed are indeed DigitalInOut.
This avoids crashes when the users pass something else.
2018-03-31 20:41:16 +02:00
Radomir Dopieralski
0ff128ec03
Fix example for gamepad
...
The example code for the gamepad module would skip detected
button presses in the code that waits for a button to be released,
because it would run it even when no button is pressed.
Also updated the example pin names to not use RX and TX.
2018-01-11 17:06:53 +01:00
Radomir Dopieralski
f4981677b0
Add a `gamepad` module for handling buttons in the background. ( #295 )
...
The `GamePad` singleton monitors buttons in the background to make sure a button press is never missed and debouncing happens consistently.
2017-10-03 13:35:57 -07:00