aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/EnvironmentInfo/EnvironmentInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/EnvironmentInfo/EnvironmentInfo.cs')
-rw-r--r--Emby.Server.Implementations/EnvironmentInfo/EnvironmentInfo.cs100
1 files changed, 100 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/EnvironmentInfo/EnvironmentInfo.cs b/Emby.Server.Implementations/EnvironmentInfo/EnvironmentInfo.cs
new file mode 100644
index 000000000..f86279f37
--- /dev/null
+++ b/Emby.Server.Implementations/EnvironmentInfo/EnvironmentInfo.cs
@@ -0,0 +1,100 @@
+using System;
+using System.IO;
+using MediaBrowser.Model.System;
+
+namespace Emby.Server.Implementations.EnvironmentInfo
+{
+ public class EnvironmentInfo : IEnvironmentInfo
+ {
+ private Architecture? _customArchitecture;
+ private MediaBrowser.Model.System.OperatingSystem? _customOperatingSystem;
+
+ public virtual MediaBrowser.Model.System.OperatingSystem OperatingSystem
+ {
+ get
+ {
+ if (_customOperatingSystem.HasValue)
+ {
+ return _customOperatingSystem.Value;
+ }
+
+ switch (Environment.OSVersion.Platform)
+ {
+ case PlatformID.MacOSX:
+ return MediaBrowser.Model.System.OperatingSystem.OSX;
+ case PlatformID.Win32NT:
+ return MediaBrowser.Model.System.OperatingSystem.Windows;
+ case PlatformID.Unix:
+ return MediaBrowser.Model.System.OperatingSystem.Linux;
+ }
+
+ return MediaBrowser.Model.System.OperatingSystem.Windows;
+ }
+ set
+ {
+ _customOperatingSystem = value;
+ }
+ }
+
+ public string OperatingSystemName
+ {
+ get
+ {
+ return Environment.OSVersion.Platform.ToString();
+ }
+ }
+
+ public string OperatingSystemVersion
+ {
+ get
+ {
+ return Environment.OSVersion.Version.ToString() + " " + Environment.OSVersion.ServicePack.ToString();
+ }
+ }
+
+ public char PathSeparator
+ {
+ get
+ {
+ return Path.PathSeparator;
+ }
+ }
+
+ public Architecture SystemArchitecture
+ {
+ get
+ {
+ if (_customArchitecture.HasValue)
+ {
+ return _customArchitecture.Value;
+ }
+
+ return Environment.Is64BitOperatingSystem ? MediaBrowser.Model.System.Architecture.X64 : MediaBrowser.Model.System.Architecture.X86;
+ }
+ set
+ {
+ _customArchitecture = value;
+ }
+ }
+
+ public string GetEnvironmentVariable(string name)
+ {
+ return Environment.GetEnvironmentVariable(name);
+ }
+
+ public virtual string GetUserId()
+ {
+ return null;
+ }
+
+ public string StackTrace
+ {
+ get { return Environment.StackTrace; }
+ }
+
+ public void SetProcessEnvironmentVariable(string name, string value)
+ {
+ Environment.SetEnvironmentVariable(name, value);
+ }
+ }
+} \ No newline at end of file