rendered paste bodyalias binary {
return $shortfn($+(", $scriptdir, Binary\, $1-, "))
}
alias whilefix {
dll $+(", $scriptdir, Binary, \WhileFix.dll, ") WhileFix
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 open.player {
window -ak0hdBCpfo +d @MircAmp -1 -1 250 95
draw.player
fmod.open
}
on *:close:@MircAmp: {
fmod.close
}
alias load.playlist {
if (!$window(@playlist.buffer)) { window -hl @playlist.buffer }
clear @playlist.buffer
var %i = 1
while ($read($1-, %i)) {
iline @playlist.buffer %i $ifmatch
inc %i
}
open.playlist
}
alias scrollbar {
if (!$isid) { return }
else {
drawrect -rnf $1 $6 1 $2 $3 $4 $5
hadd -m scrollbar. $+ $1 1 $+($2, /, $3, /, $4, /, $5, /, $6, /, $7, /, $8, /, $9, /, $10, /, $11)
}
}
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)) {
var %x = $mouse.x, %y = $mouse.y
while ($mouse.key & 1) && ($whilefix) {
window $active $calc($mouse.dx - %x) $calc($mouse.dy - %y)
}
}
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 - 10)) || (%xx >= $calc($window($active).w + 10)) || (%yy <= $calc($window($active).h - 10)) || (%yy >= $calc($window($active).h + 10)) {
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))) {
hadd playlist selline $calc($int($calc(($mouse.y - 30) / %h)) + $hget(playlist, buffer.y))
draw.select $mouse.y
}
else {
if ($hget(scrollbar. $+ $active, 1)) {
tokenize 47 $ifmatch
while ($mouse.key & 1) && ($whilefix) {
if ($inrect($mouse.x, $mouse.y, $1, $2, $3, $4)) {
scroll.update 1 $ceil($calc((($mouse.y - $2) / $4) * 100))
}
}
}
}
}
}
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
}
}
draw.button %i 0
}
elseif ($inrect($mouse.x, $mouse.y, 210, 70, 30, 15)) {
draw.open 1
open.menu
}
else {
var %a, %b, %c = $calc($window(-1).w - $window($active).w), %d = $calc($window(-1).h - $window($active).h), %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)
}
}
}
Toggle Playlist:/$iif($window(@PlayList), close -@ @PlayList, open.playlist)
}
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 {
if ($active == @PlayList) {
if ($1 == 1) {
hadd -m playlist inlist $1-
draw.scroll @PlayList $1-
draw.buffer
}
}
}
alias 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))))), %sh = $calc($8 + $rgb(20,20,20))
var %x $1, %y $calc(((%pos / 100 * $4) * $calc(1 - %sep)) + $2), %w $3, %h $ceil($calc($4 * %sep))
drawrect -rnf %win $5 1 $1 $2 $3 $4
drawrect -rnf %win $6 1 %x %y %w %h
drawrect -rn %win $8 1 %x %y %w %h
drawline -rnf %win $7 1 $calc(%x + 1) $calc((%y + %h) - 2) $calc(%x + 1) $calc(%y + 1) $calc((%x + %w) - 1) $calc(%y + 1)
drawline -rnf %win %sh 1 $calc(%x + 1) $calc((%y + %h) - 2) $calc((%x + %w) - 2) $calc((%y + %h) - 2) $calc((%x + %w) - 2) $calc(%y + 1)
drawdot $active
}
alias open.playlist {
if ($hget(playlist, playlist)) {
load.playlist $ifmatch
}
hfree -w *@PlayList
if ($window(@PlayList)) {
close -@ @PlayList
}
window -ak0hdBCpfo +d @PlayList -1 -1 250 100
draw.playlist
draw.buffer 1
draw.scroll @PlayList 1 $calc(($hget(playlist, buffer.y) / $line(@playlist.buffer, 0)) * 100)
}
alias draw.playlist {
drawrect -rf @PlayList $rgb(223,220,214) 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 $rgb(255,255,255) 1 1 $calc($window(@PlayList).h -2) 1 1 $calc($window(@PlayList).w - 2) 1
drawline -rn @PlayList $rgb(210,210,210) 1 1 $calc($window(@PlayList).h - 2) $calc($window(@PlayList).w - 2) $calc($window(@PlayList).h - 2) $calc($window(@PlayList).w - 2) 1
drawrect -nrf @PlayList $rgb(243,240,234) 1 10 10 $calc($window(@PlayList).w - 20) $calc($window(@PlayList).h - 22)
drawline -rn @PlayList $rgb(200,200,200) 1 10 $calc($window(@PlayList).h - 11) 10 10 $calc($window(@PlayList).w - 11) 10
drawline -rn @PlayList $rgb(255,255,255) 1 10 $calc($window(@PlayList).h - 11) $calc($window(@PlayList).w - 11) $calc($window(@PlayList).h - 11) $calc($window(@PlayList).w - 11) 11
drawrect -rnf @PlayList $rgb(233,230,224) 1 12 12 $calc($window(@PlayList).w - 24) 15
drawrect -rn @PlayList $rgb(200,200,200) 1 12 12 $calc($window(@PlayList).w - 24) 15
drawline -rn @PlayList $rgb(220,220,220) 1 13 25 $calc($window(@PlayList).w - 14) 25 $calc($window(@PlayList).w - 14) 13
drawline -rn @PlayList $rgb(255,255,255) 1 13 24 13 13 $calc($window(@PlayList).w - 13) 13
drawtext -rn @PlayList $rgb(255,255,255) tahoma -7 21 15 Playlist
drawtext -rn @PlayList $rgb(160,160,160) tahoma -7 20 14 Playlist
$scrollbar(@PlayList, $calc($window(@PlayList).w - 24), 28, 12, $calc($window(@PlayList).h - 40), $rgb(233,230,224), $rgb(233,230,224), $rgb(255,255,255), $rgb(200,200,200), @playlist.buffer, $int($calc(($window(@PlayList).h - 40) / 13)))
draw.buffer $hget(playlist, buffer.y)
draw.scroll @Playlist $hget(playlist, inlist)
drawdot @PlayList
}
alias draw.player {
drawrect -rf @MircAmp $rgb(223, 220, 214) 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 $rgb(255,255,255) 1 1 $calc($window(@MircAmp).h -2) 1 1 $calc($window(@MircAmp).w - 2) 1
drawline -rn @MircAmp $rgb(210,210,210) 1 1 $calc($window(@MircAmp).h - 2) $calc($window(@MircAmp).w - 2) $calc($window(@MircAmp).h - 2) $calc($window(@MircAmp).w - 2) 1
drawrect -nrf @MircAmp $rgb(243,240,234) 1 10 10 100 50
drawline -rn @MircAmp $rgb(200,200,200) 1 10 60 10 10 110 10
drawline -rn @MircAmp $rgb(255,255,255) 1 10 60 110 60 110 10
drawline -rn @MircAmp $rgb(200,200,200) 1 15 40 15 55 105 55 105 40
drawrect -nrf @MircAmp $rgb(243,240,234) 1 120 10 120 20
drawline -rn @MircAmp $rgb(200,200,200) 1 120 30 120 10 240 10
drawline -rn @MircAmp $rgb(255,255,255) 1 120 30 240 30 240 10
draw.volume 0
var %i = 0
while (%i <= 4) {
draw.button %i 0
inc %i
}
draw.open 0
}
alias draw.button {
var %x = $calc(10 + ($1 * 20)), %c0 = $rgb(200,200,200), %c1 = $rgb(255,255,255)
drawrect -nrf @MircAmp $rgb(243,240,234) 1 %x 70 20 15
drawline -rn @MircAmp %c [ $+ [ $iif($2, 0, 1) ] ] 1 %x 85 %x 70 $calc(%x + 19) 70
drawline -rn @MircAmp %c [ $+ [ $iif($2, 1, 0) ] ] 1 %x 85 $calc(%x + 19) 85 $calc(%x + 19) 70
drawtext -rn @MircAmp $rgb(255,255,255) "WebDings" -9 $calc(%x + $iif($2, 4, 3)) 68 $button.text($1)
drawtext -rn @MircAmp $rgb(140,140,140) "WebDings" -9 $calc(%x + $iif($2, 5, 4)) 69 $button.text($1)
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 : }
}
alias draw.open {
var %c0 = $rgb(200,200,200), %c1 = $rgb(255,255,255)
drawrect -nrf @MircAmp $rgb(243,240,234) 1 210 70 30 15
drawline -rn @MircAmp %c [ $+ [ $iif($1, 0, 1) ] ] 1 210 85 210 70 240 70
drawline -rn @MircAmp %c [ $+ [ $iif($1, 1, 0) ] ] 1 210 85 240 85 240 70
drawtext -rn @MircAmp $rgb(255,255,255) "verdana" -7 211 70 Open
drawtext -rn @MircAmp $rgb(140,140,140) "verdana" -7 212 71 Open
drawdot @MircAmp
}
alias open.menu {
window -ak0hdBCpfo +d @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 {
var %y = $int($calc($1 * 15)), %c0 = $rgb(200,200,200), %c1 = $rgb(255,255,255)
drawrect -nrf @OpenMenu $iif($2, $rgb(223, 220, 214), $rgb(243,240,234)) 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
drawtext -rn @OpenMenu $rgb(255,255,255) "verdana" -7 1 %y $open.menu.text($1)
drawtext -rn @OpenMenu $rgb(140,140,140) "verdana" -7 2 $calc(%y + 1) $open.menu.text($1)
drawdot @OpenMenu
}
alias open.menu.text {
if ($1 == 0) { return File }
elseif ($1 == 1) { return Dir }
else { return List }
}
alias open.menu.cmd {
var %f = $+(", $scriptdir, Playlist\, current.txt")
if ($1 == 0) {
if ($$sfile($iif($hget(playlist, path), $ifmatch, $mircdir))) {
tokenize 32 $+(", $ifmatch, ")
write -c %f $1-
hadd -m playlist path $nofile($1-)
hadd playlist playlist %f
load.playlist %f
}
}
}
alias draw.volume {
drawrect -nrf @MircAmp $rgb(243,240,234) 1 120 40 55 20
drawline -rn @MircAmp $rgb(200,200,200) 1 120 60 120 40 175 40
drawline -rn @MircAmp $rgb(255,255,255) 1 120 60 175 60 175 40
}
alias draw.buffer {
drawrect -rfn @PlayList $rgb(243,240,234) 1 12 28 $calc($window(@PlayList).w - 36) $calc($window(@PlayList).h - 40)
var %t = $1, %m.line = $int($calc(($window(@PlayList).h - 40) / 13))
if ($hget(scrollbar. $+ @PlayList, 1)) {
tokenize 47 $ifmatch
}
if ($line(@playlist.buffer, 0) <= %m.line) {
hadd -m playlist buffer.y $int($calc(($mouse.y - $2) / $4 * $line(@playlist.buffer,0)))
}
elseif ($line(@playlist.buffer,0) > %m.line) {
hadd -m playlist buffer.y $ceil($calc(($mouse.y - $2) / $4 * $calc($line(@playlist.buffer,0) - 9))))
}
if ($hget(playlist, buffer.y) == 0) {
hinc playlist buffer.y
}
if (%t) {
hadd playlist buffer.y $ifmatch
}
var %x2 = $hget(playlist, buffer.y), %x = 1
while (%x <= %m.line) {
if ($line(@playlist.buffer,%x2)) {
drawtext -rnc @PlayList $rgb(255,255,255) "verdana" -7 18 $calc((13 * %x) + 18) $calc($window(@PlayList).w - 45) 14 $line(@playlist.buffer, %x2)
drawtext -rnc @PlayList $rgb(140,140,140) "verdana" -7 17 $calc((13 * %x) + 17) $calc($window(@PlayList).w - 45) 14 $line(@playlist.buffer, %x2)
}
inc %x
inc %x2
}
drawdot @PlayList
if ($hget(playlist, select)) {
draw.select
}
}
alias draw.select {
if (!$1) {
tokenize 32 $hget(playlist, selected)
}
else {
hadd -m playlist selected $1
}
var %h = $calc($height(T,verdana,-7) + 1), %p = $calc($int($calc(($1 30) / %h)) + $hget(playlist, buffer.y)), %z = $int($calc(($1 - 30) / %h))
if ($hget(playlist, select)) {
drawreplace -nr @PlayList $rgb(219,225,232) $rgb(243,240,234) 14 $hget(playlist, select) $calc($window(@PlayList).w - 41) 13
drawrect -rn @PlayList $rgb(243,240,234) 1 14 $hget(playlist, select) $calc($window(@PlayList).w - 41) 13
}
hadd playlist select $calc((%z * 13) + 30)
drawreplace -nr @PlayList $rgb(243,240,234) $rgb(219,225,232) 14 $calc((%z * 13) + 30) $calc($window(@PlayList).w - 41) 13
drawrect -nr @PlayList $rgb(157,167,177) 1 14 $calc((%z * 13) + 30) $calc($window(@PlayList).w - 41) 13
drawdot @PlayList
}
alias fmod.open {
if ($fmod(FMOD_Connect, $binary(fmod.dll))) {
if ($fmod(SOUND_Init,44100 64 0)) {
vis.open
vis.start
}
else {
echo -s Fmod: error
}
}
}
alias fmod.close {
vis.stop
fmod SOUND_Close
dll -u 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), ")
fmod Plugin_Load 2 $+(", $binary(plugins\fmm_vis_spectrum2.dll), ")
}
drawline -rn @MircAmp $rgb(200,200,200) 1 15 40 15 55 105 55 105 40
alias vis.start {
drawline -rn @MircAmp $rgb(200,200,200) 1 15 40 15 55 105 55 105 40
vis 0 Set_Dim 16 40 88 15
vis 0 Set_Bgcolor 243/240/234
vis 0 Set_Barwidth 1
vis 0 Set_NumColors 1
vis 0 SetColor 0 200/200/200
vis 0 Set_Barspace 0
vis 0 Set_BounceRate 5.0
vis 0 Set_Avg 10
vis.switch
}
alias vis.switch {
vis 0 Spectrum 1 1 @MircAmp 25
}
alias vis.stop {
fmod Plugin_UnLoad 0
}