Commanders
Arduino buttons/bus library
ButtonsCommander.hpp
1 //-------------------------------------------------------------------
2 #ifndef __buttonsCommander_HPP__
3 #define __buttonsCommander_HPP__
4 //-------------------------------------------------------------------
5 
6 #include "Commander.hpp"
7 
8 #ifndef NO_BUTTONSCOMMANDER
9 #include "ButtonsCommanderButton.hpp"
10 
11 #ifndef NO_BUTTONSCOMMANDERPUSH
12 #include "ButtonsCommanderPush.hpp"
13 #endif
14 #ifndef NO_BUTTONSCOMMANDERANALOGPUSHES
15 #include "ButtonsCommanderAnalogPushes.hpp"
16 #endif
17 #ifndef NO_BUTTONSCOMMANDERSWITCH
18 #include "ButtonsCommanderSwitch.hpp"
19 #include "ButtonsCommanderSwitchOnePin.hpp"
20 #include "ButtonsCommanderSwitchTwoPins.hpp"
21 #endif
22 #ifndef NO_BUTTONSCOMMANDERENCODER
23 #include "ButtonsCommanderEncoder.hpp"
24 #endif
25 #ifndef NO_BUTTONSCOMMANDERPOTENTIOMETER
26 #include "ButtonsCommanderPotentiometer.hpp"
27 #endif
28 
29 #ifdef VISUALSTUDIO
30 #include "ButtonsCommanderKeyboard.hpp"
31 #endif
32 
33 #define ButtonsCommander ButtonsCommanderClass::GetCurrent()
34 
41 {
42  private:
43  // Start of the linked list of all buttons. Each button have the address of its follower or NULL !
44  ButtonsCommanderButton *pFirstButton;
45  static ButtonsCommanderClass *pButtonsCommander;
46 
47  public:
50 
52  void begin();
55  void beforeFirstLoop();
66  ButtonsCommanderButton* GetFromId(unsigned long inId) const;
67 
69  unsigned long loop();
70 #ifdef COMMANDERS_PRINT_COMMANDERS
71 
74  void printCommander();
75 #endif
76 
77  public:
87  static inline ButtonsCommanderClass &GetCurrent() { return *(ButtonsCommanderClass::pButtonsCommander);}
88 };
89 
90 //-------------------------------------------------------------------
91 #endif
92 #endif
93 //-------------------------------------------------------------------
static ButtonsCommanderClass & GetCurrent()
static ButtonsCommanderButton * AddButton(ButtonsCommanderButton *inpButton)
ButtonsCommanderButton * GetFromId(unsigned long inId) const
ButtonsCommanderButton * Add(ButtonsCommanderButton *inpButton)