packages feed

Raincat-1.2: src/Nxt/Audio.hs

module Nxt.Audio
    (Music,
     initAudio,
     loadMusic,
     playMusic) where

import qualified SDL.Mixer

type Music = SDL.Mixer.Music

-- initAudio
initAudio :: IO ()
initAudio = 
    let audio = SDL.Mixer.Audio
          { SDL.Mixer.audioFrequency = 44100
          , SDL.Mixer.audioFormat = SDL.Mixer.FormatS16_Sys
          , SDL.Mixer.audioOutput = SDL.Mixer.Stereo }
    in SDL.Mixer.openAudio audio 4096

-- loadMusic
loadMusic :: String -> IO Music
loadMusic = SDL.Mixer.load

-- playMusic
playMusic :: Music -> IO ()
playMusic m = do
    SDL.Mixer.setMusicVolume 50
    SDL.Mixer.playMusic SDL.Mixer.Forever m