namespace Voile
{
    /// <summary>
    /// Represents raw audio samples in 16-bit PCM format. 
    /// </summary>
    public class Sound : Resource
    {
        public SoundChannel Channel { get; set; }
        public int SampleRate { get; set; }

        public short[]? Buffer { get; private set; }
        public long BufferSize { get; set; }

        public Sound(string path, short[] buffer) : base(path)
        {
            Buffer = buffer;
        }
    }

    /// <summary>
    /// Channel type contained within a sound.
    /// </summary>
    public enum SoundChannel
    {
        Mono,
        Stereo
    }
}