Hi, this is my first hawkee post :x
First of all, sorry for my crappy english.
So, this is some kind of Winamp/aimp controler, witch allows you to control winamp/aimp. Ha-ha? ;s
Important: This addon/snippet is using mWC.dll, so, many thanks to mWC's author.
Yes, I know, icons and mdx.dll (As well as bars.mdx) are unnecessary, but anyway, you need to use mWC.dll, so why not mdx and icons? :) Exterior is as much important as interior, if you understand.
Edited: I forgot to say. You can show/send now-playing message (Witch you can modify in setting) on channels (Listed, except listed, active or all) via (a)me/(a)msg (Witch you choose in settings, ofcourse) and so on.. ;)
Heres the code (But don't forget, you need dlls and icons (Or modifications) in order to use it. You can download package on http://www.speedyshare.com/files/21393240/winampctrl.zip (Unzip in mIRC's folder and load winamp.mrc script)).
dialog winamp {
title "• Winamp kontroler.. •"
size -1 -1 157 67
option dbu
list 1, 7 4 143 26, size
check "Prikazi np na startu svake pesme?", 2, 9 206 91 10
button "Podesavanja", 3, 7 49 39 12
button "Prikazi pesmu", 4, 60 49 39 12
button "Ok/ugasi..", 5, 111 49 39 12, ok
box "Kanali:", 6, 5 69 71 81
edit "", 7, 9 78 34 10, autohs
button "+", 8, 45 78 13 10
button "-", 9, 59 78 13 10
list 11, 9 89 63 55, size
box "Salji NP (Sta slusas) na:", 12, 80 69 73 57
radio "Sve kanale", 13, 86 79 50 10, group
radio "Na kanale s liste", 14, 86 90 50 10
radio "Osim na kanale s liste", 15, 86 101 64 10
radio "Samo aktivan prozor", 16, 86 112 61 10
box "Salji kao:", 17, 80 127 73 23
radio "/(a)me", 18, 88 136 28 10, group
radio "/(a)msg", 19, 119 136 29 10
box "Jezik:", 20, 105 198 47 21
box "NP poruka:", 21, 5 152 148 45
edit "", 22, 9 162 140 10, autohs
text "<PS> = Izvodjac - Ime pesme", 23, 7 173 144 8, disable center
text "<DZ> = Duzina pesme • <ST> = Status", 24, 7 180 144 8, disable center
text "<BT> = Bitrate • <SR> Samplerate", 25, 7 187 144 8, disable center
edit "", 10, 7 37 143 10, read autohs center
box "Akcije:", 26, 4 29 149 35
combo 27, 110 206 38 32, size drop
box "Dodatno:", 28, 5 198 97 21
}
alias winamp { dialog $iif(!$dialog(winamp),-m,-v) winamp winamp }
alias sshmdx { return $dll($scriptdirmdx.dll,$1,$2-) }
on *:start:{
$iif(!$hget(winamp),hmake winamp 100)
$iif(!$exists(winamp.hsh),hsave winamp winamp.hsh)
hload winamp winamp.hsh
}
on *:dialog:winamp:*:*:{
if ($devent == sclick) {
if ($did == 2) {
if ($did(2).state == 1) {
hadd winamp start da
noop $input($iif($hget(winamp,jezik) == srpski,Prikazaces sta slusas SAMO ako je ovaj dijalog otvoren $chr(40) $+ Iz sigurnosnih razloga ;p $+ $chr(41) $+ .,You will send np ONLY if winamp controler is running $chr(40) $+ Safety reasons ;p $+ $chr(41) $+ .),oi,Info.)
}
else { hdel winamp start }
}
if ($did == 27) {
if ($did(27).sel == 1) && ($hget(winamp,jezik) != srpski) { hadd winamp jezik srpski | dialog -x $dname | winamp }
if ($did(27).sel == 2) && ($hget(winamp,jezik) != english) { hadd winamp jezik english | dialog -x $dname | winamp }
hsave winamp winamp.hsh
}
if ($did == 3) {
if ($hget(winamp,prosireno) == ne) {
dialog -bs winamp -1 -1 157 222
did -ra $dname 3 $iif($hget(winamp,jezik) == srpski,Snimi/smanji,Save/minim.)
hadd winamp prosireno da
}
else {
if ($did(22) != $null) {
hadd winamp poruka $did(22)
}
else {
hadd winamp poruka np: [ <PS> ] • [ <DZ> ] • [ <BT>kbps|<SR>kHz ]
did -a $dname 22 $hget(winamp,poruka)
}
dialog -bs winamp -1 -1 157 67
did -ra $dname 3 $iif($hget(winamp,jezik) == srpski,Podesavanja,Settings)
hadd winamp prosireno ne
}
hsave winamp winamp.hsh
}
if ($did == 4) { nplej }
if ($did == 8) {
if ($did(7) != $null) && ($chr(32) !isin $did(7)) && ($chr(35) isin $did(7)) && (!$istok($hget(winamp,kanali),$did(7),32)) {
hadd winamp kanali $addtok($hget(winamp,kanali),$did(7),32)
did -a $dname 11 $did(7)
did -r $dname 7
}
}
if ($did == 9) {
if ($did(11).seltext != $null) {
hadd winamp kanali $remtok($hget(winamp,kanali),$did(11).seltext,32))
did -d $dname 11 $did(11).sel
}
}
if ($did == 13) { hadd winamp spamna svi }
if ($did == 14) { hadd winamp spamna lista }
if ($did == 15) { hadd winamp spamna nelista }
if ($did == 16) { hadd winamp spamna aktivni }
if ($did == 18) { hadd winamp nacin ame }
if ($did == 19) { hadd winamp nacin amsg }
if ($did == 1) {
if ($did(1).sel == 2) { prosla }
if ($did(1).sel == 3) { pauziraj }
if ($did(1).sel == 4) { stopiraj }
if ($did(1).sel == 5) { plej }
if ($did(1).sel == 6) { slijedeca }
}
}
if ($devent == init) {
sshmdx SetMircVersion $version
sshmdx MarkDialog $dname
sshmdx SetBorderStyle $dname 3,4,5,8,9 staticedge
sshmdx SetBorderStyle $dname 1,7,10,11,22 dlgframe
sshmdx SetDialog $dname bgcolor $rgb(0,127,255)
sshmdx SetColor $dname 23,24,25 textbg $rgb(0,127,255)
sshmdx SetColor $dname 1,2,3,4,5,6,8,9,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,28 background $rgb(0,127,255)
sshmdx SetBorderStyle 1
sshmdx SetControlMDX $dname 1 toolbar arrows nodivider flat wrap noresize > $scriptdirbars.mdx
didtok $dname 11 32 $hget(winamp,kanali)
didtok $dname 27 44 Srpski,English
if ($hget(winamp,jezik) == srpski) { did -c $dname 27 1 }
else { did -c $dname 27 2 }
hadd winamp prosireno ne
did -a $dname 10 • $iif($hget(winamp,jezik) == srpski,Ucitavanje..,Loading..) •
$iif($hget(winamp,start) == da,did -c $dname 2)
$iif($hget(winamp,spamna) == svi,did -c $dname 13)
$iif($hget(winamp,spamna) == lista,did -c $dname 14)
$iif($hget(winamp,spamna) == nelista,did -c $dname 15)
$iif($hget(winamp,spamna) == aktivni,did -c $dname 16)
$iif($hget(winamp,nacin) == ame,did -c $dname 18,did -c $dname 19)
$iif($dll(mWC.dll,getStatus,'') == 1,hadd winamp pocetna $dll(mWC.dll,getTitle,''),hadd winamp neradi da)
did -a $dname 22 $hget(winamp,poruka)
did -i $dname 1 1 bmpsize 32 32
did -i $dname 1 1 setimage +nh icon large $scriptdirPrethodna.ico
did -i $dname 1 1 setimage +nh icon large $scriptdirPauza.ico
did -i $dname 1 1 setimage +nh icon large $scriptdirStop.ico
did -i $dname 1 1 setimage +nh icon large $scriptdirPlay.ico
did -i $dname 1 1 setimage +nh icon large $scriptdirSlijedeca.ico
did -a $dname 1 +b 1 Prethodna $+ $chr(9) $+ Prethodna pjesma
did -a $dname 1 +b 2 Pauziraj $+ $chr(9) $+ Pauziraj pjesmu
did -a $dname 1 +b 3 Stopiraj. $+ $chr(9) $+ Stopiraj pjesmu
did -a $dname 1 +b 4 Pevaj! :p $+ $chr(9) $+ Pusti pesmu
did -a $dname 1 +b 5 Sledeca $+ $chr(9) $+ Sledeca pesma
if ($hget(winamp,jezik) == english) { engleski }
; nprefres
.timerwinamp 0 1 nprefres
}
if ($devent == close) {
.timerwinamp off
}
}
; I know my english is crappy :)
alias -l engleski {
did -ra $dname 2 Send NP on every song's start?
did -ra $dname 3 Settings
did -ra $dname 4 Show np
did -ra $dname 5 Ok/close..
did -ra $dname 6 Channels
did -ra $dname 12 Send NP on:
did -ra $dname 13 All channels
did -ra $dname 14 Listed channels
did -ra $dname 15 Except listed channels
did -ra $dname 16 Only active window
did -ra $dname 17 Send as:
did -ra $dname 20 Language:
did -ra $dname 21 NP message:
did -ra $dname 23 <PS> = Artist - Song
did -ra $dname 24 <DZ> = Song lenght • <ST> = Status
did -ra $dname 26 Actions:
did -ra $dname 28 Advanced:
dialog -t $dname • Winamp controler.. •
did -r $dname 1
did -a $dname 1 +b 1 Previous $+ $chr(9) $+ Previous track
did -a $dname 1 +b 2 Pause $+ $chr(9) $+ Pause track
did -a $dname 1 +b 3 Stop $+ $chr(9) $+ Stop player
did -a $dname 1 +b 4 Sing! :p $+ $chr(9) $+ Play track
did -a $dname 1 +b 5 Next track $+ $chr(9) $+ Next track
}
alias slijedeca { dll $scriptdirmWC.dll forward }
alias prosla { dll $scriptdirmWC.dll previous }
alias plej { dll $scriptdirmWC.dll play }
alias stopiraj { dll $scriptdirmWC.dll stop }
alias pauziraj { dll $scriptdirmWC.dll pause }
alias -l p.duzina {
$iif($1 < 10,return 0 $+ $1,return $1)
}
alias nprefres {
if ($dll(mWC.dll,getStatus,'') == 1) {
if ($hget(winamp,neradi) != $null) {
hdel winamp neradi
did -ra winamp 10 • $+($remove($npstatus,.),:) $plejtrenutno •
hadd winamp pocetna $dll(mWC.dll,getTitle,'')
goto kraj
}
if ($hget(winamp,pocetna) != $dll(mWC.dll,getTitle,'')) {
did -ra winamp 10 • $+($remove($npstatus,.),:) $plejtrenutno •
hadd winamp pocetna $dll(mWC.dll,getTitle,'')
$iif($hget(winamp,start) == da,nplej)
goto kraj
}
if ($hget(winamp,pocetna) == $dll(mWC.dll,getTitle,'')) {
did -ra winamp 10 • $+($remove($npstatus,.),:) $plejtrenutno •
goto kraj
}
}
else {
hadd winamp neradi da
if ($dialog(winamp)) {
dialog -x winamp
.timerwinamp off
noop $input($iif($hget(winamp,jezik) == srpski,Cini mi se da plejer $chr(40) $+ Winamp $+ $chr(44) Aimp.. $+ $chr(41) nije pokrenut. Ako zelis koristiti ovaj addon $+ $chr(44) prvo pokreni plejer. :p,It seems that pleyer $chr(40) $+ Winamp $+ $chr(44) Aimp etc.. $+ $chr(41) is not running. If you want to use winamp controler $+ $chr(44) turn on your player. :p),wo,Info.)
}
}
:kraj
}
alias plejtrenutno {
var %pjesma $dll(mWC.dll,getTitle,'')
var %duzinapjesme $dll(mWC.dll,getTrackLen,'')
if (%duzinapjesme == -1) {
var %duzinapjesme Radio
}
else {
var %minuti $int($calc(%duzinapjesme / 60))
var %sekunde $calc(%duzinapjesme - (%minuti * 60))
var %duzinapjesme $p.duzina(%minuti) $+ : $+ $p.duzina(%sekunde)
}
return %pjesma $+([,%duzinapjesme,])
}
alias npstatus {
if ($dll(mWC.dll,isPlaying,'') == 1) {
var %np.status $iif($hget(winamp,jezik) == srpski,Plejing,Playing)
}
elseif ($dll(mWC.dll,isPlaying,'') == 3) {
var %np.status $iif($hget(winamp,jezik) == srpski,Pauzirano,Paused)
}
elseif ($dll(mWC.dll,isPlaying,'') == 0) {
var %np.status $iif($hget(winamp,jezik) == srpski,Stopirano,Stopped)
}
return $+(%np.status,..)
}
alias nplej {
if ($dll(mWC.dll,getStatus,'') == 1) {
var %pjesma $dll(mWC.dll,getTitle,'')
var %srejt $dll(mWC.dll,getSamplerate,'')
var %brejt $dll(mWC.dll,getBitrate,'')
var %npstatus $npstatus
var %duzinapjesme $dll(mWC.dll,getTrackLen,'')
if (%duzinapjesme == -1) {
var %duzinapjesme Radio
}
else {
var %minuti $int($calc(%duzinapjesme / 60))
var %sekunde $calc(%duzinapjesme - (%minuti * 60))
var %duzinapjesme $p.duzina(%minuti) $+ : $+ $p.duzina(%sekunde)
}
if ($status != disconnected) && ($active != status window) {
if ($hget(winamp,spamna) == svi) {
$hget(winamp,nacin) $replace($hget(winamp,poruka),<PS>,%pjesma,<DZ>,%duzinapjesme,<ST>,%npstatus,<BT>,%brejt,<SR>,%srejt)
goto kraj
}
if ($hget(winamp,spamna) == lista) {
var %zaspam 1
while (%zaspam <= $comchan($me,0)) {
if ($istok($hget(winamp,kanali),$comchan($me,%zaspam),32)) {
if ($hget(winamp,nacin) == ame) {
describe $comchan($me,%zaspam) $replace($hget(winamp,poruka),<PS>,%pjesma,<DZ>,%duzinapjesme,<ST>,%npstatus,<BT>,%brejt,<SR>,%srejt)
}
if ($hget(winamp,nacin) == amsg) {
msg $comchan($me,%zaspam) $replace($hget(winamp,poruka),<PS>,%pjesma,<DZ>,%duzinapjesme,<ST>,%npstatus,<BT>,%brejt,<SR>,%srejt)
}
}
inc %zaspam
}
goto kraj
}
if ($hget(winamp,spamna) == nelista) {
var %stabo 1
while (%stabo <= $comchan($me,0)) {
if (!$istok($hget(winamp,kanali),$comchan($me,%stabo),32)) {
if ($hget(winamp,nacin) == ame) {
describe $comchan($me,%stabo) $replace($hget(winamp,poruka),<PS>,%pjesma,<DZ>,%duzinapjesme,<ST>,%npstatus,<BT>,%brejt,<SR>,%srejt)
}
if ($hget(winamp,nacin) == amsg) {
msg $comchan($me,%stabo) $replace($hget(winamp,poruka),<PS>,%pjesma,<DZ>,%duzinapjesme,<ST>,%npstatus,<BT>,%brejt,<SR>,%srejt)
}
}
inc %stabo
}
goto kraj
}
if ($hget(winamp,spamna) == aktivni) {
if ($hget(winamp,nacin) == ame) {
describe $active $replace($hget(winamp,poruka),<PS>,%pjesma,<DZ>,%duzinapjesme,<ST>,%npstatus,<BT>,%brejt,<SR>,%srejt)
}
if ($hget(winamp,nacin) == amsg) {
msg $active $replace($hget(winamp,poruka),<PS>,%pjesma,<DZ>,%duzinapjesme,<ST>,%npstatus,<BT>,%brejt,<SR>,%srejt)
}
}
}
}
:kraj
}
menu menubar {
-
• Winamp ctrl. •:winamp
-
}
on *:load:{
$iif(!$hget(winamp),hmake winamp 100)
$iif(!$exists(winamp.hsh),hsave winamp winamp.hsh)
hload winamp winamp.hsh
hadd winamp poruka np: [ <PS> ] • [ <DZ> ] • [ <BT>kbps|<SR>kHz ]
hadd winamp jezik english
hadd winamp kanali #Ok #Smor
hadd winamp spamna svi
hadd winamp nacin ame
hadd winamp start da
echo -a • Loaded Winamp Controler $+($chr(40),$script,$chr(41),..)
}
; Kf
I guess you could download plugin for wmp from http://windows.microsoft.com/en-US/windows/downloads/wmplugins ..