#pragma once #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include /* * #else * class QSlider; * class QLabel; * class QGridLayout; * class QPushButton; * class QWidget; * class QMainWindow; * #endif */ #include "global.h" #include "contclasses.h" //class EndpointHandler; /* * class ToggleButton : public QAbstractButton { * Q_OBJECT * * public: * ToggleButton(QWidget *parent = nullptr); * void checkStateSet(); * bool hitButton(const QPoint &pos) const; * void nextCheckState(); * void changeEvent(QEvent *e) override; * bool event(QEvent *e) override; * void focusInEvent(QFocusEvent *e) override; * void focusOutEvent(QFocusEvent *e) override; * void keyPressEvent(QKeyEvent *e) override; * void keyReleaseEvent(QKeyEvent *e) override; * void mouseMoveEvent(QMouseEvent *e) override; * void mousePressEvent(QMouseEvent *e) override; * void mouseReleaseEvent(QMouseEvent *e) override; * void paintEvent(QPaintEvent *e) override = 0; * void timerEvent(QTimerEvent *e) override; * ToggleButton(QWidget *parent = nullptr); * }; */ class EndpointWidget : public QWidget { Q_OBJECT public: EndpointWidget(EndpointHandler* eph, QWidget *parent = nullptr); //TODO: get(); EndpointHandler* eph; void setIndex(uint64_t idx); uint64_t getIndex(); void setVolume(int channel, float volume); QCheckBox *muteButton = nullptr; QLabel *mainLabel = nullptr, *leftChannelLabel = nullptr, *rightChannelLabel = nullptr; QSlider *mainSlider = nullptr; std::vector channelSliders; std::vector channelLabels; QGridLayout *layout = nullptr; QGridLayout *mainMuteLayout = nullptr; void updateMainVolume(float newValue); void updateChannelVolume(uint32_t channel, float newValue); void updateMute(bool muted); //void toggleFrontEvents(bool active); //void populateEndpointWidget(EndpointHandler *eph); //void setEndpointHandlers(std::vector *ephs); public slots: void updateMainVolume(int newValue); void updateMute(int checked); private: uint64_t idx; //std::vector *ephs; //std::vector *sliders; //signals: //void valueChanged(int value); }; class MainWindow : public QMainWindow { Q_OBJECT //QWidget *centralWidget; public: MainWindow(QWidget *parent = nullptr); void reloadEndpointWidgets(); //TODO: destroy/empty existing EndpointWidgets //void setEndpointHandlers(std::vector *ephs); private: //std::vector *ephs; std::vector ews; QWidget *widget; QGridLayout *layout; //QLabel *pintas; //public slots: // void setEndpointHandlers(std::vector *ephs); //signals: //void valueChanged(int value); }; #endif