rendered paste bodydialog 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 }