From 0a0cf0affe6c5f0cc63286f75c8d018a92afba50 Mon Sep 17 00:00:00 2001 From: gvnnz Date: Wed, 17 Jan 2024 22:32:05 +0100 Subject: [PATCH] Remove old Range class, use geompp::Range instead --- src/core/quantizer.cpp | 4 +- src/core/quantizer.h | 4 +- src/core/range.h | 65 --------------------------------- src/core/rendering/renderer.cpp | 13 ++++--- src/core/rendering/renderer.h | 4 +- src/core/sequencer.cpp | 2 +- 6 files changed, 14 insertions(+), 78 deletions(-) delete mode 100644 src/core/range.h diff --git a/src/core/quantizer.cpp b/src/core/quantizer.cpp index 65c24dde8..c75881682 100644 --- a/src/core/quantizer.cpp +++ b/src/core/quantizer.cpp @@ -45,7 +45,7 @@ void Quantizer::schedule(int id, std::function f) /* -------------------------------------------------------------------------- */ -void Quantizer::advance(Range block, Frame quantizerStep) const +void Quantizer::advance(geompp::Range block, Frame quantizerStep) const { /* Nothing to do if there's no action to perform. */ @@ -56,7 +56,7 @@ void Quantizer::advance(Range block, Frame quantizerStep) const assert(m_callbacks.count(pid) > 0); - for (Frame global = block.getBegin(), local = 0; global < block.getEnd(); global++, local++) + for (Frame global = block.a, local = 0; global < block.b; global++, local++) { if (global % quantizerStep != 0) // Skip if it's not on a quantization unit. diff --git a/src/core/quantizer.h b/src/core/quantizer.h index efd1ebc7b..d7a4c20ca 100644 --- a/src/core/quantizer.h +++ b/src/core/quantizer.h @@ -28,9 +28,9 @@ #define G_QUANTIZER_H #include "core/const.h" -#include "core/range.h" #include "core/types.h" #include "core/weakAtomic.h" +#include "deps/geompp/src/range.hpp" #include #include @@ -56,7 +56,7 @@ class Quantizer currentFrame + bufferSize) and a quantization step. Call this function on each block. */ - void advance(Range block, Frame quantizerStep) const; + void advance(geompp::Range block, Frame quantizerStep) const; /* clear Disables quantized operations in progress, if any. */ diff --git a/src/core/range.h b/src/core/range.h deleted file mode 100644 index 679021a31..000000000 --- a/src/core/range.h +++ /dev/null @@ -1,65 +0,0 @@ -/* ----------------------------------------------------------------------------- - * - * Giada - Your Hardcore Loopmachine - * - * ----------------------------------------------------------------------------- - * - * Copyright (C) 2010-2024 Giovanni A. Zuliani | Monocasual Laboratories - * - * This file is part of Giada - Your Hardcore Loopmachine. - * - * Giada - Your Hardcore Loopmachine is free software: you can - * redistribute it and/or modify it under the terms of the GNU General - * Public License as published by the Free Software Foundation, either - * version 3 of the License, or (at your option) any later version. - * - * Giada - Your Hardcore Loopmachine is distributed in the hope that it - * will be useful, but WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Giada - Your Hardcore Loopmachine. If not, see - * . - * - * -------------------------------------------------------------------------- */ - -#ifndef G_RANGE_H -#define G_RANGE_H - -#include - -namespace giada -{ -template -class Range -{ -public: - Range() - : m_a(0) - , m_b(0) - { - } - Range(T a, T b) - : m_a(a) - , m_b(b) - { - assert(a < b); - } - - T getBegin() const { return m_a; } - T getEnd() const { return m_b; } - T getLength() const { return m_b - m_a; } - - bool contains(T t) const - { - return t >= m_a && t < m_b; - } - -private: - T m_a; - T m_b; -}; -} // namespace giada - -#endif diff --git a/src/core/rendering/renderer.cpp b/src/core/rendering/renderer.cpp index e5b9ef1e2..b252dbb22 100644 --- a/src/core/rendering/renderer.cpp +++ b/src/core/rendering/renderer.cpp @@ -111,10 +111,10 @@ void Renderer::render(mcl::AudioBuffer& out, const mcl::AudioBuffer& in, const m if (sequencer.isRunning()) { - const Frame currentFrame = sequencer.a_getCurrentFrame(); - const int bufferSize = out.countFrames(); - const int quantizerStep = m_sequencer.getQuantizerStep(); // TODO pass this to m_sequencer.advance - or better, Advancer class - const Range renderRange = {currentFrame, currentFrame + bufferSize}; // TODO pass this to m_sequencer.advance - or better, Advancer class + const Frame currentFrame = sequencer.a_getCurrentFrame(); + const int bufferSize = out.countFrames(); + const int quantizerStep = m_sequencer.getQuantizerStep(); // TODO pass this to m_sequencer.advance - or better, Advancer class + const geompp::Range renderRange = {currentFrame, currentFrame + bufferSize}; // TODO pass this to m_sequencer.advance - or better, Advancer class const Sequencer::EventBuffer& events = m_sequencer.advance(sequencer, bufferSize, kernelAudio.samplerate, actions); m_sequencer.render(out, layout_RT); @@ -151,7 +151,7 @@ void Renderer::render(mcl::AudioBuffer& out, const mcl::AudioBuffer& in, const m /* -------------------------------------------------------------------------- */ void Renderer::advanceChannels(const Sequencer::EventBuffer& events, - const model::Channels& channels, Range block, int quantizerStep) const + const model::Channels& channels, geompp::Range block, int quantizerStep) const { for (const Channel& c : channels.getAll()) if (!c.isInternal()) @@ -160,7 +160,8 @@ void Renderer::advanceChannels(const Sequencer::EventBuffer& events, /* -------------------------------------------------------------------------- */ -void Renderer::advanceChannel(const Channel& ch, const Sequencer::EventBuffer& events, Range block, Frame quantizerStep) const +void Renderer::advanceChannel(const Channel& ch, const Sequencer::EventBuffer& events, + geompp::Range block, Frame quantizerStep) const { if (ch.shared->quantizer) ch.shared->quantizer->advance(block, quantizerStep); diff --git a/src/core/rendering/renderer.h b/src/core/rendering/renderer.h index 1380a1432..9f3fea337 100644 --- a/src/core/rendering/renderer.h +++ b/src/core/rendering/renderer.h @@ -74,9 +74,9 @@ class Renderer events) in the current audio block. Called when the sequencer is running. */ void advanceChannels(const Sequencer::EventBuffer&, const model::Channels&, - Range, int quantizerStep) const; + geompp::Range, int quantizerStep) const; - void advanceChannel(const Channel&, const Sequencer::EventBuffer&, Range, Frame quantizerStep) const; + void advanceChannel(const Channel&, const Sequencer::EventBuffer&, geompp::Range, Frame quantizerStep) const; void renderNormalChannels(const std::vector& channels, mcl::AudioBuffer& out, const mcl::AudioBuffer& in, bool hasSolos, bool seqIsRunning) const; diff --git a/src/core/sequencer.cpp b/src/core/sequencer.cpp index 0fe810d40..4094d7431 100644 --- a/src/core/sequencer.cpp +++ b/src/core/sequencer.cpp @@ -162,7 +162,7 @@ const Sequencer::EventBuffer& Sequencer::advance(const model::Sequencer& sequenc /* Advance this and quantizer after the event parsing. */ sequencer.a_setCurrentFrame(nextFrame, sampleRate); - m_quantizer.advance(Range(start, end), getQuantizerStep()); + m_quantizer.advance(geompp::Range(start, end), getQuantizerStep()); return m_eventBuffer; }