Skip to content

Commit 1b69535

Browse files
committed
Fixed several compiler warnings.
- initialization order of class members - initialization of static variables - comparison of signed and unsigned time periods Issue #17
1 parent 0edf680 commit 1b69535

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

avdweb_Switch.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,11 @@ WEBSITE: http://www.avdweb.nl/arduino/hardware-interfacing/simple-switch-debounc
112112
#include "Arduino.h"
113113
#include "avdweb_Switch.h"
114114

115-
switchCallback_t Switch::_beepAllCallback; // definition static function pointer with typedef
116-
//void (*Switch::_beepAllCallback)(void*); // definition static function pointer without typedef
117-
void* Switch::_beepAllCallbackParam; // without =
115+
switchCallback_t Switch::_beepAllCallback = nullptr; // definition static function pointer with typedef
116+
void* Switch::_beepAllCallbackParam = nullptr;
118117

119-
Switch::Switch(byte _pin, byte PinMode, bool polarity, int debouncePeriod, int longPressPeriod, int doubleClickPeriod, int deglitchPeriod):
120-
pin(_pin), polarity(polarity), deglitchPeriod(deglitchPeriod), debouncePeriod(debouncePeriod), longPressPeriod(longPressPeriod), doubleClickPeriod(doubleClickPeriod)
118+
Switch::Switch(byte _pin, byte PinMode, bool polarity, unsigned long debouncePeriod, unsigned long longPressPeriod, unsigned long doubleClickPeriod, unsigned long deglitchPeriod):
119+
deglitchPeriod(deglitchPeriod), debouncePeriod(debouncePeriod), longPressPeriod(longPressPeriod), doubleClickPeriod(doubleClickPeriod), pin(_pin), polarity(polarity)
121120
{ pinMode(pin, PinMode);
122121
switchedTime = millis();
123122
debounced = digitalRead(pin);

avdweb_Switch.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ typedef void (*switchCallback_t)(void*);
1818
class Switch
1919
{
2020
public:
21-
Switch(byte _pin, byte PinMode=INPUT_PULLUP, bool polarity=LOW, int debouncePeriod=50, int longPressPeriod=300, int doubleClickPeriod=250, int deglitchPeriod=10);
21+
Switch(byte _pin, byte PinMode=INPUT_PULLUP, bool polarity=LOW, unsigned long debouncePeriod=50, unsigned long longPressPeriod=300, unsigned long doubleClickPeriod=250, unsigned long deglitchPeriod=10);
2222
bool poll(); // Returns 1 if switched
2323
bool switched(); // will be refreshed by poll()
2424
bool on();
@@ -36,7 +36,7 @@ class Switch
3636
void setSingleClickCallback(switchCallback_t cb, void* param = nullptr);
3737
void setBeepAllCallback(switchCallback_t cb, void* param = nullptr);
3838

39-
int deglitchPeriod, debouncePeriod, longPressPeriod, doubleClickPeriod;
39+
unsigned long deglitchPeriod, debouncePeriod, longPressPeriod, doubleClickPeriod;
4040

4141
protected:
4242
bool process(); // not inline, used in child class
@@ -58,14 +58,13 @@ class Switch
5858
switchCallback_t _longPressCallback = nullptr;
5959
switchCallback_t _doubleClickCallback = nullptr;
6060
switchCallback_t _singleClickCallback = nullptr;
61-
static switchCallback_t _beepAllCallback = nullptr; // static function pointer, can be used by all objects
62-
//static void(*_beepAllCallback)(void*) = nullptr; // static function pointer without typedef
61+
static switchCallback_t _beepAllCallback; // static function pointer, can be used by all objects
6362

6463
void* _pushedCallbackParam = nullptr;
6564
void* _releasedCallbackParam = nullptr;
6665
void* _longPressCallbackParam = nullptr;
6766
void* _doubleClickCallbackParam = nullptr;
6867
void* _singleClickCallbackParam = nullptr;
69-
static void* _beepAllCallbackParam = nullptr; // can be used by all objects
68+
static void* _beepAllCallbackParam; // can be used by all objects
7069
};
7170
#endif

0 commit comments

Comments
 (0)