alias player { dialog -md player player } alias -l p.stop { splay stop } alias -l p.resume { splay resume } alias -l p.pause { splay pause } alias -l ms2min { return $calc($$1 / 1000 / 60) } alias n.song { return $read(playlist.txt, w, * $+ $did(player, 1).seltext)) } alias -l songinfo { var %song $gettok($read(playlist.txt, w, * $+ $did(player, 1).seltext), 1-, 32) did -a player 16 $remove($gettok($nopath($n.song), 2, 45), $right($n.song, 4)) did -a player 18 $gettok($nopath($n.song), 1, 45) did -a player 14 $sound(%song).bitrate var %s.len $sound(%song).length var %s.min $gettok($ms2min(%s.len), 1, 46) var %s.sec $calc(($floor($calc(%s.len / 1000)) - $calc($gettok($ms2min(%s.len), 1, 46) * 60))) if ($gettok(%s.min, 1, 46) < 10) { did -a player 13 0 $+ %s.min $+ : $+ %s.sec } else { did -a player 13 %s.min $+ : $+ %s.sec } } dialog player { title "mIRC Player" size -1 -1 175 195 option dbu list 1, 3 52 169 126, size extsel button ">>", 2, 161 2 13 12 button "|>", 3, 148 2 13 12 button "[ ]", 4, 135 2 13 12 button "<<", 5, 122 2 13 12 button "Mute", 6, 123 34 25 9 text "Song:", 7, 2 7 15 8 box "Song info", 8, 1 -1 121 44 text "Bitrate:", 9, 2 25 18 8 text "Played:", 10, 2 34 20 8 text "00:00", 11, 26 34 15 8 text "/", 12, 40 34 5 8, center text "00:00", 13, 45 34 15 8 text "", 14, 21 25 11 8, center text "kbps", 15, 33 25 25 8 text "", 16, 20 7 99 8 text "Artist:", 17, 2 16 17 8 text "", 18, 22 16 97 8 button "Add Song", 19, 2 180 37 12 button "Del Song", 20, 42 180 37 12 box "Playlist", 21, 1 44 173 136 check "Loop Playlist", 22, 123 15 42 10 check "Repeat Song", 23, 123 24 43 10 } on *:MP3END: { if (%r.song == on) { splay $read(playlist.txt, $readn) halt } if ($lines(playlist.txt) == $readn) { did -c player 1 1 splay $read(playlist.txt, 1) halt } else { did -c player 1 $calc($readn + 1) splay $read(playlist.txt, $calc($readn + 1)) songinfo } } on *:dialog:player:init:0: { if ($insong == $true) { songinfo } if ($read(playlist.txt) != $null) { var %i 1 while (%i <= $lines(playlist.txt)) { did -a $dname 1 $nopath($read(playlist.txt, %i)) inc %i } } else { halt } } on *:dialog:player:dclick:1: { var %song $gettok($read(playlist.txt, w, * $+ $did(player, 1).seltext), 1-, 32) splay %song var %sl.sec $calc($floor($calc($insong.pos / 1000)) - $calc($gettok($ms2min($insong.pos), 1, 46) * 60)) var %s.len $sound(%song).length var %s.min $gettok($ms2min(%s.len), 1, 46) var %s.sec $calc(($floor($calc(%s.len / 1000)) - $calc($gettok($ms2min(%s.len), 1, 46) * 60))) if ($gettok(%s.min, 1, 46) < 10) { did -a $dname 13 0 $+ %s.min $+ : $+ %s.sec } else { did -a $dname 13 %s.min $+ : $+ %s.sec } did -a $dname 16 $remove($gettok($nopath($n.song), 2, 45), $right($n.song, 4)) did -a $dname 18 $gettok($nopath($n.song), 1, 45) did -a $dname 14 $sound(%song).bitrate } on *:dialog:player:sclick:2: { did -c player 1 $calc($did($dname, 1).sel + 1) splay stop splay $read(playlist.txt, w, * $+ $did($dname, 1).seltext) songinfo } on *:dialog:player:sclick:5: { did -c player 1 $calc($did($dname, 1).sel - 1) splay stop splay $read(playlist.txt, w, * $+ $did($dname, 1).seltext) songinfo } on *:dialog:player:sclick:3: { if ($did($dname, 3) == |>) { did -r $dname 3 did -a $dname 3 $chr(124) $+ $chr(124) p.resume } else { did -r $dname 3 did -a $dname 3 $chr(124) $+ > p.pause } } on *:dialog:player:sclick:4: { p.stop } on *:dialog:player:sclick:6: { if ($did($dname, 6) == Mute) { did -r $dname 6 did -a $dname 6 Unmute vol -vu1 } else { did -r $dname 6 did -a $dname 6 Mute vol -vu2 } } on *:dialog:player:sclick:19: { var %s.file $sfile(C:\, Select Audio File (.mp3)) write playlist.txt %s.file did -a $dname 1 $nopath(%s.file) } on *:dialog:player:sclick:20: { write -ds $+ $gettok($read(playlist.txt, w, * $+ $did(player, 1).seltext), 1, 32) playlist.txt did -d $dname 1 $did($dname, 1).sel } on *:dialog:player:sclick:23: { if ($did($dname, 23).state == on) { set %r.song on } else { unset %r.song } }