Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

348 lines (296 sloc) 11.042 kB
#pragma once
/*
* Copyright (C) 2005-2008 Team XBMC
* http://xbmc.org
*
* 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, 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 XBMC; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
#include <vector>
#include "utils/StdString.h"
#include "utils/GlobalsHandling.h"
class TiXmlElement;
class DatabaseSettings
{
public:
void Reset()
{
type.clear();
host.clear();
port.clear();
user.clear();
pass.clear();
name.clear();
};
CStdString type;
CStdString host;
CStdString port;
CStdString user;
CStdString pass;
CStdString name;
};
struct TVShowRegexp
{
bool byDate;
CStdString regexp;
int defaultSeason;
TVShowRegexp(bool d, const CStdString& r, int s = 1)
{
byDate = d;
regexp = r;
defaultSeason = s;
}
};
struct RefreshOverride
{
float fpsmin;
float fpsmax;
float refreshmin;
float refreshmax;
bool fallback;
};
struct RefreshVideoLatency
{
float refreshmin;
float refreshmax;
float delay;
};
typedef std::vector<TVShowRegexp> SETTINGS_TVSHOWLIST;
class CAdvancedSettings
{
public:
CAdvancedSettings();
static CAdvancedSettings* getInstance();
void Initialize();
bool Initialized() { return m_initialized; };
void AddSettingsFile(const CStdString &filename);
bool Load();
void Clear();
static void GetCustomTVRegexps(TiXmlElement *pRootElement, SETTINGS_TVSHOWLIST& settings);
static void GetCustomRegexps(TiXmlElement *pRootElement, CStdStringArray& settings);
static void GetCustomRegexpReplacers(TiXmlElement *pRootElement, CStdStringArray& settings);
static void GetCustomExtensions(TiXmlElement *pRootElement, CStdString& extensions);
int m_audioHeadRoom;
float m_ac3Gain;
CStdString m_audioDefaultPlayer;
float m_audioPlayCountMinimumPercent;
bool m_dvdplayerIgnoreDTSinWAV;
int m_audioResample;
bool m_allowTranscode44100;
bool m_audioForceDirectSound;
bool m_audioAudiophile;
bool m_allChannelStereo;
int m_audioSinkBufferDurationMsec;
CStdString m_audioTranscodeTo;
float m_limiterHold;
float m_limiterRelease;
float m_videoSubsDelayRange;
float m_videoAudioDelayRange;
int m_videoSmallStepBackSeconds;
int m_videoSmallStepBackTries;
int m_videoSmallStepBackDelay;
bool m_videoUseTimeSeeking;
int m_videoTimeSeekForward;
int m_videoTimeSeekBackward;
int m_videoTimeSeekForwardBig;
int m_videoTimeSeekBackwardBig;
int m_videoPercentSeekForward;
int m_videoPercentSeekBackward;
int m_videoPercentSeekForwardBig;
int m_videoPercentSeekBackwardBig;
CStdString m_videoPPFFmpegDeint;
CStdString m_videoPPFFmpegPostProc;
bool m_musicUseTimeSeeking;
int m_musicTimeSeekForward;
int m_musicTimeSeekBackward;
int m_musicTimeSeekForwardBig;
int m_musicTimeSeekBackwardBig;
int m_musicPercentSeekForward;
int m_musicPercentSeekBackward;
int m_musicPercentSeekForwardBig;
int m_musicPercentSeekBackwardBig;
int m_videoBlackBarColour;
int m_videoIgnoreSecondsAtStart;
float m_videoIgnorePercentAtEnd;
CStdString m_audioHost;
bool m_audioApplyDrc;
bool m_videoVDPAUScaling;
float m_videoNonLinStretchRatio;
bool m_videoEnableHighQualityHwScalers;
float m_videoAutoScaleMaxFps;
bool m_videoAllowMpeg4VDPAU;
bool m_videoAllowMpeg4VAAPI;
std::vector<RefreshOverride> m_videoAdjustRefreshOverrides;
std::vector<RefreshVideoLatency> m_videoRefreshLatency;
float m_videoDefaultLatency;
bool m_videoDisableBackgroundDeinterlace;
int m_videoCaptureUseOcclusionQuery;
bool m_DXVACheckCompatibility;
bool m_DXVACheckCompatibilityPresent;
bool m_DXVAForceProcessorRenderer;
bool m_DXVANoDeintProcForProgressive;
int m_videoFpsDetect;
CStdString m_videoDefaultPlayer;
CStdString m_videoDefaultDVDPlayer;
float m_videoPlayCountMinimumPercent;
float m_slideshowBlackBarCompensation;
float m_slideshowZoomAmount;
float m_slideshowPanAmount;
bool m_lcdHeartbeat;
bool m_lcdDimOnScreenSave;
int m_lcdScrolldelay;
CStdString m_lcdHostName;
int m_songInfoDuration;
int m_busyDialogDelay;
int m_logLevel;
int m_logLevelHint;
CStdString m_cddbAddress;
//airtunes + airplay
bool m_logEnableAirtunes;
int m_airTunesPort;
int m_airPlayPort;
bool m_handleMounting;
bool m_fullScreenOnMovieStart;
CStdString m_cachePath;
CStdString m_videoCleanDateTimeRegExp;
CStdStringArray m_videoCleanStringRegExps;
CStdStringArray m_videoExcludeFromListingRegExps;
CStdStringArray m_moviesExcludeFromScanRegExps;
CStdStringArray m_tvshowExcludeFromScanRegExps;
CStdStringArray m_audioExcludeFromListingRegExps;
CStdStringArray m_audioExcludeFromScanRegExps;
CStdStringArray m_pictureExcludeFromListingRegExps;
CStdStringArray m_videoStackRegExps;
CStdStringArray m_folderStackRegExps;
CStdStringArray m_trailerMatchRegExps;
SETTINGS_TVSHOWLIST m_tvshowEnumRegExps;
CStdString m_tvshowMultiPartEnumRegExp;
typedef std::vector< std::pair<CStdString, CStdString> > StringMapping;
StringMapping m_pathSubstitutions;
int m_remoteDelay; ///< \brief number of remote messages to ignore before repeating
float m_controllerDeadzone;
bool m_playlistAsFolders;
bool m_detectAsUdf;
int m_fanartRes; ///< \brief the maximal resolution to cache fanart at (assumes 16x9)
int m_imageRes; ///< \brief the maximal resolution to cache images at (assumes 16x9)
/*! \brief the maximal size to cache thumbs at, assuming square
Used for actual thumbs (eg bookmark thumbs, picture thumbs) rather than cover art which uses m_imageRes instead
*/
unsigned int GetThumbSize() const { return m_imageRes / 2; };
bool m_useDDSFanart;
int m_sambaclienttimeout;
CStdString m_sambadoscodepage;
bool m_sambastatfiles;
bool m_bHTTPDirectoryStatFilesize;
bool m_bFTPThumbs;
CStdString m_musicThumbs;
CStdString m_dvdThumbs;
CStdString m_fanartImages;
bool m_bMusicLibraryHideAllItems;
int m_iMusicLibraryRecentlyAddedItems;
bool m_bMusicLibraryAllItemsOnBottom;
bool m_bMusicLibraryAlbumsSortByArtistThenYear;
CStdString m_strMusicLibraryAlbumFormat;
CStdString m_strMusicLibraryAlbumFormatRight;
bool m_prioritiseAPEv2tags;
CStdString m_musicItemSeparator;
CStdString m_videoItemSeparator;
std::vector<CStdString> m_musicTagsFromFileFilters;
bool m_bVideoLibraryHideAllItems;
bool m_bVideoLibraryAllItemsOnBottom;
int m_iVideoLibraryRecentlyAddedItems;
bool m_bVideoLibraryHideRecentlyAddedItems;
bool m_bVideoLibraryHideEmptySeries;
bool m_bVideoLibraryCleanOnUpdate;
bool m_bVideoLibraryExportAutoThumbs;
bool m_bVideoLibraryImportWatchedState;
bool m_bVideoLibraryImportResumePoint;
bool m_bVideoScannerIgnoreErrors;
int m_iVideoLibraryDateAdded;
std::vector<CStdString> m_vecTokens; // cleaning strings tied to language
//TuxBox
int m_iTuxBoxStreamtsPort;
bool m_bTuxBoxSubMenuSelection;
int m_iTuxBoxDefaultSubMenu;
int m_iTuxBoxDefaultRootMenu;
bool m_bTuxBoxAudioChannelSelection;
bool m_bTuxBoxPictureIcon;
int m_iTuxBoxEpgRequestTime;
int m_iTuxBoxZapWaitTime;
bool m_bTuxBoxSendAllAPids;
bool m_bTuxBoxZapstream;
int m_iTuxBoxZapstreamPort;
int m_iMythMovieLength; // minutes
// EDL Commercial Break
bool m_bEdlMergeShortCommBreaks;
int m_iEdlMaxCommBreakLength; // seconds
int m_iEdlMinCommBreakLength; // seconds
int m_iEdlMaxCommBreakGap; // seconds
int m_iEdlMaxStartGap; // seconds
int m_iEdlCommBreakAutowait; // seconds
int m_iEdlCommBreakAutowind; // seconds
bool m_bFirstLoop;
int m_curlconnecttimeout;
int m_curllowspeedtime;
int m_curlretries;
bool m_curlDisableIPV6;
bool m_fullScreen;
bool m_startFullScreen;
bool m_showExitButton; /* Ideal for appliances to hide a 'useless' button */
bool m_canWindowed;
bool m_splashImage;
bool m_alwaysOnTop; /* makes xbmc to run always on top .. osx/win32 only .. */
int m_playlistRetries;
int m_playlistTimeout;
bool m_GLRectangleHack;
int m_iSkipLoopFilter;
float m_ForcedSwapTime; /* if nonzero, set's the explicit time in ms to allocate for buffer swap */
bool m_AllowD3D9Ex;
bool m_ForceD3D9Ex;
bool m_AllowDynamicTextures;
unsigned int m_RestrictCapsMask;
float m_sleepBeforeFlip; ///< if greather than zero, XBMC waits for raster to be this amount through the frame prior to calling the flip
bool m_bVirtualShares;
float m_karaokeSyncDelayCDG; // seems like different delay is needed for CDG and MP3s
float m_karaokeSyncDelayLRC;
bool m_karaokeChangeGenreForKaraokeSongs;
bool m_karaokeKeepDelay; // store user-changed song delay in the database
int m_karaokeStartIndex; // auto-assign numbering start from this value
bool m_karaokeAlwaysEmptyOnCdgs; // always have empty background on CDG files
bool m_karaokeUseSongSpecificBackground; // use song-specific video or image if available instead of default
CStdString m_karaokeDefaultBackgroundType; // empty string or "vis", "image" or "video"
CStdString m_karaokeDefaultBackgroundFilePath; // only for "image" or "video" types above
CStdString m_cpuTempCmd;
CStdString m_gpuTempCmd;
int m_bgInfoLoaderMaxThreads;
bool m_measureRefreshrate; //when true the videoreferenceclock will measure the refreshrate when direct3d is used
//otherwise it will use the windows refreshrate
DatabaseSettings m_databaseMusic; // advanced music database setup
DatabaseSettings m_databaseVideo; // advanced video database setup
bool m_guiVisualizeDirtyRegions;
int m_guiAlgorithmDirtyRegions;
int m_guiDirtyRegionNoFlipTimeout;
unsigned int m_cacheMemBufferSize;
bool m_jsonOutputCompact;
unsigned int m_jsonTcpPort;
bool m_enableMultimediaKeys;
std::vector<CStdString> m_settingsFiles;
void ParseSettingsFile(const CStdString &file);
float GetDisplayLatency(float refreshrate);
bool m_initialized;
void SetDebugMode(bool debug);
};
XBMC_GLOBAL(CAdvancedSettings,g_advancedSettings);
Jump to Line
Something went wrong with that request. Please try again.