Knob: add volumeRatio property to allow showing knobs with ratios other than 100 in dBV

Waveshaper, Dynamics processor: make input/output knobs respect the show in dBV setting
This commit is contained in:
Vesa
2014-03-15 10:45:55 +02:00
parent 5e3d7fa720
commit cf925d7c5b
4 changed files with 13 additions and 1 deletions

View File

@@ -58,6 +58,8 @@ class EXPORT knob : public QWidget, public FloatModelView
// correctly so we need to do this:
Q_PROPERTY(QColor outerColor READ outerColor WRITE setOuterColor)
mapPropertyFromModel(bool,isVolumeKnob,setVolumeKnob,m_volumeKnob);
mapPropertyFromModel(float,volumeRatio,setVolumeRatio,m_volumeRatio);
public:
knob( int _knob_num, QWidget * _parent = NULL, const QString & _name = QString() );
virtual ~knob();
@@ -149,6 +151,7 @@ private:
QPixmap * m_knobPixmap;
BoolModel m_volumeKnob;
FloatModel m_volumeRatio;
QPoint m_mouseOffset;
QPoint m_origMousePos;

View File

@@ -58,12 +58,16 @@ dynProcControlDialog::dynProcControlDialog(
waveGraph -> setMaximumSize( 204, 205 );
knob * inputKnob = new knob( knobBright_26, this);
inputKnob -> setVolumeKnob( true );
inputKnob -> setVolumeRatio( 1.0 );
inputKnob -> move( 14, 251 );
inputKnob->setModel( &_controls->m_inputModel );
inputKnob->setLabel( tr( "INPUT" ) );
inputKnob->setHintText( tr( "Input gain:" ) + " ", "" );
knob * outputKnob = new knob( knobBright_26, this );
outputKnob -> setVolumeKnob( true );
outputKnob -> setVolumeRatio( 1.0 );
outputKnob -> move( 54, 251 );
outputKnob->setModel( &_controls->m_outputModel );
outputKnob->setLabel( tr( "OUTPUT" ) );

View File

@@ -58,12 +58,16 @@ waveShaperControlDialog::waveShaperControlDialog(
waveGraph -> setMaximumSize( 204, 205 );
knob * inputKnob = new knob( knobBright_26, this);
inputKnob -> setVolumeKnob( true );
inputKnob -> setVolumeRatio( 1.0 );
inputKnob -> move( 14, 251 );
inputKnob->setModel( &_controls->m_inputModel );
inputKnob->setLabel( tr( "INPUT" ) );
inputKnob->setHintText( tr( "Input gain:" ) + " ", "" );
knob * outputKnob = new knob( knobBright_26, this );
outputKnob -> setVolumeKnob( true );
outputKnob -> setVolumeRatio( 1.0 );
outputKnob -> move( 54, 251 );
outputKnob->setModel( &_controls->m_outputModel );
outputKnob->setLabel( tr( "OUTPUT" ) );

View File

@@ -61,6 +61,7 @@ knob::knob( int _knob_num, QWidget * _parent, const QString & _name ) :
m_label( "" ),
m_knobPixmap( NULL ),
m_volumeKnob( false ),
m_volumeRatio( 100.0, 0.0, 1000000.0 ),
m_buttonPressed( false ),
m_angle( -10 ),
m_outerColor( NULL )
@@ -668,7 +669,7 @@ QString knob::displayValue() const
configManager::inst()->value( "app", "displaydbv" ).toInt() )
{
return m_description.trimmed() + QString( " %1 dBV" ).
arg( 20.0 * log10( model()->value() / 100.0 ),
arg( 20.0 * log10( model()->value() / volumeRatio() ),
3, 'f', 2 );
}
return m_description.trimmed() + QString( " %1" ).