From 6bf4770e950299da92952f2965cccf86a903fc9f Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Fri, 3 Jan 2025 20:17:26 +0100 Subject: Added config --- Click.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Click.h (limited to 'Click.h') diff --git a/Click.h b/Click.h new file mode 100644 index 0000000..0c2d0c7 --- /dev/null +++ b/Click.h @@ -0,0 +1,62 @@ +#pragma once + +#include + +#include "config.h" + +// Virtual base class +// Abstraction of BPM detection / setting +class Click +{ +public: + Click(){} + virtual ~Click(){} +}; + +// Internally generated +// Configured via: BPM +class InternalClick: public Click +{ +public: + InternalClick(Config& config): m_bpm(config.get_bpm()){} + virtual ~InternalClick(){} + +private: + int m_bpm; +}; + +// Generated from MIDI notes +// Configured via channel and note to listen to +class NoteClick: public Click +{ +public: + NoteClick(Config& config): + m_channel(config.get_midi_channel()), + m_note(config.get_midi_note()) + { + } + + virtual ~NoteClick(){} + + boost::signals2::signal signal_click; + + void receive_note(int channel, int note) + { + if (true || (channel == m_channel && note == m_note)) { + signal_click(); + } + } + +private: + int m_channel; + int m_note; +}; + +// Generated from MIDI Clock +class ClockClick: public Click +{ +public: + ClockClick(){} + virtual ~ClockClick(){} +}; + -- cgit v1.2.3