summaryrefslogtreecommitdiff
path: root/xineSettings.h
diff options
context:
space:
mode:
Diffstat (limited to 'xineSettings.h')
-rw-r--r--xineSettings.h294
1 files changed, 294 insertions, 0 deletions
diff --git a/xineSettings.h b/xineSettings.h
new file mode 100644
index 0000000..4942fa0
--- /dev/null
+++ b/xineSettings.h
@@ -0,0 +1,294 @@
+
+#ifndef __XINESETTINGS_H
+#define __XINESETTINGS_H
+
+
+
+#include "xineCommon.h"
+
+
+
+namespace PluginXine
+{
+
+ class cXineSetupPage;
+
+ class cXineSettings
+ {
+ public:
+ enum eUsageMode
+ {
+ modeLiveTV
+ , modeReplay
+ };
+
+ enum eOsdMode
+ {
+ osdOverlay
+ , osdBlendClipped
+ , osdBlendScaledLQ
+ , osdBlendScaledHQ
+ , osdBlendScaledSHQ
+ , osdBlendScaledAuto
+ };
+
+ enum eAudioMode
+ {
+ audioDolbyOff
+ , audioDolbyOn
+ };
+
+ enum eVolumeMode
+ {
+ volumeIgnore
+ , volumeChangeHW
+ , volumeChangeSW
+ };
+
+ enum eMuteMode
+ {
+ muteIgnore
+ , muteExecute
+ , muteSimulate
+ };
+
+ enum eOsdExtentWidth
+ {
+ osdExtentWidthMin = 320
+ , osdExtentWidthDefault = 720
+ , osdExtentWidthMax = 1920
+ };
+
+ enum eOsdExtentHeight
+ {
+ osdExtentHeightMin = 240
+ , osdExtentHeightDefault = 576
+ , osdExtentHeightMax = 1080
+ };
+
+ enum eMonitorGamma
+ {
+ monitorGammaBase = 100
+ , monitorGammaMin = 100
+ , monitorGammaDefault = 123
+ , monitorGammaMax = 250
+ };
+
+ enum eImage
+ {
+ image4_3 = 0
+ , image16_9 = 1
+ };
+
+ enum eImageZoom
+ {
+ imageZoomBase = 100
+ , imageZoomMin = 25
+ , imageZoomDefault = 100
+ , imageZoomMax = 400
+ };
+
+ enum eAutoPrimaryDeviceMode
+ {
+ autoPrimaryDeviceOff
+ , autoPrimaryDeviceOn
+ };
+
+ enum eTransparencyMode
+ {
+ transparencyOff
+ , transparencyOn
+ };
+
+ enum eMonitoringMode
+ {
+ monitoringOnce
+ , monitoringContinuous
+ };
+
+ enum eInteractWithEitScannerMode
+ {
+ interactWithEitScannerOff
+ , interactWithEitScannerOn
+ };
+
+ private:
+ bool m_switchSkin;
+ bool m_beQuiet;
+ int m_defaultGrabSizeX;
+ int m_defaultGrabSizeY;
+
+ eOsdMode m_osdMode;
+ eUsageMode m_usageMode /* , m_usageModeDefault */;
+ eAudioMode m_audioMode;
+ eVolumeMode m_volumeMode;
+ eMuteMode m_muteMode;
+ eMonitorGamma m_crtGamma;
+ eAutoPrimaryDeviceMode m_autoPrimaryDeviceMode;
+ eTransparencyMode m_transparencyMode;
+ eInteractWithEitScannerMode m_interactWithEitScannerMode;
+
+ template <class T>
+ static T clip(T a, T x, T b)
+ {
+ if (x < a)
+ return a;
+
+ if (x > b)
+ return b;
+
+ return x;
+ }
+
+ class cModeParams
+ {
+ bool SetupParse(const char *optionName, int &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eMonitoringMode &optionValue, const char *Name, const char *Value);
+
+ public:
+ cModeParams();
+
+ int m_prebufferFramesVideoSD;
+ int m_prebufferFramesVideoHD;
+ int m_prebufferFramesAudio;
+ int m_prebufferHysteresis;
+ int m_monitoringDuration;
+ eMonitoringMode m_monitoringMode;
+
+ bool SetupParse(const char *prefix, const char *Name, const char *Value);
+ bool MonitoringContinuous() const;
+ }
+ m_modeParams[ 2 ];
+
+ class cZoomParams
+ {
+ bool SetupParse(const char *optionName, eImageZoom &optionValue, const char *Name, const char *Value);
+
+ public:
+ cZoomParams();
+
+ eImageZoom m_zoomX;
+ eImageZoom m_zoomY;
+
+ eImageZoom GetZoomX() const
+ {
+ return clip(imageZoomMin, m_zoomX, imageZoomMax);
+ }
+
+ eImageZoom GetZoomY() const
+ {
+ return clip(imageZoomMin, m_zoomY, imageZoomMax);
+ }
+
+ bool SetupParse(const char *prefix, const char *Name, const char *Value);
+
+ bool operator !=(const cZoomParams &rhs) const;
+ }
+ m_zoomParams[ 2 ];
+
+ class cOsdExtentParams
+ {
+ bool SetupParse(const char *optionName, eOsdExtentWidth &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eOsdExtentHeight &optionValue, const char *Name, const char *Value);
+
+ public:
+ cOsdExtentParams();
+
+ eOsdExtentWidth m_osdExtentWidth;
+ eOsdExtentHeight m_osdExtentHeight;
+
+ eOsdExtentWidth GetOsdExtentWidth() const
+ {
+ return clip(osdExtentWidthMin, m_osdExtentWidth, osdExtentWidthMax);
+ }
+
+ eOsdExtentHeight GetOsdExtentHeight() const
+ {
+ return clip(osdExtentHeightMin, m_osdExtentHeight, osdExtentHeightMax);
+ }
+
+ bool SetupParse(const char *prefix, const char *Name, const char *Value);
+
+ bool operator !=(const cOsdExtentParams &rhs) const;
+ }
+ m_osdExtentParams;
+
+ bool SetupParse(const char *optionName, eUsageMode &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eOsdMode &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eAudioMode &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eVolumeMode &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eMuteMode &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eMonitorGamma &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eAutoPrimaryDeviceMode &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eTransparencyMode &optionValue, const char *Name, const char *Value);
+ bool SetupParse(const char *optionName, eInteractWithEitScannerMode &optionValue, const char *Name, const char *Value);
+
+ public:
+ cXineSettings();
+
+ bool SetupParse(const char *Name, const char *Value);
+
+ const cModeParams *GetModeParams() const;
+
+ eOsdMode OsdMode() const;
+ bool AudioDolbyOn() const;
+ eVolumeMode VolumeMode() const;
+ bool SupportTransparency() const;
+ eMuteMode MuteMode() const;
+
+ void Create(cXineSetupPage *const setupPage);
+ void Store(cXineSetupPage *const setupPage);
+
+ void SelectReplayPrebufferMode(const bool select = true);
+
+ void TogglePrebufferMode();
+ const char *GetMainMenuEntry();
+
+ bool LiveTV() const;
+ bool AutoPrimaryDevice() const;
+ bool InteractWithEitScanner() const;
+
+ bool setupDiffers(const cXineSettings &rhs) const
+ {
+ return m_osdMode != rhs.m_osdMode
+ || m_transparencyMode != rhs.m_transparencyMode
+ || m_volumeMode != rhs.m_volumeMode
+ || m_muteMode != rhs.m_muteMode
+ || m_zoomParams[ image4_3 ] != rhs.m_zoomParams[ image4_3 ]
+ || m_zoomParams[ image16_9 ] != rhs.m_zoomParams[ image16_9 ]
+ || m_osdExtentParams != rhs.m_osdExtentParams;
+ }
+
+ int GetCrtGamma() const
+ {
+ return clip(monitorGammaMin, m_crtGamma, monitorGammaMax);
+ }
+
+ const cZoomParams &ZoomParams(eImage image) const
+ {
+ return m_zoomParams[ image ];
+ }
+
+ const cOsdExtentParams &OsdExtentParams() const
+ {
+ return m_osdExtentParams;
+ }
+
+ void SetSwitchSkin(const bool switchSkin);
+ bool ShallSwitchSkin() const;
+
+ void SetBeQuiet(const bool beQuiet);
+ bool ShallBeQuiet() const;
+
+ void SetDefaultGrabSizeX(const int defaultGrabSizeX);
+ int DefaultGrabSizeX() const;
+
+ void SetDefaultGrabSizeY(const int defaultGrabSizeY);
+ int DefaultGrabSizeY() const;
+ };
+
+};
+
+
+
+#endif //__XINESETTINGS_H