Hi,
Eine neue Version von OSDServer ist verfügbar. Die neue Version fixt einen Bug mit Edit-Menüitems, der erstaunlicherweise seit VDR 1.5.11 nicht aufgefallen ist...
Außerdem ist erstmals ein neues, experimentelles Perl-Modul dabei, das das Netzwerkprotokoll von OSDServer komplett kapselt, und ein objektorientiertes Interface zu OSDServer bereit stellt.
Download wie üblich:
http://www.udo-richter.de/vdr/osdserver.html
Noch ein paar einfache Beispiele als Appetizer:
Eine einfache Meldung in die Statuszeile von VDR bringen:
#!/usr/bin/perl
use OSDServer;
my $server = OSDServer->Open() or die "open";
$server->Message("Hello World!");
$server->Close();
Nett, aber das kann SVDRPSend ja einfacher.
Das kann SVDRPSend nicht mehr:
#!/usr/bin/perl
use OSDServer;
my $server = OSDServer->Open() or die "open";
if ($server->Message("Is this easy?") eq "keyOk") {
print "This is easy!\n";
}
$server->Close();
Hier wird der if-Block nur durchlaufen, wenn der Benutzer die Meldung mit Ok weggedrückt hat. Damit wird die Sache schon interaktiver.
Und um gleich mit den praktischen Beispielen weiter zu machen, hier eine einfache Texteingabe:
#!/usr/bin/perl
use OSDServer;
my $server = OSDServer->Open() or die "open";
my $menu = $server->NewMenu("Hello World editing");
$menu->SetColumns(10);
$menu->EnableEvent(["keyOk"]);
my $input = $menu->AddNewEditStrItem("Edit Text", "Hello World");
$menu->Show();
my (undef,undef,$event) = $menu->SleepEvent();
if ($event eq "keyOk") {
my $text = $input->GetValue();
print "$text\n";
}
$server->Close();
Alles anzeigen
Das Beispiel öffnet ein VDR-Menü mit einem Eingabe-Feld. Das Feld ist mit "Hallo Welt" vorbelegt und kann beliebig bearbeitet werden. Verlässt man das Menü mit Ok, wird der eingegebene Text ausgelesen und auf der Konsole ausgegeben.
Bei den Beispielen im examples-Ordner ist auch demo-pm.pl, eine Version des alten Beispiel-Menüs, das bereits in den vorigen Versionen als Shellscript und Perl-Script dabei war, nur diesmal halt auch vollständig auf dem neuen Perl-Modul basierend dabei ist.
Zumindest für Perl-Skripter ist OSDServer damit einfacher als je zuvor. Also: Überrascht mich, macht was vollkommen neues damit!
Gruß,
Udo