Use AutomatableSlider & IntModel...

...instead of Knob & FloatModel
This commit is contained in:
Hussam Eddin Alhomsi
2018-03-14 16:36:51 +03:00
parent 3866cef8b3
commit 46a2f78733
6 changed files with 73 additions and 72 deletions

View File

@@ -3,8 +3,8 @@
#include <QObject>
#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;
} ;

View File

@@ -3,8 +3,8 @@
#include <QObject>
#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;
} ;

View File

@@ -3,8 +3,8 @@
#include <QObject>
#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;
} ;

View File

@@ -25,10 +25,10 @@
#include <QDomElement>
#include <QLabel>
//#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());
}

View File

@@ -26,10 +26,10 @@
#include <QDomElement>
#include <QLabel>
//#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());
}

View File

@@ -26,10 +26,10 @@
#include <QDomElement>
#include <QLabel>
//#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());
}