// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using Microsoft.MixedReality.Toolkit.Utilities; using System; using UnityEngine; namespace Microsoft.MixedReality.Toolkit.CameraSystem { /// /// Defines the configuration for a camera settings provider. /// [Serializable] public struct MixedRealityCameraSettingsConfiguration : IMixedRealityServiceConfiguration { [SerializeField] [Tooltip("The concrete type of the camera settings provider.")] [Implements(typeof(IMixedRealityCameraSettingsProvider), TypeGrouping.ByNamespaceFlat)] private SystemType componentType; /// public SystemType ComponentType => componentType; [SerializeField] [Tooltip("The name of the camera settings provider.")] private string componentName; /// public string ComponentName => componentName; [SerializeField] [Tooltip("The camera settings provider priority.")] private uint priority; /// public uint Priority => priority; [SerializeField] [Tooltip("The platform(s) on which the camera settings provider is supported.")] [EnumFlags] private SupportedPlatforms runtimePlatform; /// public SupportedPlatforms RuntimePlatform => runtimePlatform; [SerializeField] private BaseCameraSettingsProfile settingsProfile; /// public BaseMixedRealityProfile Profile => settingsProfile; /// /// Camera settings specific configuration profile. /// public BaseCameraSettingsProfile SettingsProfile => settingsProfile; /// /// Constructor. /// /// The of the provider. /// The friendly name of the provider. /// The load priority of the provider. /// The runtime platform(s) supported by the provider. /// The configuration profile for the provider. public MixedRealityCameraSettingsConfiguration( SystemType componentType, string componentName, uint priority, SupportedPlatforms runtimePlatform, BaseCameraSettingsProfile configurationProfile) { this.componentType = componentType; this.componentName = componentName; this.priority = priority; this.runtimePlatform = runtimePlatform; this.settingsProfile = configurationProfile; } } }