aboutsummaryrefslogtreecommitdiffstats
path: root/Common/Config.h
diff options
context:
space:
mode:
Diffstat (limited to 'Common/Config.h')
-rw-r--r--Common/Config.h463
1 files changed, 463 insertions, 0 deletions
diff --git a/Common/Config.h b/Common/Config.h
new file mode 100644
index 00000000..018b757f
--- /dev/null
+++ b/Common/Config.h
@@ -0,0 +1,463 @@
+/******************************************************************************
+ QtAV Player Demo: this file is part of QtAV examples
+ Copyright (C) 2012-2016 Wang Bin <wbsecg1@gmail.com>
+* This file is part of QtAV (from 2014)
+ 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 3 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/>.
+******************************************************************************/
+
+#ifndef PLAYER_CONFIG_H
+#define PLAYER_CONFIG_H
+
+#include "CommonExport.h"
+#include <QtCore/QObject>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+#include <QtGui/QColor>
+#include <QtGui/QFont>
+
+
+class COMMON_EXPORT Config : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QVariantList history READ history NOTIFY historyChanged)
+ // last file opened by file dialog
+ Q_PROPERTY(QString lastFile READ lastFile WRITE setLastFile NOTIFY lastFileChanged)
+ Q_PROPERTY(qreal forceFrameRate READ forceFrameRate WRITE setForceFrameRate NOTIFY forceFrameRateChanged)
+ Q_PROPERTY(QStringList decoderPriorityNames READ decoderPriorityNames WRITE setDecoderPriorityNames NOTIFY decoderPriorityNamesChanged)
+ Q_PROPERTY(bool zeroCopy READ zeroCopy WRITE setZeroCopy NOTIFY zeroCopyChanged)
+ Q_PROPERTY(QString captureDir READ captureDir WRITE setCaptureDir NOTIFY captureDirChanged)
+ Q_PROPERTY(QString captureFormat READ captureFormat WRITE setCaptureFormat NOTIFY captureFormatChanged)
+ Q_PROPERTY(int captureQuality READ captureQuality WRITE setCaptureQuality NOTIFY captureQualityChanged)
+ Q_PROPERTY(QStringList subtitleEngines READ subtitleEngines WRITE setSubtitleEngines NOTIFY subtitleEnginesChanged)
+ Q_PROPERTY(bool subtitleAutoLoad READ subtitleAutoLoad WRITE setSubtitleAutoLoad NOTIFY subtitleAutoLoadChanged)
+ Q_PROPERTY(bool subtitleEnabled READ subtitleEnabled WRITE setSubtitleEnabled NOTIFY subtitleEnabledChanged)
+ Q_PROPERTY(QFont subtitleFont READ subtitleFont WRITE setSubtitleFont NOTIFY subtitleFontChanged)
+ Q_PROPERTY(QColor subtitleColor READ subtitleColor WRITE setSubtitleColor NOTIFY subtitleColorChanged)
+ Q_PROPERTY(QColor subtitleOutlineColor READ subtitleOutlineColor WRITE setSubtitleOutlineColor NOTIFY subtitleOutlineColorChanged)
+ Q_PROPERTY(bool subtitleOutline READ subtitleOutline WRITE setSubtitleOutline NOTIFY subtitleOutlineChanged)
+ Q_PROPERTY(int subtitleBottomMargin READ subtitleBottomMargin WRITE setSubtitleBottomMargin NOTIFY subtitleBottomMarginChanged)
+ Q_PROPERTY(qreal subtitleDelay READ subtitleDelay WRITE setSubtitleDelay NOTIFY subtitleDelayChanged)
+ // font properties for libass engine
+ Q_PROPERTY(QString assFontFile READ assFontFile WRITE setAssFontFile NOTIFY assFontFileChanged)
+ Q_PROPERTY(QString assFontsDir READ assFontsDir WRITE setAssFontsDir NOTIFY assFontsDirChanged)
+ Q_PROPERTY(bool assFontFileForced READ isAssFontFileForced WRITE setAssFontFileForced NOTIFY assFontFileForcedChanged)
+
+ Q_PROPERTY(bool previewEnabled READ previewEnabled WRITE setPreviewEnabled NOTIFY previewEnabledChanged)
+ Q_PROPERTY(int previewWidth READ previewWidth WRITE setPreviewWidth NOTIFY previewWidthChanged)
+ Q_PROPERTY(int previewHeight READ previewHeight WRITE setPreviewHeight NOTIFY previewHeightChanged)
+ Q_PROPERTY(bool EGL READ isEGL WRITE setEGL NOTIFY EGLChanged)
+ Q_PROPERTY(OpenGLType openGLType READ openGLType WRITE setOpenGLType NOTIFY openGLTypeChanged)
+ Q_PROPERTY(QString ANGLEPlatform READ getANGLEPlatform WRITE setANGLEPlatform NOTIFY ANGLEPlatformChanged)
+ Q_PROPERTY(bool avformatOptionsEnabled READ avformatOptionsEnabled WRITE setAvformatOptionsEnabled NOTIFY avformatOptionsEnabledChanged)
+ Q_PROPERTY(qreal timeout READ timeout WRITE setTimeout NOTIFY timeoutChanged)
+ Q_PROPERTY(int bufferValue READ bufferValue WRITE setBufferValue NOTIFY bufferValueChanged)
+ Q_PROPERTY(QString logLevel READ logLevel WRITE setLogLevel NOTIFY logLevelChanged)
+ Q_ENUMS(OpenGLType)
+ Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
+
+ Q_PROPERTY(bool userShaderEnabled READ userShaderEnabled WRITE setUserShaderEnabled NOTIFY userShaderEnabledChanged)
+ Q_PROPERTY(bool intermediateFBO READ intermediateFBO WRITE setIntermediateFBO NOTIFY intermediateFBOChanged)
+ Q_PROPERTY(QString fragHeader READ fragHeader WRITE setFragHeader NOTIFY fragHeaderChanged)
+ Q_PROPERTY(QString fragSample READ fragSample WRITE setFragSample NOTIFY fragSampleChanged)
+ Q_PROPERTY(QString fragPostProcess READ fragPostProcess WRITE setFragPostProcess NOTIFY fragPostProcessChanged)
+ Q_PROPERTY(QString icnPrefix READ icnPrefix WRITE setIcnPrefix NOTIFY icnPrefixChanged)
+ Q_PROPERTY(QString httpPrefix READ httpPrefix WRITE setHttpPrefix NOTIFY httpPrefixChanged)
+ Q_PROPERTY(QString icnSuffix READ icnSuffix WRITE setIcnSuffix NOTIFY icnSuffixChanged)
+ Q_PROPERTY(QString httpSuffix READ httpSuffix WRITE setHttpSuffix NOTIFY httpSuffixChanged)
+
+ Q_PROPERTY(qreal segmentBufferSize READ segmentBufferSize WRITE setSegmentBufferSize NOTIFY segmentBufferSizeChanged)
+ Q_PROPERTY(QString lastPlayed READ lastPlayed WRITE setLastPlayed NOTIFY lastPlayedChanged)
+ Q_PROPERTY(QString adaptationLogic READ adaptationLogic WRITE setAdaptationLogic NOTIFY adaptationLogicChanged)
+ Q_PROPERTY(bool icn READ icn WRITE setIcn NOTIFY icnChanged)
+ Q_PROPERTY(qreal rateAlpha READ rateAlpha WRITE setRateAlpha NOTIFY rateAlphaChanged)
+ Q_PROPERTY(qreal bufferReservoirThreshold READ bufferReservoirThreshold WRITE setBufferReservoirThreshold NOTIFY bufferReservoirThresholdChanged)
+ Q_PROPERTY(qreal bufferMaxThreshold READ bufferMaxThreshold WRITE setBufferMaxThreshold NOTIFY bufferMaxThresholdChanged)
+ Q_PROPERTY(qreal adaptechFirstThreshold READ adaptechFirstThreshold WRITE setAdaptechFirstThreshold NOTIFY adaptechFirstThresholdChanged)
+ Q_PROPERTY(qreal adaptechSecondThreshold READ adaptechSecondThreshold WRITE setAdaptechSecondThreshold NOTIFY adaptechSecondThresholdChanged)
+ Q_PROPERTY(qreal adaptechSwitchUpMargin READ adaptechSwitchUpMargin WRITE setAdaptechSwitchUpMargin NOTIFY adaptechSwitchUpMarginChanged)
+ Q_PROPERTY(qreal adaptechSlackParameter READ adaptechSlackParameter WRITE setAdaptechSlackParameter NOTIFY adaptechSlackParameterChanged)
+ Q_PROPERTY(qreal adaptechAlpha READ adaptechAlpha WRITE setAdaptechAlpha NOTIFY adaptechAlphaChanged)
+ Q_PROPERTY(qreal bufferThreeThresholdFirst READ bufferThreeThresholdFirst WRITE setBufferThreeThresholdFirst NOTIFY bufferThreeThresholdFirstChanged)
+ Q_PROPERTY(qreal bufferThreeThresholdSecond READ bufferThreeThresholdSecond WRITE setBufferThreeThresholdSecond NOTIFY bufferThreeThresholdSecondChanged)
+ Q_PROPERTY(qreal bufferThreeThresholdThird READ bufferThreeThresholdThird WRITE setBufferThreeThresholdThird NOTIFY bufferThreeThresholdThirdChanged)
+ Q_PROPERTY(qreal pandaParamAlpha READ pandaParamAlpha WRITE setPandaParamAlpha NOTIFY pandaParamAlphaChanged)
+ Q_PROPERTY(qreal pandaParamBeta READ pandaParamBeta WRITE setPandaParamBeta NOTIFY pandaParamBetaChanged)
+ Q_PROPERTY(qreal pandaParamBMin READ pandaParamBMin WRITE setPandaParamBMin NOTIFY pandaParamBMinChanged)
+ Q_PROPERTY(qreal pandaParamK READ pandaParamK WRITE setPandaParamK NOTIFY pandaParamKChanged)
+ Q_PROPERTY(qreal pandaParamW READ pandaParamW WRITE setPandaParamW NOTIFY pandaParamWChanged)
+ Q_PROPERTY(qreal pandaParamEpsilon READ pandaParamEpsilon WRITE setPandaParamAlpha NOTIFY pandaParamEpsilonChanged)
+ Q_PROPERTY(qreal bolaBufferTarget READ bolaBufferTarget WRITE setBolaBufferTarget NOTIFY bolaBufferTargetChanged)
+ Q_PROPERTY(qreal bolaAlpha READ bolaAlpha WRITE setBolaAlpha NOTIFY bolaAlphaChanged)
+ Q_PROPERTY(bool repeat READ repeat WRITE setRepeat NOTIFY repeatChanged)
+ Q_PROPERTY(bool graph READ graph WRITE setGraph NOTIFY graphChanged)
+ Q_PROPERTY(bool fullScreen READ fullScreen WRITE setFullScreen NOTIFY fullScreenChanged)
+ Q_PROPERTY(bool autotune READ autotune WRITE setAutotune NOTIFY autotuneChanged)
+ Q_PROPERTY(int lifetime READ lifetime WRITE setLifetime NOTIFY lifetimeChanged)
+ Q_PROPERTY(int retransmissions READ retransmissions WRITE setRetransmissions NOTIFY retransmissionsChanged)
+ Q_PROPERTY(qreal alpha READ alpha WRITE setAlpha NOTIFY alphaChanged)
+ Q_PROPERTY(qreal beta READ beta WRITE setBeta NOTIFY betaChanged)
+ Q_PROPERTY(qreal drop READ drop WRITE setDrop NOTIFY dropChanged)
+ Q_PROPERTY(qreal betaWifi READ betaWifi WRITE setBetaWifi NOTIFY betaWifiChanged)
+ Q_PROPERTY(qreal dropWifi READ dropWifi WRITE setDropWifi NOTIFY dropWifiChanged)
+ Q_PROPERTY(int delayWifi READ delayWifi WRITE setDelayWifi NOTIFY delayWifiChanged)
+ Q_PROPERTY(qreal betaLte READ betaLte WRITE setBetaLte NOTIFY betaLteChanged)
+ Q_PROPERTY(qreal dropLte READ dropLte WRITE setDropLte NOTIFY dropLteChanged)
+ Q_PROPERTY(int delayLte READ delayLte WRITE setDelayLte NOTIFY delayLteChanged)
+ Q_PROPERTY(int batchingParameter READ batchingParameter WRITE setBatchingParameter NOTIFY batchingParameterChanged)
+ Q_PROPERTY(int rateEstimator READ rateEstimator WRITE setRateEstimator NOTIFY rateEstimatorChanged)
+
+public:
+ enum OpenGLType { // currently only for windows
+ Auto,
+ Desktop,
+ OpenGLES,
+ Software
+ };
+
+ static Config& instance();
+ static void setName(const QString& name); // config file base name
+ static QString getName();
+ /*!
+ * \brief defaultConfigFile
+ * Config file name is $appname.ini. Must call Config::setName() first
+ */
+ static QString defaultConfigFile();
+ static QString defaultDir();
+ Q_INVOKABLE bool reset();
+ void reload();
+ //void loadFromFile(const QString& file);
+ QString getConfigPath();
+ QString lastFile() const;
+ Config& setLastFile(const QString& value);
+
+ qreal forceFrameRate() const;
+ Config& setForceFrameRate(qreal value);
+ // in priority order. the same order as displayed in ui
+ QStringList decoderPriorityNames() const;
+ Config& setDecoderPriorityNames(const QStringList& names);
+
+ bool zeroCopy() const;
+ Config& setZeroCopy(bool value);
+
+ QString captureDir() const;
+ Config& setCaptureDir(const QString& dir);
+
+ /*!
+ * \brief captureFormat
+ * can be "yuv" to capture yuv image without convertion. the suffix is the yuv format, e.g. "yuv420p", "nv12"
+ * or can be "jpg", "png"
+ * \return
+ */
+ QString captureFormat() const;
+ Config& setCaptureFormat(const QString& format);
+ // only works for non-yuv capture. value: -1~100, -1: default
+ int captureQuality() const;
+ Config& setCaptureQuality(int quality);
+
+ QStringList subtitleEngines() const;
+ Config& setSubtitleEngines(const QStringList& value);
+ bool subtitleAutoLoad() const;
+ Config& setSubtitleAutoLoad(bool value);
+ bool subtitleEnabled() const;
+ Config& setSubtitleEnabled(bool value);
+
+ QFont subtitleFont() const;
+ Config& setSubtitleFont(const QFont& value);
+ bool subtitleOutline() const;
+ Config& setSubtitleOutline(bool value);
+ QColor subtitleColor() const;
+ Config& setSubtitleColor(const QColor& value);
+ QColor subtitleOutlineColor() const;
+ Config& setSubtitleOutlineColor(const QColor& value);
+ int subtitleBottomMargin() const;
+ Config& setSubtitleBottomMargin(int value);
+
+ qreal subtitleDelay() const;
+ Config& setSubtitleDelay(qreal value);
+
+ QString assFontFile() const;
+ Config& setAssFontFile(const QString& value);
+ QString assFontsDir() const;
+ Config& setAssFontsDir(const QString& value);
+ bool isAssFontFileForced() const;
+ Config& setAssFontFileForced(bool value);
+
+ bool previewEnabled() const;
+ Config& setPreviewEnabled(bool value);
+ int previewWidth() const;
+ Config& setPreviewWidth(int value);
+ int previewHeight() const;
+ Config& setPreviewHeight(int value);
+
+ QVariantHash avformatOptions() const;
+ bool avformatOptionsEnabled() const;
+ Config& setAvformatOptionsEnabled(bool value);
+ int analyzeDuration() const;
+ Config& analyzeDuration(int ad);
+ unsigned int probeSize() const;
+ Config& probeSize(unsigned int ps);
+ bool reduceBuffering() const;
+ Config& reduceBuffering(bool y);
+ QString avformatExtra() const;
+ Config& avformatExtra(const QString& text);
+
+ QString avfilterVideoOptions() const;
+ Config& avfilterVideoOptions(const QString& options);
+ bool avfilterVideoEnable() const;
+ Config& avfilterVideoEnable(bool e);
+
+ QString avfilterAudioOptions() const;
+ Config& avfilterAudioOptions(const QString& options);
+ bool avfilterAudioEnable() const;
+ Config& avfilterAudioEnable(bool e);
+
+ // currently only for xcb
+ bool isEGL() const;
+ Config& setEGL(bool value);
+ // can be "Desktop", "OpenGLES", "Software"
+ OpenGLType openGLType() const;
+ Config& setOpenGLType(OpenGLType value);
+
+ QString getANGLEPlatform() const;
+ Config& setANGLEPlatform(const QString &value);
+
+ // ms >0. default 30000ms
+ qreal timeout() const;
+ Config& setTimeout(qreal value);
+
+ bool abortOnTimeout() const;
+ Config& setAbortOnTimeout(bool value);
+
+ // <0: auto
+ int bufferValue() const;
+ Config& setBufferValue(int value);
+
+ // can be: "", "off", "debug", "warning", "critical", "fatal", "all"
+ QString logLevel() const;
+ Config& setLogLevel(const QString& value);
+
+ QString language() const;
+ Config& setLanguage(const QString& value);
+
+ Q_INVOKABLE QVariant operator ()(const QString& key) const;
+ Q_INVOKABLE Config& operator ()(const QString& key, const QVariant& value);
+
+ /// history will not be clear in reset()
+ QVariantList history() const;
+ // {url: urlString, start: ms, duration: ms}
+ Q_INVOKABLE void addHistory(const QVariantMap& value);
+ Q_INVOKABLE void removeHistory(const QString& url);
+ Q_INVOKABLE void clearHistory();
+
+ Config& setUserShaderEnabled(bool value);
+ bool userShaderEnabled() const;
+ Config& setIntermediateFBO(bool value);
+ bool intermediateFBO() const;
+ Config& setFragHeader(const QString& text);
+ QString fragHeader() const;
+ Config& setFragSample(const QString& text);
+ QString fragSample() const;
+ Config& setFragPostProcess(const QString& text);
+ QString fragPostProcess() const;
+ Config& setIcnPrefix(const QString &value);
+ QString icnPrefix() const;
+ Config& setIcnSuffix(const QString &value);
+ QString icnSuffix() const;
+ Config& setHttpPrefix(const QString &value);
+ QString httpPrefix() const;
+ Config& setHttpSuffix(const QString &value);
+ QString httpSuffix() const;
+ Config& setSegmentBufferSize(qreal value);
+ qreal segmentBufferSize() const;
+ Config& setLastPlayed(const QString &value);
+ QString lastPlayed() const;
+ Config& setAdaptationLogic(const QString &value);
+ QString adaptationLogic() const;
+ Config& setIcn(bool value);
+ bool icn() const;
+ Config& setRateAlpha(qreal value);
+ qreal rateAlpha() const;
+ Config& setBufferReservoirThreshold(qreal value);
+ qreal bufferReservoirThreshold() const;
+ Config& setBufferMaxThreshold(qreal value);
+ qreal bufferMaxThreshold() const;
+ Config& setAdaptechFirstThreshold(qreal value);
+ qreal adaptechFirstThreshold() const;
+ Config& setAdaptechSecondThreshold(qreal value);
+ qreal adaptechSecondThreshold() const;
+ Config& setAdaptechSwitchUpMargin(qreal value);
+ qreal adaptechSwitchUpMargin() const;
+ Config& setAdaptechSlackParameter(qreal value);
+ qreal adaptechSlackParameter() const;
+ Config& setAdaptechAlpha(qreal value);
+ qreal adaptechAlpha() const;
+ Config& setBufferThreeThresholdFirst(qreal value);
+ qreal bufferThreeThresholdFirst() const;
+ Config& setBufferThreeThresholdSecond(qreal value);
+ qreal bufferThreeThresholdSecond() const;
+ Config& setBufferThreeThresholdThird(qreal value);
+ qreal bufferThreeThresholdThird() const;
+ Config& setPandaParamAlpha(qreal value);
+ qreal pandaParamAlpha() const;
+ Config& setPandaParamBeta(qreal value);
+ qreal pandaParamBeta() const;
+ Config& setPandaParamBMin(qreal value);
+ qreal pandaParamBMin() const;
+ Config& setPandaParamK(qreal value);
+ qreal pandaParamK() const;
+ Config& setPandaParamW(qreal value);
+ qreal pandaParamW() const;
+ Config& setPandaParamEpsilon(qreal value);
+ qreal pandaParamEpsilon() const;
+ Config& setBolaBufferTarget(qreal value);
+ qreal bolaBufferTarget() const;
+ Config& setBolaAlpha(qreal value);
+ qreal bolaAlpha() const;
+ Config& setRepeat(bool value);
+ bool repeat() const;
+ Config& setGraph(bool value);
+ bool graph() const;
+ Config& setFullScreen(bool value);
+ bool fullScreen() const;
+ Config& setAutotune(bool value);
+ bool autotune() const;
+ Config& setLifetime(int value);
+ int lifetime() const;
+ Config& setRetransmissions(int value);
+ int retransmissions() const;
+ Config& setAlpha(qreal value);
+ qreal alpha() const;
+ Config& setBeta(qreal value);
+ qreal beta() const;
+ Config& setDrop(qreal value);
+ qreal drop() const;
+ Config& setBetaWifi(qreal value);
+ qreal betaWifi() const;
+ Config& setDropWifi(qreal value);
+ qreal dropWifi() const;
+ Config& setDelayWifi(int value);
+ int delayWifi() const;
+ Config& setBetaLte(qreal value);
+ qreal betaLte() const;
+ Config& setDropLte(qreal value);
+ qreal dropLte() const;
+ Config& setDelayLte(int value);
+ int delayLte() const;
+ Config& setBatchingParameter(int value);
+ int batchingParameter() const;
+ Config& setRateEstimator(int value);
+ int rateEstimator() const;
+
+
+public:
+ Q_SIGNAL void changed();
+ Q_SIGNAL void userShaderEnabledChanged();
+ Q_SIGNAL void intermediateFBOChanged();
+ Q_SIGNAL void fragHeaderChanged();
+ Q_SIGNAL void fragSampleChanged();
+ Q_SIGNAL void fragPostProcessChanged();
+
+ Q_SIGNAL void lastFileChanged();
+ //keyword 'signals' maybe protected. we need call the signals in other classes. Q_SIGNAL is empty
+ Q_SIGNAL void forceFrameRateChanged();
+ Q_SIGNAL void decodingThreadsChanged(int n);
+ Q_SIGNAL void decoderPriorityNamesChanged();
+ Q_SIGNAL void registeredDecodersChanged(const QVector<int>& r);
+ Q_SIGNAL void zeroCopyChanged();
+ Q_SIGNAL void captureDirChanged(const QString& dir);
+ Q_SIGNAL void captureFormatChanged(const QString& fmt);
+ Q_SIGNAL void captureQualityChanged(int quality);
+ Q_SIGNAL void avfilterVideoChanged();
+ Q_SIGNAL void avfilterAudioChanged();
+ Q_SIGNAL void subtitleEnabledChanged();
+ Q_SIGNAL void subtitleAutoLoadChanged();
+ Q_SIGNAL void subtitleEnginesChanged();
+ Q_SIGNAL void subtitleFontChanged();
+ Q_SIGNAL void subtitleColorChanged();
+ Q_SIGNAL void subtitleOutlineChanged();
+ Q_SIGNAL void subtitleOutlineColorChanged();
+ Q_SIGNAL void subtitleBottomMarginChanged();
+ Q_SIGNAL void subtitleDelayChanged();
+ Q_SIGNAL void assFontFileChanged();
+ Q_SIGNAL void assFontsDirChanged();
+ Q_SIGNAL void assFontFileForcedChanged();
+ Q_SIGNAL void previewEnabledChanged();
+ Q_SIGNAL void previewWidthChanged();
+ Q_SIGNAL void previewHeightChanged();
+ Q_SIGNAL void EGLChanged();
+ Q_SIGNAL void openGLTypeChanged();
+ Q_SIGNAL void ANGLEPlatformChanged();
+ Q_SIGNAL void avformatOptionsEnabledChanged();
+ Q_SIGNAL void bufferValueChanged();
+ Q_SIGNAL void timeoutChanged();
+ Q_SIGNAL void abortOnTimeoutChanged();
+ Q_SIGNAL void logLevelChanged();
+ Q_SIGNAL void languageChanged();
+ Q_SIGNAL void historyChanged();
+ Q_SIGNAL void icnSuffixChanged();
+ Q_SIGNAL void httpSuffixChanged();
+ Q_SIGNAL void icnPrefixChanged();
+ Q_SIGNAL void httpPrefixChanged();
+ Q_SIGNAL void segmentBufferSizeChanged();
+ Q_SIGNAL void lastPlayedChanged();
+ Q_SIGNAL void adaptationLogicChanged();
+ Q_SIGNAL void icnChanged();
+ Q_SIGNAL void rateAlphaChanged();
+ Q_SIGNAL void bufferReservoirThresholdChanged();
+ Q_SIGNAL void bufferMaxThresholdChanged();
+ Q_SIGNAL void adaptechFirstThresholdChanged();
+ Q_SIGNAL void adaptechSecondThresholdChanged();
+ Q_SIGNAL void adaptechSwitchUpMarginChanged();
+ Q_SIGNAL void adaptechSlackParameterChanged();
+ Q_SIGNAL void adaptechAlphaChanged();
+ Q_SIGNAL void bufferThreeThresholdFirstChanged();
+ Q_SIGNAL void bufferThreeThresholdSecondChanged();
+ Q_SIGNAL void bufferThreeThresholdThirdChanged();
+ Q_SIGNAL void pandaParamAlphaChanged();
+ Q_SIGNAL void pandaParamBetaChanged();
+ Q_SIGNAL void pandaParamBMinChanged();
+ Q_SIGNAL void pandaParamKChanged();
+ Q_SIGNAL void pandaParamWChanged();
+ Q_SIGNAL void pandaParamEpsilonChanged();
+ Q_SIGNAL void bolaAlphaChanged();
+ Q_SIGNAL void bolaBufferTargetChanged();
+ Q_SIGNAL void repeatChanged();
+ Q_SIGNAL void graphChanged();
+ Q_SIGNAL void fullScreenChanged();
+ Q_SIGNAL void autotuneChanged();
+ Q_SIGNAL void lifetimeChanged();
+ Q_SIGNAL void retransmissionsChanged();
+ Q_SIGNAL void alphaChanged();
+ Q_SIGNAL void betaChanged();
+ Q_SIGNAL void dropChanged();
+ Q_SIGNAL void betaWifiChanged();
+ Q_SIGNAL void dropWifiChanged();
+ Q_SIGNAL void delayWifiChanged();
+ Q_SIGNAL void betaLteChanged();
+ Q_SIGNAL void dropLteChanged();
+ Q_SIGNAL void delayLteChanged();
+ Q_SIGNAL void batchingParameterChanged();
+ Q_SIGNAL void rateEstimatorChanged();
+
+protected:
+ explicit Config(QObject *parent = 0);
+ ~Config();
+
+public Q_SLOTS:
+ void save();
+
+private:
+ class Data;
+ Data *mpData;
+};
+
+#endif // PLAYER_CONFIG_H