wip cuetrackwidget
This commit is contained in:
parent
e39d885f6f
commit
307d9c4d43
7 changed files with 333 additions and 6 deletions
|
@ -2,6 +2,8 @@ TEMPLATE = app
|
||||||
TARGET = libremediaserver-audio
|
TARGET = libremediaserver-audio
|
||||||
QT += webkitwidgets widgets
|
QT += webkitwidgets widgets
|
||||||
HEADERS += src/libremediaserver-audio.h \
|
HEADERS += src/libremediaserver-audio.h \
|
||||||
|
cuetrackwidget.h \
|
||||||
|
src/dialgroup.h \
|
||||||
src/editcuetrackwidget.h \
|
src/editcuetrackwidget.h \
|
||||||
src/cuetracklistwidget.h \
|
src/cuetracklistwidget.h \
|
||||||
src/showplayer.h \
|
src/showplayer.h \
|
||||||
|
@ -25,6 +27,8 @@ HEADERS += src/libremediaserver-audio.h \
|
||||||
src/settings.h \
|
src/settings.h \
|
||||||
src/slidergroup.h
|
src/slidergroup.h
|
||||||
SOURCES += src/main.cpp \
|
SOURCES += src/main.cpp \
|
||||||
|
cuetrackwidget.cpp \
|
||||||
|
src/dialgroup.cpp \
|
||||||
src/editcuetrackwidget.cpp \
|
src/editcuetrackwidget.cpp \
|
||||||
src/cuetracklistwidget.cpp \
|
src/cuetracklistwidget.cpp \
|
||||||
src/showplayer.cpp \
|
src/showplayer.cpp \
|
||||||
|
@ -45,6 +49,7 @@ SOURCES += src/main.cpp \
|
||||||
src/settings.cpp \
|
src/settings.cpp \
|
||||||
src/slidergroup.cpp
|
src/slidergroup.cpp
|
||||||
FORMS += \
|
FORMS += \
|
||||||
|
cuetrackwidget.ui \
|
||||||
src/showplayer.ui \
|
src/showplayer.ui \
|
||||||
src/libremediaserver-audio-ui.ui
|
src/libremediaserver-audio-ui.ui
|
||||||
CCFLAG += -msse2 -mavx2
|
CCFLAG += -msse2 -mavx2
|
||||||
|
|
14
src/cuetrackwidget.cpp
Normal file
14
src/cuetrackwidget.cpp
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include "cuetrackwidget.h"
|
||||||
|
#include "ui_cuetrackwidget.h"
|
||||||
|
|
||||||
|
CuetrackWidget::CuetrackWidget(QWidget *parent) :
|
||||||
|
QWidget(parent),
|
||||||
|
ui(new Ui::CuetrackWidget)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
CuetrackWidget::~CuetrackWidget()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
23
src/cuetrackwidget.h
Normal file
23
src/cuetrackwidget.h
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#ifndef CUETRACKWIDGET_H
|
||||||
|
#define CUETRACKWIDGET_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QCheckBox>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class CuetrackWidget;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CuetrackWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CuetrackWidget(QWidget *parent = nullptr);
|
||||||
|
~CuetrackWidget();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::CuetrackWidget *ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CUETRACKWIDGET_H
|
157
src/cuetrackwidget.ui
Normal file
157
src/cuetrackwidget.ui
Normal file
|
@ -0,0 +1,157 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>CuetrackWidget</class>
|
||||||
|
<widget class="QWidget" name="CuetrackWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>640</width>
|
||||||
|
<height>193</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QGroupBox" name="CueTimesGroupBox">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>10</x>
|
||||||
|
<y>40</y>
|
||||||
|
<width>238</width>
|
||||||
|
<height>85</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QDoubleSpinBox" name="FadeBox">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Fade time in seconds</string>
|
||||||
|
</property>
|
||||||
|
<property name="accessibleName">
|
||||||
|
<string>Fade In </string>
|
||||||
|
</property>
|
||||||
|
<property name="accessibleDescription">
|
||||||
|
<string>Fade In Time in seconds</string>
|
||||||
|
</property>
|
||||||
|
<property name="wrapping">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="buttonSymbols">
|
||||||
|
<enum>QAbstractSpinBox::PlusMinus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="specialValueText">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="showGroupSeparator" stdset="0">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="prefix">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>99990000.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="stepType">
|
||||||
|
<enum>QAbstractSpinBox::AdaptiveDecimalStepType</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QCheckBox" name="haltBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>CheckBox</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QDoubleSpinBox" name="waitIn"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBox_4"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="CueValuesGroupBox">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>260</x>
|
||||||
|
<y>40</y>
|
||||||
|
<width>341</width>
|
||||||
|
<height>121</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_3">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QSpinBox" name="volBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QSpinBox" name="panBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QSpinBox" name="spinBox"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QSpinBox" name="bus1Box"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QSplitter" name="splitter">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>10</y>
|
||||||
|
<width>631</width>
|
||||||
|
<height>25</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<widget class="QProgressBar" name="progressBar">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>24</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLCDNumber" name="cueName">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLCDNumber" name="cueNumber">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>400</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
94
src/dialgroup.cpp
Normal file
94
src/dialgroup.cpp
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
#include "dialgroup.h"
|
||||||
|
#include <cmath>
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
|
DialGroup::DialGroup(QString name,
|
||||||
|
int min,
|
||||||
|
int max,
|
||||||
|
int decimals,
|
||||||
|
QWidget *parent)
|
||||||
|
: QWidget(parent)
|
||||||
|
{
|
||||||
|
layout = new QVBoxLayout;
|
||||||
|
layout->setAlignment(Qt::AlignHCenter);
|
||||||
|
layout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
slider.setFocusPolicy(Qt::StrongFocus);
|
||||||
|
slider.setTickPosition(QSlider::TicksBothSides);
|
||||||
|
slider.setTickInterval((max - min) / 11);
|
||||||
|
slider.setMinimumHeight(0);
|
||||||
|
slider.setSingleStep(1);
|
||||||
|
slider.setRange(min, max);
|
||||||
|
slider.setValue(0);
|
||||||
|
slider.setMinimumWidth(50);
|
||||||
|
slider.setToolTip(name);
|
||||||
|
slider.setStyleSheet("QDial {"
|
||||||
|
"border: 1px solid #aa8895;"
|
||||||
|
"background: #20182d;"
|
||||||
|
"margin: 0px;}"
|
||||||
|
"QSlider::groove:vertical {"
|
||||||
|
"border: 1px solid #999999;"
|
||||||
|
"width: 25px;}"
|
||||||
|
"QDial::tickmarks:vertical {"
|
||||||
|
"background-color: black;"
|
||||||
|
"background: red;"
|
||||||
|
"color: white;}"
|
||||||
|
slider.setContentsMargins(0, 0, 0, 0);
|
||||||
|
valueBox.setFocusPolicy(Qt::NoFocus);
|
||||||
|
valueBox.setButtonSymbols(QAbstractSpinBox::NoButtons);
|
||||||
|
valueBox.setMinimumWidth(50);
|
||||||
|
if (decimals) {
|
||||||
|
valueBox.setRange(-84.0f, 0.0f);
|
||||||
|
valueBox.setSpecialValueText("-inf");
|
||||||
|
} else
|
||||||
|
valueBox.setRange(min, max);
|
||||||
|
valueBox.setValue(0);
|
||||||
|
valueBox.setDecimals(decimals);
|
||||||
|
valueBox.setObjectName(name);
|
||||||
|
valueBox.setToolTip(name);
|
||||||
|
valueBox.setAlignment(Qt::AlignHCenter);
|
||||||
|
valueBox.setContentsMargins(0, 0, 0, 0);
|
||||||
|
connect(&slider, SIGNAL(valueChanged(int)), this, SLOT(sliderValueChanged(int)));
|
||||||
|
layout->addWidget(&slider);
|
||||||
|
layout->addWidget(&valueBox);
|
||||||
|
this->setStyleSheet("border: 1px solid #aa8895;"
|
||||||
|
"background-color: black;"
|
||||||
|
"margin: 1px;"
|
||||||
|
);
|
||||||
|
layout->setSpacing(0);
|
||||||
|
layout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
this->setLayout(layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SliderGroup::sliderValueChanged(int value)
|
||||||
|
{
|
||||||
|
valueBox.blockSignals(true);
|
||||||
|
if (valueBox.decimals()) {
|
||||||
|
float db = ((float)value / 771.0f) - 85.0f;
|
||||||
|
if (db <= -84.5f) {
|
||||||
|
valueBox.setSpecialValueText("-inf");
|
||||||
|
} else
|
||||||
|
valueBox.setValue(db);
|
||||||
|
} else {
|
||||||
|
valueBox.setValue(value);
|
||||||
|
}
|
||||||
|
valueBox.blockSignals(false);
|
||||||
|
emit valueChanged(value);
|
||||||
|
};
|
||||||
|
|
||||||
|
void SliderGroup::setValue(float value)
|
||||||
|
{
|
||||||
|
float db;
|
||||||
|
|
||||||
|
slider.blockSignals(true);
|
||||||
|
valueBox.blockSignals(true);
|
||||||
|
if (int(value) != slider.value())
|
||||||
|
slider.setValue(value);
|
||||||
|
if (valueBox.decimals()) {
|
||||||
|
db = (float)(value / 771.0f) - 85.0f;
|
||||||
|
valueBox.setValue(db);
|
||||||
|
} else
|
||||||
|
valueBox.setValue(value);
|
||||||
|
slider.blockSignals(false);
|
||||||
|
valueBox.blockSignals(false);
|
||||||
|
}
|
34
src/dialgroup.h
Normal file
34
src/dialgroup.h
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#ifndef SLIDERGROUP_H
|
||||||
|
#define SLIDERGROUP_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QDial>
|
||||||
|
|
||||||
|
#include "clickabledoublespinbox.h"
|
||||||
|
|
||||||
|
class DialGroup : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
DialGroup(QString name,
|
||||||
|
int min,
|
||||||
|
int max,
|
||||||
|
int decimals,
|
||||||
|
QWidget *parent = nullptr);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void valueChanged(int value);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void setValue(float value);
|
||||||
|
void sliderValueChanged(int value);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QDial slider;
|
||||||
|
ClickableDoubleSpinBox valueBox;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -38,16 +38,16 @@ SliderGroup::SliderGroup(QString name,
|
||||||
"margin: 0px;}"
|
"margin: 0px;}"
|
||||||
"QSlider::groove:vertical {"
|
"QSlider::groove:vertical {"
|
||||||
"border: 1px solid #999999;"
|
"border: 1px solid #999999;"
|
||||||
"width: 25px;"
|
"width: 25px;}"
|
||||||
"margin: -4px;}"
|
|
||||||
"QSlider::handle:vertical {"
|
"QSlider::handle:vertical {"
|
||||||
"background: white;"
|
"background: white;"
|
||||||
"border: 1px solid #5c5c5c;"
|
"border: 2px solid #5c5c5c;"
|
||||||
"width: 29px;"
|
"width: 29px;"
|
||||||
"height: 7px;"
|
"height: 10px;"
|
||||||
"margin: -2px;"
|
|
||||||
"border-radius: 2px;}"
|
"border-radius: 2px;}"
|
||||||
"Qslider::tickmarks:vertical {background: white;"
|
"Qslider::tickmarks:vertical {"
|
||||||
|
"background-color: black;"
|
||||||
|
"background: red;"
|
||||||
"color: white;}"
|
"color: white;}"
|
||||||
"QSlider::add-page:vertical {background: blue;}"
|
"QSlider::add-page:vertical {background: blue;}"
|
||||||
"QSlider::sub-page:vertical {background: #20182d;}");
|
"QSlider::sub-page:vertical {background: #20182d;}");
|
||||||
|
|
Loading…
Add table
Reference in a new issue