Crearea pluginurilor pentru winamp

Ferestrele de lucru în întreaga sa fereastră (în timpul întreruperii) sunt implicate în faptul că trimite și primește mesaje. De exemplu, utilizatorul a modificat rezoluția ecranului, Windows imediat raportează această știre tuturor ferestrelor (îmi pare rău pentru tautologie), spun ei, este timpul să redesenăm. Desigur, fiecare program poate reacționa la orice mesaj în felul său. Multe aplicații definesc pentru sine anumite comenzi specifice, adesea necesare. Luați, de exemplu, Microsoft Word. Are o fereastră principală exterioară, în interiorul căreia sunt ferestre mici, în care sunt deschise documente. Să presupunem că un utilizator execută Word și editează un document. Și brusc undeva în "Explorer" a văzut un alt fișier, pe care trebuia să-l editeze în același cuvânt. Utilizatorul face dublu clic pe fișier și pornește din nou Word. Word-copy verifică dacă este unică și unică sau deja are colegul său care rulează. Dacă există, atunci trimite un mesaj către original și se închide în siguranță. Word-original captează acest mesaj și învață de la el că este necesar să deschidă un astfel de fișier și îl deschide, iar utilizatorul nici nu a observat că Word a fost lansat a doua oară. Winamp acceptă un număr de mesaje non-standard. Datorită acestor rapoarte, există un număr mare de plug-in-uri și programe care pot gestiona Winamp.

Pentru a trimite un mesaj către Winamp, trebuie mai întâi să determinați identificatorul ferestrei sale. Acest lucru se face folosind funcția WinApi:

(aici și mai târziu sintaxa este Object Pascal);

lpClassName - numele clasei ferestrei de căutare;

lpWindowName - titlul ferestrei de căutare.

Pentru a trimite un mesaj, se folosește o altă funcție WinApi:

hWnd - identificatorul ferestrei la care este trimis mesajul;

Mesaj - mesajul trimis;

wParam - primul parametru al mesajului;

lParam este al doilea parametru al mesajului.

Winamp acceptă două tipuri de mesaje principale (parametrul Msg):

  • WM_COMMAND: servește numai pentru trimiterea anumitor comenzi Winamp (Play, Stop, Next, Close, etc.);
  • WM_USER: este folosit nu numai pentru a efectua acțiuni, ci și pentru a determina diferite informații (versiunea, compoziția curentă, numărul de piese etc.).

Tabelul 1 prezintă constantele de bază pentru primul parametru al mesajului WM_COMMAND.

Pentru a le folosi, notați următoarea funcție:

WinampUser (1, 105); - Returnează lungimea melodiei curente în câteva secunde.

Am învățat deja cum să gestionăm Winamp, această abilitate este utilă pentru scrierea plug-in-urilor.

Plugin-urile pentru Winamp'u vin în cinci forme:

  1. Input - plug-in-uri pentru redarea de diferite formate;
  2. Ieșire - pentru înregistrarea muzicii în diferite formate;
  3. Scopuri generale - plug-in-uri de uz general, cele mai multe ori folosesc mesajele pe care le-am discutat mai sus;
  4. DSP / Efect - pentru procesarea sunetului;
  5. Vizualizare - plug-in-uri care fac ceva în timp pentru muzică.

Pe site-ul www.winamp.com puteți descărca șabloane de toate tipurile de plug-in-uri. De exemplu, luați în considerare un mic plugin de vizualizare care va face ca lămpile Num Lock, Caps Lock și Scroll Lock să clipească în timp cu muzica. Pentru a face acest lucru, utilizați șablonul corespunzător (vis_minisdk). Are o funcție Render, care după o anumită perioadă de timp primește de la Winamp'a informații despre nivelurile actuale ale frecvențelor muzicii care se joacă. Rămâne doar să scriem un handler al acestor date:

Tot codul sursă și plug-in-ul pot fi găsite la www.IvanFDC.narod.ru/download.html. Vreau să observ că acest plug-in gestionează numai starea becurilor, dar nu atinge cheile în sine. Prin urmare, când utilizați pluginul, puteți introduce textul fără probleme.

După cum puteți vedea, toată lucrul la procesarea sunetului Winamp se preia, prin urmare este posibil să creați plug-in-uri pentru acest jucător popular chiar și pentru o persoană foarte departe de muzică.

Versiune imprimabilă

Articole similare