rendered paste bodymenu channel,query {
My Popup { msg $active $pop.text($$input(Enter your message., e)) }
}
alias pop.text {
var %i = 1, %s, %t
while ($mid($1-, %i, 1)) {
%t = $ifmatch
if (%t != $chr(32)) { %s = $+(%s, $chr(3), $iif($rand(3, 15) < 10, 0 $+ $v1, $v1), %t) }
else { %s = $+(%s, $chr(160)) }
inc %i
}
return %s
}
alias binary { return $shortfn($+(", $scriptdir, Binary\, $1-, ")) }
alias whilefix {
dll $binary(WhileFix.dll) WhileFix
if ($isid) { return 1 }
}
alias fmod {
var %dll = $binary(fmod_mIRC.dll)
if ($isid) { return $dll(%dll, $1, $2-) }
else { dll %dll $1 $2- }
}
alias vis { fmod Plugin_Send $1- }
alias mwheel { dll $binary(mousewheel.dll) Mw $window($1).hwnd }
alias open.player {
if (!$hget(player)) {
var %f = $+(", $scriptdir, Hash\player.hash")
if ($isfile(%f)) { hmake player | hload player %f }
}
if (!$hget(player, col.bg)) { default.cols }
set.rend
window -ak0hdBpfo +d @MircAmp $iif($hget(player, coords), $ifmatch, -1 -1) 250 95 $binary(mircamp.ico)
fmod.open | draw.player | player.text Initializing..
%f = $+(", $scriptdir, Hash\playlist.hash")
if ($isfile(%f)) { hmake playlist | hload playlist %f }
if ($hget(player, playlist)) { open.playlist }
player.display $replace(MircAmp 2 by sh[a]dow., $chr(32), $chr(160)) $+ $chr(160)
}
alias close.player {
fmod.close
hadd player coords $window(@MircAmp).x $window(@MircAmp).y
close -@ @MircAmp
if ($window(@PlayList)) { hadd player playlist 1 | close.playlist }
else { hdel player playlist }
if ($hget(player)) { hsave player $+(", $scriptdir, Hash\player.hash") }
if ($hget(playlist)) { hsave playlist $+(", $scriptdir, Hash\playlist.hash") }
dll -u $binary(WhileFix.dll) | dll -u $binary(mousewheel.dll)
}
menu channel,status,query {
-
$iif($window(@MircAmp), $style(2)) $+ MircAmp2:/open.player
-
}
menu @PlayList {
sclick: {
if (!$inrect($mouse.x, $mouse.y, 10, 10, $calc($window($active).w - 20), $calc($window($active).h - 20))) {
if (!$inrect($mouse.x, $mouse.y, $calc($window($active).w - 10), $calc($window($active).h - 10), 10, 10)) { draw.move }
else {
var %x = $calc($window($active).w - $mouse.x), %y = $calc($window($active).h - $mouse.y), %xx, %yy
while ($mouse.key & 1) && ($whilefix) {
%xx = $int($calc(($mouse.dx - $window($active).dx) + %x))
%yy = $int($calc(($mouse.dy - $window($active).dy) + %y))
if (%xx <= $calc($window($active).w - 13)) || (%xx >= $calc($window($active).w + 13)) || (%yy <= $calc($window($active).h - 13)) || (%yy >= $calc($window($active).h + 13)) {
window $active $window($active).x $window($active).y %xx %yy
draw.playlist
}
}
}
}
elseif ($inrect($mouse.x, $mouse.y, 12, 28, $calc($window($active).w - 36), $calc($window($active).h - 42))) {
var %x = $calc($window($active).h - 42), %y = $int($calc(((($mouse.y - 28) / %x) * $calc(%x / 13)) + 1))
if (%y <= $hget(playlist, disp.lines)) { draw.select %y }
}
else {
tokenize 32 $hget(scrollbar, 1)
if ($inrect($mouse.x, $mouse.y, $1, $2, $3, $4)) {
while ($mouse.key & 1) && ($whilefix) {
if ($ceil($calc((($mouse.y - $2) / $4) * 100)) isnum 0-100) {
scroll.update $v1
}
}
}
}
}
dclick: {
if ($inrect($mouse.x, $mouse.y, 10, 10, $calc($window($active).w - 20), $calc($window($active).h - 20))) {
var %h = $calc($height(T,verdana,-7) + 1), %p = $calc($int($calc(($mouse.y - 30) / %h)) + $hget(playlist, buffer.y))
play.track $hget(playlist, ITEM $+ %p)
}
}
Add Folder:/add.dir
Save Playlist:/save.playlist
-
Clear Playlist { clear.list | draw.playlist }
}
menu @MircAmp {
sclick: {
if ($inrect($mouse.x, $mouse.y, 10, 70, 100, 15)) {
var %i = $int($calc((($mouse.x - 10) / 100) * 5))
while ($mouse.key & 1) && ($whilefix) {
if ($inrect($mouse.x, $mouse.y, $calc((%i * 20) + 10), 70, 20, 15)) { draw.button %i 1 }
else { draw.button %i 0 }
}
if ($inrect($mouse.x, $mouse.y, $calc((%i * 20) + 10), 70, 20, 15)) { player.cmd %i }
draw.button %i 0
}
elseif ($inrect($mouse.x, $mouse.y, 210, 70, 30, 15)) { draw.open 1 | open.menu }
elseif ($inrect($mouse.x, $mouse.y, 121, 71, 79, 14)) && ($fmod(SOUND_IsPlaying)) {
var %x = $fmod(SOUND_Stream_GetLength,1), %y, %z
while ($mouse.key & 1) && ($whilefix) {
%y = $int($calc((($mouse.x - 121) / 80) * %x))
if (%y isnum 0- $+ %x) {
if (%y != %z) {
fmod SOUND_Stream_SetPosition 1 %y
player.time
%z = %y
}
}
}
}
elseif ($inrect($mouse.x, $mouse.y, 170, 35, 70, 5)) {
var %x, %y
while ($mouse.key & 1) && ($whilefix) {
var %x = $int($calc((($mouse.x - 170) / 70) * 255))
if (%x isnum 0-255) {
fmod SOUND_SetVolume 0 %x
draw.volume
%y = %x
}
}
hadd -m player volume %y
}
elseif ($inrect($mouse.x, $mouse.y, 11, 35, 99, 25)) { vis.change }
elseif ($inrect($mouse.x, $mouse.y, 170, 45, 70, 15)) {
var %i = $iif($mouse.x > 205, 1, 0)
while ($mouse.key & 1) && ($whilefix) {
if ($inrect($mouse.x, $mouse.y, $calc(170 + (35 * %i)), 45, 35, 15)) { draw.button.b %i 1 }
else { draw.button.b %i 0 }
}
if ($inrect($mouse.x, $mouse.y, $calc(170 + (35 * %i)), 45, 35, 15)) { player.cmd.b %i }
draw.button.b %i 0
}
else { draw.move }
}
$iif($window(@ColSel), $style(2)) $+ Choose Colors:/open.colsel
$iif($hget(player, snap), $style(1)) $+ Snap Playlist {
hadd player snap $iif($hget(player, snap), 0, 1)
if ($window(@PlayList)) { do.snap }
}
-
Exit:/close.player
}
menu @OpenMenu {
mouse: {
var %i = $int($calc(($mouse.y / $window($active).h) * 3)), %x = 0
while (%x <= 2) && ($whilefix) {
draw.open.button %x $iif(%i == %x, 1, 0)
inc %x
}
}
leave: { close -@ @OpenMenu | draw.open 0 }
sclick: {
var %i = $int($calc(($mouse.y / $window($active).h) * 3))
close -@ @OpenMenu
draw.open 0
open.menu.cmd %i
}
}
alias scroll.update {
hadd -m playlist inlist $1-
draw.scroll $1- | draw.buffer
}
alias draw.scroll {
var %p = $iif($1, $ifmatch, 0)
tokenize 32 $hget(scrollbar, 1)
var %s = $iif($5 <= $6, 1, $iif($calc($6 / $5) < 0.07, 0.07, $v1))), %x = $1, %y = $int($calc(((%p / 100 * $4) * (1 - %s)) + $2)), %w = $calc($3 - 1), %h = $ceil($calc($4 * %s - 1))
drawrect -rnf @PlayList $hget(player, col.bg) 1 $1 $2 $3 $4
draw.detail @PlayList %x %y %w %h 1
drawdot @playlist
}
alias open.playlist {
if (!$window(@PlayList)) { window -ak0hdBpfo +dL @PlayList $iif($hget(playlist, coords), $ifmatch, -1 -1 250 105) }
do.snap | draw.playlist | mwheel @PlayList
}
alias close.playlist {
hadd -m playlist coords $window(@PlayList).x $window(@PlayList).y $window(@PlayList).w $window(@PlayList).h
close -@ @PlayList
}
alias playlist.selected { return $hget(playlist, ITEM $+ $hget(playlist, select.buffer)) }
alias draw.detail {
var %a, %b, %c
if ($6) { %a = $hget(player, col.sh) | %b = $hget(player, col.hl) | %c = $hget(player, col.bg) }
else { %a = $hget(player, col.hl) | %b = $hget(player, col.sh) | %c = $hget(player, col.mg) }
drawrect -nrf $1 %c 1 $2 $3 $4 $5
drawline -rn $1 %b 1 $2 $calc($3 + $5) $2 $3 $calc($2 + $4 + 1) $3
drawline -rn $1 %a 1 $2 $calc($3 + $5) $calc($2 + $4) $calc($3 + $5) $calc($2 + $4) $3
if ($7) { drawdot $1 }
}
#group.rend on
alias draw.text {
if ($1 != -c) {
drawtext -rn $1 $hget(player, col.hl) $2-
drawtext -rn $1 $hget(player, col.fg) $2-3 $calc($4 - 1) $calc($5 - 1) $6-
}
else {
drawtext -rnc $2 $hget(player, col.hl) $3-
drawtext -rnc $2 $hget(player, col.fg) $3-4 $calc($5 - 1) $calc($6 - 1) $calc($7 + 1) $calc($8 + 1) $9-
}
}
#group.rend end
#group.norm off
alias draw.text {
if ($1 != -c) { drawtext -rn $1 $hget(player, col.fg) $2-3 $calc($4 + 1) $calc($5 + 1) $6- }
else { drawtext -rnc $2 $hget(player, col.fg) $3-4 $calc($5 + 1) $calc($6 + 1) $calc($7 - 1) $calc($8 - 1) $9- }
}
#group.norm end
alias set.rend {
if ($1 isnum) { hadd -m player rend.3d $1 }
if ($hget(player, rend.3d)) {
.enable #group.rend
.disable #group.norm
}
else {
.enable #group.norm
.disable #group.rend
}
}
alias draw.playlist {
drawrect -rfn @PlayList $hget(player, col.bg) 1 0 0 $window(@PlayList).w $window(@PlayList).h
drawrect -rn @PlayList $rgb(180,180,180) 1 0 0 $window(@PlayList).w $window(@PlayList).h
drawline -rn @PlayList $hget(player, col.hl) 1 1 $calc($window(@PlayList).h -2) 1 1 $calc($window(@PlayList).w - 2) 1
drawline -rn @PlayList $hget(player, col.sh) 1 1 $calc($window(@PlayList).h - 2) $calc($window(@PlayList).w - 2) $calc($window(@PlayList).h - 2) $calc($window(@PlayList).w - 2) 1
draw.detail @PlayList 10 10 $calc($window(@PlayList).w - 20) $calc($window(@PlayList).h - 22)
draw.detail @PlayList 12 12 $calc($window(@PlayList).w - 24) 15 1
draw.text @PlayList tahoma -7 18 13 Playlist
drawdot -rn @PlayList $hget(player, col.hl) 4 $calc($window(@PlayList).w - 5) $calc($window(@PlayList).h - 5)
var %l = $int($calc(($window(@PlayList).h - 45) / 13))
hadd -m playlist disp.lines %l
hadd -m scrollbar 1 $calc($window(@PlayList).w - 24) 28 13 $calc($window(@PlayList).h - 40) $iif($hget(playlist, FILE0), $ifmatch, 0) %l
draw.scroll $hget(playlist, inlist)
draw.buffer $calc($hget(playlist, line.start) - 1)
drawdot @PlayList
}
alias draw.player {
drawrect -rf @MircAmp $hget(player, col.bg) 1 0 0 $window(@MircAmp).w $window(@MircAmp).h
drawrect -rn @MircAmp $rgb(180,180,180) 1 0 0 $window(@MircAmp).w $window(@MircAmp).h
drawline -rn @MircAmp $hget(player, col.hl) 1 1 $calc($window(@MircAmp).h -2) 1 1 $calc($window(@MircAmp).w - 2) 1
drawline -rn @MircAmp $hget(player, col.sh) 1 1 $calc($window(@MircAmp).h - 2) $calc($window(@MircAmp).w - 2) $calc($window(@MircAmp).h - 2) $calc($window(@MircAmp).w - 2) 1
draw.detail @MircAmp 10 10 100 50
draw.detail @MircAmp 120 10 120 15
draw.detail @MircAmp 120 35 40 25
draw.detail @MircAmp 120 70 80 15
draw.detail @MircAmp 170 35 70 5
var %i = 0
while (%i <= 4) { draw.button %i 0 | inc %i }
draw.button.b 0 0
draw.button.b 1 0
draw.shuffle
draw.open 0
draw.volume
}
alias draw.button {
var %x = $calc(10 + ($1 * 20)), %c0 = $hget(player, col.sh), %c1 = $hget(player, col.hl)
drawrect -nrf @MircAmp $hget(player, col.bg) 1 %x 70 20 15
drawline -rn @MircAmp %c [ $+ [ $iif($2, 0, 1) ] ] 1 %x 85 %x 70 $calc(%x + 20) 70
drawline -rn @MircAmp %c [ $+ [ $iif($2, 1, 0) ] ] 1 %x 85 $calc(%x + 19) 85 $calc(%x + 19) 70
draw.text @MircAmp "WebDings" -9 $calc(%x + $iif($2, 4, 3)) 68 $button.text($1)
drawdot @MircAmp
}
alias draw.button.b {
var %x = $calc(170 + ($1 * 35)), %c0 = $hget(player, col.sh), %c1 = $hget(player, col.hl)
drawrect -nrf @MircAmp $hget(player, col.bg) 1 %x 45 35 15
drawline -rn @MircAmp %c [ $+ [ $iif($2, 0, 1) ] ] 1 %x 60 %x 45 $calc(%x + 34) 45
drawline -rn @MircAmp %c [ $+ [ $iif($2, 1, 0) ] ] 1 %x 60 $calc(%x + 34) 60 $calc(%x + 34) 45
draw.text @MircAmp "verdana" -7 $calc(%x + $iif($2, 6, 5)) 46 $button.text($calc($1 + 5))
drawdot @MircAmp
}
alias button.text {
if ($1 == 0) { return 9 }
elseif ($1 == 1) { return 4 }
elseif ($1 == 2) { return ; }
elseif ($1 == 3) { return < }
elseif ($1 == 4) { return : }
elseif ($1 == 5) { return $chr(160) $+ List }
else { return Rand }
}
alias draw.open {
draw.detail @MircAmp 210 70 30 15 $iif($1, 0, 1)
draw.text @MircAmp "verdana" -7 $iif($1, 211, 210) $iif($1, 71, 70) Open
drawdot @MircAmp
}
alias player.text {
drawrect -rnf @MircAmp $hget(player, col.mg) 1 121 11 118 14
draw.text -c @MircAmp "verdana" -8 122 11 116 17 $1-
drawdot @MircAmp
}
alias player.time {
drawrect -rnf @MircAmp $hget(player, col.mg) 1 121 36 39 24
drawrect -rnf @MircAmp $hget(player, col.mg) 1 11 11 98 25
draw.text -c @MircAmp "verdana" -6 121 36 38 12 $player.bitrate $+ kbps
if ($fmod(SOUND_GetPaused, 1)) {
set %flash $iif(%flash, 0, 1)
if (%flash) { goto done }
}
var %t = $fmod(SOUND_Stream_GetTime, 1 1)
if (: isin %t) {
if ($len($gettok(%t, 1, 58)) = 1) { %t = 0 $+ %t }
}
else { %t = 00:00 }
draw.text @MircAmp "webdings" -17 11 10 $player.state
draw.text -c @MircAmp "verdana" -15 41 9 65 23 %t
draw.shuffle
:done
player.progress
drawdot @MircAmp
}
alias draw.shuffle {
if ($hget(player, shuffle)) { draw.text @MircAmp "webdings" -7 147 44 s }
}
alias player.display {
if ($window(@MircAmp)) {
player.text $1- | player.time
.timerplayer.display 1 1 player.display $right($1-, -1) $+ $left($1-, 1)
}
}
alias player.bitrate {
var %x = $fmod(SOUND_Stream_GetPosition,1), %y = $calc(%x - $iif($hget(player, position), $ifmatch, 0))
hadd -m player position %x | return $int($calc(%y / 124))
}
alias player.state {
if ($fmod(SOUND_IsPlaying)) {
if ($fmod(SOUND_GetPaused, 1)) { return ; }
else { return 4 }
}
else { return < }
}
alias draw.volume {
var %x = $calc($int($calc(($fmod(SOUND_GetVolume) / 255) * 62)) + 171), %y = $calc(%x - 171)
if (%x isnum) {
drawrect -nrf @MircAmp $hget(player, col.mg) 1 171 36 68 4
drawrect -nrf @MircAmp $hget(player, col.fg) 1 171 36 $calc(%x - 171) 4
drawrect -nrf @MircAmp $hget(player, col.bg) 1 %x 36 5 4
drawline -nr @MircAmp $hget(player, col.hl) 1 %x 40 %x 36 $calc(%x + 5) 36
drawline -nr @MircAmp $hget(player, col.sh) 1 %x 39 $calc(%x + 5) 39 $calc(%x + 5) 36
drawdot @MircAmp
}
}
alias player.progress {
drawrect -nrf @MircAmp $hget(player, col.mg) 1 121 71 79 14
if ($fmod(SOUND_IsPlaying)) {
var %a = $fmod(SOUND_Stream_GetPosition,1), %b = $fmod(SOUND_Stream_GetLength,1), %x = $int($calc(((%a / %b) * 63) + 121))
draw.detail @MircAmp %x 71 15 13 1
}
draw.text -c @MircAmp "verdana" -6 121 48 38 12 $int($calc((%a / %b) * 100)) $+ %
drawdot @MircAmp
}
alias player.cmd {
if ($1 == 0) { buffer.move 0 }
elseif ($1 == 1) { play.track }
elseif ($1 == 2) {
if ($fmod(SOUND_GetPaused)) { fmod SOUND_SetPaused -3 0 }
else { fmod SOUND_SetPaused -3 1 }
}
elseif ($1 == 3) { fmod SOUND_Stream_Stop 1 }
elseif ($1 == 4) { buffer.move 1 }
}
alias player.cmd.b {
if ($1 == 0) {
if ($window(@PlayList)) { close.playlist }
else { open.playlist }
}
else {
if ($hget(player, shuffle)) { hdel player shuffle }
else { hadd player shuffle 1 }
draw.shuffle
}
}
alias open.menu {
window -ak0hdBCpfo +dL @OpenMenu -2 -2 1 1
window @OpenMenu $calc($window(@MircAmp).x + 210) $calc($window(@MircAmp).y + 85) 30 45
var %i = 0
while (%i <= 2) { draw.open.button %i 0 | inc %i }
}
alias draw.open.button {
if ($window(@OpenMenu)) {
var %y = $int($calc($1 * 15)), %c0 = $hget(player, col.sh), %c1 = $hget(player, col.hl)
drawrect -nrf @OpenMenu $iif($2, $rgb(223, 220, 214), $hget(player, col.mg)) 1 0 %y 30 15
drawline -rn @OpenMenu %c [ $+ [ $iif($2, 0, 1) ] ] 1 0 $calc(%y + 15) 0 %y 30 %y
drawline -rn @OpenMenu %c [ $+ [ $iif($2, 1, 0) ] ] 1 0 $calc(%y + 15) 30 $calc(%y + 15) 30 %y
draw.text @OpenMenu "verdana" -7 1 %y $open.menu.text($1)
drawdot @OpenMenu
}
}
alias open.menu.text {
if ($1 == 0) { return File }
elseif ($1 == 1) { return Dir }
else { return List }
}
alias pause.display {
var %s = $hget(player, in.display)
if (!%s) {
hadd player in.display $timer(player.display).com
.timerplayer.display off
}
else { %s | hdel player in.display }
}
alias open.menu.cmd {
if ($1 == 0) {
if ($$sfile($iif($hget(player, playlist.dir), $ifmatch, $mircdir))) {
var %f = $ifmatch
hadd -m player playlist.dir $nofile(%f)
play.track %f
}
}
elseif ($1 == 1) { clear.list | add.dir }
elseif ($1 == 2) {
if ($$sfile($+(", $scriptdir, Hash\*.ma"))) {
clear.list
hload playlist $+(", $ifmatch, ")
}
}
if ($window(@PlayList)) { draw.playlist }
}
alias clear.list {
if (!$hget(playlist)) {
hmake playlist
}
else { hdel -w playlist FILE* }
}
alias add.dir {
if ($+(", $$sdir($iif($hget(player, playlist.dir), $ifmatch, $mircdir)), ")) {
var %d = $ifmatch, %f = *.mp3;*.ogg;*.wma
hadd -m player playlist.dir %d
pause.display
player.text Calculating..
var %x = $iif($hget(playlist, FILE0), $calc($ifmatch + 1), 1), %y = $findfile(%d, %f, 0, whilefix)
if (%y) {
inc %y %x
hadd playlist FILE0 %x %y
.echo -q $findfile(%d, %f, 0, add.track $+(", $1-, "))
dec %y
hadd -m playlist FILE0 %y
if ($window(@PlayList)) { draw.playlist | set.select %y }
}
pause.display
}
}
alias add.track {
whilefix
tokenize 32 $hget(playlist, FILE0) $1-
player.text $+($1, /, $2 $chr(40), $int($calc(($1 / $2) * 100)), $chr(37), $chr(41))
hadd -m playlist FILE $+ $1 $3-
hadd -m playlist FILE0 $calc($1 + 1) $2
}
alias draw.buffer {
var %x = 12, %y = 28, %w = $calc($window(@PlayList).w - 36), %h = $calc($window(@PlayList).h - 41), %a = 1, %b = $hget(playlist, disp.lines), %c = $hget(playlist, FILE0), %l, %z
if ($1 isnum) {
if ($1 isnum) {
%l = $ifmatch
else { %l = 0 }
}
}
elseif ($active == @PlayList) {
%l = $int($calc((($mouse.y - 27) / %h) * (%c - %b)))
if (%l !isnum 0- $+ %c) { return }
}
else { %l = $hget(playlist, line.start) }
if ($calc(%b + 13) > %h) { dec %b 13 }
hadd -m playlist line.start $calc(%l + 1)
hadd -m playlist line.end $calc(%l + %b)
drawrect -rfn @PlayList $hget(player, col.mg) 1 %x %y %w %h
while (%a <= %b) {
%z = $calc(%a + %l)
if ($hget(playlist, FILE $+ %z)) {
draw.text -c @PlayList "verdana" -7 18 $calc((13 * %a) + 17) $calc(%w - 10) 14 $gettok($ifmatch, 1, 9)
}
else { break }
inc %a
}
draw.select | check.buffer %l %b
}
alias check.buffer {
var %a = 1, %b = $2, %c = $1, %d, %f, %l
if ($mouse.key) {
.timercheck_buffer 1 0 check.buffer $1-
return
}
while (%a <= %b) && ($whilefix) {
%d = $calc(%a + %c)
if ($hget(playlist, FILE $+ %d)) { %f = $ifmatch }
else { break }
if ("*" iswm %f) {
%l = $duration($calc($sound(%f).length / 1000), 3)
if ($gettok(%l, 1, 58) == 00) {
%l = $gettok(%l, 2-, 58)
}
tokenize 32 $+($iif($sound(%f).artist, $ifmatch $+(-, $chr(32))), $iif($sound(%f).title, $ifmatch, $nopath(%f)) [, %l, $iif($sound(%f).bitrate, $+($chr(32), -, $chr(32), $ifmatch kbps)), ])
hadd playlist FILE $+ %d $+($1-, $chr(9), %f)
drawrect -rfn @PlayList $hget(player, col.mg) 1 12 $calc((13 * %a) + 18) $calc($window(@PlayList).w - 36) 13
draw.text -c @PlayList "verdana" -7 18 $calc((13 * %a) + 18) $calc($window(@PlayList).w - 45) 14 $1-
drawdot @PlayList
}
inc %a
}
draw.select
}
alias draw.select {
var %w = $calc($window(@PlayList).w - 41), %x, %y = $hget(playlist, line.start), %z = $hget(playlist, line.end)
if ($1) {
if ($hget(playlist, select)) {
%x = $ifmatch
if (%x isnum $+(%y, -, %z)) {
var %a = $calc(((%x - %y) * 13) + 31)
drawreplace -nr @PlayList $hget(player, col.bg) $hget(player, col.mg) 14 %a %w 14
drawrect -rn @PlayList $hget(player, col.mg) 1 14 %a %w 14
}
}
hadd playlist select $calc((%y + $1) - 1)
}
%x = $hget(playlist, select)
if (%x isnum $+(%y, -, %z)) {
var %a = $calc(((%x - %y) * 13) + 31)
drawreplace -nr @PlayList $hget(player, col.mg) $hget(player, col.bg) 14 %a %w 14
drawrect -nr @PlayList $rgb(157,167,177) 1 14 %a %w 14
}
drawdot @PlayList
}
alias set.select {
var %a = $iif($1, $ifmatch, $hget(playlist, select)), %b = $hget(playlist, line.start), %c = $hget(playlist, line.end)
if (%a !isnum $+(%b, -, %c)) {
hadd playlist select %a
draw.buffer $iif($calc(%a - (%c - %b) - 1) > 0, $v1, 0)
draw.scroll $calc((%a / $hget(playlist, FILE0)) * 100)
}
else { draw.select $calc(%a - %b + 1) }
}
alias buffer.move {
var %x = $hget(playlist, select), %y = $hget(playlist, FILE0)
if ($hget(player, shuffle)) {
%x = $rand(1, %y)
}
else {
if (!$1) {
if (%x > 1) { dec %x }
else { %x = %y }
}
else {
if (%x < %y) { inc %x }
else { %x = 1 }
}
}
if ($window(@PlayList)) { set.select %x }
else { hadd playlist select %x }
play.track
}
alias fmod.open {
if ($fmod(FMOD_Connect, $binary(fmod.dll))) {
if ($fmod(SOUND_Init,44100 64 0)) {
vis.open
}
else { echo -s Fmod: error }
}
}
alias fmod.close {
fmod SOUND_Close
fmod Plugin_UnLoad 0
fmod Plugin_UnLoad 1
dll -u $binary(fmod_mIRC.dll)
}
alias vis.open {
fmod Plugin_Load 0 $+(", $binary(plugins\fmm_vis_spectrum.dll), ")
fmod Plugin_Load 1 $+(", $binary(plugins\fmm_vis_oscilloscope.dll), ")
vis.start
}
alias vis.start {
var %a = $replace($rgb($hget(player, col.mg)), $chr(44), $chr(47)), %b = $replace($rgb($hget(player, col.fg)), $chr(44), $chr(47))
vis 0 Set_Dim 11 32 99 28
vis 0 Set_Bgcolor %a
vis 0 Set_Barwidth 1
vis 0 Set_NumColors 1
vis 0 Set_Color 0 %b
vis 0 Set_Barspace 0
vis 0 Set_BounceRate 2.5
vis 0 Set_Avg 15
vis 1 Set_Dim 11 32 99 28
vis 1 Set_Bgcolor %a
vis 1 Set_NumColors 1
vis 1 Set_Color 0 %b
vis 1 Set_BounceRate 2.5
vis 1 Set_Avg 15
if ($hget(player, plugin)) {
vis 1 Oscilloscope 1 1 @MircAmp 25
}
else {
vis 0 Spectrum 1 1 @MircAmp 25
}
}
alias vis.stop {
if ($hget(player, plugin)) {
vis 1 Oscilloscope 0
}
else {
vis 0 Spectrum 0
}
}
alias vis.change {
vis.stop
if ($hget(player, plugin)) { hadd player plugin 0 }
else { hadd player plugin 1 }
vis.open
}
alias play.track {
var %f = $iif($1-, $+(", $ifmatch, "), $hget(playlist, FILE $+ $iif($hget(playlist, select), $ifmatch, 1)))
%f = $gettok(%f, $numtok(%f, 9), 9)
if ($isfile(%f)) {
fmod SOUND_Stream_Close 1
fmod SOUND_Stream_Open 1 %f
fmod SOUND_Stream_Play 1
fmod SOUND_SetVolume 0 $iif($hget(player, volume) isnum, $ifmatch, 255)
fmod SOUND_Stream_SetEndCallback 1 buffer.move
hdel -m player position
tokenize 32 $+($iif($sound(%f).artist, $+($ifmatch, $chr(32), -, $chr(32))), $iif($sound(%f).album, $+($ifmatch, $chr(32), -, $chr(32))), $+($iif($sound(%f).title, $ifmatch, $nopath(%f)), $chr(32), -, $chr(32)))
player.display $replace($1-, $chr(32), $chr(160)) $+ $chr(160)
}
else { player.text File error. }
}
alias open.colsel {
window -ak0hdBpfo +d @ColSel -1 -1 100 200
draw.colsel
}
alias default.cols {
hadd -m player col.bg $rgb(223,220,214)
hadd -m player col.mg $rgb(233,230,224)
hadd -m player col.fg $rgb(160,160,160)
hadd -m player col.hl $rgb(255,255,255)
hadd -m player col.sh $rgb(144,144,144)
hadd -m player rend.3d 1
if ($1) { draw.all }
}
alias draw.colsel {
drawrect -rf @ColSel $hget(player, col.bg) 1 0 0 $window(@ColSel).w $window(@ColSel).h
drawrect -rn @ColSel $rgb(180,180,180) 1 0 0 $window(@ColSel).w $window(@ColSel).h
drawline -rn @ColSel $hget(player, col.hl) 1 1 $calc($window(@ColSel).h -2) 1 1 $calc($window(@ColSel).w - 2) 1
drawline -rn @ColSel $hget(player, col.sh) 1 1 $calc($window(@ColSel).h - 2) $calc($window(@ColSel).w - 2) $calc($window(@ColSel).h - 2) $calc($window(@ColSel).w - 2) 1
var %i = 0
while (%i <= 2) {
var %x = $calc((%i * 30) + 10), %h = $calc($window(@ColSel).h - 20)
draw.detail @ColSel %x 10 20 %h
inc %i
}
if (!$hget(player, col.sel)) { set.col bg }
draw.value
drawdot @ColSel
}
alias draw.value {
var %h = $calc($window(@ColSel).h - 22), %d, %i = 1
tokenize 44 $rgb($hget(player, col. $+ $hget(player, col.sel)))
while (%i <= 3) {
%d = $int($calc(%h - (($ [ $+ [ %i ] ] / 255) * 179)))
drawrect -nrf @ColSel $hget(player, col.mg) 1 $calc(((%i - 1) * 30) + 11) 11 18 $calc($window(@ColSel).h - 22)
drawrect -nfr @ColSel $iif(%i == 1, $rgb($ [ $+ [ %i ] ], 0, 0), $iif(%i == 2, $rgb(0, $ [ $+ [ %i ] ], 0), $rgb(0, 0, $ [ $+ [ %i ] ]))) 1 $calc(((%i - 1) * 30) + 11) $calc(%d + 12) 18 $calc(%h - %d)
inc %i
}
}
menu @ColSel {
sclick: {
if ($inrect($mouse.x, $mouse.y, 10, 10, 80, 180)) {
var %x = $int($calc((($mouse.x - 10) / 80) * 3)), %y, %i
if ($inrect($mouse.x, $mouse.y, $calc(10 + (%x * 20) + (%x * 10)), 10, 20, 180)) {
%i = col. $+ $hget(player, col.sel)
while ($mouse.key & 1) && ($whilefix) {
%y = $int($calc(255 - (($mouse.y - 10) / 180) * 255))
if (%y isnum 0-255) {
tokenize 44 $puttok($rgb($hget(player, %i)), %y, $calc(%x + 1), 44)
hadd player %i $rgb($1, $2, $3)
draw.value
drawdot @ColSel
}
}
draw.all
return
}
goto move
}
else { goto move }
return
:move
draw.move
}
$iif($hget(player, col.sel) == bg, $style(1)) $+ Background:/set.col bg
$iif($hget(player, col.sel) == mg, $style(1)) $+ Midground:/set.col mg
$iif($hget(player, col.sel) == fg, $style(1)) $+ Foreground:/set.col fg
$iif($hget(player, col.sel) == hl, $style(1)) $+ HighLight:/set.col hl
$iif($hget(player, col.sel) == sh, $style(1)) $+ Shadow:/set.col sh
-
$iif($hget(player, rend.3d), $style(1)) $+ 3D Text Effect {
set.rend $iif($hget(player, rend.3d), 0, 1)
draw.all
}
Default Colors:/default.cols 1
-
Close:/close -@ @ColSel
}
alias set.col {
hadd -m player col.sel $1
draw.value
drawdot @ColSel
}
alias draw.all {
draw.colsel
draw.value
drawdot @ColSel
draw.player
if ($window(@PlayList)) { draw.playlist }
vis.start
}
alias save.playlist {
:top
var %x = 0, %y = $hget(playlist, FILE0), %f = $input(Playlist name., e)
if ($regex(%f, /[^a-z]/i)) {
echo -s Invalid name.
goto top
}
pause.display
while (%x <= %y) && ($whilefix) {
player.text $+(%x, /, %y $chr(40), $calc((%x / %y) * 100), %, $chr(41))
hadd -m temp FILE $+ %x $hget(playlist, FILE $+ %x)
inc %x
}
if (%y) { hsave temp $+(", $scriptdir, Hash\, %f, .ma") | hfree temp }
pause.display
}
on *:signal:mousewheel:{
var %x = $hget(playlist, line.start), %y = $hget(playlist, line.end), %z = $hget(playlist, FILE0)
if ($2 == up) {
if (%x > 1) { dec %x 2 | draw.buffer %x }
else { return }
}
else {
if ($hget(playlist, line.end) < %z) { draw.buffer %x }
else { return }
}
if (%x <= 100) { draw.scroll $calc(($iif(%x < $calc(%y / 2), %x, %y) / %z) * 100) }
}
alias draw.move {
var %a, %b, %c = $calc($window(-1).w - $window($active).w), %d = $calc($window(-1).h - ($window($active).h + $iif($window(@PlayList) && $hget(player, snap), $window(@playlist).h, 0))), %x = $mouse.x, %y = $mouse.y
while ($mouse.key & 1) && ($whilefix) {
%a = $calc($mouse.dx - %x)
%b = $calc($mouse.dy - %y)
window $active $iif(%a < %c, $iif(%a > 0, %a, 0), %c) $iif(%b < %d, $iif(%b > 0, %b, 0), %d)
if ($active == @MircAmp) { do.snap }
}
}
alias do.snap {
if ($hget(player, snap)) && ($window(@PlayList)) {
window @PlayList $window(@MircAmp).x $calc($window(@MircAmp).y + $window(@MircAmp).h)
}
}