SoundIOChannelAreas.cs 713 B

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace SoundIOSharp
  4. {
  5. public struct SoundIOChannelAreas
  6. {
  7. static readonly int native_size = Marshal.SizeOf<SoundIoChannelArea> ();
  8. internal SoundIOChannelAreas (IntPtr head, int channelCount, int frameCount)
  9. {
  10. this.head = head;
  11. this.channel_count = channelCount;
  12. this.frame_count = frameCount;
  13. }
  14. IntPtr head;
  15. int channel_count;
  16. int frame_count;
  17. public bool IsEmpty {
  18. get { return head == IntPtr.Zero; }
  19. }
  20. public SoundIOChannelArea GetArea (int channel)
  21. {
  22. return new SoundIOChannelArea (head + native_size * channel);
  23. }
  24. public int ChannelCount => channel_count;
  25. public int FrameCount => frame_count;
  26. }
  27. }