rendered paste bodyalias 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, * $+ $insong.fname) }
alias -l songinfo {
var %song $gettok($read(playlist.txt, w, * $+ $insong.fname), 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 }
}