From e52833059bc819cbdb41ba204b82aee1760ddb3a Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sun, 2 Sep 2012 09:45:02 -0400 Subject: Moved server configuration to the model so that the UI can read it --- MediaBrowser.Controller/ServerApplicationPaths.cs | 278 ++++++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 MediaBrowser.Controller/ServerApplicationPaths.cs (limited to 'MediaBrowser.Controller/ServerApplicationPaths.cs') diff --git a/MediaBrowser.Controller/ServerApplicationPaths.cs b/MediaBrowser.Controller/ServerApplicationPaths.cs new file mode 100644 index 000000000..0f4932fd0 --- /dev/null +++ b/MediaBrowser.Controller/ServerApplicationPaths.cs @@ -0,0 +1,278 @@ +using System.IO; +using MediaBrowser.Common.Kernel; + +namespace MediaBrowser.Controller +{ + /// + /// Extends BaseApplicationPaths to add paths that are only applicable on the server + /// + public class ServerApplicationPaths : BaseApplicationPaths + { + private string _rootFolderPath; + /// + /// Gets the path to the root media directory + /// + public string RootFolderPath + { + get + { + if (_rootFolderPath == null) + { + _rootFolderPath = Path.Combine(ProgramDataPath, "root"); + if (!Directory.Exists(_rootFolderPath)) + { + Directory.CreateDirectory(_rootFolderPath); + } + } + return _rootFolderPath; + } + } + + private string _ibnPath; + /// + /// Gets the path to the Images By Name directory + /// + public string ImagesByNamePath + { + get + { + if (_ibnPath == null) + { + _ibnPath = Path.Combine(ProgramDataPath, "ImagesByName"); + if (!Directory.Exists(_ibnPath)) + { + Directory.CreateDirectory(_ibnPath); + } + } + + return _ibnPath; + } + } + + private string _PeoplePath; + /// + /// Gets the path to the People directory + /// + public string PeoplePath + { + get + { + if (_PeoplePath == null) + { + _PeoplePath = Path.Combine(ImagesByNamePath, "People"); + if (!Directory.Exists(_PeoplePath)) + { + Directory.CreateDirectory(_PeoplePath); + } + } + + return _PeoplePath; + } + } + + private string _GenrePath; + /// + /// Gets the path to the Genre directory + /// + public string GenrePath + { + get + { + if (_GenrePath == null) + { + _GenrePath = Path.Combine(ImagesByNamePath, "Genre"); + if (!Directory.Exists(_GenrePath)) + { + Directory.CreateDirectory(_GenrePath); + } + } + + return _GenrePath; + } + } + + private string _StudioPath; + /// + /// Gets the path to the Studio directory + /// + public string StudioPath + { + get + { + if (_StudioPath == null) + { + _StudioPath = Path.Combine(ImagesByNamePath, "Studio"); + if (!Directory.Exists(_StudioPath)) + { + Directory.CreateDirectory(_StudioPath); + } + } + + return _StudioPath; + } + } + + private string _yearPath; + /// + /// Gets the path to the Year directory + /// + public string YearPath + { + get + { + if (_yearPath == null) + { + _yearPath = Path.Combine(ImagesByNamePath, "Year"); + if (!Directory.Exists(_yearPath)) + { + Directory.CreateDirectory(_yearPath); + } + } + + return _yearPath; + } + } + + private string _userConfigurationDirectoryPath; + /// + /// Gets the path to the user configuration directory + /// + public string UserConfigurationDirectoryPath + { + get + { + if (_userConfigurationDirectoryPath == null) + { + _userConfigurationDirectoryPath = Path.Combine(ConfigurationDirectoryPath, "user"); + if (!Directory.Exists(_userConfigurationDirectoryPath)) + { + Directory.CreateDirectory(_userConfigurationDirectoryPath); + } + } + return _userConfigurationDirectoryPath; + } + } + + private string _CacheDirectory = null; + /// + /// Gets the folder path to the cache directory + /// + public string CacheDirectory + { + get + { + if (_CacheDirectory == null) + { + _CacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "cache"); + + if (!Directory.Exists(_CacheDirectory)) + { + Directory.CreateDirectory(_CacheDirectory); + } + } + + return _CacheDirectory; + } + } + + private string _FFProbeAudioCacheDirectory = null; + /// + /// Gets the folder path to the ffprobe audio cache directory + /// + public string FFProbeAudioCacheDirectory + { + get + { + if (_FFProbeAudioCacheDirectory == null) + { + _FFProbeAudioCacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.CacheDirectory, "ffprobe-audio"); + + if (!Directory.Exists(_FFProbeAudioCacheDirectory)) + { + Directory.CreateDirectory(_FFProbeAudioCacheDirectory); + } + } + + return _FFProbeAudioCacheDirectory; + } + } + + private string _FFProbeVideoCacheDirectory = null; + /// + /// Gets the folder path to the ffprobe video cache directory + /// + public string FFProbeVideoCacheDirectory + { + get + { + if (_FFProbeVideoCacheDirectory == null) + { + _FFProbeVideoCacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.CacheDirectory, "ffprobe-video"); + + if (!Directory.Exists(_FFProbeVideoCacheDirectory)) + { + Directory.CreateDirectory(_FFProbeVideoCacheDirectory); + } + } + + return _FFProbeVideoCacheDirectory; + } + } + + private string _FFMpegDirectory = null; + /// + /// Gets the folder path to ffmpeg + /// + public string FFMpegDirectory + { + get + { + if (_FFMpegDirectory == null) + { + _FFMpegDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "FFMpeg"); + + if (!Directory.Exists(_FFMpegDirectory)) + { + Directory.CreateDirectory(_FFMpegDirectory); + } + } + + return _FFMpegDirectory; + } + } + + private string _FFMpegPath = null; + /// + /// Gets the path to ffmpeg.exe + /// + public string FFMpegPath + { + get + { + if (_FFMpegPath == null) + { + _FFMpegPath = Path.Combine(FFMpegDirectory, "ffmpeg.exe"); + } + + return _FFMpegPath; + } + } + + private string _FFProbePath = null; + /// + /// Gets the path to ffprobe.exe + /// + public string FFProbePath + { + get + { + if (_FFProbePath == null) + { + _FFProbePath = Path.Combine(FFMpegDirectory, "ffprobe.exe"); + } + + return _FFProbePath; + } + } + } +} -- cgit v1.2.3