예제 #1
0
        public SystemTrayViewModel()
        {
            ActiveIcon = "Resources/octopode_icon.ico";
            device     = new KrakenDevice(DeviceEnumerator.EnumerateKrakenX62Devices().First());
            Task.Run(() => RefreshControllerState());
            device.StartReading();


            var key = Registry.CurrentUser.OpenSubKey("Software", true);

            if (key == null)
            {
                Console.Error.WriteLine("Could not open Registry Key");
                return;
            }

            appKey = key.OpenSubKey("Octopode", true);
            if (appKey == null)
            {
                appKey = key.CreateSubKey("Octopode", true, RegistryOptions.None);
            }

            LoadProfile();

            logoManager = new LightningManager(LightChannel.Logo);
            rimManager  = new LightningManager(LightChannel.Rim);

            logoManager.OnNewLightSetting += LightingManagerCallback;
            rimManager.OnNewLightSetting  += LightingManagerCallback;

            commander = new CommandController(device.usbDevice);
        }
예제 #2
0
        static void Main(string[] args)
        {
            var devices = new List <HidDevice>(DeviceEnumerator.EnumerateKrakenX62Devices());
            var tasks   = new List <Task>();

            var deviceList = new List <HidDevice>(DeviceEnumerator.EnumerateKrakenX62Devices());

            if (deviceList.Count < 1)
            {
                Console.WriteLine("No Kraken X62 device found!");
                return;
            }
            var device = new KrakenDevice(deviceList[0]);

            var messages = KrakenDevice.GenerateCoolingMessage(false, true, 25,
                                                               25,
                                                               25,
                                                               25,
                                                               25,
                                                               25,
                                                               25,
                                                               25,
                                                               35,
                                                               45,
                                                               55,
                                                               75,
                                                               100,
                                                               100,
                                                               100,
                                                               100,
                                                               100,
                                                               100,
                                                               100,
                                                               100,
                                                               100);
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            foreach (var message in messages)
            {
                device.Write(message);
            }
            stopwatch.Start();
            Console.WriteLine($"Time taken: {stopwatch.ElapsedMilliseconds}ms - Avg: {stopwatch.ElapsedMilliseconds / (float) messages.Length}ms");
        }