Zitat von
Ghostwalker:
Ähm..um weitere Missverständnisse mal vorzubeugen. Ich bau dir mal eine Beispielunit wie das mit dem Superset gedacht ist
Hmm das wäre Super!
Danke für deine Mühe.
Irgendwie hab ich hier einen Bug im Forum entdeckt die seite ist bei mir hier geteilt!
Komisch nach dem letzen Satz geht sie wieder... schon seltsam
Bin am überlegen ob ich nachher noch die
DLL als ComObject auslegen soll
hmmm... zumindest wäre sie dann auch unter Linux anwendbar.
Na eins nach dem anderen.
EDIT:
Hier mal eine ungefähre ablauffolge:
1. Initialisieren
Delphi-Quellcode:
Einmalig aufgerufen.
BASS_WINAMPVIS_INIT(Application.Handle, frmMain.Handle);
2. Plugin laden und Informationen einlesen
Delphi-Quellcode:
GetPlugin;
innerhalb deiner Anwendung
Dort geht es weiter
Delphi-Quellcode:
flist.CommaText := BASS_VIS_FindPlugins(PChar(PluginDir),
BASS_VIS_FIND_WINAMP or
BASS_VIS_FIND_RECURSIVE or
BASS_VIS_FIND_COMMALIST);
Lugins werden eingelesen
Dann wird die Information des plugins eingeholt
Delphi-Quellcode:
GetPluginInfo;
innerhalb deiner Anwendung
Delphi-Quellcode:
vischan := BASS_WINAMPVIS_GetHandle(PChar(PluginDir + PluginList.Items[IndexNum]));
NumModule := BASS_WINAMPVIS_GetNumModules(PChar(PluginDir + PluginList.Items[IndexNum]));
PluginName := BASS_WINAMPVIS_GetName(vischan);
Jetzt sind alle relevanten Infos zum ausführen der plugins vorhanden.
--------------------------------
3. Plugin starten
Delphi-Quellcode:
BASS_WINAMPVIS_SetChanInfo(0,
PAnsiChar(MediaTitle),
PAnsiChar(StreamFile),
round(StreamPos),
round(StreamLength),
Playlist.ItemIndex,
Playlist.count);
MediaInformationen senden
Delphi-Quellcode:
vischan := BASS_WINAMPVIS_ExecuteVis(PChar(PluginDir +
PluginList.Items[IndexNum]),
VisModules.Selection.Top,
True,
ckShowW2.Checked);
// Get HWND from Winamp Dummy Window
hWndWinAMP := BASS_WINAMPVIS_GetAmpHwnd;
// send the last active Playlist index to visplugin
BASS_WINAMPVIS_SetPlaylistPos(hWndWinAMP, PlaylistPos);
// Playing Status
BASS_WINAMPVIS_Play(hWndWinAMP);
// Check IsPlaying
ISPlaying := BASS_WINAMPVIS_IsPlaying(hWndWinAMP);
BASS_WINAMPVIS_SetGenHwndParent(hWndGen,
Panel1.Handle,
5,
5,
Panel1.Width - 10,
Panel1.Height - 10);
BASS_WINAMPVIS_RenderStream(stream);
Plugin starten
usw... das muß im moment bei jeden Typ erfolgen
Kannst dir vorstellen was da für ein schreibkram zustande kommt wenn du alle typen verwenden willst.
gruss Emil