h-raylib-5.1.1.0: examples/basic-audio/src/Main.hs
{-# OPTIONS -Wall #-}
module Main where
import Control.Monad (unless, void)
import Raylib.Core (changeDirectory, clearBackground, getApplicationDirectory)
import Raylib.Core.Audio (closeAudioDevice, initAudioDevice, loadMusicStream, playMusicStream, updateMusicStream)
import Raylib.Core.Text (drawText)
import Raylib.Util (drawing, inGHCi, whileWindowOpen0, withWindow)
import Raylib.Util.Colors (lightGray, rayWhite)
musicPath :: String
musicPath = (if not inGHCi then "../../../../../../../../../../" else "./") ++ "examples/basic-audio/assets/mini1111.xm"
main :: IO ()
main = do
withWindow
650
400
"raylib [audio] example - basic audio"
60
( \window -> do
initAudioDevice
unless inGHCi (void $ changeDirectory =<< getApplicationDirectory)
music <- loadMusicStream musicPath window
playMusicStream music
whileWindowOpen0
( drawing
( do
clearBackground rayWhite
drawText "You should hear music playing!" 20 20 20 lightGray
)
>> updateMusicStream music
)
closeAudioDevice window
)