1#ifndef GUM_CONTROLLER_H
2#define GUM_CONTROLLER_H
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
28
29
30
31#define GUM_CONTROLLER_TYPE (GBL_TYPEID (GUM_Controller))
32#define GUM_CONTROLLER(self) (GBL_CAST (GUM_Controller, self))
33#define GUM_CONTROLLER_CLASS(klass) (GBL_CLASS_CAST (GUM_Controller, klass))
34#define GUM_CONTROLLER_CLASSOF(self) (GBL_CLASSOF (GUM_Controller, self))
37#define GBL_SELF_TYPE GUM_Controller
40GBL_FORWARD_DECLARE_STRUCT(GUM_Controller);
43 GUM_CONTROLLER_BUTTON_PRESS,
44 GUM_CONTROLLER_BUTTON_RELEASE
45} GUM_CONTROLLER_BUTTON_STATE;
52 GUM_CONTROLLER_PRIMARY,
53 GUM_CONTROLLER_SECONDARY,
54 GUM_CONTROLLER_TERTIARY
55} GUM_CONTROLLER_BUTTON_ID;
59
60
61
62
63
64
65GBL_CLASS_DERIVE_EMPTY(GUM_Controller, GUM_Widget)
69
70
71
74
75
76
77
78
80GBL_INSTANCE_DERIVE(GUM_Controller, GUM_Widget)
82 GUM_Button* pSelectedButton;
89GBL_PROPERTIES(GUM_Controller,
90 (controllerId, GBL_GENERIC, (READ, WRITE), GBL_UINT8_TYPE),
91 (isKeyboard, GBL_GENERIC, (READ, WRITE), GBL_BOOL_TYPE)
95GblType GUM_Controller_type(
void);
98#define GUM_Controller_create(...) GBL_NEW(GUM_Controller __VA_OPT__(,) __VA_ARGS__)
101
102
103
104
105GBL_EXPORT
void GUM_Controller_sendButton (GBL_SELF, GUM_CONTROLLER_BUTTON_STATE state, GUM_CONTROLLER_BUTTON_ID button) GBL_NOEXCEPT;
108GBL_EXPORT
void GUM_Controller_setSelectedButton (GBL_SELF, GUM_Button *pButton) GBL_NOEXCEPT;
uint8_t controllerId
Which id is this controller associated with.
Definition gumball_controller.h:83
bool isKeyboard
If the controller is a keyboard.
Definition gumball_controller.h:84