using System.Collections.Generic; using System.Linq; namespace UnityEngine.XR.OpenXR.Features.MagicLeapSupport { public partial class MagicLeapPixelSensorFeature { internal partial class PixelSensor { internal PixelSensorAsyncOperationResult StartSensor(IEnumerable streams, Dictionary metaDataTypes) { //If we are trying to start streams that have not been configured var streamArr = streams as uint[] ?? streams.ToArray(); var startOperation = GetOperation(); if (metaDataTypes != null) { foreach (var (stream, requestedMetadatas) in metaDataTypes) { if (requestedMetadatas == null) { continue; } startOperation.MetadataTypesForStream.Remove(stream); startOperation.MetadataTypesForStream.Add(stream, new HashSet(requestedMetadatas)); } } startOperation.Start(streamArr); return startOperation.OperationResult; } internal PixelSensorAsyncOperationResult ConfigureSensor(IEnumerable streams) { var configOperation = GetOperation(); configOperation.Start(streams); return configOperation.OperationResult; } internal PixelSensorAsyncOperationResult StopSensor(IEnumerable streams) { var stopOperation = GetOperation(); stopOperation.Start(streams); return stopOperation.OperationResult; } } } }