diff --git a/include/gyro.h b/include/gyro.h index 184522c..af72cea 100644 --- a/include/gyro.h +++ b/include/gyro.h @@ -51,7 +51,8 @@ class Gyro uint32_t time0; uint32_t delay; - bool (*_Enabled)(); + bool (*_EnabledCallback)(); + bool enabled; public: @@ -59,8 +60,10 @@ class Gyro void init(); - void setEnabledCallback(bool (*_Enabled)()) { this->_Enabled = _Enabled; } - bool Enabled() { return _Enabled(); } + void setEnabledCallback(bool (*_EnabledCallback)()) { this->_EnabledCallback = _EnabledCallback; } + void enable() { enabled = true; } + void disable() { enabled = false; } + bool Enabled() { return enabled && _EnabledCallback(); } void setMappedId(uint8_t mapped_id) { this->mapped_id = mapped_id; } uint8_t getMappedId() { return mapped_id; } diff --git a/src/gyro.cpp b/src/gyro.cpp index 6a7a4a7..e2ab30f 100644 --- a/src/gyro.cpp +++ b/src/gyro.cpp @@ -45,7 +45,7 @@ Gyro::Gyro() bind_to_x = BIND_X; - _Enabled = [] { return false; }; + _EnabledCallback = [] { return false; }; } void Gyro::init()