#!/usr/local/bin/tclmidi
proc Usage {} {
	puts stderr {Usage: mplay [-quiet] [-repeat] [filename]}
}

set repeat ""
set quiet 0
set fname stdin
set f stdin

for {set i 0} {$i < $argc} {incr i} {
	switch -- [lindex $argv $i] {
	"-?" -
	"-h" -
	"-help" {
		Usage
		exit 1
	}
	"-repeat" {
		set repeat repeat
	}
	"-quiet" {
		set quiet 1
	}
	default {
		if {$fname != "stdin"} {
			Usage
			exit 1
		} else {
			set fname [lindex $argv $i]
			set f [open $fname r]
		}
	}
	}
}

# can't read key strokes if file is coming from stdin
if {$fname == "stdin"} {
	set quiet 1
}

if {!$quiet} {
	puts "loading, please wait"
}
set mf [midiread $f]

if {!$quiet} {
	puts "press return to begin playing"
	gets stdin
}
if {![midiplay $mf $repeat]} {
	puts stderr "midiplay command not available"
	exit 1
}
if {$repeat != "repeat" || $quiet} {
	midiwait
	midistop
} else {
	puts "press return to stop playing"
	gets stdin
	midistop
}
