soundvision/UnityProject/Assets/Scripts/PdConnection/PdArray.cs
Chikashi Miyama 78023946cd close #28
2019-09-28 20:17:39 +02:00

34 lines
915 B
C#

using System;
using System.IO.MemoryMappedFiles;
namespace cylvester
{
public class PdArray : IDisposable
{
public float[] Data { get; }
private readonly MemoryMappedFile memoryMappedFile_;
private readonly MemoryMappedViewAccessor viewAccessor_;
public PdArray(string name, int size)
{
memoryMappedFile_ = MemoryMappedFile.OpenExisting(name);
if (memoryMappedFile_ == null)
throw new ArgumentException("no such shared memory");
viewAccessor_ = memoryMappedFile_.CreateViewAccessor();
Data = new float[size];
}
public void Update()
{
viewAccessor_.ReadArray(0, Data, 0, Data.Length);
}
public void Dispose()
{
memoryMappedFile_.Dispose();
viewAccessor_.Dispose();
}
}
}