як підключити візуальні плагіни від Winamp?
ну скажіть, че ніяких думок ((((
у мене теж
1) Знайти приклад початкових кодів візуального плагіна (посилання зараз не дам, але їх є).
2) Подивитися, які там експортуються функції (те, що плагін - це dll, сподіваюся, в курсі?).
3) У своїй програмі завантажити dll - плагін і викликати ці функції відповідно до елементарною логікою (ініціалізація, update, завершення). У update підсунути плагіну схожі на звук (або хоча б випадкові) дані.
> В update підсунути плагіну схожі на звук (або хоча б
> Випадкові) дані.
ок.
я його хочу використовувати разом з самим вінампа, він грає, а візулізація на моїй формі.
ну прінцепе ясний, поки спробую хоча б підключити.
Хм, а сенс? Хвалитися всім, що "ось я плагін написав". )
З плагіном AVS зробити "висновок на форму" просто: включити overlay mode, вибрати там який-небудь рідкісний колір, залити цим кольором свою форму - і буде тобі Щастя :)
> Хм, а сенс? Хвалитися всім, що "ось я плагін написав"?
> # XA0; :)
Сенс абсолютно інший.
> З плагіном AVS зробити "висновок на форму" просто: включити
> Overlay mode, вибрати там який-небудь рідкісний колір, залити
> Цим кольором свою форму - і буде тобі Щастя :)
А ось це реальний рада велике спасибі)))
Ось знайшов приклад.
Полскажіте як хочаб викликати "Про програму"
Я вже все написав в пості [2] пункт 3.
Майже вгадав, за винятком того, що безпосередньо з dll викликається тільки winampVisGetHeader, а все інше через структуру, яку вона повертає.
Незрозуміло, як викликати функцію з dll? Значить, потрібно почитати щось на цю тему (конкретно про динамічне завантаження dll).
Є це на увазі
LoadLibrary
GetProcAddress
winampVisGetHeader
getModule
config (init, render, quit. Хоч, можливо, для великих полігонів на кшталт AVS потрібно спочатку init, потім config).
Незрозумілий просто цей момент
> Що безпосередньо з dll викликається тільки winampVisGetHeader,
> # XA0; а все інше через структуру, яку вона повертає.>
ну треба спробувати.
procedure TForm1.Button1Click (Sender: TObject);
var LibHandle: THandle;
# XA0; # XA0; render: procedure;
begin
# XA0; # XA0; LibHandle: = LoadLibrary ( "З: \. \ Vis_avs.dll");
# XA0; # XA0; @render: = GetProcAddress (LibHandle, "winampVisGetHeader");
# XA0; # XA0;
як далі?
?
?
?
?
# XA0; # XA0;
# XA0; # XA0; FreeLibrary (LibHandle); // Free Memory Allocated for the DLL
> Var Hdr. # XA0; PWinampVisHeader;
> # XA0; # XA0; Mod. PWinampVisModule;
брбрбр
Від куди взялися ці типи: PWinampVisHeader; PWinampVisModule;
все більше заплутується.
Велике прохання - якщо не важко, просто наведіть приклад реально працюючого коду, в якому з бібліотеки vis_avs.dll викликається, наприклад вікно з настройками і ВСЕ, тема буде закрита.
все більше заплутується.
Велике прохання - якщо не важко, просто наведіть приклад реально працюючого коду, в якому з бібліотеки vis_avs.dll викликається, наприклад вікно з настройками і ВСЕ, тема буде закрита.
Від куди взялися ці типи:
Звідси:
ka1n # XA0; (14.12.06 15:52) [6]
До речі, звідти ж слід брати і тип winampVisGetHeader. Тобто не просто procedure, а
Var winampVisGetHeader: function. PWinampVisHeader; cdecl;
Може не зовсім в тему Ka1n, але у мене є # XA0; Bassplayer v1.81 а
там в демо весіі підключені плагіни Winamp і є її код.
Так що якщо цікаво то можу скинути на пошту (не пам'ятаю де я його скачав).
І якщо че небудь вийде даси подивитися код.