// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using Microsoft.MixedReality.Toolkit.Utilities;
using System;
using UnityEngine;
namespace Microsoft.MixedReality.Toolkit
{
///
/// Defines a system, feature, or manager to be registered with as a on startup.
///
[Serializable]
public struct MixedRealityServiceConfiguration : IMixedRealityServiceConfiguration
{
///
/// Constructor.
///
/// The concrete type for the system, feature or manager.
/// The simple, human readable name for the system, feature, or manager.
/// The priority this system, feature, or manager will be initialized in.
/// The runtime platform(s) to run this system, feature, or manager on.
/// The configuration profile for the service.
public MixedRealityServiceConfiguration(
SystemType componentType,
string componentName,
uint priority,
SupportedPlatforms runtimePlatform,
BaseMixedRealityProfile configurationProfile)
{
this.componentType = componentType;
this.componentName = componentName;
this.priority = priority;
this.runtimePlatform = runtimePlatform;
this.configurationProfile = configurationProfile;
}
[SerializeField]
[Implements(typeof(IMixedRealityExtensionService), TypeGrouping.ByNamespaceFlat)]
private SystemType componentType;
///
public SystemType ComponentType => componentType;
[SerializeField]
private string componentName;
///
public string ComponentName => componentName;
[SerializeField]
private uint priority;
///
public uint Priority => priority;
[EnumFlags]
[SerializeField]
private SupportedPlatforms runtimePlatform;
///
public SupportedPlatforms RuntimePlatform => runtimePlatform;
[SerializeField]
private BaseMixedRealityProfile configurationProfile;
///
public BaseMixedRealityProfile Profile => configurationProfile;
///
/// The configuration profile for the service.
///
[Obsolete("Use the Profile property instead.")]
public BaseMixedRealityProfile ConfigurationProfile => configurationProfile;
}
}