Exemple #1
0
        /// <summary>
        /// Additively updates the final device config with <see cref="WearableDeviceConfig"/> <paramref name="config"/>
        /// </summary>
        /// <param name="config"></param>
        private void UpdateFinalDeviceConfig(WearableDeviceConfig config)
        {
            // Set all sensor state and update intervals
            for (var i = 0; i < WearableConstants.SensorIds.Length; i++)
            {
                var sensorId          = WearableConstants.SensorIds[i];
                var finalSensorConfig = _finalWearableDeviceConfig.GetSensorConfig(sensorId);
                var reqSensorConfig   = config.GetSensorConfig(sensorId);

                finalSensorConfig.isEnabled |= reqSensorConfig.isEnabled;
            }

            // Set all gesture state.
            for (var i = 0; i < WearableConstants.GestureIds.Length; i++)
            {
                if (WearableConstants.GestureIds[i] == GestureId.None)
                {
                    continue;
                }

                var finalGestureConfig = _finalWearableDeviceConfig.GetGestureConfig(WearableConstants.GestureIds[i]);
                var reqGestureConfig   = config.GetGestureConfig(WearableConstants.GestureIds[i]);

                finalGestureConfig.isEnabled |= reqGestureConfig.isEnabled;
            }

            if (config.HasAnySensorsEnabled())
            {
                if (_finalWearableDeviceConfig.updateInterval.IsSlowerThan(config.updateInterval))
                {
                    _finalWearableDeviceConfig.updateInterval = config.updateInterval;
                }
            }

            // If the config rotation sensor is enabled and the final config has a lower priority rotation
            // source, override it
            if (config.rotation.isEnabled &&
                _finalWearableDeviceConfig.rotationSource.IsLowerPriority(config.rotationSource))
            {
                _finalWearableDeviceConfig.rotationSource = config.rotationSource;
            }
        }