Jump to content

Plugin Programmierung


Recommended Posts

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 by akr
Link to comment

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

Link to comment
  • 2 months later...

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.

Link to comment

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.

Link to comment
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 :D

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...