Cum se conectează pluginurile vizuale din winamp

cum să conectați pluginurile vizuale de la Winamp?

Ei bine, spune-mi, Che, fără gânduri ((((
și eu

1) Găsiți un exemplu de surse ale pluginului vizual (nu voi da link-ul acum, dar sunt unele).






2) Să privim, ce funcții sunt exportate (că plug-in-ul este dll, sper, într-un curs?).
3) În programul dvs., încărcați pluginul dll și apelați aceste funcții în funcție de logica elementară (inițializare, actualizare, finalizare). În actualizare, glisați plugin-ul ca un sunet (sau cel puțin la întâmplare).


> În actualizare, conectați pluginul ca un sunet (sau cel puțin
> date aleatorii).

aproximativ
Vreau să o folosesc cu winamp-ul în sine, el joacă și vizualizarea pe formularul meu.
Ei bine, prințul este clar, până când încerc să mă conectez cel puțin.

Hmm, care este rostul? Arătați tot ce "aici am scris un plugin." )
Cu plug-in AVS faceți "ieșire la formă" simplu: activați modul suprapus, alegeți o culoare rară, completați acest form cu culoarea proprie - și veți fi fericiți :)


> Hmm, care este motivul? Arată tot ce "aici am scris un plugin"?
> # xA0; :)

Înțelesul este complet diferit.


> Cu AVS plug-in face "ieșire pentru a forma" simplu: activați
> modul suprapus, alegeți o culoare rară, completați
> această culoare forma ta - și vei fi fericit :)

Dar acest lucru este un sfat real multumesc mult)))

Iată un exemplu.

Spuneți-mi cum să sunați Cel puțin "Despre program"

Am scris deja totul în post [2], punctul 3.






Aproape ghicit, cu excepția faptului că direct din dll numai winampVisGetHeader este chemat, și orice altceva este prin structura se întoarce.
Nu este clar cum se poate apela o funcție din DLL? Mijloace, este necesar să se prețuiască ceva pe acest subiect (este concret despre dll de încărcare dinamică).

Există acest lucru în vederea

LoadLibrary
GetProcAddress
winampVisGetHeader
getModule
config (init, render, quit.) Dar, pentru plug-in-uri mari ca AVS, va trebui să inițiți mai întâi, apoi config).

Nu este clar acest moment


> că direct de la dll este cauzată doar de winampVisGetHeader,
> # xA0 și orice altceva este prin structura pe care o returnează

Ei bine, trebuie să încercăm.

procedura TForm1.Button1Click (expeditor: TObject);
var LibHandle: Thandle;
# xA0; # xA0; render: procedura;
începe
# xA0; # xA0; LibHandle: = LoadLibrary ("De la: \. \ Vis_avs.dll");
# xA0; # xA0; @render: = GetProcAddress (LibHandle, "winampVisGetHeader");
# xA0; # xA0;
Cât mai departe?
?
?
?
?
# xA0; # xA0;
# xA0; # xA0; FreeLibrary (LibHandle); // Liberă memorie alocată pentru DLL


> Var Hdr. # xA0; PWinampVisHeader;
> # xA0; # xA0; Mod. PWinampVisModule;

brbrbr

De unde au apărut aceste tipuri: PWinampVisHeader; PWinampVisModule;

din ce în ce mai mult mă confund.
Mult pentru a cere - în cazul în care nu este dificil, da doar un exemplu de cod de lucru real în care biblioteca este invocată din vis_avs.dll, cum ar fi o fereastră cu setările și toate, subiectul va fi închis.

din ce în ce mai mult mă confund.
Mult pentru a cere - în cazul în care nu este dificil, da doar un exemplu de cod de lucru real în care biblioteca este invocată din vis_avs.dll, cum ar fi o fereastră cu setările și toate, subiectul va fi închis.

De unde provin aceste tipuri:

De aici:
ka1n # xA0; (14.12.06 15:52) [6]

Apropo, de acolo ar trebui să luați și tipul winampVisGetHeader. Ie nu doar o procedură, ci
Var winampVisGetHeader: funcție. PWinampVisHeader; cdecl;

Poate că nu exact în tema Ka1n, dar am și eu # xA0; Bassplayer v1.81 a
există plug-in-uri Winamp în demo și codul său.
Deci, dacă este interesant, o pot arunca pe poștă (nu știu de unde am descărcat-o).

Și dacă se întâmplă, puteți vedea codul.







Trimiteți-le prietenilor: