#module
#deffunc mciload str, int
mref file, 32 : mref no, 1
cntno = no
mci "close _" + cntno
strmid i, file, , 2 : int i
if i {
file = "cdaudio!?"
poke file, 8, i + 64
}
mci "open \"" + file + "\" alias _" + cntno
return
#deffunc mciplay str, str, int
mref start, 32 : mref finish, 33 : mref re, 2
if start ! "" : s = " from " + start : else : s = ""
if finish ! "" : s += " to " + finish
if re : s += " repeat"
mci "play _" + cntno + s
return
#deffunc mciend onexit
mci "stop all"
mci "close all"
return
#deffunc mcitrackmax
mci "status _" + cntno + " number of tracks"
return
#deffunc mcitrackpos int
mref track, 0
mci "status _" + cntno + " position track " + track
return
#global
repeat 26, 1
mciload "" + cnt
mcitrackmax
drv.1 = stat
if drv < drv.1 : drv = drv.1 * 100 + cnt // トラック最多ドライブを対象とする
loop
if drv.1 > 0 {
sdim track, drv / 100 * 3
repeat drv.1, 1
if track ! "" : track += "\n"
track += "" + cnt
loop
pos 10, 10 : combox index, 100, track
pos 80, 10 : button "再生", *play
i = drv \ 100
mciload "" + i
} else {
dialog "1つ以上のトラックが存在するドライブが見つかりませんでした"
end
}
stop
*play
mcitrackpos index + 1 // 開始位置にコンボのトラック番号を指定
mciplay refstr, ""
stop
|