Files
lmms/plugins/waveshaper/waveshaper_control_dialog.cpp

120 lines
4.8 KiB
C++

/*
* waveshaper_control_dialog.cpp - control-dialog for waveshaper-effect
*
* Copyright (c) 2014 Vesa Kivimäki <contact/dot/diizy/at/nbl/dot/fi>
* Copyright (c) 2006-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of LMMS - http://lmms.io
*
* This program 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 2 of the License, or (at your option) any later version.
*
* This program 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 this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/
#include <QLayout>
#include "waveshaper_control_dialog.h"
#include "waveshaper_controls.h"
#include "embed.h"
#include "Graph.h"
#include "PixmapButton.h"
#include "ToolTip.h"
#include "LedCheckbox.h"
waveShaperControlDialog::waveShaperControlDialog(
waveShaperControls * _controls ) :
EffectControlDialog( _controls )
{
setAutoFillBackground( true );
QPalette pal;
pal.setBrush( backgroundRole(),
PLUGIN_NAME::getIconPixmap( "artwork" ) );
setPalette( pal );
setFixedSize( 224, 300 );
Graph * waveGraph = new Graph( this, Graph::LinearNonCyclicStyle, 204, 205 );
waveGraph -> move( 10, 32 );
waveGraph -> setModel( &_controls -> m_wavegraphModel );
waveGraph -> setAutoFillBackground( true );
pal = QPalette();
pal.setBrush( backgroundRole(),
PLUGIN_NAME::getIconPixmap("wavegraph") );
waveGraph->setPalette( pal );
waveGraph->setGraphColor( QColor( 170, 255, 255 ) );
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" ) );
outputKnob->setHintText( tr( "Output gain:" ), "" );
PixmapButton * resetButton = new PixmapButton( this, tr("Reset waveform") );
resetButton -> move( 164, 251 );
resetButton -> resize( 12, 48 );
resetButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "reset_active" ) );
resetButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "reset_inactive" ) );
ToolTip::add( resetButton, tr( "Click here to reset the wavegraph back to default" ) );
PixmapButton * smoothButton = new PixmapButton( this, tr("Smooth waveform") );
smoothButton -> move( 164, 267 );
smoothButton -> resize( 12, 48 );
smoothButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_active" ) );
smoothButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_inactive" ) );
ToolTip::add( smoothButton, tr( "Click here to apply smoothing to wavegraph" ) );
PixmapButton * addOneButton = new PixmapButton( this, tr("Increase graph amplitude by 1dB") );
addOneButton -> move( 133, 251 );
addOneButton -> resize( 12, 29 );
addOneButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "add1_active" ) );
addOneButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "add1_inactive" ) );
ToolTip::add( addOneButton, tr( "Click here to increase wavegraph amplitude by 1dB" ) );
PixmapButton * subOneButton = new PixmapButton( this, tr("Decrease graph amplitude by 1dB") );
subOneButton -> move( 133, 267 );
subOneButton -> resize( 12, 29 );
subOneButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sub1_active" ) );
subOneButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sub1_inactive" ) );
ToolTip::add( subOneButton, tr( "Click here to decrease wavegraph amplitude by 1dB" ) );
LedCheckBox * clipInputToggle = new LedCheckBox( "Clip input", this,
tr( "Clip input" ), LedCheckBox::Green );
clipInputToggle -> move( 133, 283 );
clipInputToggle -> setModel( &_controls -> m_clipModel );
ToolTip::add( clipInputToggle, tr( "Clip input signal to 0dB" ) );
connect( resetButton, SIGNAL (clicked () ),
_controls, SLOT ( resetClicked() ) );
connect( smoothButton, SIGNAL (clicked () ),
_controls, SLOT ( smoothClicked() ) );
connect( addOneButton, SIGNAL( clicked() ),
_controls, SLOT( addOneClicked() ) );
connect( subOneButton, SIGNAL( clicked() ),
_controls, SLOT( subOneClicked() ) );
}