/* * Button.h * * Created on: 5 déc. 2020 * Author: fanch */ #ifndef SRC_BUTTON_H_ #define SRC_BUTTON_H_ #include "AbsInput.h" /** * @brief La classe qui représente les boutons du PAD */ class Button : public AbsInput { public: Button(PadDefinition* p=NULL) : AbsInput(p, BUTTON) {m_is_pressed=false;} Button(const Button& b) : AbsInput(b.m_parent, b.type) { m_is_pressed=false; } virtual const Button& operator=(const AbsInput& b) { AbsInput::operator=(b); m_is_pressed=(dynamic_cast(&b))->m_is_pressed; return *this; } virtual ~Button(){} bool is_pressed() const {return m_is_pressed; } protected: bool m_is_pressed; virtual void _on_event(const MidiMessage* m){ int size=m_actions.size(); for(int i=0; itype){ case MidiMessage::NOTE_ON: m_is_pressed=true; l->on_press(this, *dynamic_cast(m)); break; case MidiMessage::NOTE_OFF: m_is_pressed=false; l->on_release(this, *dynamic_cast(m)); break; } } } }; #endif /* SRC_BUTTON_H_ */