From eb3a5e8834c1af80fc5196e5c8f5788e8a2b2167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Nusser?= Date: Wed, 13 Jul 2016 18:32:52 +0200 Subject: Introduce input engine isFreewheeling method. --- drumgizmo/input/inputdummy.cc | 5 +++++ drumgizmo/input/inputdummy.h | 1 + drumgizmo/input/jackmidi.cc | 5 +++++ drumgizmo/input/jackmidi.h | 1 + drumgizmo/input/midifile.cc | 5 +++++ drumgizmo/input/midifile.h | 1 + drumgizmo/input/test.cc | 5 +++++ drumgizmo/input/test.h | 1 + plugin/drumgizmo_plugin.cc | 5 +++++ plugin/drumgizmo_plugin.h | 2 ++ src/audioinputengine.h | 1 + test/dgreftest/midiinputengine.cc | 5 +++++ test/dgreftest/midiinputengine.h | 1 + test/engine.cc | 1 + 14 files changed, 39 insertions(+) diff --git a/drumgizmo/input/inputdummy.cc b/drumgizmo/input/inputdummy.cc index 971ef29..54643ae 100644 --- a/drumgizmo/input/inputdummy.cc +++ b/drumgizmo/input/inputdummy.cc @@ -63,3 +63,8 @@ void DummyInputEngine::run(size_t pos, size_t len, std::vector& events) void DummyInputEngine::post() { } + +bool DummyInputEngine::isFreewheeling() const +{ + return false; +} diff --git a/drumgizmo/input/inputdummy.h b/drumgizmo/input/inputdummy.h index 7888f33..9420319 100644 --- a/drumgizmo/input/inputdummy.h +++ b/drumgizmo/input/inputdummy.h @@ -42,4 +42,5 @@ public: void pre() override; void run(size_t pos, size_t len, std::vector& events) override; void post() override; + bool isFreewheeling() const override; }; diff --git a/drumgizmo/input/jackmidi.cc b/drumgizmo/input/jackmidi.cc index 7eeae7d..7c5cf1c 100644 --- a/drumgizmo/input/jackmidi.cc +++ b/drumgizmo/input/jackmidi.cc @@ -101,6 +101,11 @@ void JackMidiInputEngine::post() { } +bool JackMidiInputEngine::isFreewheeling() const +{ + return client.isFreewheeling(); +} + void JackMidiInputEngine::process(jack_nframes_t num_frames) { assert(port != nullptr); diff --git a/drumgizmo/input/jackmidi.h b/drumgizmo/input/jackmidi.h index 1532b18..96e2d03 100644 --- a/drumgizmo/input/jackmidi.h +++ b/drumgizmo/input/jackmidi.h @@ -50,6 +50,7 @@ public: void pre() override; void run(size_t pos, size_t len, std::vector& events) override; void post() override; + bool isFreewheeling() const override; // based on JackProcess void process(jack_nframes_t num_frames) override; diff --git a/drumgizmo/input/midifile.cc b/drumgizmo/input/midifile.cc index 6a24a00..89ffa6b 100644 --- a/drumgizmo/input/midifile.cc +++ b/drumgizmo/input/midifile.cc @@ -195,3 +195,8 @@ void MidifileInputEngine::setSampleRate(double sample_rate) { this->samplerate = sample_rate; } + +bool MidifileInputEngine::isFreewheeling() const +{ + return true; +} diff --git a/drumgizmo/input/midifile.h b/drumgizmo/input/midifile.h index 518d8d2..5756718 100644 --- a/drumgizmo/input/midifile.h +++ b/drumgizmo/input/midifile.h @@ -50,6 +50,7 @@ public: void run(size_t pos, size_t len, std::vector& events) override; void post() override; void setSampleRate(double sample_rate) override; + bool isFreewheeling() const override; private: smf_t* smf; diff --git a/drumgizmo/input/test.cc b/drumgizmo/input/test.cc index 5025d2c..75b6774 100644 --- a/drumgizmo/input/test.cc +++ b/drumgizmo/input/test.cc @@ -118,3 +118,8 @@ void TestInputEngine::setSampleRate(double sample_rate) { this->sample_rate = sample_rate; } + +bool TestInputEngine::isFreewheeling() const +{ + return false; +} diff --git a/drumgizmo/input/test.h b/drumgizmo/input/test.h index 70936ea..baf7c95 100644 --- a/drumgizmo/input/test.h +++ b/drumgizmo/input/test.h @@ -46,6 +46,7 @@ public: void run(size_t pos, size_t len, std::vector& events) override; void post() override; void setSampleRate(double sample_rate) override; + bool isFreewheeling() const override; private: float probability; diff --git a/plugin/drumgizmo_plugin.cc b/plugin/drumgizmo_plugin.cc index 4f3edf2..2b0d2a8 100644 --- a/plugin/drumgizmo_plugin.cc +++ b/plugin/drumgizmo_plugin.cc @@ -233,6 +233,11 @@ void DrumGizmoPlugin::Input::post() { } +bool DrumGizmoPlugin::Input::isFreewheeling() const +{ + return plugin.getFreeWheel(); +} + // // Output Engine diff --git a/plugin/drumgizmo_plugin.h b/plugin/drumgizmo_plugin.h index 0adc240..14189c9 100644 --- a/plugin/drumgizmo_plugin.h +++ b/plugin/drumgizmo_plugin.h @@ -119,6 +119,8 @@ private: void run(size_t pos, size_t len, std::vector& events) override; void post() override; + bool isFreewheeling() const override; + protected: DrumGizmoPlugin& plugin; const Instruments* instruments{nullptr}; diff --git a/src/audioinputengine.h b/src/audioinputengine.h index 72fa57d..71a86c2 100644 --- a/src/audioinputengine.h +++ b/src/audioinputengine.h @@ -51,4 +51,5 @@ public: //! Reimplement to receive sample rate changes. virtual void setSampleRate(double sample_rate) {} + virtual bool isFreewheeling() const = 0; }; diff --git a/test/dgreftest/midiinputengine.cc b/test/dgreftest/midiinputengine.cc index bc0fa87..aba726f 100644 --- a/test/dgreftest/midiinputengine.cc +++ b/test/dgreftest/midiinputengine.cc @@ -190,3 +190,8 @@ void MidifileInputEngine::run(size_t pos, size_t len, std::vector& even void MidifileInputEngine::post() { } + +bool MidifileInputEngine::isFreewheeling() const +{ + return true; +} diff --git a/test/dgreftest/midiinputengine.h b/test/dgreftest/midiinputengine.h index 3740d44..a752ff5 100644 --- a/test/dgreftest/midiinputengine.h +++ b/test/dgreftest/midiinputengine.h @@ -50,6 +50,7 @@ public: void pre() override; void run(size_t pos, size_t len, std::vector& events) override; void post() override; + bool isFreewheeling() const override; private: smf_t* smf; diff --git a/test/engine.cc b/test/engine.cc index 11fa720..96d513f 100644 --- a/test/engine.cc +++ b/test/engine.cc @@ -60,6 +60,7 @@ public: void pre() {} void run(size_t pos, size_t len, std::vector& events) {} void post() {} + bool isFreewheeling() const { return true; } }; class test_engine : public CppUnit::TestFixture -- cgit v1.2.3