--[[
  Copyright Tom Lukeywood 2018
    This file is part of Forest2D

    Forest2D is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Forest2D is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Forest2D.  If not, see <http://www.gnu.org/licenses/>.
]]--

Audio = {}

function Audio.New(Audiofile, Channel, SampleRate, NumberOfChannels)

    local self = {}

    local ret, err = Mixer.openAudio(SampleRate, SDL.audioFormat.S16, NumberOfChannels, 1024)
    if not ret then
        error(err)
    end

    self.Music = Mixer.loadMUS(Audiofile)

    function self:Play()

        if Mixer.playing(Channel) == 1 then
            return
        end

        if not self.Music then
            error(err)
        end

        self.Music:play(Channel)
    end

    return self

end

return Audio
