#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent=nullptr); ~MainWindow() override; private slots: void cancelCloseAction(); void saveCurrentConfig(); void saveConfigAsFile(); void loadConfigFromFile(); void showAboutPage(); void enableApplyButton(); void updateResamplerLabel(int num); void updatePeriodSizeEdit(int size); void updatePeriodSizeSlider(); void updatePeriodCountEdit(int size); void updatePeriodCountSlider(); void selectQuadDecoderFile(); void select51DecoderFile(); void select61DecoderFile(); void select71DecoderFile(); void select3D71DecoderFile(); void updateJackBufferSizeEdit(int size); void updateJackBufferSizeSlider(); void updateHrtfModeLabel(int num); void addHrtfFile(); void removeHrtfFile(); void updateHrtfRemoveButton(); void showEnabledBackendMenu(QPoint pt); void showDisabledBackendMenu(QPoint pt); void selectOSSPlayback(); void selectOSSCapture(); void selectSolarisPlayback(); void selectWaveOutput(); private: std::unique_ptr mPeriodSizeValidator; std::unique_ptr mPeriodCountValidator; std::unique_ptr mSourceCountValidator; std::unique_ptr mEffectSlotValidator; std::unique_ptr mSourceSendValidator; std::unique_ptr mSampleRateValidator; std::unique_ptr mJackBufferValidator; std::unique_ptr ui; bool mNeedsSave{}; void closeEvent(QCloseEvent *event) override; void selectDecoderFile(QLineEdit *line, const char *name); QStringList collectHrtfs(); void loadConfig(const QString &fname); void saveConfig(const QString &fname) const; }; #endif // MAINWINDOW_H