From 46a2f78733ce9dab6df6e5ef10e883bbe8beebb0 Mon Sep 17 00:00:00 2001 From: Hussam Eddin Alhomsi Date: Wed, 14 Mar 2018 16:36:51 +0300 Subject: [PATCH] Use AutomatableSlider & IntModel... ...instead of Knob & FloatModel --- include/GrooveExperiments.h | 10 ++++----- include/HalfSwing.h | 10 ++++----- include/HydrogenSwing.h | 10 ++++----- src/core/GrooveExperiments.cpp | 40 +++++++++++++++++----------------- src/core/HalfSwing.cpp | 40 +++++++++++++++++----------------- src/core/HydrogenSwing.cpp | 35 ++++++++++++++--------------- 6 files changed, 73 insertions(+), 72 deletions(-) diff --git a/include/GrooveExperiments.h b/include/GrooveExperiments.h index 3f2aaae2a..3ceaaa935 100644 --- a/include/GrooveExperiments.h +++ b/include/GrooveExperiments.h @@ -3,8 +3,8 @@ #include +#include "AutomatableSlider.h" #include "Groove.h" -#include "Knob.h" #include "lmms_basics.h" #include "MidiTime.h" #include "Note.h" @@ -49,7 +49,7 @@ public slots: private: int m_frames_per_tick; int m_shiftAmount; - float m_shiftFactor;// = (m_shiftAmount / 127.0) + float m_shiftFactor;// = (m_shiftAmount / 127) } ; @@ -62,12 +62,12 @@ public: public slots: void modelChanged(); - void valueChanged(float); + void valueChanged(int); private: GrooveExperiments * m_ge; - FloatModel * m_nobModel; - Knob * m_nob; + IntModel * m_sliderModel; + AutomatableSlider * m_slider; } ; diff --git a/include/HalfSwing.h b/include/HalfSwing.h index 0fd1f28ff..d91a4b343 100644 --- a/include/HalfSwing.h +++ b/include/HalfSwing.h @@ -3,8 +3,8 @@ #include +#include "AutomatableSlider.h" #include "Groove.h" -#include "Knob.h" #include "lmms_basics.h" #include "MidiTime.h" #include "Note.h" @@ -47,7 +47,7 @@ public slots: private: int m_frames_per_tick; int m_swingAmount; - float m_swingFactor;// = (m_swingAmount / 127.0) + float m_swingFactor;// = (m_swingAmount / 127) } ; @@ -60,12 +60,12 @@ public: public slots: void modelChanged(); - void valueChanged(float); + void valueChanged(int); private: HalfSwing * m_half_swing; - FloatModel * m_nobModel; - Knob * m_nob; + IntModel * m_sliderModel; + AutomatableSlider * m_slider; } ; diff --git a/include/HydrogenSwing.h b/include/HydrogenSwing.h index 44f99aa2e..ec329cf4d 100644 --- a/include/HydrogenSwing.h +++ b/include/HydrogenSwing.h @@ -3,8 +3,8 @@ #include +#include "AutomatableSlider.h" #include "Groove.h" -#include "Knob.h" #include "lmms_basics.h" #include "MidiTime.h" #include "Note.h" @@ -49,7 +49,7 @@ public slots: private: int m_frames_per_tick; int m_swingAmount; - float m_swingFactor;// = (m_swingAmount / 127.0) + float m_swingFactor;// = (m_swingAmount / 127) } ; @@ -62,12 +62,12 @@ public: public slots: void modelChanged(); - void valueChanged(float); + void valueChanged(int); private: HydrogenSwing * m_hy_swing; - FloatModel * m_nobModel; - Knob * m_nob; + IntModel * m_sliderModel; + AutomatableSlider * m_slider; } ; diff --git a/src/core/GrooveExperiments.cpp b/src/core/GrooveExperiments.cpp index 7cd35df46..4b3a7ab66 100644 --- a/src/core/GrooveExperiments.cpp +++ b/src/core/GrooveExperiments.cpp @@ -25,10 +25,10 @@ #include #include +//#include "AutomatableSlider.h" #include "Engine.h" #include "Groove.h" #include "GrooveExperiments.h" -#include "Knob.h" #include "lmms_basics.h" #include "MidiTime.h" #include "Note.h" @@ -42,7 +42,7 @@ GrooveExperiments::GrooveExperiments(QObject * _parent) : Groove() { m_shiftAmount = 0; - m_shiftFactor = 0; + m_shiftFactor = 0.0; init(); update(); } @@ -79,7 +79,7 @@ void GrooveExperiments::setAmount(int _amount) if (_amount > 0 && _amount <= 127) { m_shiftAmount = _amount; - m_shiftFactor = (((float)m_shiftAmount) / 127.0); + m_shiftFactor = (((int)m_shiftAmount) / 127); emit shiftAmountChanged(m_shiftAmount); } else if (_amount == 0) @@ -153,12 +153,12 @@ int GrooveExperiments::isInTick(MidiTime * _cur_start, const fpp_t _frames, cons // else no groove adjustments return _n->pos().getTicks() == _cur_start->getTicks() ? 0 : -1; } - +// FIXME: Broken. void GrooveExperiments::saveSettings( QDomDocument & _doc, QDomElement & _element ) { _element.setAttribute("shiftAmount", m_shiftAmount); } - +// FIXME: Broken. void GrooveExperiments::loadSettings( const QDomElement & _this ) { bool ok; @@ -183,34 +183,34 @@ QWidget * GrooveExperiments::instantiateView( QWidget * _parent ) // VIEW // GrooveExperimentsView::GrooveExperimentsView(GrooveExperiments * _ge, QWidget * _parent) : - QWidget( _parent ) + QWidget(_parent) { - m_nobModel = new FloatModel(0.0, 0.0, 127.0, 1.0); // Unused - m_nob = new Knob(knobBright_26, this); - m_nob->setModel(m_nobModel); - m_nob->setLabel(tr("Shiftiness")); - m_nob->setEnabled(true); - m_nobModel->setValue(_ge->amount()); + m_sliderModel = new IntModel(0, 0, 127); // Unused + m_slider = new AutomatableSlider(this, tr("Swinginess")); + m_slider->setOrientation(Qt::Horizontal); + m_slider->setFixedSize( 90, 26 ); + m_slider->setPageStep(1); + m_slider->setModel(m_sliderModel); + m_sliderModel->setValue(_ge->amount()); m_ge = _ge; - connect(m_nob, SIGNAL(sliderMoved(float)), this, SLOT(valueChanged(float))); - connect(m_nobModel, SIGNAL( dataChanged() ), this, SLOT(modelChanged()) ); - + connect(m_slider, SIGNAL(sliderMoved(int)), this, SLOT(valueChanged(int))); + connect(m_sliderModel, SIGNAL(dataChanged()), this, SLOT(modelChanged())); } GrooveExperimentsView::~GrooveExperimentsView() { - delete m_nob; - delete m_nobModel; + delete m_slider; + delete m_sliderModel; } void GrooveExperimentsView::modelChanged() { - m_ge->setAmount((int)m_nobModel->value()); + m_ge->setAmount((int)m_sliderModel->value()); } -void GrooveExperimentsView::valueChanged(float _f) // this value passed is gibberish +void GrooveExperimentsView::valueChanged(int _i) // this value passed is gibberish { - m_ge->setAmount((int)m_nobModel->value()); + m_ge->setAmount((int)m_sliderModel->value()); } diff --git a/src/core/HalfSwing.cpp b/src/core/HalfSwing.cpp index 00856953c..e2c02e2d2 100644 --- a/src/core/HalfSwing.cpp +++ b/src/core/HalfSwing.cpp @@ -26,10 +26,10 @@ #include #include +//#include "AutomatableSlider.h" #include "Engine.h" #include "Groove.h" #include "HalfSwing.h" -#include "Knob.h" #include "lmms_basics.h" #include "MidiTime.h" #include "Note.h" @@ -44,7 +44,7 @@ HalfSwing::HalfSwing(QObject * _parent) : Groove() { m_swingAmount = 0; - m_swingFactor = 0; + m_swingFactor = 0.0; init(); update(); } @@ -81,7 +81,7 @@ void HalfSwing::setAmount(int _amount) if (_amount > 0 && _amount <= 127) { m_swingAmount = _amount; - m_swingFactor = (((float)m_swingAmount) / 127.0); + m_swingFactor = (((int)m_swingAmount) / 127); emit swingAmountChanged(m_swingAmount); } else if (_amount == 0) @@ -159,12 +159,12 @@ int HalfSwing::isInTick(MidiTime * _cur_start, const fpp_t _frames, const f_cnt_ // else no groove adjustments return _n->pos().getTicks() == _cur_start->getTicks() ? 0 : -1; } - +// FIXME: Broken. void HalfSwing::saveSettings( QDomDocument & _doc, QDomElement & _element ) { _element.setAttribute("swingAmount", m_swingAmount); } - +// FIXME: Broken. void HalfSwing::loadSettings( const QDomElement & _this ) { bool ok; @@ -189,34 +189,34 @@ QWidget * HalfSwing::instantiateView( QWidget * _parent ) // VIEW // HalfSwingView::HalfSwingView(HalfSwing * _half_swing, QWidget * _parent) : - QWidget( _parent ) + QWidget(_parent) { - m_nobModel = new FloatModel(0.0, 0.0, 127.0, 1.0); // Unused - m_nob = new Knob(knobBright_26, this); - m_nob->setModel( m_nobModel ); - m_nob->setLabel( tr( "Swinginess" ) ); - m_nob->setEnabled(true); - m_nobModel->setValue(_half_swing->amount()); + m_sliderModel = new IntModel(0, 0, 127); // Unused + m_slider = new AutomatableSlider(this, tr("Swinginess")); + m_slider->setOrientation(Qt::Horizontal); + m_slider->setFixedSize( 90, 26 ); + m_slider->setPageStep(1); + m_slider->setModel(m_sliderModel); + m_sliderModel->setValue(_half_swing->amount()); m_half_swing = _half_swing; - connect(m_nob, SIGNAL(sliderMoved(float)), this, SLOT(valueChanged(float))); - connect(m_nobModel, SIGNAL( dataChanged() ), this, SLOT(modelChanged()) ); - + connect(m_slider, SIGNAL(sliderMoved(int)), this, SLOT(valueChanged(int))); + connect(m_sliderModel, SIGNAL(dataChanged()), this, SLOT(modelChanged())); } HalfSwingView::~HalfSwingView() { - delete m_nob; - delete m_nobModel; + delete m_slider; + delete m_sliderModel; } void HalfSwingView::modelChanged() { - m_half_swing->setAmount((int)m_nobModel->value()); + m_half_swing->setAmount((int)m_sliderModel->value()); } -void HalfSwingView::valueChanged(float _f) // this value passed is gibberish +void HalfSwingView::valueChanged(int _i) // this value passed is gibberish { - m_half_swing->setAmount((int)m_nobModel->value()); + m_half_swing->setAmount((int)m_sliderModel->value()); } diff --git a/src/core/HydrogenSwing.cpp b/src/core/HydrogenSwing.cpp index 4d9db0a2d..aa4b4d5bb 100644 --- a/src/core/HydrogenSwing.cpp +++ b/src/core/HydrogenSwing.cpp @@ -26,10 +26,10 @@ #include #include +//#include "AutomatableSlider.h" #include "Engine.h" #include "Groove.h" #include "HydrogenSwing.h" -#include "Knob.h" #include "lmms_basics.h" #include "MidiTime.h" #include "Note.h" @@ -44,7 +44,7 @@ HydrogenSwing::HydrogenSwing(QObject * _parent) : Groove() { m_swingAmount = 0; - m_swingFactor = 0; + m_swingFactor = 0.0; init(); update(); } @@ -81,7 +81,7 @@ void HydrogenSwing::setAmount(int _amount) if (_amount > 0 && _amount <= 127) { m_swingAmount = _amount; - m_swingFactor = (((float)m_swingAmount) / 127.0); + m_swingFactor = (((int)m_swingAmount) / 127); emit swingAmountChanged(m_swingAmount); } else if (_amount == 0) @@ -195,33 +195,34 @@ QWidget * HydrogenSwing::instantiateView( QWidget * _parent ) // VIEW // HydrogenSwingView::HydrogenSwingView(HydrogenSwing * _hy_swing, QWidget * _parent) : - QWidget( _parent ) + QWidget(_parent) { - m_nobModel = new FloatModel(0.0, 0.0, 127.0, 1.0); // Unused - m_nob = new Knob(knobBright_26, this); - m_nob->setModel( m_nobModel ); - m_nob->setLabel( tr( "Swinginess" ) ); - m_nob->setEnabled(true); - m_nobModel->setValue(_hy_swing->amount()); + m_sliderModel = new IntModel(0, 0, 127); // Unused + m_slider = new AutomatableSlider(this, tr("Swinginess")); + m_slider->setOrientation(Qt::Horizontal); + m_slider->setFixedSize( 90, 26 ); + m_slider->setPageStep(1); + m_slider->setModel(m_sliderModel); + m_sliderModel->setValue(_hy_swing->amount()); m_hy_swing = _hy_swing; - connect(m_nob, SIGNAL(sliderMoved(float)), this, SLOT(valueChanged(float))); - connect(m_nobModel, SIGNAL( dataChanged() ), this, SLOT(modelChanged()) ); + connect(m_slider, SIGNAL(sliderMoved(int)), this, SLOT(valueChanged(int))); + connect(m_sliderModel, SIGNAL(dataChanged()), this, SLOT(modelChanged())); } HydrogenSwingView::~HydrogenSwingView() { - delete m_nob; - delete m_nobModel; + delete m_slider; + delete m_sliderModel; } void HydrogenSwingView::modelChanged() { - m_hy_swing->setAmount((int)m_nobModel->value()); + m_hy_swing->setAmount((int)m_sliderModel->value()); } -void HydrogenSwingView::valueChanged(float _f) // this value passed is gibberish +void HydrogenSwingView::valueChanged(int _i) // this value passed is gibberish { - m_hy_swing->setAmount((int)m_nobModel->value()); + m_hy_swing->setAmount((int)m_sliderModel->value()); }