AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

LibVLC Header Übersetzung

Ein Thema von Peter666 · begonnen am 27. Apr 2020 · letzter Beitrag vom 28. Apr 2020
Antwort Antwort
Peter666

Registriert seit: 11. Aug 2007
317 Beiträge
 
#1

LibVLC Header Übersetzung

  Alt 27. Apr 2020, 14:39
Hi,

hat jemand eine Idee wie ich dieses Makro nach Delphi übersetzen kann?

Code:
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; \
} \
Peter
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
2.863 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: LibVLC Header Übersetzung

  Alt 27. Apr 2020, 15:10
Habe jetzt nicht reingeschaut, die PasLibVlc kennst Du aber.
ODer fehlt Dir darin eine Übersetzung ?
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
317 Beiträge
 
#3

AW: LibVLC Header Übersetzung

  Alt 28. Apr 2020, 09:54
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.998 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: LibVLC Header Übersetzung

  Alt 28. Apr 2020, 15:13
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:
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;
Die Variablen module/config sollen wohl globale Variablen sein.
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (28. Apr 2020 um 15:16 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf