Arduino Universal Inputs
A collection of libraries for managing/processing input devices on Arduino.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator
UniversalInputManager.h
Go to the documentation of this file.
1 
3 #ifndef _ARDUINOUNIVERSALINPUTS_INPUTMANAGER_H
4 #define _ARDUINOUNIVERSALINPUTS_INPUTMANAGER_H
5 
6 #include "UniversalInputTypes.h"
7 #include "IInputDevice.h"
9 
15 {
18 };
19 
26 {
27 public:
29 
34  size_t deviceCount() { return m_numDevices; }
35 
36  size_t poll();
37 
38  bool setCallback(IUniversalInputCallback *callback);
39  bool setCallback(
41  callback);
42 
43  bool addDevice(IInputDevice *device);
45  bool deviceExists(inputid_t id);
46 
47  // ArduinoButton functions
48  bool setButtonDefaults(bool activeLow, bool pullUp, inputtime_t debounce);
49  bool addNewButton(inputpin_t pin);
50  bool addNewButton(inputid_t id, inputpin_t pin);
51 
52  // ArduinoJoystick functions
53  bool addNewJoystick(inputpin_t pin);
54  bool addNewJoystick(inputid_t id, inputpin_t pin);
55 
56 private:
57  size_t m_numDevices;
58  UIMListNode *m_listHead;
59  IUniversalInputCallback *m_callback;
60 
61  bool m_defaultActiveLow;
62  bool m_defaultPullUp;
63  inputtime_t m_defaultDebounce;
64 };
65 
66 #endif
bool addDevice(IInputDevice *device)
Adds a new input device to the manager.
Definition: UniversalInputManager.cpp:85
IInputDevice * getDevice(inputid_t id)
Gets an input device given its ID.
Definition: UniversalInputManager.cpp:118
Represents an input device.
Definition: IInputDevice.h:14
uint16_t inputid_t
Holds the value of a device ID.
Definition: UniversalInputTypes.h:13
size_t poll()
Polls all input devices for change.
Definition: UniversalInputManager.cpp:24
bool deviceExists(inputid_t id)
Determines if a given device ID exists in the manager.
Definition: UniversalInputManager.cpp:139
uint8_t inputpin_t
Holds the value of a pin number.
Definition: UniversalInputTypes.h:19
size_t deviceCount()
Returns the number of devices that have been added.
Definition: UniversalInputManager.h:34
bool addNewJoystick(inputpin_t pin)
Adds a new joystick.
Definition: UniversalInputManager.cpp:208
UniversalInputManager()
Create a new input manager.
Definition: UniversalInputManager.cpp:11
IInputDevice * device
Pointer to input device.
Definition: UniversalInputManager.h:17
UIMListNode * next
Pointer to next node.
Definition: UniversalInputManager.h:16
bool addNewButton(inputpin_t pin)
Adds a new button with default configuration.
Definition: UniversalInputManager.cpp:176
Handles the storage, polling and event handling for multiple input devices.
Definition: UniversalInputManager.h:25
Interface for classes that handle callbacks.
Definition: IUniversalInputCallback.h:10
uint32_t inputtime_t
Holds the value of a timestap.
Definition: UniversalInputTypes.h:25
void(* UniversalInputCallbackFunction)(inputtype_t, IInputDevice *)
Callback function pointer type.
Definition: UniversalInputCallbackFunctionHandler.h:19
bool setCallback(IUniversalInputCallback *callback)
Sets the callback class for this manager.
Definition: UniversalInputManager.cpp:52
bool setButtonDefaults(bool activeLow, bool pullUp, inputtime_t debounce)
Sets the default button configuraton for buttons created with UniversalInputManager::addNewButton.
Definition: UniversalInputManager.cpp:154
Node type for linked list of IInputDevice.
Definition: UniversalInputManager.h:14