SoundIOChannelAreas.cs 871 B

12345678910111213141516171819202122232425262728293031323334
  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. {
  19. get { return head == IntPtr.Zero; }
  20. }
  21. public SoundIOChannelArea GetArea(int channel)
  22. {
  23. return new SoundIOChannelArea(head + native_size * channel);
  24. }
  25. public int ChannelCount => channel_count;
  26. public int FrameCount => frame_count;
  27. }
  28. }