menu * { 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 } } } } }