diff options
author | Luca Muscariello <lumuscar+fdio@cisco.com> | 2017-02-25 23:42:31 +0100 |
---|---|---|
committer | Luca Muscariello <lumuscar+fdio@cisco.com> | 2017-02-25 23:42:31 +0100 |
commit | 05c1a838c881ea502888659848d8792843b28718 (patch) | |
tree | cf0b05b58bd725a1eb6c80325ba986c63dea42aa /Common/Config.h | |
parent | 9b30fc10fb1cbebe651e5a107e8ca5b24de54675 (diff) |
Initial commit: video player - viper
Change-Id: Id5aa33598ce34659bad4a7a9ae5006bfb84f9bd1
Signed-off-by: Luca Muscariello <lumuscar+fdio@cisco.com>
Diffstat (limited to 'Common/Config.h')
-rw-r--r-- | Common/Config.h | 463 |
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 |