using System.Collections.Generic; using System.Globalization; using System.IO; namespace VRCX { public class AppApiVrElectron : AppApiVr { static AppApiVrElectron() { Instance = new AppApiVrElectron(); } public override void Init() { } public override void VrInit() { } public override List> GetExecuteVrOverlayFunctionQueue() { var list = new List>(); while (Program.VRCXVRInstance.GetExecuteVrOverlayFunctionQueue().TryDequeue(out var item)) { list.Add(item); } return list; } public override void ToggleSystemMonitor(bool enabled) { SystemMonitorElectron.Instance.Start(enabled); } /// /// Returns the current CPU usage as a percentage. /// /// The current CPU usage as a percentage. public override float CpuUsage() { return SystemMonitorElectron.Instance.CpuUsage; } /// /// Returns an array of arrays containing information about the connected VR devices. /// Each sub-array contains the type of device and its current state /// /// An array of arrays containing information about the connected VR devices. public override string[][] GetVRDevices() { return Program.VRCXVRInstance.GetDevices(); } /// /// Returns the number of milliseconds that the system has been running. /// /// The number of milliseconds that the system has been running. public override double GetUptime() { return SystemMonitorElectron.Instance.UpTime; } /// /// Returns the current language of the operating system. /// /// The current language of the operating system. public override string CurrentCulture() { return CultureInfo.CurrentCulture.ToString(); } /// /// Returns the file path of the custom user js file, if it exists. /// /// The file path of the custom user js file, or an empty string if it doesn't exist. public override string CustomVrScript() { var filePath = Path.Join(Program.AppDataDirectory, "customvr.js"); if (File.Exists(filePath)) return File.ReadAllText(filePath); return string.Empty; } } }