akr Posted February 4, 2009 Share Posted February 4, 2009 (edited) Hallo, seit 3 Tagen suche ich vergeblich hier im Forum und Google nach Informationen zur Programmierung von Plugins. Gefunden habe ich bisher ein SDK das aber nur sehr wenig Aufschluß gibt (zumindest für Anfänger) und ein Beispiel mit dem Namen "MyPrograms". Das Beispiel ließ sich auch nach einigen Änderungen (ich arbeite immer noch mit Delphi4) problemlos compileren und läuft auch im DVBViewer. Leider hilft mir das nicht sehr viel, weil ich mir ein Inputplugin schreiben möchte, mit dem ich Tastenbefehle an DVBViewer senden möchte oder den Sender wechseln. Über einen Link auf entsprechende Dokumentation würde ich mich sehr freuen. Vielleicht hat jemand so etwas schon mal mit Erfolg gemacht und kann mal ein Grundgerüst zur Verfügung stellen. Schon mal Danke für jeden Hinweis Edited February 4, 2009 by akr Quote Link to comment
hackbart Posted February 5, 2009 Share Posted February 5, 2009 Input-Plugins sind recht einfach gestaltet: type TInputCallback = procedure(Sender: Pchar; Event: PChar); stdcall; var FLirc: TWinLirc; FCallback: TInputCallback; procedure ReadEvent(Sender: TObject; KeyCode, KeyCount, KeyName, RCName: string); begin if assigned(FCallback) then FCallback(PChar(RCName), PChar(KeyName)); end; function Version: Pchar; stdcall; begin result := '1.00'; end; function Copyright: PChar; stdcall; begin result := 'written 2008 by Christian Hackbart'; end; function LibTyp: PChar; stdcall; begin result := 'Input'; end; function PluginName: PChar; stdcall; begin result := 'WinLirc'; end; procedure SetCallback(Handle: Integer; Callback: TInputCallback); stdcall; begin if not assigned(FLirc) and (@Callback <> nil) then FLirc := TWinLirc.Create; if (@Callback = nil) then begin FreeAndNil(FLirc); end else begin if FLirc <> nil then begin FLirc.OnRead := ReadEvent; FLirc.Connect := true; end; end; FCallBack := Callback; end; exports PluginName; exports Version; exports Copyright; exports LibTyp; exports SetCallback; Das Plugin oben erlaubt Beispielsweise (wenn jemand meine WinLirc Klasse hätte) die Übergabe der WinLirc Kommandos an den DVBViewer. Wichtig ist eigentlich SetCallback und der Aufruf der Callback-Funktion, wenn eine Taste gedrückt werden soll. Christian Quote Link to comment
Darkshadow4 Posted April 20, 2009 Share Posted April 20, 2009 Hi, ich bin gerade dabei selber ein Inputplugin zu schreiben, jedoch scheint der DVBViewer nich auf den Aufruf der Callback-Funktion zu reagieren. Kann mir einer sagen woran das liegen könnte. Ich speichere und Rufe die Funktion genauso wie im Beispiel auf. Vielen Dank im vorraus für die Hilfe. Quote Link to comment
Darkshadow4 Posted April 20, 2009 Share Posted April 20, 2009 Hi, ich noch mal. Ich habe das Problem gefunden. Allerdings ist es etwas unerwartet, denn ich habe aus dem SDK und auch aus dem Beispiel von hackbart nich rauslesen können, dass SetCallback auch aufgerufen wird, wenn man das Optionsmenü öffnet, daher hatte ich keine Überprüfung gemacht ob das Formular schon Exsistiert oder nicht. Jetzt mit der Überprüfung funktioniert alles einwandfrei. Sorry für meine Blindheit und nochmal danke für etweige Mühe. Quote Link to comment
SnoopyDog Posted April 21, 2009 Share Posted April 21, 2009 dass SetCallback auch aufgerufen wird, wenn man das Optionsmenü öffnet, daher hatte ich keine Überprüfung gemacht ob das Formular schon Exsistiert oder nicht. Kenn ich Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.