2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
23#include "../types/evmu_peripheral.h"
24#include <gimbal/meta/signals/gimbal_signal.h>
27
28
29
30#define EVMU_GAMEPAD_TYPE (GBL_TYPEID
(EvmuGamepad))
31#define EVMU_GAMEPAD(self) (GBL_CAST
(EvmuGamepad, self))
32#define EVMU_GAMEPAD_CLASS(klass) (GBL_CLASS_CAST
(EvmuGamepad, klass))
33#define EVMU_GAMEPAD_GET_CLASS(self) (GBL_CLASSOF
(EvmuGamepad, self))
36#define EVMU_GAMEPAD_NAME "gamepad"
38#define GBL_SELF_TYPE EvmuGamepad
42GBL_FORWARD_DECLARE_STRUCT(EvmuGamepad);
45
46
47
48
49
50
51
52
53GBL_CLASS_DERIVE(EvmuGamepad, EvmuPeripheral)
55 EVMU_RESULT (*pFnPollButtons)(GBL_SELF);
59
60
61
62
63
64
65
66
67
68
87GBL_PROPERTIES(EvmuGamepad,
88 (configured, GBL_GENERIC, (READ), GBL_BOOL_TYPE),
89 (up, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
90 (down, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
91 (left, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
92 (right, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
93 (a, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
94 (b, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
95 (mode, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
96 (sleep, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
97 (turboA, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
98 (turboB, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
99 (fastForward, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE),
100 (slowMotion, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE)
103GBL_SIGNALS(EvmuGamepad,
104 (updatingButtons, (GBL_INSTANCE_TYPE, receiver))
112
113
114
115
#define EVMU_EXPORT
Define used for adding attributes to export public symbols.
GblType EvmuGamepad_type(void)
Returns the GblType UUID associated with EvmuGamepad.
Gamepad peripheral for managing button states.
uint16_t turboA
TurboA button state (1: pressed, 0: released)
uint16_t b
B button state (1: pressed, 0: released)
GblBool EvmuGamepad_isConfigured(const EvmuGamepad *pSelf)
Returns GBL_TRUE if the port 3 DDR pins have been configured properly for button input.
uint16_t mode
Mode button state (1: pressed, 0: released)
uint16_t turboB
TurboB button state (1: pressed, 0: released)
uint16_t sleep
Sleep button state (1: pressed, 0: released)
uint16_t a
A button state (1: pressed, 0: released)
uint16_t left
Dpad Left button state (1: pressed, 0: released)
uint16_t down
Dpad Down button state (1: pressed, 0: released)
uint16_t slowMotion
Rewind button state (1: preseed, 0: released)
uint16_t right
Dpad Right button state (1: pressed, 0: released)
uint16_t fastForward
Fast-Forward button state (1: pressed, 0: released)
uint16_t up
Dpad Up button state (1: pressed, 0: released)