rendered paste bodymenu * {
Mp3 Player
.Mp3 Player:MP3
.Add Directory: {
var %x = 1
while ($ini(Mp3Player.ini,Dir,%x)) { .dll WhileFix.dll WhileFix .inc | %x }
writeini Mp3Player.ini Dir %x $sdir(*,Music Folder)
}
}
menu @Mp3Player {
sclick:{
if ($inrect($mouse.x,$mouse.y,5,60,290,11)) {
moveposbar $calc($mouse.dx -$window($active).x) Moved
set %dot Posbar
halt
}
elseif ($inrect($mouse.x,$mouse.y,140,40,155,11)) {
movevolbar $calc($mouse.dx -$window($active).x)
set %dot Volbar
halt
}
elseif ($inrect($mouse.x,$mouse.y,205,78,20,20)) CheckMute
elseif ($inrect($mouse.x,$mouse.y,185,78,20,20)) CheckRepeat
elseif ($inrect($mouse.x,$mouse.y,125,78,20,20)) highlight $calc(%@mp3player + 15) @mp3player @buffer Play
elseif ($inrect($mouse.x,$mouse.y,105,78,20,20)) seeksong up
elseif ($inrect($mouse.x,$mouse.y,85,78,20,20)) splay stop
elseif ($inrect($mouse.x,$mouse.y,65,78,20,20)) splay pause
elseif ($inrect($mouse.x,$mouse.y,45,78,20,20)) splay $iif($insong.pause == $true,resume,$iif(%song,$gettok(%song,2,174)))
elseif ($inrect($mouse.x,$mouse.y,25,78,20,20)) seeksong down
elseif ($inrect($mouse.x,$mouse.y,5,78,20,20)) splay seek 0
elseif ($inrect($mouse.x,$mouse.y,281,0,20,15)) {
window -c @mp3player
window -c @Buffer
Exit
halt
}
elseif ($inrect($mouse.x,$mouse.y,271,0,10,15)) {
window -f @Mp3Player -1 -1 300 $iif($window(@mp3player).h == 352,100,350)
}
elseif ($inrect($mouse.x,$mouse.y,261,1,10,15)) {
window -n @mp3player
halt
}
elseif ($inrect($mouse.x,$mouse.y,0,0,300,15)) {
movewindow $mouse.x $mouse.y @Mp3Player
halt
}
elseif ($inrect($mouse.x,$mouse.y,5,103,275,243)) {
highlight $mouse.y @mp3player @buffer
halt
}
elseif ($inrect($mouse.x,$mouse.y,235,85,15,10)) {
var %x = 1
while ($ini(Mp3Player.ini,Dir,%x)) { .dll WhileFix.dll WhileFix . | inc %x }
writeini Mp3Player.ini Dir %x $sdir(*,Music Folder)
}
elseif ($inrect($mouse.x,$mouse.y,260,85,15,10)) dialog -m DelDir DelDir
elseif ($mouse.key & 1) Scroller $mouse.x $mouse.y @Mp3Player @Buffer
}
mouse:{
if (%dot == Posbar) moveposbar $calc($mouse.dx -$window($active).x) Moved
elseif (%dot == Volbar) movevolbar $calc($mouse.dx -$window($active).x) Moved
elseif ($mouse.key & 1) Scroller $mouse.y $mouse.x @Mp3Player @Buffer
}
dclick: {
if ($inrect($mouse.x,$mouse.y,5,103,290,243)) Play %song
}
drop: unset %dot
}
alias MP3 {
if ($window(@Mp3player)) window -c @Mp3Player
window -aCdfpk0B +d @Mp3Player -1 -1 300 350
drawfill -r @Mp3Player $rgb(117,169,255) 0 0 0
drawrect -rf @Mp3Player $rgb(0,128,192) 1 0 0 300 15
drawline -rf @Mp3Player $rgb(0,0,0) 1 0 15 300 15
drawtext -r @Mp3Player $rgb(255,255,255) Tahoma 11 3 1 Mp3 Player
drawrect -rf @Mp3Player $rgb(255,255,255) 1 5 20 235 17
drawrect -rf @Mp3Player $rgb(255,255,255) 1 245 20 50 17
drawrect -rf @Mp3Player $rgb(255,255,255) 1 5 40 100 17
drawrect -r @Mp3Player $rgb(0,0,0) 1 5 20 235 17
drawrect -r @Mp3Player $rgb(0,0,0) 1 5 40 100 17
drawrect -r @Mp3Player $rgb(0,0,0) 1 245 20 50 17
drawrect -rf @mp3player $rgb(255,255,255) 1 5 103 290 243
drawrect -r @mp3player $rgb(0,0,0) 1 5 103 290 243
drawtext -r @mp3player $rgb(255,255,255) Webdings 11 284 0 r
drawtext -r @mp3player $rgb(255,255,255) Webdings 11 272 0 2
drawtext -r @mp3player $rgb(255,255,255) Tahoma 11 262 0 _
drawtext -r @mp3player $rgb(255,255,255) Tahoma 10 235 85 +Dir
drawtext -r @mp3player $rgb(255,255,255) Tahoma 10 260 85 -Dir
$scrollbar(@Mp3Player,283,104,12,241,45,23,37,98,@buffer,15)
dbuffer @Mp3Player @Buffer
scroll.update 1 0 @Mp3Player @Buffer
draw.buffer @Mp3Player @Buffer 1
drawdot @mp3player
drawrect -r @Mp3Player $rgb(0,0,0) 1 0 0 300 350
buttons | posbar | volbar 100
}
alias -l button {
drawrect -rn @Mp3Player $rgb(255,255,255) 1 $1 $2-4
drawtext -rn @Mp3Player $6 $7 15 $calc($1 + 3) $2 $5
}
alias -l buttons {
var %x = 1, %y = 5
while (%x <= 9) {
.dll WhileFix.dll WhileFix .
button %y 78 20 20 $gettok(9 7 4 $chr(59) < 8 : ` W,%x,32) $rgb(255,255,255) Webdings %x
inc %x
inc %y 20
if (%x == 8) inc %y 40
}
}
alias -l posbar {
if ($1 !isnum) tokenize 32 0
drawrect -rf @mp3player $rgb(117,169,255) 1 5 60 290 11
drawrect -r @mp3player $rgb(0,0,0) 1 5 63 290 5
drawfill -r @mp3Player $rgb(128,128,255) $rgb(0,0,0) 6 64
var %x = $round($calc(($1 / 100) *240 +5),0), %p = $round($calc(($1 / 100) *240 +5),0)
if (%x < 5) var %x = 5
if (%x > 245) var %x = 245
drawrect -rf @mp3player $rgb(0,128,192) 1 %x 60 50 11
drawrect -r @mp3player $rgb(0,0,0) 1 %x 60 50 11
if ($2 == Moved) {
var %length = $sound($insong.fname).length, %pos = $insong.pos, %song = $insong.fname
var %time = $round($calc(%length * ($1 / 100)),0)
splay seek %time
}
}
alias -l moveposbar {
if ($mouse.key & 1) {
.timermoveposbar -om 1 50 moveposbar $calc($mouse.dx -$window($active).x)
var %p = $calc($1 -5)
if (%p < 0) var %p = 0
if (%p > 290) var %p = 290
var %p = $round($calc((%p / 290) * 100),0)
if ($mouse.key & 1) posbar %p $iif($2 == Moved,Moved)
}
}
alias -l movevolbar {
if ($mouse.key & 1) {
.timermovevolbar -om 1 50 movevolbar $calc($mouse.dx -$window($active).x)
var %p = $calc($1 -140)
if (%p < 0) var %p = 0
if (%p > 155) var %p = 155
var %p = $round($calc((%p / 155) * 100),0)
if ($mouse.key & 1) volbar %p $iif($2 == Moved,Moved)
}
}
alias -l volbar {
if ($1 !isnum) tokenize 32 0
drawrect -rf @mp3player $rgb(117,169,255) 1 140 40 155 11
drawrect -r @mp3Player 0 1 140 43 155 5
drawfill -r @mp3player $rgb(128,128,255) 0 141 44
var %x = $round($calc(($1 / 100) *155 +140),0)
if (%x < 140) var %x = 140
if (%x > 275) var %x = 275
drawrect -rf @mp3player $rgb(000,128,192) 1 %x 40 20 11
drawrect -r @mp3player 0 1 %x 40 20 11
if ($2 == Moved) vol -v $int($calc(($1 / 100) *65535))
}
alias -l scrollbar {
if (!$isid) { return }
else {
var %i = 1
var %win = $1
drawrect -rf %win $rgb(128,128,255) 1 $calc($2 + 4) $3 $calc($4 - 7) $5
drawrect -r %win $rgb(0,0,0) 1 $calc($2 + 4) $3 $calc($4 - 7) $5
draw.buffer $1 $10
while ($hget(scrollbar. $+ $1,%i)) { .dll WhileFix.dll WhileFix . | inc %i }
hadd -m scrollbar. $+ $1 %i $+($2,/,$3,/,$4,/,$5,/,$6,/,$7,/,$8,/,$9,/,$10,/,$11)
}
}
alias -l draw.scroll {
var %win = $1,%name = $2,%pos = $3
tokenize 47 $hget(scrollbar. $+ %win,%name)
var %sep = $calc($iif($line($9,0) <= $10 ,1,$iif($calc($10 / $line($9,0)) < 0.05,0.05,$calc($10/ $line($9,0)))))
var %x $1, %y $calc(((%pos / 100 * $4) * $calc(1 - %sep)) + $2), %w $3, %h $ceil($calc($4 * %sep))
drawrect -rf %win $rgb(255,255,255) 1 $1 $2 $calc($3 -1) $4
drawrect -rf %win $rgb(128,128,255) 1 $calc($1 + 4) $2 $calc($3 - 7) $4
drawrect -r %win $rgb(0,0,0) 1 $calc($1 + 4) $2 $calc($3 - 7) $4
drawrect -rf %win $rgb(0,128,192) 1 %x %y %w %h
drawrect -r %win $rgb(0,0,0) 1 %x %y %w %h
drawline -rf %win $rgb(0,128,192) 1 $calc(%x + 1) $calc((%y + %h) - 2) $calc(%x + 1) $calc(%y + 1) $calc((%x + %w) - 1) $calc(%y + 1)
drawline -rf %win $rgb(0,128,192) 1 $calc(%x + 1) $calc((%y + %h) - 2) $calc((%x + %w) - 2) $calc((%y + %h) - 2) $calc((%x + %w) - 2) $calc(%y + 1)
drawdot %win
}
alias -l scroll.update {
if ($1 == 1 && $3 == @Mp3Player) {
draw.scroll $3 $1 $2
draw.buffer $3 $4
}
}
alias -l movewindow {
if ($mouse.key & 1) .timermovewindow -om 1 50 movewindow $1-
window $3 $calc($mouse.dx - $1) $calc($mouse.dy - $2)
}
alias -l dbuffer {
window -hl @buffer -1 -1 400 300
clear @buffer
var %x = 1
while ($readini(Mp3Player.ini,Dir,%x)) {
.dll WhileFix.dll WhileFix .
noop $findfile($readini(Mp3Player.ini,Dir,%x),*.mp3,0,aline -n @buffer $gmt($calc($sound($1-).length / 1000),nn:ss) - $nopath($left($1-,-4)) ® $longfn($1-))
inc %x
}
}
alias -l draw.buffer {
var %win = $1, %win2 = $2, %pos = $3
if ($hget(scrollbar. $+ %win,1)) { tokenize 47 $ifmatch }
if ($line(%win2,0) <= 10) set %songnum $round($calc(($mouse.y - $2) / $4 * $line(%win2,0)),0)
elseif ($line(%win2,0) > 10) { set %songnum $ceil($calc(($mouse.y - $2) / $4 * $calc($line(%win2,0) - 9)))) }
if (%songnum == 0) { set %songnum 1 }
if (%t) { set %songnum $ifmatch }
if (%pos) { set %songnum %pos }
if ($window(@Mp3Player)) && (%win == @Mp3Player) {
drawrect -rfn %win $rgb(255,255,255) 1 6 104 276 241
var %x2 = %songnum
var %x = 1
while (%x <= 18) {
.dll WhileFix.dll WhileFix .
if ($gettok($line(%win2,%x2),1,174) !isnum) {
if ($gettok($line(%win2,%x2),1,174)) drawtext -rnc %win $rgb(0,128,192) "Tahoma" -7 9 $calc((13 * %x) + 93) 271 14 $gettok($line(%win2,%x2),1,174)
}
inc %x
inc %x2
}
}
drawdot %win
}
on *:KEYDOWN:@Mp3Player:*: {
if ($keyval == 40) HighLight $calc(%@Mp3player +15) @mp3player @buffer
elseif ($keyval == 38) HighLight $calc(%@mp3player -10) @mp3player @buffer
elseif ($keyval == 13) Play %song
elseif ($keyval == 80) splay $iif($insong.pause == $true,resume,pause)
elseif ($keyval == 77) Checkmute
}
on *:Close:@Mp3Player: Exit
alias -l Exit {
unset %p
unset %song
unset %songnum
splay stop
}
alias -l HighLight {
var %mouse.y = $1, %win = $2, %win2 $3
if (%win == @Mp3Player) {
var %h = $calc($height(T,Tahoma,-7) + 2)
var %p = $calc($int($calc((%mouse.y - 106) / %h)) + $iif(%songnum,%songnum,1))
var %z = $int($calc((%mouse.y - 106) / %h))
if (%p > $line(%win2,0)) {
var %p = 1
set $+(%,%win) 107
}
set %song $line(%win2,%p)
if ($($+(%,%win),2) < 328) {
drawreplace -nr %win $rgb(255,255,255) $rgb(255,255,255) 6 $($+(%,%win),2) 275 13
drawrect -rn %win $rgb(255,255,255) 1 6 $($+(%,%win),2) 275 13
}
set $+(%,%win) $calc((%z * 13) + 106)
if ($4 == Play) Play %song
if ($($+(%,%win),2) > 327) halt
drawreplace -nr %win $rgb(255,255,255) $rgb(255,255,255) 6 $calc((%z * 13) + 106) 275 13
drawrect -nr %win $rgb(117,169,255) 1 6 $calc((%z * 13) + 106) 275 13
}
drawdot %win
}
alias -l Play {
if ($insong.pause == $true) splay resume
elseif ($1) {
splay -p $gettok($1-,2,174)
.timerMp3Player -om 0 250 /Mtime
}
}
alias -l Mtime {
if ($window(@Mp3Player)) {
drawrect -fr @mp3player $rgb(255,255,255) 1 246 21 48 15
if ($insong.fname) {
var %song = $nopath($left($insong.fname,-4))
drawtext -r @mp3player $rgb(117,169,255) Tahoma 11 251 21 $gmt($calc($insong.pos / 1000),nn:ss)
drawrect -fr @mp3player $rgb(255,255,255) 1 6 21 233 15
drawtext -r @mp3player $rgb(117,169,255) Tahoma 11 7 21 $left(%song,43) $+ $iif($len(%song) > 43,...)
drawrect -rf @Mp3Player $rgb(255,255,255) 1 5 40 100 17
drawrect -r @Mp3Player $rgb(0,0,0) 1 5 40 100 17
drawtext -r @Mp3Player $rgb(117,169,255) Tahoma 11 7 41 $sound($insong.fname).bitrate $+ KBps $int($calc($sound($insong.fname).sample /1000)) $+ KHz
posbar $round($calc(($insong.pos /$sound($insong.fname).length)*100),0)
}
else posbar 0
}
else .timerMp3Player off
}
on *:MP3END: {
if ($window(@Mp3Player)) {
if ($readini(Mp3Player.ini,Settings,Repeat) != On) HighLight $calc(%@mp3player +15) @mp3player @buffer Play
Play %song
}
}
alias -l Scroller {
var %mouse.x $2, %mouse.y $$1, %table = $3, %window = $4
var %r = 1
while ($hget(scrollbar. $+ %table,%r)) {
.dll WhileFix.dll WhileFix .
tokenize 47 $ifmatch
if ($inrect(%mouse.x,%mouse.y,$1,$2,$3,$4)) scroll.update %r $ceil($calc(((%mouse.y - $2) / $4) * 100)) %table %window
inc %r
}
}
alias -l seeksong {
if ($mouse.key & 1) {
.timerseeksong -om 1 50 seeksong $1
splay seek $calc($insong.pos $iif($1 == up,+,-) 300)
}
}
alias -l CheckMute {
if ($vol(master).mute == $false) {
drawfill -r @mp3Player $rgb(17,69,255) $rgb(255,255,255) 206 80
vol -vu1
}
else {
drawfill -r @mp3Player $rgb(117,169,255) $rgb(255,255,255) 206 80
vol -vu2
}
button 205 78 20 20 W $rgb(255,255,255) Webdings 8
drawdot @mp3player
}
alias -l CheckRepeat {
if ($readini(Mp3Player.ini,Settings,Repeat) != on) {
drawfill -r @mp3Player $rgb(17,69,255) $rgb(255,255,255) 187 80
writeini Mp3Player.ini Settings Repeat on
}
else {
drawfill -r @mp3Player $rgb(117,169,255) $rgb(255,255,255) 187 80
writeini Mp3Player.ini Settings Repeat off
}
button 185 78 20 20 ` $rgb(255,255,255) Webdings 8
drawdot @mp3player
}
dialog -l DelDir {
title "Delete Directory"
size -1 -1 200 87
option dbu
list 1, 0 0 200 74, size vsbar
button "Delete", 2, 1 74 37 12
}
on *:Dialog:DelDir:*:*: {
if ($devent == init) {
var %x = 1
while ($readini(Mp3Player.ini,Dir,%x)) {
.dll WhileFix.dll WhileFix .
did -a $dname 1 $readini(Mp3Player.ini,Dir,%x)
inc %x
}
}
elseif ($devent == sclick) {
if ($did == 2) {
if ($did(1).seltext) {
remini Mp3Player.ini Dir $did(1).sel
did -r $dname 1
var %x = 1
while ($readini(Mp3Player.ini,Dir,%x)) {
.dll WhileFix.dll WhileFix .
did -a $dname 1 $readini(Mp3Player.ini,Dir,%x)
inc %x
}
}
}
}
}