Add tab for loop station
This commit is contained in:
@@ -3,6 +3,9 @@
|
||||
|
||||
#include <QStandardPaths>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "midicontainers.h"
|
||||
|
||||
DjWidget::DjWidget(QWidget *parent) :
|
||||
QWidget{parent},
|
||||
m_ui{std::make_unique<Ui::DjWidget>()}
|
||||
|
@@ -6,12 +6,12 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "midicontainers.h"
|
||||
#include "treetotableproxymodel.h"
|
||||
|
||||
namespace Ui { class DjWidget; }
|
||||
class DrumMachineSettings;
|
||||
struct frame_t;
|
||||
namespace midi { struct MidiMessage; }
|
||||
|
||||
class DjWidget : public QWidget
|
||||
{
|
||||
|
@@ -10,9 +10,6 @@
|
||||
<height>519</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,1">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,0,1">
|
||||
|
@@ -6,6 +6,7 @@
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QMessageBox>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "midicontainers.h"
|
||||
#include "jsonconverters.h"
|
||||
#include "drummachinesettings.h"
|
||||
@@ -181,7 +182,7 @@ void DrumPadWidget::requestFinished()
|
||||
|
||||
try
|
||||
{
|
||||
auto result = json_converters::parsePresetsConfig(json_converters::loadJson(reply->readAll()));
|
||||
auto result = json_converters::parseDrumPadPresetsConfig(json_converters::loadJson(reply->readAll()));
|
||||
|
||||
if (!result.presets)
|
||||
throw std::runtime_error("presets missing in response");
|
||||
|
@@ -5,9 +5,8 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "presetsmodel.h"
|
||||
#include "filesmodel.h"
|
||||
#include "drumpadpresetsmodel.h"
|
||||
#include "drumpadfilesmodel.h"
|
||||
|
||||
namespace Ui { class DrumPadWidget; }
|
||||
class SamplesWidget;
|
||||
@@ -18,6 +17,7 @@ class QThread;
|
||||
class DrumMachineSettings;
|
||||
class QNetworkReply;
|
||||
namespace midi { struct MidiMessage; }
|
||||
struct frame_t;
|
||||
|
||||
class DrumPadWidget : public QSplitter
|
||||
{
|
||||
@@ -55,10 +55,10 @@ private:
|
||||
|
||||
DrumMachineSettings *m_settings{};
|
||||
|
||||
PresetsModel m_presetsModel;
|
||||
DrumPadPresetsModel m_presetsModel;
|
||||
QSortFilterProxyModel m_presetsProxyModel;
|
||||
|
||||
FilesModel m_filesModel;
|
||||
DrumPadFilesModel m_filesModel;
|
||||
|
||||
QNetworkAccessManager *m_networkAccessManager{};
|
||||
|
||||
|
48
widgets/loopstationwidget.cpp
Normal file
48
widgets/loopstationwidget.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
#include "loopstationwidget.h"
|
||||
#include "ui_loopstationwidget.h"
|
||||
|
||||
#include "audioformat.h"
|
||||
|
||||
LoopStationWidget::LoopStationWidget(QWidget *parent) :
|
||||
QWidget{parent},
|
||||
m_ui{std::make_unique<Ui::LoopStationWidget>()}
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
}
|
||||
|
||||
LoopStationWidget::~LoopStationWidget() = default;
|
||||
|
||||
void LoopStationWidget::writeSamples(frame_t *begin, frame_t *end)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LoopStationWidget::injectNetworkAccessManager(QNetworkAccessManager &networkAccessManager)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LoopStationWidget::injectDecodingThread(QThread &thread)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LoopStationWidget::loadSettings(DrumMachineSettings &settings)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LoopStationWidget::unsendColors()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LoopStationWidget::sendColors()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void LoopStationWidget::midiReceived(const midi::MidiMessage &message)
|
||||
{
|
||||
|
||||
}
|
36
widgets/loopstationwidget.h
Normal file
36
widgets/loopstationwidget.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace Ui { class LoopStationWidget; }
|
||||
namespace midi { struct MidiMessage; }
|
||||
class QNetworkAccessManager;
|
||||
class DrumMachineSettings;
|
||||
struct frame_t;
|
||||
|
||||
class LoopStationWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit LoopStationWidget(QWidget *parent = nullptr);
|
||||
~LoopStationWidget() override;
|
||||
|
||||
void writeSamples(frame_t *begin, frame_t *end);
|
||||
void injectNetworkAccessManager(QNetworkAccessManager &networkAccessManager);
|
||||
void injectDecodingThread(QThread &thread);
|
||||
void loadSettings(DrumMachineSettings &settings);
|
||||
void unsendColors();
|
||||
void sendColors();
|
||||
|
||||
signals:
|
||||
void sendMidi(const midi::MidiMessage &midiMsg);
|
||||
|
||||
public slots:
|
||||
void midiReceived(const midi::MidiMessage &message);
|
||||
|
||||
private:
|
||||
const std::unique_ptr<Ui::LoopStationWidget> m_ui;
|
||||
};
|
29
widgets/loopstationwidget.ui
Normal file
29
widgets/loopstationwidget.ui
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>LoopStationWidget</class>
|
||||
<widget class="QWidget" name="LoopStationWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>40</x>
|
||||
<y>50</y>
|
||||
<width>261</width>
|
||||
<height>18</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Hier könnte ihre LoopStation stehen.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@@ -9,7 +9,7 @@
|
||||
#include <QAudioDeviceInfo>
|
||||
#include <QDebug>
|
||||
|
||||
#include "midiinwrapper.h"
|
||||
#include "audioformat.h"
|
||||
#include "midicontainers.h"
|
||||
|
||||
namespace {
|
||||
@@ -38,6 +38,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
m_networkAccessManager.setCache(&m_cache);
|
||||
|
||||
m_ui->drumPadWidget->injectNetworkAccessManager(m_networkAccessManager);
|
||||
m_ui->loopStationWidget->injectNetworkAccessManager(m_networkAccessManager);
|
||||
|
||||
connect(&m_midiIn, &MidiInWrapper::midiReceived, this, &MainWindow::midiReceived);
|
||||
|
||||
@@ -49,6 +50,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
}
|
||||
|
||||
m_ui->drumPadWidget->injectDecodingThread(m_decoderThread);
|
||||
m_ui->loopStationWidget->injectDecodingThread(m_decoderThread);
|
||||
m_ui->djWidget->injectDecodingThread(m_decoderThread);
|
||||
|
||||
updateAudioDevices();
|
||||
@@ -89,6 +91,7 @@ paDefault:
|
||||
loadSettings();
|
||||
|
||||
connect(m_ui->drumPadWidget, &DrumPadWidget::sendMidi, this, &MainWindow::sendMidi);
|
||||
connect(m_ui->loopStationWidget, &LoopStationWidget::sendMidi, this, &MainWindow::sendMidi);
|
||||
connect(m_ui->djWidget, &DjWidget::sendMidi, this, &MainWindow::sendMidi);
|
||||
connect(m_ui->synthisizerWidget, &SynthisizerWidget::sendMidi, this, &MainWindow::sendMidi);
|
||||
|
||||
@@ -109,6 +112,7 @@ int MainWindow::writeSamples(frame_t *begin, frame_t *end)
|
||||
std::fill(begin, end, frame_t{0.,0.});
|
||||
|
||||
m_ui->drumPadWidget->writeSamples(begin, end);
|
||||
m_ui->loopStationWidget->writeSamples(begin, end);
|
||||
m_ui->djWidget->writeSamples(begin, end);
|
||||
m_ui->synthisizerWidget->writeSamples(begin, end);
|
||||
|
||||
@@ -229,8 +233,10 @@ void MainWindow::midiReceived(const midi::MidiMessage &message)
|
||||
if (m_ui->tabWidget->currentIndex() == 0)
|
||||
m_ui->drumPadWidget->midiReceived(message);
|
||||
else if (m_ui->tabWidget->currentIndex() == 1)
|
||||
m_ui->djWidget->midiReceived(message);
|
||||
m_ui->loopStationWidget->midiReceived(message);
|
||||
else if (m_ui->tabWidget->currentIndex() == 2)
|
||||
m_ui->djWidget->midiReceived(message);
|
||||
else if (m_ui->tabWidget->currentIndex() == 3)
|
||||
m_ui->synthisizerWidget->midiReceived(message);
|
||||
}
|
||||
|
||||
@@ -283,6 +289,7 @@ void MainWindow::updateMidiOutDevices()
|
||||
void MainWindow::loadSettings()
|
||||
{
|
||||
m_ui->drumPadWidget->loadSettings(m_settings);
|
||||
m_ui->loopStationWidget->loadSettings(m_settings);
|
||||
m_ui->djWidget->loadSettings(m_settings);
|
||||
m_ui->synthisizerWidget->loadSettings(m_settings);
|
||||
}
|
||||
@@ -292,8 +299,10 @@ void MainWindow::unsendColors(int index)
|
||||
if (index == 0)
|
||||
m_ui->drumPadWidget->unsendColors();
|
||||
else if (index == 1)
|
||||
m_ui->djWidget->unsendColors();
|
||||
m_ui->loopStationWidget->unsendColors();
|
||||
else if (index == 2)
|
||||
m_ui->djWidget->unsendColors();
|
||||
else if (index == 3)
|
||||
m_ui->synthisizerWidget->unsendColors();
|
||||
}
|
||||
|
||||
@@ -302,8 +311,10 @@ void MainWindow::sendColors(int index)
|
||||
if (index == 0)
|
||||
m_ui->drumPadWidget->sendColors();
|
||||
else if (index == 1)
|
||||
m_ui->djWidget->sendColors();
|
||||
m_ui->loopStationWidget->sendColors();
|
||||
else if (index == 2)
|
||||
m_ui->djWidget->sendColors();
|
||||
else if (index == 3)
|
||||
m_ui->synthisizerWidget->sendColors();
|
||||
|
||||
return;
|
||||
|
@@ -9,14 +9,13 @@
|
||||
|
||||
#include "portaudio.h"
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "midiinwrapper.h"
|
||||
#include "midioutwrapper.h"
|
||||
#include "drummachinesettings.h"
|
||||
|
||||
namespace Ui { class MainWindow; }
|
||||
namespace presets { struct PresetsConfig; }
|
||||
namespace midi { struct MidiMessage; }
|
||||
struct frame_t;
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
|
@@ -210,6 +210,11 @@
|
||||
<string>DrumPad</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="LoopStationWidget" name="loopStationWidget">
|
||||
<attribute name="title">
|
||||
<string>LoopStation</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="DjWidget" name="djWidget">
|
||||
<attribute name="title">
|
||||
<string>DJ</string>
|
||||
@@ -255,6 +260,12 @@
|
||||
<header>widgets/synthisizerwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>LoopStationWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>widgets/loopstationwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
@@ -10,7 +10,7 @@ PresetDetailWidget::PresetDetailWidget(QWidget *parent) :
|
||||
|
||||
PresetDetailWidget::~PresetDetailWidget() = default;
|
||||
|
||||
void PresetDetailWidget::setPreset(const presets::Preset &preset)
|
||||
void PresetDetailWidget::setPreset(const drumpad_presets::Preset &preset)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
@@ -5,7 +5,7 @@
|
||||
#include <QScrollArea>
|
||||
|
||||
namespace Ui { class PresetDetailWidget; }
|
||||
namespace presets { class Preset; }
|
||||
namespace drumpad_presets { class Preset; }
|
||||
|
||||
class PresetDetailWidget : public QScrollArea
|
||||
{
|
||||
@@ -15,7 +15,7 @@ public:
|
||||
explicit PresetDetailWidget(QWidget *parent = nullptr);
|
||||
~PresetDetailWidget() override;
|
||||
|
||||
void setPreset(const presets::Preset &preset);
|
||||
void setPreset(const drumpad_presets::Preset &preset);
|
||||
|
||||
private:
|
||||
const std::unique_ptr<Ui::PresetDetailWidget> m_ui;
|
||||
|
@@ -5,6 +5,7 @@
|
||||
#include <QMouseEvent>
|
||||
|
||||
#include "graphrenderer.h"
|
||||
#include "audioformat.h"
|
||||
|
||||
PreviewWidget::PreviewWidget(QWidget *parent) :
|
||||
QWidget(parent)
|
||||
|
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "midicontainers.h"
|
||||
|
||||
SamplesWidget::SamplesWidget(QWidget *parent) :
|
||||
@@ -34,7 +35,7 @@ void SamplesWidget::loadSettings(DrumMachineSettings &settings)
|
||||
widget.loadSettings(settings);
|
||||
}
|
||||
|
||||
void SamplesWidget::setPreset(const presets::Preset &preset)
|
||||
void SamplesWidget::setPreset(const drumpad_presets::Preset &preset)
|
||||
{
|
||||
m_preset = preset;
|
||||
|
||||
|
@@ -6,14 +6,14 @@
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "presets.h"
|
||||
#include "drumpadpresets.h"
|
||||
|
||||
namespace Ui { class SamplesWidget; }
|
||||
namespace midi { struct MidiMessage; }
|
||||
class QNetworkAccessManager;
|
||||
class SampleWidget;
|
||||
class DrumMachineSettings;
|
||||
struct frame_t;
|
||||
|
||||
class SamplesWidget : public QWidget
|
||||
{
|
||||
@@ -25,7 +25,7 @@ public:
|
||||
|
||||
void loadSettings(DrumMachineSettings &settings);
|
||||
|
||||
void setPreset(const presets::Preset &preset);
|
||||
void setPreset(const drumpad_presets::Preset &preset);
|
||||
|
||||
void midiReceived(const midi::MidiMessage &message);
|
||||
|
||||
@@ -53,5 +53,5 @@ private:
|
||||
|
||||
const std::unique_ptr<Ui::SamplesWidget> m_ui;
|
||||
|
||||
presets::Preset m_preset;
|
||||
drumpad_presets::Preset m_preset;
|
||||
};
|
||||
|
@@ -10,9 +10,6 @@
|
||||
<height>421</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout" rowstretch="0,0,0,0,0" columnstretch="0,0,0,0,0,0,0,0,0">
|
||||
<item row="3" column="3">
|
||||
<widget class="SampleWidget" name="sampleWidget_9" native="true"/>
|
||||
|
@@ -8,6 +8,7 @@
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QMetaEnum>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "audiodecoder.h"
|
||||
#include "drummachinesettings.h"
|
||||
#include "midicontainers.h"
|
||||
@@ -46,7 +47,7 @@ void SampleWidget::loadSettings(DrumMachineSettings &settings)
|
||||
m_settings = &settings;
|
||||
}
|
||||
|
||||
void SampleWidget::setFile(const QString &presetId, const presets::File &file)
|
||||
void SampleWidget::setFile(const QString &presetId, const drumpad_presets::File &file)
|
||||
{
|
||||
m_presetId = presetId;
|
||||
m_file = file;
|
||||
|
@@ -4,8 +4,7 @@
|
||||
|
||||
#include <QFrame>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "presets.h"
|
||||
#include "drumpadpresets.h"
|
||||
#include "audioplayer.h"
|
||||
|
||||
namespace Ui { class SampleWidget; }
|
||||
@@ -15,6 +14,7 @@ class QAudioBuffer;
|
||||
class AudioDecoder;
|
||||
class DrumMachineSettings;
|
||||
namespace midi { struct MidiMessage; }
|
||||
struct frame_t;
|
||||
|
||||
class SampleWidget : public QFrame
|
||||
{
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
|
||||
void loadSettings(DrumMachineSettings &settings);
|
||||
|
||||
void setFile(const QString &presetId, const presets::File &file);
|
||||
void setFile(const QString &presetId, const drumpad_presets::File &file);
|
||||
|
||||
quint8 channel() const;
|
||||
void setChannel(quint8 channel);
|
||||
@@ -86,7 +86,7 @@ private:
|
||||
AudioPlayer m_player;
|
||||
|
||||
QString m_presetId;
|
||||
std::optional<presets::File> m_file;
|
||||
std::optional<drumpad_presets::File> m_file;
|
||||
|
||||
QNetworkAccessManager *m_networkAccessManager{};
|
||||
|
||||
|
@@ -10,9 +10,6 @@
|
||||
<height>157</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
@@ -5,10 +5,12 @@
|
||||
#include <QMouseEvent>
|
||||
#include <QDebug>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "graphrenderer.h"
|
||||
|
||||
ScratchWidget::ScratchWidget(QWidget *parent) :
|
||||
QWidget{parent}
|
||||
QWidget{parent},
|
||||
m_framesPerBeat{frameRate/4}
|
||||
{
|
||||
connect(&m_timer, &QTimer::timeout, this, &ScratchWidget::timeout);
|
||||
m_timer.setSingleShot(true);
|
||||
|
@@ -6,8 +6,6 @@
|
||||
#include <QDateTime>
|
||||
#include <QTimer>
|
||||
|
||||
#include "audioformat.h"
|
||||
|
||||
class ScratchWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -49,7 +47,7 @@ private:
|
||||
QCache<int, QPixmap> m_graphCache;
|
||||
|
||||
int m_beatWidth{100};
|
||||
int m_framesPerBeat{frameRate/4};
|
||||
int m_framesPerBeat;
|
||||
|
||||
bool m_scratching{};
|
||||
bool m_dragging{};
|
||||
|
@@ -5,7 +5,7 @@
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
#include "presets.h"
|
||||
#include "drumpadpresets.h"
|
||||
#include "drummachinesettings.h"
|
||||
#include "midicontainers.h"
|
||||
|
||||
@@ -123,7 +123,7 @@ void SequencerWidget::sendColors()
|
||||
});
|
||||
}
|
||||
|
||||
void SequencerWidget::setPreset(const presets::Preset &preset)
|
||||
void SequencerWidget::setPreset(const drumpad_presets::Preset &preset)
|
||||
{
|
||||
if (preset.tempo)
|
||||
m_ui->spinBoxTempo->setValue(*preset.tempo);
|
||||
@@ -138,7 +138,7 @@ void SequencerWidget::setPreset(const presets::Preset &preset)
|
||||
m_sequences.clear();
|
||||
m_selectedSequence = nullptr;
|
||||
|
||||
const auto doit = [&](const QString &prefix, const std::optional<std::map<QString, std::vector<presets::Sequence>>> &value)
|
||||
const auto doit = [&](const QString &prefix, const std::optional<std::map<QString, std::vector<drumpad_presets::Sequence>>> &value)
|
||||
{
|
||||
if (!value)
|
||||
return;
|
||||
@@ -223,7 +223,7 @@ void SequencerWidget::timeout()
|
||||
{
|
||||
for (const auto &pair : *m_selectedSequence->pads)
|
||||
{
|
||||
const auto iter = std::find_if(std::cbegin(pair.second), std::cend(pair.second), [&](const presets::SequencePad &sequencePad){
|
||||
const auto iter = std::find_if(std::cbegin(pair.second), std::cend(pair.second), [&](const drumpad_presets::SequencePad &sequencePad){
|
||||
return sequencePad.start && *sequencePad.start == m_pos;
|
||||
});
|
||||
|
||||
|
@@ -9,7 +9,7 @@
|
||||
|
||||
class QLabel;
|
||||
namespace Ui { class SequencerWidget; }
|
||||
namespace presets { class Preset; class Sequence; }
|
||||
namespace drumpad_presets { class Preset; class Sequence; }
|
||||
class DrumMachineSettings;
|
||||
namespace midi { struct MidiMessage; }
|
||||
|
||||
@@ -25,7 +25,7 @@ public:
|
||||
void unsendColors();
|
||||
void sendColors();
|
||||
|
||||
void setPreset(const presets::Preset &preset);
|
||||
void setPreset(const drumpad_presets::Preset &preset);
|
||||
|
||||
signals:
|
||||
void sendMidi(const midi::MidiMessage &midiMsg);
|
||||
@@ -50,8 +50,8 @@ private slots:
|
||||
private:
|
||||
const std::unique_ptr<Ui::SequencerWidget> m_ui;
|
||||
|
||||
std::vector<presets::Sequence> m_sequences;
|
||||
const presets::Sequence *m_selectedSequence{};
|
||||
std::vector<drumpad_presets::Sequence> m_sequences;
|
||||
const drumpad_presets::Sequence *m_selectedSequence{};
|
||||
|
||||
QTimer m_timer;
|
||||
|
||||
|
@@ -10,9 +10,6 @@
|
||||
<height>611</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,0,0,0,0,0,1">
|
||||
|
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "midicontainers.h"
|
||||
|
||||
SynthisizerWidget::SynthisizerWidget(QWidget *parent) :
|
||||
|
@@ -4,11 +4,11 @@
|
||||
#include <memory>
|
||||
|
||||
#include "synthisizer.h"
|
||||
#include "audioformat.h"
|
||||
|
||||
namespace Ui { class SynthisizerWidget; }
|
||||
class DrumMachineSettings;
|
||||
namespace midi { struct MidiMessage; }
|
||||
struct frame_t;
|
||||
|
||||
class SynthisizerWidget : public QWidget
|
||||
{
|
||||
|
@@ -10,9 +10,6 @@
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
|
@@ -11,6 +11,7 @@
|
||||
#include <QFileInfo>
|
||||
#include <QButtonGroup>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "audiodecoder.h"
|
||||
|
||||
TrackDeck::TrackDeck(QWidget *parent) :
|
||||
|
@@ -8,12 +8,12 @@
|
||||
#include <QButtonGroup>
|
||||
#include <QTimer>
|
||||
|
||||
#include "audioformat.h"
|
||||
#include "audioplayer.h"
|
||||
|
||||
namespace Ui { class TrackDeck; }
|
||||
class AudioDecoder;
|
||||
class QAudioBuffer;
|
||||
struct frame_t;
|
||||
|
||||
class TrackDeck : public QWidget
|
||||
{
|
||||
|
@@ -19,9 +19,6 @@
|
||||
<property name="acceptDrops">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,0">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,0,0">
|
||||
|
Reference in New Issue
Block a user