dialog mp3 { title "MP3 Player" size -1 -1 387 300 option pixels list 1, 5 5 185 290, hsbar vsbar size edit "", 2, 220 25 141 20, read autohs button "<<", 5, 200 110 50 20, flat button "||", 6, 233 135 50 20, flat button "|>", 7, 300 135 50 18, flat button ">>", 8, 329 110 50 18, flat button "Directory", 9, 198 226 80 25, flat scroll "", 13, 195 70 186 16, horizontal range 0 0 box "Now Playing", 10, 203 9 171 41 box "Position", 11, 191 55 195 36 button "[]", 22, 266 110 50 19, flat box "Control", 4, 191 96 194 67 button "Remove All", 26, 288 226 80 25, flat button "Add File", 27, 198 263 80 25, flat button "Delete File", 28, 288 264 80 25, flat box "MP3's", 29, 191 211 190 83 scroll "", 12, 221 180 128 16, horizontal range 0 65535 box "Volume", 14, 208 166 154 40 menu "File", 15 item "Play Options", 16, 15 item break, 30, 15 item "Exit", 21, 15 menu "About", 24 item "Info", 25, 24 } on *:dialog:mp3:dclick:1:set %songnum $did(mp3,1).sel | mp3play $read(playlist.txt,%songnum) on *:dialog:mp3:menu:21:.timerpos.update -p | dialog -x $dname on *:dialog:mp3:scroll:13:{ if (!$insong) { halt } if (!%mp3tseek) { .timerpos.update -p | set %mp3tseek $true } .timermp3tseek -m 1 500 splay seek $int($calc(($did(13).sel /10000) * $insong.length)) $chr(124) unset %mp3tseek $chr(124) .timerpos.update -r } alias timerpos { if ($1 == on) { .timerpos.update 0 1 did -c mp3 13 $!calc(( $!insong.pos / $!insong.length )*10000) } elseif ($1 == off) { .timerpos.update off } } on *:MP3END:{ if (%cplay) { if (%songnum < $lines(playlist.txt)) { inc %songnum if ($dialog(mp3)) did -c mp3 1 %songnum mp3play $read(playlist.txt,%songnum) halt } unset %songnum unset %cplay } elseif (%rplay) { ;did -c mp3 1 $r(1,$did(mp3,1).lines) mp3play $read(playlist.txt) halt } if ($dialog(mp3)) { did -z mp3 13 0 0 did -r mp3 2 } timerpos off unset %songnum } on *:dialog:mp3:init:0:{ var %a = 1, %b = playlist.txt while (%a <= $lines(%b)) { did -a $dname 1 $left($nopath($read(%b,%a)),-4) inc %a } did -z $dname 1 did -c $dname 12 $vol(master) if ($insong) { did -c $dname 1 %songnum did -o $dname 2 1 $left($nopath($insong.fname),-4) did -z $dname 13 0 10000 did -c $dname 13 $calc(($insong.pos / $insong.length)*10000) .timerpos.update -r } } on *:dialog:mp3:close:0:.timerpos.update -p on *:dialog:mp3:sclick:5:{ if (%rplay) did -c $dname 1 $r(1,$did($dname,1).lines) elseif ($did($dname,1).sel == 1) halt did -c $dname 1 $calc($v1 - 1) set %songnum $did($dname,1).sel mp3play $read(playlist.txt,%songnum) } on *:dialog:mp3:sclick:6:{ if ($inmp3) { if (!%mp3pause) { set %mp3pause 1 splay pause .timerplay -p halt } if (%mp3pause = 1) { unset %mp3pause splay resume .timerplay -r halt } } } on *:dialog:mp3:sclick:7:mp3play on *:dialog:mp3:sclick:22:mp3stop on *:dialog:mp3:sclick:8:{ if (%rplay) did -c $dname 1 $r(1,$did($dname,1).lines) else did -c $dname 1 $calc($did($dname,1).sel + 1) set %songnum $did($dname,1).sel mp3play $read(playlist.txt,%songnum) } on *:dialog:mp3:sclick:9: mp3choosedir on *:dialog:mp3:sclick:27: mp3addfile on *:dialog:mp3:sclick:28: mp3remfile on *:dialog:mp3:sclick:26: mp3remall on *:dialog:mp3:sclick:21:dialog -x mp3 mp3 on *:dialog:mp3:scroll:12:vol -v $did($did).sel alias -l mp3choosedir { var %mp3dir = $$sdir($mircdir,Choose mp3 directory) if (%mp3dir) { did -r mp3 1 if ($exists(playlist.txt)) { write -c playlist.txt } var %x = 1, %y = playlist.txt while ($findfile(%mp3dir,*.mp3,%x)) { write %y $v1 did -a mp3 1 $left($nopath($v1),-4) inc %x } } } alias -l mp3addfile { var %mp3file = $$sfile($mircdir,Choose mp3 file to add) if (%mp3file) { if ($exists(playlist.txt)) { write playlist.txt %mp3file did -a mp3 1 $left($nopath(%mp3file),-4) } } } alias -l mp3remfile { if ($exists(playlist.txt)) { if ($did(mp3,1).sel) { write -dl playlist.txt $v1 did -d $dname 1 $v1 } } } alias -l mp3remall { if ($exists(playlist.txt)) { write -c playlist.txt did -r $dname 1 if ($insong) { mp3stop } } } alias -l mp3play { if ($exists(playlist.txt)) { splay $$1- if ($dialog(mp3)) { did -c mp3 13 0 did -o mp3 2 1 $left($nopath($1-),-4) did -z mp3 13 0 10000 timerpos on } } } alias -l mp3stop { if ($inmp3) { splay stop did -r mp3 2 timerpos off did -z mp3 13 0 0 .timerplay off unset %cplay unset %songnum unset %rplay } } alias -l backlength { if ($insong) { return $+(-,$gmt($calc($calc($insong.length / 1000) - $calc($insong.pos / 1000)),nn:ss)) } } alias mp3 { dialog $iif($dialog(mp3),-v,-m) mp3 mp3 } on *:dialog:mp3:menu:16:{ dialog -md options options } dialog options { title "Configuration Options" size -1 -1 259 133 option pixels notheme box "Continuous", 1, 5 10 240 41 box "Random", 2, 5 55 240 44 button "Enable", 3, 25 25 100 17, flat button "Disable", 4, 135 25 100 17, flat button "Enable", 5, 25 70 100 17, flat button "Disable", 6, 135 70 100 17, flat button "Close", 7, 5 102 240 25, flat } on *:dialog:options:sclick:*: { if ($did == 3) { unset %rplay set %cplay on set %songnum 1 did -c mp3 1 1 mp3play } if ($did == 4) { unset %cplay unset %songnum } if ($did == 5) { unset %cplay unset %songnum set %rplay on did -c mp3 1 $r(1,$did(mp3,1).lines) mp3play } if ($did == 6) { unset %rplay } if ($did == 7) { dialog -x $dname } } on *:dialog:mp3:menu:25:{ dialog -md about about } dialog about { title "About" size -1 -1 220 156 option pixels notheme text "MP3 Player made by Neptune and Daveoh Neptune: irc.PurpleSurge.com Daveoh: irc.quakenet.org", 1, 5 5 210 50 text "You are free to use this MP3 Player script to help you build your own, but please don't take the script and just call it your own, as it isn't fair for the people who put hard work into making it.", 2, 5 50 210 70 button "Close", 3, 5 125 210 25, flat } on *:dialog:about:sclick:3: { dialog -x about about }