Winamp Controlicon — File Browser

WinampControliconv1.0 / WinampControliconv1.0 / waci / waci.mrc

waci.mrc — 17.3 KB — Download this file

###############################################
#  Winamp Controlicon                         #
#  By CRash&bleED                             #
#  Email: crash@hotpop.com                    #
#  http://crashb.kicks-ass.net/mirc.html      #
#                                             #
#  Using swamp.dll                            #
#  BY: LightStrike                            #
#  Email: LightStrike@mail.pt                 #
#                                             #
#  The Winamp icons were created by Nullsoft  #
#  http://www.winamp.com                      #
#  Winamp: it really whips the llama's ass!   #
###############################################


alias waci {
  window -aBCdfhk0op +deL @waci 5 5 34 34
  drawpic @waci 1 1 $waci_icon
  drawrect @waci $waci_bdcolor 1 0 0 34 34
}

menu status,channel {
  -
  Winamp Controlicon:/waci
}

menu @waci {
  dclick {
    if $waci_dblclick == 1 {
      if $left($lactive,1) == $chr(35) { waci_msg $lactive }
      else { waci_clipboard }
    }
    elseif $waci_dblclick == 2 {
      waci_next
    }
    
    unset %waci.move
  }
  sclick:{
    set %waci.move $mouse.x $mouse.y $window(@waci).x $window(@waci).y
  }
  uclick:{
    unset %waci.move
    var %track $waci_mp3
    
    if ($window(@waci).x != $gettok([ %waci.move ],3,34)) || ($window(@waci).y != $gettok([ %waci.move ],4,34)) {
      window @waci $window(@waci).x $window(@waci).y $calc(54 + $width([ %track ],$waci_font,$waci_fsize)) 34
      drawrect -f @waci $waci_bgcolor 1 34 0 $calc($window(@waci).w - 34) 34
      drawrect @waci $waci_bdcolor 1 34 0 $calc($window(@waci).w - 34) 34
      drawtext @waci $waci_color $waci_font $waci_fontsize 44 $waci_fpos %track
    }
  }
  mouse:{
    if %waci.move != $null {
      window @waci $calc($mouse.dx - $gettok([ %waci.move ],1,32)) $calc($mouse.dy - $gettok([ %waci.move ],2,32))
    }
    elseif %waci.change != $null {
      unset %waci.change
      unset %waci.move
      var %track $waci_mp3
      
      window @waci $window(@waci).x $window(@waci).y $calc(54 + $width([ %track ],$waci_font,$waci_fsize)) 34
      drawrect -f @waci $waci_bgcolor 1 0 0 $calc($window(@waci).w - 34) 34
      drawpic @waci 1 1 $waci_icon
      drawrect @waci $waci_bdcolor 1 0 0 34 34
      drawrect @waci $waci_bdcolor 1 34 0 $calc($window(@waci).w - 34) 34
      drawtext @waci $waci_color $waci_font $waci_fontsize 44 $waci_fpos %track
    }
    else {
      var %track $waci_mp3
      window @waci $window(@waci).x $window(@waci).y $calc(54 + $width([ %track ],$waci_font,$waci_fsize)) 34
      if %waci.redraw == $null {
        drawrect -f @waci $waci_bgcolor 1 34 0 $calc($window(@waci).w - 34) 34
        set %waci.redraw 1
      }
      drawrect @waci $waci_bdcolor 1 34 0 $calc($window(@waci).w - 34) 34
      drawtext @waci $waci_color $waci_font $waci_fontsize 44 $waci_fpos %track
    }
  }
  leave:{
    unset %waci.redraw
    if %waci.move != $null {
      window @waci $calc($mouse.dx - $gettok([ %waci.move ],1,32)) $calc($mouse.dy - $gettok([ %waci.move ],2,32))
    }
    else {
      if %waci.change != $null {
        unset %waci.change
        unset %waci.move
        var %track $waci_mp3
        
        window @waci $window(@waci).x $window(@waci).y $calc(44 + $width([ %track ],$waci_font,$waci_fsize)) 34
        drawrect -f @waci $waci_bgcolor 1 0 0 $calc($window(@waci).w - 34) 34
        drawpic @waci 1 1 $waci_icon
        drawrect @waci $waci_bdcolor 1 0 0 34 34
        drawrect @waci $waci_bdcolor 1 34 0 $calc($window(@waci).w - 34) 34
        drawtext @waci $waci_color $waci_font $waci_fontsize 40 $waci_fpos %track
      }
      window @waci $window(@waci).x $window(@waci).y 34 34
      drawrect -f @waci $waci_bgcolor 1 0 0 1000 34
      drawpic @waci 1 1 $waci_icon
      drawrect @waci $waci_bdcolor 1 0 0 34 34
    }
  }
  Configure:/waci_config
  -
  Channel
  .All:/waci_amsg
  .$submenu($waci_channels($1))
  Copy To Clipboard:/waci_clipboard
  -
  << $str($chr(160),2) Previous:/waci_prev
  >> $str($chr(160),2) Next:/waci_next
  -
  || $str($chr(160),5) Pause:/waci_pause
  -
  > $str($chr(160),5) Play $str($chr(160),6):/waci_play
   $str($chr(160),4) Stop:/waci_stop
  -
  Close:/window -c @waci
}

alias waci_channels {
  if $1 == begin { return - }
  if $1 <= $chan(0) { return $right($chan($1),-1) $+ :/waci_msg $chan($1) }
  if $1 > $chan(0) { return - }
}

alias waci_redraw {
  if $window(@waci) != $null {
    drawpic @waci 1 1 $waci_icon
    drawrect @waci $waci_bdcolor 1 0 0 34 34
  }
}

alias waci_fsize {
  if $1 == $null {
    var %size $waci_fontsize
  }
  else {
    var %size $1
  }
  while $height($waci_mp3,$waci_font,[ %size ]) > 30 { dec %size }
  return %size
}

alias waci_fpos {
  var %size $waci_fontsize
  while $height($waci_mp3,$waci_font,[ %size ]) > 30 { dec %size }
  return $round($calc((34 - $height($waci_mp3,$waci_font,[ %size ])) / 2)),0)
}

alias waci_do { .dll $+(",$scriptdir,swamp.dll,") WinAmpCmd $1  }
alias waci_get { return $dll($+(",$scriptdir,swamp.dll,"),WinAmpGet,$1) }

alias waci_prev { waci_do prevtrack }
alias waci_next { waci_do nexttrack }
alias waci_pause { waci_do pause }
alias waci_play { waci_do play }
alias waci_stop { waci_do stop }

alias waci_icon { return $+(",$scriptdir,$readini($+(",$scriptdir,waci.ini"),n,theme,icon),.bmp") }
alias waci_font { return $+(",$readini($+(",$scriptdir,waci.ini"),n,theme,fontname),") }
alias waci_fontsize {
  var %fsize $readini($+(",$scriptdir,waci.ini"),n,theme,fontsize)
  if %fsize < 8 { var %fsize 8 }
  if %fsize > $waci_fsize(%fsize) { var %fsize $waci_fsize(%fsize) }
  return %fsize
}
alias waci_color { return $readini($+(",$scriptdir,waci.ini"),n,theme,fontcolor) }
alias waci_bdcolor { return $readini($+(",$scriptdir,waci.ini"),n,theme,bdcolor) }
alias waci_bgcolor { return $readini($+(",$scriptdir,waci.ini"),n,theme,bgcolor) }
alias waci_dblclick { return $readini($+(",$scriptdir,waci.ini"),n,keys,dblclick) }

alias waci_filename { return $waci_get(trackfilename) }
alias waci_mp3 {
  var %mp3 $left($nopath($waci_filename),-4)
  if %mp3 == $ {
    var %mp3 Winamp is not open
  }
  elseif %mp3 == $null {
    var %mp3 No songs in playlist
  }
  return %mp3
}

alias waci_tracknum { return $waci_get(tracknumber) }
alias waci_plsize { return $waci_get(playlistlength) }
alias waci_bitrate { return $waci_get(bitrate) $+ kbps }
alias waci_samprate { return $waci_get(samplerate) $+ khz }
alias waci_wampver { return $waci_get(version) }

alias waci_tracklen {
  var %tt $gettok($duration($waci_get(tracktime),3),2-,58)
  var %tt $int($gettok([ %tt ],1,58)) $+ : $+ $gettok([ %tt ],2,58)
  return %tt
}

alias waci_played {
  var %pt $waci_get(playedtime)
  if %pt == -1 { var %pt Stopped }
  else {
    var %pt $gettok($duration($int($calc(%pt / 1000)),3),2-,58)
    var %pt $int($gettok([ %pt ],1,58)) $+ : $+ $gettok([ %pt ],2,58)
  }
  return %pt
}

alias waci_amsg {
  var %string $replace($readini($+(",$scriptdir,waci.ini"),n,np,string),[u],$chr(31),[b],$chr(2),[k],$chr(3),[o],$chr(15),[r],$chr(22))
  var %string $replace([ %string ],!mp3!,$waci_mp3,!tracknum!,$waci_tracknum,!plsize!,$waci_plsize,!bitrate!,$waci_bitrate,!samprate!,$waci_samprate,!tracklen!,$waci_tracklen,!played!,$waci_played,!wampver!,$waci_wampver)
  if ($waci_mp3 == Winamp is not open) || ($waci_mp3 == No songs in playlist) { echo 4 -s $waci_mp3 }
  else { amsg %string }
}

alias waci_msg {
  var %string $replace($readini($+(",$scriptdir,waci.ini"),n,np,string),[u],$chr(31),[b],$chr(2),[k],$chr(3),[o],$chr(15),[r],$chr(22))
  var %string $replace([ %string ],!mp3!,$waci_mp3,!tracknum!,$waci_tracknum,!plsize!,$waci_plsize,!bitrate!,$waci_bitrate,!samprate!,$waci_samprate,!tracklen!,$waci_tracklen,!played!,$waci_played,!wampver!,$waci_wampver)
  if ($waci_mp3 == Winamp is not open) || ($waci_mp3 == No songs in playlist) { echo 4 -s $waci_mp3 }
  else { msg $1 %string }
}

alias waci_clipboard {
  var %string $replace($readini($+(",$scriptdir,waci.ini"),n,np,string),[u],$chr(31),[b],$chr(2),[k],$chr(3),[o],$chr(15),[r],$chr(22))
  var %string $replace([ %string ],!mp3!,$waci_mp3,!tracknum!,$waci_tracknum,!plsize!,$waci_plsize,!bitrate!,$waci_bitrate,!samprate!,$waci_samprate,!tracklen!,$waci_tracklen,!played!,$waci_played,!wampver!,$waci_wampver)
  if ($waci_mp3 != Winamp is not open) && ($waci_mp3 != No songs in playlist) { clipboard $strip(%string) }
}

on *:keydown:@waci:*:{
  var %play $readini($+(",$scriptdir,waci.ini"),n,keys,play)
  var %stop $readini($+(",$scriptdir,waci.ini"),n,keys,stop)
  var %next $readini($+(",$scriptdir,waci.ini"),n,keys,next)
  var %prev $readini($+(",$scriptdir,waci.ini"),n,keys,prev)
  var %chan $readini($+(",$scriptdir,waci.ini"),n,keys,chan)
  
  if $keyval == %play {
    var %state $waci_get(state)
    if %state == playing {
      waci_pause
    }
    elseif (%state == paused) || (%state == stopped) {
      waci_play
    }
  }
  elseif $keyval == %stop { waci_stop }
  elseif $keyval == %next { waci_next }
  elseif $keyval == %prev { waci_prev }
  elseif $keyval == %chan {
    if $left($lactive,1) == $chr(35) { waci_msg $lactive }
  }
}

alias waci_keyval {
  window -aBCdfhk0op +deL @waci_keyval 5 5 150 34
  drawrect @waci_keyval 0 1 0 0 150 34
  drawtext @waci_keyval 0 12 8 Please Press Key
}

on *:keydown:@waci_keyval:*:{
  if %waci.keyval == 301 {
    writeini -n $+(",$scriptdir,waci.ini") keys play $keyval
  }
  elseif %waci.keyval == 302 {
    writeini -n $+(",$scriptdir,waci.ini") keys stop $keyval
  }
  elseif %waci.keyval == 303 {
    writeini -n $+(",$scriptdir,waci.ini") keys next $keyval
  }
  elseif %waci.keyval == 304 {
    writeini -n $+(",$scriptdir,waci.ini") keys prev $keyval
  }
  elseif %waci.keyval == 305 {
    writeini -n $+(",$scriptdir,waci.ini") keys chan $keyval
  }
  did -o waci %waci.keyval 1 $keyval
  did -e waci 301,302,303,304,305
  unset %waci.keyval
  window -c @waci_keyval
}


;This is the configuration dialog.
;Leave it alone or I will pummel you with a cheese log!

alias waci_config {
  dialog -mdv waci waci
}

alias waci_config_update {
  if $dialog(waci) != $null {
    did -o waci 102 1 $waci_mp3
    did -o waci 103 1 $waci_tracknum
    did -o waci 104 1 $waci_plsize
    did -o waci 105 1 $waci_bitrate
    did -o waci 106 1 $waci_samprate
    did -o waci 107 1 $waci_tracklen
    did -o waci 108 1 $waci_played
    did -o waci 109 1 $waci_wampver
    .timerwaci -m 1 100 { waci_config_update }
  }
}

dialog waci {
  title "Winamp Controlicon Configuration"
  size -1 -1 400 400
  option pixels
  
  text "Winamp Controlicon", 1, 25 5 120 15
  text "By", 2, 25 20 12 15
  link "CrashB", 3, 40 20 75 15
  link "crashb.kicks-ass.net", 4, 25 35 100 15
  
  text "Swamp.dll", 5, 25 60 120 15
  text "By", 6, 25 75 12 15
  link "LightStrike", 7, 40 75 75 15
  
  box "Now Playing", 100, 5 100 235 250
  edit "", 101, 10 325 225 20, autohs
  text "", 102, 105 138 120 15, right nowrap
  text "", 103, 105 158 120 15, right nowrap
  text "", 104, 105 178 120 15, right nowrap
  text "", 105, 105 198 120 15, right nowrap
  text "", 106, 105 218 120 15, right nowrap
  text "", 107, 105 238 120 15, right nowrap
  text "", 108, 105 258 120 15, right nowrap
  text "", 109, 105 278 120 15, right nowrap
  text "!mp3!", 152, 15 138 75 20, right
  text "!tracknum!", 153, 15 158 75 20, right
  text "!plsize!", 154, 15 178 75 20, right
  text "!bitrate!", 155, 15 198 75 20, right
  text "!samprate!", 156, 15 218 75 20, right
  text "!tracklen!", 157, 15 238 75 20, right
  text "!played!", 158, 15 258 75 20, right
  text "!wampver!", 159, 15 278 75 20, right
  text "VARIABLE", 161, 15 118 75 20, right
  text "VALUE", 162, 110 118 115 20, right
  text "String:", 163, 15 310 75 15
  
  box "Theme", 200, 245 5 150 255
  edit "", 201, 290 20 100 20, center autohs
  edit "", 202, 340 40 50 20, center limit 2
  edit "", 203, 340 100 50 20, center limit 2
  edit "", 204, 340 120 50 20, center limit 2
  edit "", 205, 340 140 50 20, center limit 2
  text "Font", 251, 260 23 25 20, right
  text "Font Size", 252, 260 43 75 20, right
  text "Font", 253, 260 103 75 20, right
  text "Border", 254, 260 123 75 20, right
  text "Background", 255, 260 143 75 20, right
  text "Colors (range: 0-16)", 260, 250 83 140 15, center
  
  box "Assign Keys", 300, 245 260 150 135
  button "", 301, 340 275 40 20, flat
  button "", 302, 340 298 40 20, flat
  button "", 303, 340 321 40 20, flat
  button "", 304, 340 344 40 20, flat
  button "", 305, 340 367 40 20, flat
  text "Play/Pause", 351, 260 278 70 20, right
  text "Stop", 352, 260 301 70 20, right
  text "Next", 353, 260 324 70 20, right
  text "Previous", 354, 260 347 70 20, right
  text "Now Playing", 355, 260 370 70 20, right
  
  box "Control", 400, 5 350 235 45
  button "<<", 401, 13 368 40 21
  button ">", 402, 58 368 40 21
  button "||", 403, 103 368 40 21
  button "", 404, 148 368 40 21
  button ">>", 405, 193 368 40 21
  
  box "Double Click", 500, 140 40 100 60
  radio "Now Playing", 501, 150 57 85 20, group 1
  radio "Next Track", 502, 150 75 85 20
  
  box "Icon", 600, 250 175 140 80
  icon 601, 304 203 32 32, " $+ $scriptdir $+ 1.bmp"
  button "Back", 602, 262 207 35 24
  button "Next", 603, 345 207 35 24
}

on *:dialog:waci:init:0:{
  var %ini $+(",$scriptdir,waci.ini")
  
  did -o $dname 101 1 $replace($readini([ %ini ],n,np,string),[u],$chr(31),[b],$chr(2),[k],$chr(3),[o],$chr(15),[r],$chr(22))
  did -o $dname 102 1 $waci_mp3
  did -o $dname 103 1 $waci_tracknum
  did -o $dname 104 1 $waci_plsize
  did -o $dname 105 1 $waci_bitrate
  did -o $dname 106 1 $waci_samprate
  did -o $dname 107 1 $waci_tracklen
  did -o $dname 108 1 $waci_played
  did -o $dname 109 1 $waci_wampver
  
  did -o $dname 201 1 $readini([ %ini ],n,theme,fontname)
  did -o $dname 202 1 $readini([ %ini ],n,theme,fontsize)
  did -o $dname 203 1 $readini([ %ini ],n,theme,fontcolor)
  did -o $dname 204 1 $readini([ %ini ],n,theme,bdcolor)
  did -o $dname 205 1 $readini([ %ini ],n,theme,bgcolor)
  
  did -o $dname 301 1 $readini([ %ini ],n,keys,play)
  did -o $dname 302 1 $readini([ %ini ],n,keys,stop)
  did -o $dname 303 1 $readini([ %ini ],n,keys,next)
  did -o $dname 304 1 $readini([ %ini ],n,keys,prev)
  did -o $dname 305 1 $readini([ %ini ],n,keys,chan)
  
  var %dblcstate $readini([ %ini ],n,keys,dblclick)
  if %dblcstate == 1 {
    did -c $dname 501
  }
  elseif %dblcstate == 2 {
    did -c $dname 502
  }
  
  did -g $dname 601 " $+ $scriptdir $+ $readini([ %ini ],n,theme,icon) $+ .bmp"
  .timerwaci -m 1 100 { waci_config_update }
}

on *:dialog:waci:dclick:3:{ url -n crashb@hotpop.com }
on *:dialog:waci:dclick:4:{ url -n http://crashb.kicks-ass.net/ }
on *:dialog:waci:dclick:7:{ url -n lightstrike@mail.pt }

on *:dialog:waci:edit:101:{ writeini -n $+(",$scriptdir,waci.ini") np string $replace($did(101),$chr(31),[u],$chr(2),[b],$chr(3),[k],$chr(15),[o],$chr(22),[r]) }

on *:dialog:waci:edit:201:{
  writeini -n $+(",$scriptdir,waci.ini") theme fontname $did(201)
  set %waci.change 1
}

on *:dialog:waci:edit:202:{
  var %i $did(202)
  if (%i == $int(%i)) && (%i isnum 1-30) {
    writeini -n $+(",$scriptdir,waci.ini") theme fontsize %i
  }
  else {
    did -o $dname 202 1 $readini($+(",$scriptdir,waci.ini"),n,theme,fontsize)
  }
  set %waci.change 1
}

on *:dialog:waci:edit:203:{
  var %i $did(203)
  if (%i == $int(%i)) && (%i isnum 0-16) {
    writeini -n $+(",$scriptdir,waci.ini") theme fontcolor %i
  }
  else {
    did -o $dname 203 1 $readini($+(",$scriptdir,waci.ini"),n,theme,fontcolor)
  }
  set %waci.change 1
}

on *:dialog:waci:edit:204:{
  var %i $did(204)
  if (%i == $int(%i)) && (%i isnum 0-16) {
    writeini -n $+(",$scriptdir,waci.ini") theme bdcolor %i
  }
  else {
    did -o $dname 204 1 $readini($+(",$scriptdir,waci.ini"),n,theme,bdcolor)
  }
  set %waci.change 1
  waci_redraw
}

on *:dialog:waci:edit:205:{
  var %i $did(205)
  if (%i == $int(%i)) && (%i isnum 0-16) {
    writeini -n $+(",$scriptdir,waci.ini") theme bgcolor %i
  }
  else {
    did -o $dname 205 1 $readini($+(",$scriptdir,waci.ini"),n,theme,bgcolor)
  }
  set %waci.change 1
  waci_redraw
}

on *:dialog:waci:sclick:301,302,303,304,305:{
  did -b waci 301,302,303,304,305
  set %waci.keyval $did
  waci_keyval
}

on *:dialog:waci:sclick:401:{ waci_prev }
on *:dialog:waci:sclick:402:{ waci_play }
on *:dialog:waci:sclick:403:{ waci_pause }
on *:dialog:waci:sclick:404:{ waci_stop }
on *:dialog:waci:sclick:405:{ waci_next }

on *:dialog:waci:sclick:501:{ writeini -n $+(",$scriptdir,waci.ini") keys dblclick 1 }
on *:dialog:waci:sclick:502:{ writeini -n $+(",$scriptdir,waci.ini") keys dblclick 2 }

on *:dialog:waci:sclick:602:{
  var %icon $readini($+(",$scriptdir,waci.ini"),n,theme,icon)
  dec %icon
  if %icon < 1 {
    var %icon 12
  }
  writeini -n $+(",$scriptdir,waci.ini") theme icon %icon
  did -g $dname 601 " $+ $scriptdir $+ %icon $+ .bmp"
  set %waci.change 1
  waci_redraw
}

on *:dialog:waci:sclick:603:{
  var %icon $readini($+(",$scriptdir,waci.ini"),n,theme,icon)
  inc %icon
  if %icon > 12 {
    var %icon 1
  }
  writeini -n $+(",$scriptdir,waci.ini") theme icon %icon
  did -g $dname 601 " $+ $scriptdir $+ %icon $+ .bmp"
  set %waci.change 1
  waci_redraw
}