diff --git a/DrumMachine.pro b/DrumMachine.pro index 3032b3a..64462b1 100755 --- a/DrumMachine.pro +++ b/DrumMachine.pro @@ -31,14 +31,14 @@ SOURCES += \ synthisizer.cpp \ treetotableproxymodel.cpp \ widgets/djwidget.cpp \ + widgets/drumpadsampleswidget.cpp \ + widgets/drumpadsamplewidget.cpp \ widgets/drumpadwidget.cpp \ widgets/loopstationwidget.cpp \ widgets/mainwindow.cpp \ widgets/midibutton.cpp \ widgets/presetdetailwidget.cpp \ widgets/previewwidget.cpp \ - widgets/sampleswidget.cpp \ - widgets/samplewidget.cpp \ widgets/scratchwidget.cpp \ widgets/sequencerwidget.cpp \ widgets/settingsdialog.cpp \ @@ -65,14 +65,14 @@ HEADERS += \ synthisizer.h \ treetotableproxymodel.h \ widgets/djwidget.h \ + widgets/drumpadsampleswidget.h \ + widgets/drumpadsamplewidget.h \ widgets/drumpadwidget.h \ widgets/loopstationwidget.h \ widgets/mainwindow.h \ widgets/midibutton.h \ widgets/presetdetailwidget.h \ widgets/previewwidget.h \ - widgets/sampleswidget.h \ - widgets/samplewidget.h \ widgets/scratchwidget.h \ widgets/sequencerwidget.h \ widgets/settingsdialog.h \ @@ -81,12 +81,12 @@ HEADERS += \ FORMS += \ widgets/djwidget.ui \ + widgets/drumpadsampleswidget.ui \ + widgets/drumpadsamplewidget.ui \ widgets/drumpadwidget.ui \ widgets/loopstationwidget.ui \ widgets/mainwindow.ui \ widgets/presetdetailwidget.ui \ - widgets/sampleswidget.ui \ - widgets/samplewidget.ui \ widgets/sequencerwidget.ui \ widgets/settingsdialog.ui \ widgets/synthisizerwidget.ui \ diff --git a/widgets/sampleswidget.cpp b/widgets/drumpadsampleswidget.cpp similarity index 63% rename from widgets/sampleswidget.cpp rename to widgets/drumpadsampleswidget.cpp index f22e7bd..58d8d67 100755 --- a/widgets/sampleswidget.cpp +++ b/widgets/drumpadsampleswidget.cpp @@ -1,5 +1,5 @@ -#include "sampleswidget.h" -#include "ui_sampleswidget.h" +#include "drumpadsampleswidget.h" +#include "ui_drumpadsampleswidget.h" #include @@ -8,41 +8,41 @@ #include "audioformat.h" #include "midicontainers.h" -SamplesWidget::SamplesWidget(QWidget *parent) : +DrumPadSamplesWidget::DrumPadSamplesWidget(QWidget *parent) : QWidget{parent}, - m_ui{std::make_unique()} + m_ui{std::make_unique()} { m_ui->setupUi(this); - connect(m_ui->checkBox, &QCheckBox::toggled, this, &SamplesWidget::updateWidgets); + connect(m_ui->checkBox, &QCheckBox::toggled, this, &DrumPadSamplesWidget::updateWidgets); - connect(m_ui->pushButtonStopAll, &QAbstractButton::pressed, this, &SamplesWidget::stopAll); + connect(m_ui->pushButtonStopAll, &QAbstractButton::pressed, this, &DrumPadSamplesWidget::stopAll); quint8 padNr{}; - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) { widget.setPadNr(padNr++); - connect(&widget, &SampleWidget::chokeTriggered, this, &SamplesWidget::chokeTriggered); - connect(&widget, &SampleWidget::sendMidi, this, &SamplesWidget::sendMidi); + connect(&widget, &DrumPadSampleWidget::chokeTriggered, this, &DrumPadSamplesWidget::chokeTriggered); + connect(&widget, &DrumPadSampleWidget::sendMidi, this, &DrumPadSamplesWidget::sendMidi); } } -SamplesWidget::~SamplesWidget() = default; +DrumPadSamplesWidget::~DrumPadSamplesWidget() = default; -void SamplesWidget::loadSettings(DrumMachineSettings &settings) +void DrumPadSamplesWidget::loadSettings(DrumMachineSettings &settings) { - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) widget.loadSettings(settings); } -void SamplesWidget::setPreset(const drumpad_presets::Preset &preset) +void DrumPadSamplesWidget::setPreset(const drumpad_presets::Preset &preset) { m_preset = preset; updateWidgets(); } -void SamplesWidget::midiReceived(const midi::MidiMessage &message) +void DrumPadSamplesWidget::midiReceived(const midi::MidiMessage &message) { if (message == midi::MidiMessage{.channel=0,.cmd=midi::Command::ControlChange,.flag=true,.note=64,.velocity=127}) { @@ -53,7 +53,7 @@ void SamplesWidget::midiReceived(const midi::MidiMessage &message) if (message.cmd != midi::Command::NoteOn && message.cmd != midi::Command::NoteOff) return; - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) { if (widget.isLearning()) { @@ -69,37 +69,37 @@ void SamplesWidget::midiReceived(const midi::MidiMessage &message) } } -void SamplesWidget::writeSamples(frame_t *begin, frame_t *end) +void DrumPadSamplesWidget::writeSamples(frame_t *begin, frame_t *end) { - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) widget.writeSamples(begin, end); } -void SamplesWidget::injectNetworkAccessManager(QNetworkAccessManager &networkAccessManager) +void DrumPadSamplesWidget::injectNetworkAccessManager(QNetworkAccessManager &networkAccessManager) { - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) widget.injectNetworkAccessManager(networkAccessManager); } -void SamplesWidget::injectDecodingThread(QThread &thread) +void DrumPadSamplesWidget::injectDecodingThread(QThread &thread) { - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) widget.injectDecodingThread(thread); } -void SamplesWidget::unsendColors() +void DrumPadSamplesWidget::unsendColors() { - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) widget.unsendColor(); } -void SamplesWidget::sendColors() +void DrumPadSamplesWidget::sendColors() { - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) widget.sendColor(); } -void SamplesWidget::sequencerTriggerSample(int index) +void DrumPadSamplesWidget::sequencerTriggerSample(int index) { const auto widgets = getWidgets(); if (index < 0 || index >= int(std::size(widgets))) @@ -110,9 +110,9 @@ void SamplesWidget::sequencerTriggerSample(int index) widgets[index].get().pressed(127); } -void SamplesWidget::chokeTriggered(int choke) +void DrumPadSamplesWidget::chokeTriggered(int choke) { - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) { if (&widget == sender()) continue; @@ -122,7 +122,7 @@ void SamplesWidget::chokeTriggered(int choke) } } -void SamplesWidget::updateWidgets() +void DrumPadSamplesWidget::updateWidgets() { const auto widgets = getWidgets(); @@ -139,13 +139,13 @@ void SamplesWidget::updateWidgets() widgetsIter->get().setFile(*m_preset.id, *filesIter); } -void SamplesWidget::stopAll() +void DrumPadSamplesWidget::stopAll() { - for (SampleWidget &widget : getWidgets()) + for (DrumPadSampleWidget &widget : getWidgets()) widget.forceStop(); } -std::array, 24> SamplesWidget::getWidgets() +std::array, 24> DrumPadSamplesWidget::getWidgets() { return { std::ref(*m_ui->sampleWidget_1), diff --git a/widgets/sampleswidget.h b/widgets/drumpadsampleswidget.h similarity index 72% rename from widgets/sampleswidget.h rename to widgets/drumpadsampleswidget.h index 7ab0a44..84245cb 100755 --- a/widgets/sampleswidget.h +++ b/widgets/drumpadsampleswidget.h @@ -8,20 +8,20 @@ #include "drumpadpresets.h" -namespace Ui { class SamplesWidget; } +namespace Ui { class DrumPadSamplesWidget; } namespace midi { struct MidiMessage; } class QNetworkAccessManager; -class SampleWidget; +class DrumPadSampleWidget; class DrumMachineSettings; struct frame_t; -class SamplesWidget : public QWidget +class DrumPadSamplesWidget : public QWidget { Q_OBJECT public: - explicit SamplesWidget(QWidget *parent = nullptr); - ~SamplesWidget() override; + explicit DrumPadSamplesWidget(QWidget *parent = nullptr); + ~DrumPadSamplesWidget() override; void loadSettings(DrumMachineSettings &settings); @@ -49,9 +49,9 @@ private slots: void stopAll(); private: - std::array, 24> getWidgets(); + std::array, 24> getWidgets(); - const std::unique_ptr m_ui; + const std::unique_ptr m_ui; drumpad_presets::Preset m_preset; }; diff --git a/widgets/sampleswidget.ui b/widgets/drumpadsampleswidget.ui similarity index 63% rename from widgets/sampleswidget.ui rename to widgets/drumpadsampleswidget.ui index ce30044..ce983a9 100755 --- a/widgets/sampleswidget.ui +++ b/widgets/drumpadsampleswidget.ui @@ -1,7 +1,7 @@ - SamplesWidget - + DrumPadSamplesWidget + 0 @@ -12,22 +12,22 @@ - + - + - + - + - + - + @@ -74,10 +74,10 @@ - + - + @@ -93,13 +93,13 @@ - + - + - + @@ -115,16 +115,16 @@ - + - + - + - + @@ -140,39 +140,39 @@ - + - + - + - + - + - + - + - + - + - SampleWidget + DrumPadSampleWidget QWidget -
widgets/samplewidget.h
+
widgets/drumpadsamplewidget.h
1
diff --git a/widgets/samplewidget.cpp b/widgets/drumpadsamplewidget.cpp similarity index 80% rename from widgets/samplewidget.cpp rename to widgets/drumpadsamplewidget.cpp index 43840be..45662c0 100755 --- a/widgets/samplewidget.cpp +++ b/widgets/drumpadsamplewidget.cpp @@ -1,5 +1,5 @@ -#include "samplewidget.h" -#include "ui_samplewidget.h" +#include "drumpadsamplewidget.h" +#include "ui_drumpadsamplewidget.h" #include #include @@ -19,27 +19,27 @@ QString toString(int value) { return QString::number(value); } QString toString(bool value) { return value?"true":"false"; } } -SampleWidget::SampleWidget(QWidget *parent) : +DrumPadSampleWidget::DrumPadSampleWidget(QWidget *parent) : QFrame{parent}, - m_ui{std::make_unique()} + m_ui{std::make_unique()} { m_ui->setupUi(this); connect(m_ui->dialSpeed, &QAbstractSlider::valueChanged, &m_player, [&player=m_player](int value){ player.setSpeed(float(value)/100.f); }); connect(m_ui->dialVolume, &QAbstractSlider::valueChanged, &m_player, [&player=m_player](int value){ player.setVolume(float(value)/100.f); }); - connect(&m_player, &AudioPlayer::playingChanged, this, &SampleWidget::updateStatus); + connect(&m_player, &AudioPlayer::playingChanged, this, &DrumPadSampleWidget::updateStatus); connect(m_ui->pushButton, &QAbstractButton::pressed, this, [this](){ pressed(127); }); - connect(m_ui->pushButton, &QAbstractButton::released, this, &SampleWidget::released); - connect(m_ui->toolButtonLearn, &QAbstractButton::pressed, this, &SampleWidget::learnPressed); + connect(m_ui->pushButton, &QAbstractButton::released, this, &DrumPadSampleWidget::released); + connect(m_ui->toolButtonLearn, &QAbstractButton::pressed, this, &DrumPadSampleWidget::learnPressed); updateStatus(); } -SampleWidget::~SampleWidget() = default; +DrumPadSampleWidget::~DrumPadSampleWidget() = default; -void SampleWidget::loadSettings(DrumMachineSettings &settings) +void DrumPadSampleWidget::loadSettings(DrumMachineSettings &settings) { m_ui->channelSpinBox->setValue(settings.drumpadChannel(m_padNr)); m_ui->noteSpinBox->setValue(settings.drumpadNote(m_padNr)); @@ -47,7 +47,7 @@ void SampleWidget::loadSettings(DrumMachineSettings &settings) m_settings = &settings; } -void SampleWidget::setFile(const QString &presetId, const drumpad_presets::File &file) +void DrumPadSampleWidget::setFile(const QString &presetId, const drumpad_presets::File &file) { m_presetId = presetId; m_file = file; @@ -80,12 +80,12 @@ void SampleWidget::setFile(const QString &presetId, const drumpad_presets::File setupLabel(file.choke, m_ui->chokeLabel); } -quint8 SampleWidget::channel() const +quint8 DrumPadSampleWidget::channel() const { return m_ui->channelSpinBox->value(); } -void SampleWidget::setChannel(quint8 channel) +void DrumPadSampleWidget::setChannel(quint8 channel) { m_ui->channelSpinBox->setValue(channel); @@ -95,12 +95,12 @@ void SampleWidget::setChannel(quint8 channel) qWarning() << "no settings available"; } -quint8 SampleWidget::note() const +quint8 DrumPadSampleWidget::note() const { return m_ui->noteSpinBox->value(); } -void SampleWidget::setNote(quint8 note) +void DrumPadSampleWidget::setNote(quint8 note) { m_ui->noteSpinBox->setValue(note); @@ -110,34 +110,34 @@ void SampleWidget::setNote(quint8 note) qWarning() << "no settings available"; } -int SampleWidget::speed() const +int DrumPadSampleWidget::speed() const { return m_ui->dialSpeed->value(); } -void SampleWidget::setSpeed(int speed) +void DrumPadSampleWidget::setSpeed(int speed) { m_ui->dialSpeed->setValue(speed); } -int SampleWidget::volume() const +int DrumPadSampleWidget::volume() const { return m_ui->dialVolume->value(); } -void SampleWidget::setVolume(int volume) +void DrumPadSampleWidget::setVolume(int volume) { m_ui->dialVolume->setValue(volume); } -std::optional SampleWidget::choke() const +std::optional DrumPadSampleWidget::choke() const { if (!m_file) return {}; return m_file->choke; } -void SampleWidget::pressed(quint8 velocity) +void DrumPadSampleWidget::pressed(quint8 velocity) { Q_UNUSED(velocity) @@ -147,39 +147,39 @@ void SampleWidget::pressed(quint8 velocity) emit chokeTriggered(*m_file->choke); } -void SampleWidget::released() +void DrumPadSampleWidget::released() { } -void SampleWidget::forceStop() +void DrumPadSampleWidget::forceStop() { m_player.setPlaying(false); } -void SampleWidget::injectNetworkAccessManager(QNetworkAccessManager &networkAccessManager) +void DrumPadSampleWidget::injectNetworkAccessManager(QNetworkAccessManager &networkAccessManager) { m_networkAccessManager = &networkAccessManager; if (m_file) startRequest(); } -void SampleWidget::injectDecodingThread(QThread &thread) +void DrumPadSampleWidget::injectDecodingThread(QThread &thread) { QMetaObject::invokeMethod(QAbstractEventDispatcher::instance(&thread), [this](){ m_decoder = std::make_unique(); - connect(this, &SampleWidget::startDecoding, m_decoder.get(), &AudioDecoder::startDecodingDevice); - connect(m_decoder.get(), &AudioDecoder::decodingFinished, this, &SampleWidget::decodingFinished); + connect(this, &DrumPadSampleWidget::startDecoding, m_decoder.get(), &AudioDecoder::startDecodingDevice); + connect(m_decoder.get(), &AudioDecoder::decodingFinished, this, &DrumPadSampleWidget::decodingFinished); if (m_reply && m_reply->isFinished() && m_reply->error() == QNetworkReply::NoError) m_decoder->startDecodingDevice(m_reply); }); } -void SampleWidget::writeSamples(frame_t *begin, frame_t *end) +void DrumPadSampleWidget::writeSamples(frame_t *begin, frame_t *end) { m_player.writeSamples(begin, end); } -void SampleWidget::learn(quint8 channel, quint8 note) +void DrumPadSampleWidget::learn(quint8 channel, quint8 note) { setChannel(channel); setNote(note); @@ -187,7 +187,7 @@ void SampleWidget::learn(quint8 channel, quint8 note) learnPressed(); } -void SampleWidget::unsendColor() +void DrumPadSampleWidget::unsendColor() { m_sendColors = false; midi::MidiMessage midiMsg; @@ -201,7 +201,7 @@ void SampleWidget::unsendColor() emit sendMidi(midiMsg); } -void SampleWidget::sendColor() +void DrumPadSampleWidget::sendColor() { m_sendColors = true; midi::MidiMessage midiMsg; @@ -236,7 +236,7 @@ void SampleWidget::sendColor() emit sendMidi(midiMsg); } -void SampleWidget::updateStatus() +void DrumPadSampleWidget::updateStatus() { QPalette pal; @@ -289,7 +289,7 @@ void SampleWidget::updateStatus() m_ui->statusLabel->setText(m_player.playing() ? tr("Playing") : tr("Ready")); } -void SampleWidget::requestFinished() +void DrumPadSampleWidget::requestFinished() { if (m_reply->error() == QNetworkReply::NoError) { @@ -298,7 +298,7 @@ void SampleWidget::requestFinished() updateStatus(); } -void SampleWidget::decodingFinished(const QAudioBuffer &buffer) +void DrumPadSampleWidget::decodingFinished(const QAudioBuffer &buffer) { m_reply = nullptr; m_player.setBuffer(buffer); @@ -307,7 +307,7 @@ void SampleWidget::decodingFinished(const QAudioBuffer &buffer) updateStatus(); } -void SampleWidget::learnPressed() +void DrumPadSampleWidget::learnPressed() { auto palette = m_ui->toolButtonLearn->palette(); @@ -328,7 +328,7 @@ void SampleWidget::learnPressed() m_learning = !m_learning; } -void SampleWidget::startRequest() +void DrumPadSampleWidget::startRequest() { if (m_networkAccessManager && m_file->filename) { @@ -336,7 +336,7 @@ void SampleWidget::startRequest() request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); request.setAttribute(QNetworkRequest::CacheSaveControlAttribute, true); m_reply = std::shared_ptr{m_networkAccessManager->get(request)}; - connect(m_reply.get(), &QNetworkReply::finished, this, &SampleWidget::requestFinished); + connect(m_reply.get(), &QNetworkReply::finished, this, &DrumPadSampleWidget::requestFinished); } updateStatus(); diff --git a/widgets/samplewidget.h b/widgets/drumpadsamplewidget.h similarity index 89% rename from widgets/samplewidget.h rename to widgets/drumpadsamplewidget.h index a231039..a0f5c6e 100755 --- a/widgets/samplewidget.h +++ b/widgets/drumpadsamplewidget.h @@ -7,7 +7,7 @@ #include "drumpadpresets.h" #include "audioplayer.h" -namespace Ui { class SampleWidget; } +namespace Ui { class DrumPadSampleWidget; } class QNetworkAccessManager; class QNetworkReply; class QAudioBuffer; @@ -16,13 +16,13 @@ class DrumMachineSettings; namespace midi { struct MidiMessage; } struct frame_t; -class SampleWidget : public QFrame +class DrumPadSampleWidget : public QFrame { Q_OBJECT public: - explicit SampleWidget(QWidget *parent = nullptr); - ~SampleWidget() override; + explicit DrumPadSampleWidget(QWidget *parent = nullptr); + ~DrumPadSampleWidget() override; quint8 padNr() const { return m_padNr; } void setPadNr(quint8 padNr) { m_padNr = padNr; } @@ -75,7 +75,7 @@ private slots: private: void startRequest(); - const std::unique_ptr m_ui; + const std::unique_ptr m_ui; DrumMachineSettings *m_settings{}; diff --git a/widgets/samplewidget.ui b/widgets/drumpadsamplewidget.ui similarity index 97% rename from widgets/samplewidget.ui rename to widgets/drumpadsamplewidget.ui index fa18d06..34e3fed 100755 --- a/widgets/samplewidget.ui +++ b/widgets/drumpadsamplewidget.ui @@ -1,7 +1,7 @@ - SampleWidget - + DrumPadSampleWidget + 0 diff --git a/widgets/drumpadwidget.cpp b/widgets/drumpadwidget.cpp index af64113..f5124a7 100644 --- a/widgets/drumpadwidget.cpp +++ b/widgets/drumpadwidget.cpp @@ -23,9 +23,9 @@ DrumPadWidget::DrumPadWidget(QWidget *parent) : connect(m_ui->pushButtonRefresh, &QAbstractButton::pressed, this, &DrumPadWidget::loadPresets); connect(m_ui->sequencerWidget, &SequencerWidget::sendMidi, this, &DrumPadWidget::sendMidi); - connect(m_ui->samplesWidget, &SamplesWidget::sendMidi, this, &DrumPadWidget::sendMidi); + connect(m_ui->samplesWidget, &DrumPadSamplesWidget::sendMidi, this, &DrumPadWidget::sendMidi); - connect(m_ui->sequencerWidget, &SequencerWidget::triggerSample, m_ui->samplesWidget, &SamplesWidget::sequencerTriggerSample); + connect(m_ui->sequencerWidget, &SequencerWidget::triggerSample, m_ui->samplesWidget, &DrumPadSamplesWidget::sequencerTriggerSample); m_presetsProxyModel.setFilterCaseSensitivity(Qt::CaseInsensitive); m_presetsProxyModel.setSortRole(Qt::EditRole); diff --git a/widgets/drumpadwidget.h b/widgets/drumpadwidget.h index 40897a7..e167d3d 100644 --- a/widgets/drumpadwidget.h +++ b/widgets/drumpadwidget.h @@ -9,7 +9,6 @@ #include "drumpadfilesmodel.h" namespace Ui { class DrumPadWidget; } -class SamplesWidget; class SequencerWidget; class QModelIndex; class QNetworkAccessManager; diff --git a/widgets/drumpadwidget.ui b/widgets/drumpadwidget.ui index 43ffa13..05a7104 100644 --- a/widgets/drumpadwidget.ui +++ b/widgets/drumpadwidget.ui @@ -109,14 +109,14 @@ Qt::Vertical - + - SamplesWidget + DrumPadSamplesWidget QWidget -
widgets/sampleswidget.h
+
widgets/drumpadsampleswidget.h
1