123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /******************************************************************************
- Copyright (C) 2013 by Hugh Bailey <[email protected]>
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- ******************************************************************************/
- #pragma once
- #include <util/util.hpp>
- #include <QDialog>
- #include <memory>
- #include <obs.h>
- class OBSBasic;
- class QAbstractButton;
- class QComboBox;
- class OBSPropertiesView;
- #include "ui_OBSBasicSettings.h"
- class OBSBasicSettings : public QDialog {
- Q_OBJECT
- private:
- OBSBasic *main;
- std::unique_ptr<Ui::OBSBasicSettings> ui;
- ConfigFile localeIni;
- bool generalChanged;
- bool outputsChanged;
- bool audioChanged;
- bool videoChanged;
- int pageIndex;
- bool loading;
- OBSPropertiesView *streamProperties;
- inline bool Changed() const
- {
- return generalChanged || outputsChanged ||
- audioChanged || videoChanged;
- }
- inline void ClearChanged()
- {
- generalChanged = false;
- outputsChanged = false;
- audioChanged = false;
- videoChanged = false;
- }
- void HookWidget(QWidget *widget, const char *signal, const char *slot);
- bool QueryChanges();
- void LoadServiceTypes();
- void LoadServiceInfo();
- void LoadGeneralSettings();
- void LoadOutputSettings();
- void LoadAudioSettings();
- void LoadVideoSettings();
- void LoadSettings(bool changedOnly);
- /* general */
- void LoadLanguageList();
- /* output */
- void LoadSimpleOutputSettings();
- /* audio */
- void LoadListValues(QComboBox *widget, obs_property_t prop,
- const char *configName);
- void LoadAudioDevices();
- /* video */
- void LoadRendererList();
- void ResetDownscales(uint32_t cx, uint32_t cy);
- void LoadResolutionLists();
- void LoadFPSData();
- void SaveGeneralSettings();
- void SaveOutputSettings();
- void SaveAudioSettings();
- void SaveVideoSettings();
- void SaveSettings();
- private slots:
- void on_listWidget_itemSelectionChanged();
- void on_buttonBox_clicked(QAbstractButton *button);
- void on_streamType_currentIndexChanged(int idx);
- void on_baseResolution_editTextChanged(const QString &text);
- void GeneralChanged();
- void AudioChanged();
- void AudioChangedRestart();
- void OutputsChanged();
- void VideoChanged();
- void VideoChangedResolution();
- void VideoChangedRestart();
- protected:
- virtual void closeEvent(QCloseEvent *event);
- public:
- OBSBasicSettings(QWidget *parent);
- };
|