lms-audio/src/audiolayerwidget.h
snt 7a9c0cd0ac libreMediaServer no refresca directamente la ui, solo actualiza
valores en  audiowidget. la ui se actualiza con un timer en audiowidget.
Quitadas señales en todo, mejora rendimiento. fade en volumen basado en
la trama dmx (25 ms) para evitar clicks. refresca los valores de la capa
cuando carga un media. Ui Ok. nuevo formato de archivo de configuración
xml.
2024-05-07 20:23:09 +02:00

59 lines
1.3 KiB
C++

#ifndef AUDIOLAYERWIDGET_H
#define AUDIOLAYERWIDGET_H
#include <QPushButton>
#include <QTimeEdit>
#include <QFileDialog>
#include <QProgressBar>
#include "defines.h"
#include "slidergroup.h"
#include "clickablelabel.h"
#include "settings.h"
class AudioLayerWidget : public QWidget
{
Q_OBJECT
public:
explicit AudioLayerWidget(QWidget *parent = 0, int layer = 0);
~AudioLayerWidget();
private:
Status m_status;
int m_layer;
QPushButton *m_suspendResumeButton;
ClickableLabel *m_fileValue;
ClickableLabel * m_folderValue;
SliderGroup *m_volume;
SliderGroup *m_pan;
SliderGroup *m_pitch;
QTimeEdit *m_progressTime;
QTimeEdit *m_totalTimeValue;
QProgressBar *m_progress;
// From DMX
public slots:
void setMediaFile(QString file);
void setDuration(float dur);
void setCurrentTime(float progress);
void setPlaybackStatus(Status status);
void setVol(float vol);
void setPan(int pan);
void setPitch(int pitch);
// From Ui
private slots:
void openMediaDialog();
void toggleSuspendResume();
void volumeChanged(int vol);
void panChanged(int pan);
void pitchChanged(int pitch);
signals:
void uiPlaybackChanged(int layer, Status s);
void uiSliderChanged(int layer, Slider s, int value);
void uiLoadMedia(int layer, QString s);
};
#endif // AUDIOLAYERWIDGET_H