SystemInfo.cs 1019 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace Ryujinx.Common.SystemInfo
  4. {
  5. public class SystemInfo
  6. {
  7. public virtual string OsDescription => $"{RuntimeInformation.OSDescription} ({RuntimeInformation.OSArchitecture})";
  8. public virtual string CpuName => "Unknown";
  9. public virtual ulong RamSize => 0;
  10. public string RamSizeInMB => (RamSize == 0) ? "Unknown" : $"{RamSize / 1024 / 1024} MB";
  11. public static SystemInfo Instance { get; }
  12. static SystemInfo()
  13. {
  14. if (OperatingSystem.IsWindows())
  15. {
  16. Instance = new WindowsSystemInfo();
  17. }
  18. else if (OperatingSystem.IsLinux())
  19. {
  20. Instance = new LinuxSystemInfo();
  21. }
  22. else if (OperatingSystem.IsMacOS())
  23. {
  24. Instance = new MacOSSystemInfo();
  25. }
  26. else
  27. {
  28. Instance = new SystemInfo();
  29. }
  30. }
  31. }
  32. }