ProcessorInstance.AvailableData
A temporary collection of data available for enumeration.
Read time 1 minuteLast updated 6 days ago
Definition
- Type: Struct
- Namespace: UnityEngine.Audio
- Assembly: UnityEngine.AudioModule
public ref struct ProcessorInstance.AvailableData
Remarks
You can enumerate the ProcessorInstance.AvailableData.Elements within using a foreach loop over this collection.
Additional Resources: ProcessorInstance.Pipe.SendData
Examples
using System;using UnityEngine.Audio;using static UnityEngine.Audio.ProcessorInstance;using static UnityEngine.Audio.GeneratorInstance;using Unity.IntegerTime;class AvailableDataExamples{ struct ThingToCommunicate { public float MyData; } struct OtherThing { public int MyOtherData; } internal struct ProcessorInvestigatingData : GeneratorInstance.IRealtime { public void Update(UpdatedDataContext context, Pipe pipe) { float myData = 0f; foreach (var element in pipe.GetAvailableData(context)) { if (element.TryGetData(out ThingToCommunicate thing)) { myData = thing.MyData; } else if (element.TryGetData(out OtherThing otherThing)) { myData = MathF.PI * otherThing.MyOtherData; } } } internal struct Control : GeneratorInstance.IControl<ProcessorInvestigatingData> { public void Update(ControlContext context, Pipe pipe) { float myData = 0f; foreach (var element in pipe.GetAvailableData(context)) { if (element.TryGetData(out ThingToCommunicate thing)) { myData = thing.MyData; } else if (element.TryGetData(out OtherThing otherThing)) { myData = MathF.PI * otherThing.MyOtherData; } } } public void Dispose(ControlContext context, ref ProcessorInvestigatingData processor) { } public ProcessorInstance.Response OnMessage(ControlContext context, Pipe pipe, Message message) => ProcessorInstance.Response.Unhandled; public void Configure(ControlContext context, ref ProcessorInvestigatingData processor, in AudioFormat format, out Setup setup, ref Properties properties) => setup = new(format); } public bool isFinite => false; public bool isRealtime => false; public DiscreteTime? length => null; public Result Process(in RealtimeContext ctx, Pipe pipe, ChannelBuffer buf, Arguments args) => 0; }}
Structs
Struct | Description |
|---|---|
| ProcessorInstance.AvailableData.Element | A piece of temporary immutable type-erased data that was sent from ProcessorInstance.Pipe.SendData, received on likely another thread. |