Line data Source code
1 : #include "AP_Scripting/AP_Scripting_config.h" 2 : 3 : #if AP_SCRIPTING_ENABLED 4 : 5 : #include <limits> 6 : #include "script_button.h" 7 : 8 0 : void ScriptButton::press() 9 : { 10 0 : if (!pressed) { 11 0 : pressed = true; 12 : 13 : // The count will max out at 255, but it won't roll over to 0. 14 0 : if (count < std::numeric_limits<uint8_t>::max()) { 15 0 : count++; 16 : } 17 : } 18 0 : } 19 : 20 0 : void ScriptButton::release() 21 : { 22 0 : pressed = false; 23 0 : } 24 : 25 0 : bool ScriptButton::is_pressed() const 26 : { 27 0 : return pressed; 28 : } 29 : 30 0 : uint8_t ScriptButton::get_count() const 31 : { 32 0 : return count; 33 : } 34 : 35 0 : void ScriptButton::clear_count() 36 : { 37 0 : count = 0; 38 0 : } 39 : 40 0 : uint8_t ScriptButton::get_and_clear_count() 41 : { 42 0 : auto result = get_count(); 43 0 : clear_count(); 44 0 : return result; 45 : } 46 : 47 : #endif // AP_SCRIPTING_ENABLED