コード例 #1
0
        private void AssignTrackedDevice(TrackedDeviceState deviceState, InputDevice?possibleInputDevice, DeviceUse use, TrackedDeviceRole deviceRole)
        {
            if (possibleInputDevice.HasValue && !deviceState.found)
            {
                InputDevice inputDevice = possibleInputDevice.Value;

                Plugin.logger.Info($"Using device \"{inputDevice.name}\" as {use}");

                deviceState.name         = inputDevice.name;
                deviceState.serialNumber = inputDevice.serialNumber;
                deviceState.found        = true;
                deviceState.role         = deviceRole;

                deviceAdded?.Invoke(deviceState, use);
            }

            if (!possibleInputDevice.HasValue && deviceState.found)
            {
                Plugin.logger.Info($"Lost device \"{deviceState.name}\" that was used as {use}");

                deviceState.name         = null;
                deviceState.serialNumber = null;
                deviceState.found        = false;
                deviceState.role         = TrackedDeviceRole.Unknown;

                deviceRemoved?.Invoke(deviceState, use);
            }
        }
コード例 #2
0
        private void AssignTrackedDevice(TrackedDeviceState deviceState, InputDevice?possibleInputDevice, DeviceUse use, TrackedDeviceRole deviceRole)
        {
            if ((!possibleInputDevice.HasValue && deviceState.found) || (possibleInputDevice.HasValue && deviceState.found && possibleInputDevice.Value.name != deviceState.name))
            {
                _logger.Info($"Removing device '{deviceState.name}' that was used as {use}");

                deviceState.name         = null;
                deviceState.serialNumber = null;
                deviceState.found        = false;
                deviceState.tracked      = false;
                deviceState.role         = TrackedDeviceRole.Unknown;

                deviceRemoved?.Invoke(deviceState, use);
            }

            if (possibleInputDevice.HasValue && (!deviceState.found || possibleInputDevice.Value.name != deviceState.name))
            {
                InputDevice inputDevice = possibleInputDevice.Value;

                _logger.Info($"Using device '{inputDevice.name}' as {use}");

                deviceState.name         = inputDevice.name;
                deviceState.serialNumber = inputDevice.serialNumber;
                deviceState.found        = true;
                deviceState.role         = deviceRole;

                deviceAdded?.Invoke(deviceState, use);
            }
        }