/* * xSF - Core configuration dialog * By Naram Qashat (CyberBotX) [cyberbotx@cyberbotx.com] * * Partially based on the vio*sf framework */ #pragma once #ifdef __GNUC__ # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wold-style-cast" #elif defined(__clang__) # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wold-style-cast" #endif #include #include #include #ifdef __GNUC__ # pragma GCC diagnostic pop #elif defined(__clang__) # pragma clang diagnostic pop #endif class wxGridBagSizer; class wxPanel; class wxWindow; class XSFConfig; class XSFConfigDialog : public wxDialog { inline static const std::string timeRegex = R"(^\d+(:[0-5]\d){0,2}([.,]\d+)?$)"; wxGridBagSizer *mainSizer; XSFConfig &config; public: XSFConfigDialog(XSFConfig &newConfig, wxWindow *parent, const wxString &title); void Finalize(); wxPanel *generalPanel; wxGridBagSizer *generalSizer; wxPanel *outputPanel; wxGridBagSizer *outputSizer; bool playInfinitely = false; wxString defaultPlayLength; wxString defaultFadeoutLength; wxString skipSilenceOnStart; wxString detectSilence; double volume = 1; int replayGain; int clipProtect; int sampleRate; wxString titleFormat; };