![]() |
LibVLC Header Übersetzung
Hi,
hat jemand eine Idee wie ich dieses Makro nach Delphi übersetzen kann?
Code:
Peter
typedef int (*vlc_set_cb) (void *, void *, int, ...);
#define vlc_plugin_set(...) vlc_set (opaque, NULL, __VA_ARGS__) #define vlc_module_set(...) vlc_set (opaque, module, __VA_ARGS__) #define vlc_config_set(...) vlc_set (opaque, config, __VA_ARGS__) /* * InitModule: this function is called once and only once, when the module * is looked at for the first time. We get the useful data from it, for * instance the module name, its shortcuts, its capabilities... we also create * a copy of its config because the module can be unloaded at any time. */ #define vlc_module_begin() \ EXTERN_SYMBOL DLL_SYMBOL \ int CDECL_SYMBOL __VLC_SYMBOL(vlc_entry) (vlc_set_cb, void *); \ EXTERN_SYMBOL DLL_SYMBOL \ int CDECL_SYMBOL __VLC_SYMBOL(vlc_entry) (vlc_set_cb vlc_set, void *opaque) \ { \ module_t *module; \ module_config_t *config = NULL; \ if (vlc_plugin_set (VLC_MODULE_CREATE, &module)) \ goto error; \ if (vlc_module_set (VLC_MODULE_NAME, (MODULE_STRING))) \ goto error; #define vlc_module_end() \ (void) config; \ return 0; \ error: \ return -1; \ } \ |
AW: LibVLC Header Übersetzung
Habe jetzt nicht reingeschaut, die
![]() ODer fehlt Dir darin eine Übersetzung ? |
AW: LibVLC Header Übersetzung
Danke für die Rückmeldung. Das ist da nicht drin. Mit den beiden Makros definierst du den Einsprungpunkt für Plugins in VLC. Ich wollte gerne ein eigenes Plugin zu Testzwecken schreiben. Wenn es nicht geht ist es auch nicht so schlimm.
Peter |
AW: LibVLC Header Übersetzung
Das GOTO ist schon geil.
Das "EXTERN_SYMBOL vlc_entry" hab ich als DLL-Import verstanden, aber es wird doch nirgendwo verwendet, also nutzlos?
Delphi-Quellcode:
Die Variablen module/config sollen wohl globale Variablen sein.
var
module: Pmodule_t; config: Pmodule_config_t; function vlc_plugin_set(Param1, Param2, Param3: irgendwas): nochwas; // nochwas = Result-Typ von vlc_set begin Result := vlc_set(opaque, nil, Param1, Param2, Param3); end; ... function vlc_module_begin: Integer; // aber für mich sieht es mehr nach einem Boolean aus {var module: Pmodule_t; config: Pmodule_config_t;} begin config := nil; if vlc_plugin_set(VLC_MODULE_CREATE, @module) then // vom Gefühl her würde ich denken da fehlt ein NOT Exit(-1); if vlc_module_set(VLC_MODULE_NAME, MODULE_STRING) then Exit(-1); //Result := ; // vermutlich 0, aber da nirgendwo initialisiert/gesetzt, kannst auch Random benutzen [EDIT] siehe nächste Zeilen {Result :=} vlc_module_end; // gut, da vlc_module_end IM vlc_module_begin definiert wurde, wird es wohl auch gleich mit aufgerufen Result := 0; // weil ich vlc_module_end als Prozedur hab, da es eh immer das Selbe liefert end; procedure vlc_module_end; begin config; //Result := 0; end; Sieht für mich zwar lokal aus, aber macht so keinen Sinn. Außerdem knallt es in vlc_module_end wenn vlc_config_set nicht aufgerufen wurde. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz