mirror of
https://github.com/LMMS/lmms.git
synced 2026-01-13 17:08:10 -05:00
* clang-tidy: Apply cppcoreguidelines-init-variables everywhere (treating NaNs as zeros) * Initialize msec and tick outside switch * Update plugins/Vestige/Vestige.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update plugins/Vestige/Vestige.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update plugins/Vestige/Vestige.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update plugins/VstEffect/VstEffectControls.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update plugins/VstEffect/VstEffectControls.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update plugins/VstEffect/VstEffectControls.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Use initialization with = * Use tabs * Use static_cast * Update DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Do not use tabs for alignment in src/core/DrumSynth.cpp Co-authored-by: Dalton Messmer <messmer.dalton@gmail.com> * Move x variable inside loop * Use ternary operator for b variable * Revert "Use tabs" This reverts commit 07afd8a83f58b539c3673310b2aad4b63c9198a0. * Remove unnecessary variables in XpressiveView * Simplify initialization in Plugin * Combine declaration and initialization in EqCurve * Combine declaration and initialization in Song * Combine declaration and initialization in AudioAlsa * Combine declaration and initialization in EqCurve (again) * Missed some * Undo changes made to non-LMMS files * Undo indentation changes in SidInstrument.cpp * Combine declaration with assignment in IoHelper * Combine declaration with assignment using auto in Carla * Combine declaration with assignment * Combine declaration with assignment in BasicFilters * Simplify assignments in AudioFileProcessorWaveView::zoom * Simplify out sample variable in BitInvader * Remove sampleLength variable in DelayEffect * Move gain variable in DynamicsProcessor * Combine peak variable declaration with assignment in EqSpectrumView * Move left/right lfo variables in for loop in FlangerEffect * Use ternary operator for group variable in LadspaControlDialog * Combine declaration with assignment in Lb302 * Combine declaration with assignment in MidiExport * Combine declaration with assignment in MidiFile * Combine declaration with assignment in MidiImport * Use ternary operator for vel_adjusted variable in OpulenZ * Move tmpL and dcblkL variables in for loop in ReverbSC * Combine declaration with initialization in SlicerT * Combine declaration with assignment in SaSpectrumView * Combine declaration with assignment in SaWaterfallView * Combine declaration with assignment in StereoEnhancerEffect * Combine declaration with assignment in VibratingString * Combine declaration with assignment in VstEffectControls * Combine declaration with assignment in Xpressive * Combine declaration with assignment in AutomatableModel * Combine declaration with assignment in AutomationClip * Move sample variable in for loop in BandLimitedWave * Combine declaration with assignment in DataFile * Combine declaration with assignment in DrumSynth * Combine declaration with assignment in Effect * Remove redundant assignment to nphsLeft in InstrumentPlayHandle * Combine declaration with assignment in LadspaManager * Combine declaration with assignment in LinkedModelGroups * Combine declaration with assignment in MemoryHelper * Combine declaration with assignment in AudioAlsa * Combine declaration with assignment in AudioFileOgg * Combine declaration with assignment in AudioPortAudio * Combine declaration with assignment in AudioSoundIo * Combine declaration with assignment in Lv2Evbuf * Combine declaration with assignment in Lv2Proc * Combine declaration with assignment in main * Combine declaration with assignment in MidiAlsaRaw * Combine declaration with assignment in MidiAlsaSeq * Combine declaration with assignment in MidiController * Combine declaration with assignment in MidiJack * Combine declaration with assignment in MidiSndio * Combine declaration with assignment in ControlLayout * Combine declaration with assignment in MainWindow * Combine declaration with assignment in ProjectNotes * Use ternary operator for nextValue variable in AutomationClipView * Combine declaration with assignment in AutomationEditor * Move length variable in for-loop in PianoRoll * Combine declaration with assignment in ControllerConnectionDialog * Combine declaration with assignment in Graph * Combine declaration with assignment in LcdFloatSpinBox * Combine declaration with assignment in TimeDisplayWidget * Remove currentNote variable in InstrumentTrack * Combine declaration with assignment in DrumSynth (again) * Use ternary operator for factor variable in BitInvader * Use ternary operator for highestBandwich variable in EqCurve Bandwich? * Move sum variable into for loop in Graph * Fix format in MidiSndio * Fixup a few more * Cleanup error variables * Use ternary operators and combine declaration with initialization * Combine declaration with initialization * Update plugins/LadspaEffect/LadspaControlDialog.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update plugins/OpulenZ/OpulenZ.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update plugins/SpectrumAnalyzer/SaProcessor.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/midi/MidiAlsaRaw.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/gui/MainWindow.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/gui/clips/AutomationClipView.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/gui/editors/AutomationEditor.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/gui/widgets/Fader.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Move static_cast conversion into separate variable * Use real index when interpolating * Remove empty line * Make helpBtn a private member * Move controller type into separate variable * Fix format of DrumSynth::waveform function * Use tabs and static_cast * Remove redundant if branch * Refactor using static_cast/reinterpret_cast * Add std namespace prefix * Store repeated conditional into boolean variable * Cast to int before assigning to m_currentLength * Rename note_frames to noteFrames * Update src/core/Controller.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/core/DrumSynth.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Update src/gui/widgets/Graph.cpp Co-authored-by: Kevin Zander <veratil@gmail.com> * Revert changes that initialized variables redudantly For situations where the initialization is more complex or passed into a function by a pointer, we dont need to do initialization ourselves since it is already done for us, just in a different way. * Remove redundant err variable * Remove explicit check of err variable * Clean up changes and address review * Do not initialize to 0/nullptr when not needed * Wrap condition in parentheses for readability --------- Co-authored-by: Kevin Zander <veratil@gmail.com> Co-authored-by: Dalton Messmer <messmer.dalton@gmail.com>
136 lines
3.6 KiB
C++
136 lines
3.6 KiB
C++
/*
|
|
* LadspaControlDialog.cpp - dialog for displaying and editing control port
|
|
* values for LADSPA plugins
|
|
*
|
|
* Copyright (c) 2006-2008 Danny McRae <khjklujn/at/users.sourceforge.net>
|
|
* Copyright (c) 2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
|
|
*
|
|
* This file is part of LMMS - https://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 <cmath>
|
|
|
|
#include <QHBoxLayout>
|
|
#include <QGroupBox>
|
|
#include <QVBoxLayout>
|
|
|
|
#include "LadspaBase.h"
|
|
#include "LadspaControl.h"
|
|
#include "LadspaControls.h"
|
|
#include "LadspaControlDialog.h"
|
|
#include "LadspaControlView.h"
|
|
#include "LedCheckBox.h"
|
|
|
|
namespace lmms::gui
|
|
{
|
|
|
|
|
|
LadspaControlDialog::LadspaControlDialog( LadspaControls * _ctl ) :
|
|
EffectControlDialog( _ctl ),
|
|
m_effectLayout( nullptr ),
|
|
m_stereoLink( nullptr )
|
|
{
|
|
auto mainLay = new QVBoxLayout(this);
|
|
|
|
m_effectLayout = new QHBoxLayout();
|
|
mainLay->addLayout( m_effectLayout );
|
|
|
|
updateEffectView( _ctl );
|
|
|
|
if( _ctl->m_processors > 1 )
|
|
{
|
|
mainLay->addSpacing( 3 );
|
|
auto center = new QHBoxLayout();
|
|
mainLay->addLayout( center );
|
|
m_stereoLink = new LedCheckBox( tr( "Link Channels" ), this );
|
|
m_stereoLink->setModel( &_ctl->m_stereoLinkModel );
|
|
center->addWidget( m_stereoLink );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
void LadspaControlDialog::updateEffectView( LadspaControls * _ctl )
|
|
{
|
|
QList<QGroupBox *> groupBoxes = findChildren<QGroupBox *>();
|
|
for (const auto& groupBox : groupBoxes)
|
|
{
|
|
delete groupBox;
|
|
}
|
|
|
|
m_effectControls = _ctl;
|
|
|
|
|
|
const int cols = static_cast<int>( sqrt(
|
|
static_cast<double>( _ctl->m_controlCount /
|
|
_ctl->m_processors ) ) );
|
|
for( ch_cnt_t proc = 0; proc < _ctl->m_processors; proc++ )
|
|
{
|
|
control_list_t & controls = _ctl->m_controls[proc];
|
|
int row = 0;
|
|
int col = 0;
|
|
BufferDataType last_port = BufferDataType::None;
|
|
|
|
auto grouper = _ctl->m_processors > 1
|
|
? new QGroupBox(tr("Channel ") + QString::number(proc + 1), this)
|
|
: new QGroupBox(this);
|
|
|
|
auto gl = new QGridLayout(grouper);
|
|
grouper->setLayout( gl );
|
|
grouper->setAlignment( Qt::Vertical );
|
|
|
|
for (const auto& control : controls)
|
|
{
|
|
if (control->port()->proc == proc)
|
|
{
|
|
BufferDataType this_port = control->port()->data_type;
|
|
if( last_port != BufferDataType::None &&
|
|
( this_port == BufferDataType::Toggled || this_port == BufferDataType::Enum ) &&
|
|
( last_port != BufferDataType::Toggled && last_port != BufferDataType::Enum ) )
|
|
{
|
|
++row;
|
|
col = 0;
|
|
}
|
|
gl->addWidget(new LadspaControlView(grouper, control), row, col);
|
|
if( ++col == cols )
|
|
{
|
|
++row;
|
|
col = 0;
|
|
}
|
|
last_port = control->port()->data_type;
|
|
}
|
|
}
|
|
|
|
m_effectLayout->addWidget( grouper );
|
|
}
|
|
|
|
if( _ctl->m_processors > 1 && m_stereoLink != nullptr )
|
|
{
|
|
m_stereoLink->setModel( &_ctl->m_stereoLinkModel );
|
|
}
|
|
|
|
connect( _ctl, SIGNAL( effectModelChanged( lmms::LadspaControls * ) ),
|
|
this, SLOT( updateEffectView( lmms::LadspaControls * ) ),
|
|
Qt::DirectConnection );
|
|
}
|
|
|
|
|
|
} // namespace lmms::gui
|