Skip to content

Commit

Permalink
add 'waveform_zoom_selector' to simplify mapping encoders
Browse files Browse the repository at this point in the history
  • Loading branch information
ronso0 committed Dec 2, 2023
1 parent 207f451 commit cc4e3d4
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/controllers/controlpickermenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1321,6 +1321,10 @@ ControlPickerMenu::ControlPickerMenu(QWidget* pParent)
tr("Reset the waveform zoom level to the default value selected in "
"Preferences -> Waveforms"),
guiMenu);
addDeckControl("waveform_zoom_selector",
tr("Waveform Zoom Selector"),
tr("Zooms the waveform in or out."),
guiMenu);

guiMenu->addSeparator();

Expand Down
17 changes: 17 additions & 0 deletions src/mixer/basetrackplayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include <QMessageBox>

#include "control/controlencoder.h"
#include "control/controlobject.h"
#include "control/controlpotmeter.h"
#include "engine/channels/enginedeck.h"
Expand Down Expand Up @@ -158,6 +159,22 @@ BaseTrackPlayerImpl::BaseTrackPlayerImpl(
WaveformWidgetRenderer::s_waveformMinZoom);
m_pWaveformZoom->setStepCount(stepCount);
m_pWaveformZoom->setSmallStepCount(stepCount * 10);
// A wrapper for waveform_zoom_up/_down
m_pWaveformZoomSelector = std::make_unique<ControlEncoder>(
ConfigKey(getGroup(), "waveform_zoom_selector"), false);
connect(m_pWaveformZoomSelector.get(),
&ControlObject::valueChanged,
this,
[this](double value) {
int steps = static_cast<int>(fabs(std::round(value)));
const QString dir = std::round(value) > 0 ? "up" : "down";
while (steps > 0) {
ControlObject::set(ConfigKey(getGroup(), "waveform_zoom_" + dir), 1);
ControlObject::set(ConfigKey(getGroup(), "waveform_zoom_" + dir), 0);
steps--;
}
});
>>>>>>> d9e5019757 (add 'waveform_zoom_selector' to simplify mapping encoders)

m_pPreGain = make_parented<ControlProxy>(getGroup(), "pregain", this);

Expand Down
2 changes: 2 additions & 0 deletions src/mixer/basetrackplayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

class EngineMixer;
class ControlObject;
class ControlEncoder;
class ControlPotmeter;
class ControlProxy;
class EffectsManager;
Expand Down Expand Up @@ -142,6 +143,7 @@ class BaseTrackPlayerImpl : public BaseTrackPlayer {

// Waveform display related controls
std::unique_ptr<ControlPotmeter> m_pWaveformZoom;
std::unique_ptr<ControlEncoder> m_pWaveformZoomSelector;

parented_ptr<ControlProxy> m_pLoopInPoint;
parented_ptr<ControlProxy> m_pLoopOutPoint;
Expand Down

0 comments on commit cc4e3d4

Please sign in to comment.