
import org.codehaus.groovy.scriptom.ActiveXProxy

def folderName = "."
println "Playing files from: ${folderName}"

// create a Windows Media Player (from its Class ID)
def player = new ActiveXProxy("clsid:{6BF52A52-394A-11D3-B153-00C04F79FAA6}")

// react upon a state change
player.events.PlayStateChange = { variants ->
    // if the media ended change the status flag
    // so that the main thread notices the change
    if (variants[0].value == 1) synchronized(player) { player.notify() }
}
// start listening to the events we're subsribed to
player.events.listen()

// loop over the available files and play them
new File(folderName).eachFileMatch(~/.*(wav|au|wma|mp3)/) { song ->
    println "Listening to: $song"
    player.URL = song.absolutePath
    control = player.controls.play()
    synchronized(player) { player.wait() }
}

// close the player
player.close()
