Jump to content
Guest Lars_MQ

COM was fehlt noch?

Recommended Posts

klausb

Hi Lars,

 

Ich könnte mir noch vorstellen an diversen Stellen callbacks einzuführen. Z.B. beim Ende einer Aufnahme schaltet sich der DVBV ab. Dabei kommt dann der Dialog, mit dem man das Abschalten noch verhindern kann, sofern man noch vor der Glotze sitzt.

Hier könnte auch alternativ eine Funktion von mir aufgerufen werden, die dann TRUE/FALSE zurückliefert und der Dialog kommt erst gar nicht.

 

Gruss,

klaus.

Share this post


Link to post
kuehnch

Heho,

 

ich Suche nach einer Möglichkeit, an die EPG-Genre-Liste zu kommen. DVBViewer sollte also entweder die Genre-Liste passend zur unter DVBViewer eingestellten Sprache anbieten oder aber weiterhin noch eine Möglichkeit bereitstellen, eine Sprachenliste zu erhalten, so dass dann wiederum eine Genre-Liste für eine oder mehrere der verfügbaren Sprachen angefordert werden kann.

 

Hintergrund:

Ich schreibe ja gerade so einen TVmovie-Clickfinder-Importer. Um nicht ständig selbst eine Zuordnungsliste TVMovie-Kategorien <-> DVBViewer-Kategorien pflegen zu müssen, dachte ich daran, dem Anwender selbst die Möglichkeit zu geben, jeder DVBViewer-Kategorie ein oder mehrere TVMovie-Kategorien zuordnen zu lassen.

Share this post


Link to post
kuehnch

Aktuell passend zu Version 3.6.0.

Würde jeder Kanal aus der Kanalliste noch die Information mitliefern, welche EPG-Quellen bei ihm aktiviert sind, so könnte das gewinnbringend in den EPGImporter eingebaut werden, indem z.B. alle Kanäle, für welche "Externes EPG" nicht aktiviert ist, rot gekennzeichnet werden, so dass der Anwender erkennt, dass ein Datenimport an falschen DVBViewer-Kanaleinstellungen "scheitern" wird.

Share this post


Link to post
Guest Lars_MQ

Darauf habe ich im Moment noch mit absicht verzichtet, weil das bedeuten würde, das für jeden Kanal erstmal eine Datenbank anfrage gemacht werden muss. Intern im Viewer ist das nicht so problematisch, weil die Anfragen immer erst beim Zugriff auf die entsprechende Eigenschaft eines Kanalobjektes gemacht werden, bei der übergabe als (Ole)Array ist das natürlich nicht möglich.

 

Ich stehe im Moment vor einem ähnlichen Problem beim Service. Ich glaube, ich werde das lieber über eine Funktion lösen, mit der man für eine EPGChannelID abfragen kann, welchen Wert das EPGFlag hat.

Share this post


Link to post
erwin

Hallo,

 

das fehlt nicht unbedingt. Ist eher 'nice to have' als COM Programmierer. Ich hab mir eine COM-Anwendung zur Verwaltung von EPG und unter anderem auch zu einer erweiterten Timersteuerung geschrieben. Hier kann man zusätzliche Attribute hinterlegen wie Enddatum bei einer Wiederholaufnahme, Infobanner das gleich folgendes beginnt/umgeschaltet wird/aufgezeichnet wird usw. Diese Zusatzattribute lasse ich durch den DVBV abspeichern indem ich mehr oder weniger gekonnt das Description-Feld missbraucht habe. So etwa macht es Rayman mit seinem EPG+ auch, denke ich. Jetzt sollen weitere Attribute eingebaut werden (Priorität für überschneidenden Sendungen etwa). Bisher ließ sich das Description Feld auch im DVBV-only Betrieb noch halbwegs lesen. Langsam wirds aber eng. Dehalb folgende Anregung. Kann man die COM-Schnittstelle der Recorderprogrammierung um ein oder mehrere Userfelder erweitern? Sollen im DVBV nicht angezeigt werden, nur für COM-Zugriff.

 

 

mfg erwin

Share this post


Link to post
Micha Schumann

Hello,

 

I would like to see the following extensions to the com interface (although I am aware of the fact that most of it can be acchieved by some programming and I already have realized it):

 

1. getStatus [stPlay,stPause,stIdle] for easily determining the status on demand

2. getDevice [devDVD, devCD, devTV, devRadio, devMP3, devAVIMPG,...] for easily getting whats going on

3. Commands to control Dialogs like the one when deleting a recording (really missing)

4. Hook into "do you really want to exit"

 

Thanks!

Share this post


Link to post
Jnmarczi

Hi,

 

wünschenswert wäre am COM Interface eine Eigenschaft, die die

aktuell verwendete Hardware zurückliefert.

 

Am Besten gleich als long Index, um mit diesem Wert an

IDVBHardware die Informationen zur Hardware auslesen zu

können.

Share this post


Link to post
Rayman

(Ich habe mich mit Lars schon darüber ausgetauscht, will es der Vollständigkeit halber aber mit dokumentieren:)

Es gibt bisher keine IDispatch Unterstützung für die Schnittstelle IOSDWindowManager. Es wäre ganz hilfreich wenn sich diese einbauen liese, ansonsten kann ich mich (c++) pluginseitig nur schwer (oder garnicht?) ins OSD integrieren.

 

Unterstreichen und Nachdruck verleihen möchte ich bereits genannten Wünschen, da diese für mich ebenfalls sehr relevant sind:

 

ich Suche nach einer Möglichkeit, an die EPG-Genre-Liste zu kommen. DVBViewer sollte also entweder die Genre-Liste passend zur unter DVBViewer eingestellten Sprache anbieten

Am einfachsten für mich wäre hier eine Funktion, die mir nach Übergabe des Content-Value den jeweiligen String mit dem Genre zurückliefert.

 

Kann man die COM-Schnittstelle der Recorderprogrammierung um ein oder mehrere Userfelder erweitern? Sollen im DVBV nicht angezeigt werden, nur für COM-Zugriff.

Dies würde mir im EPGplus auch helfen, da ich für bestimmte Timer einige Zusatzinformation mit halten möchte.

 

Wäre schön, wenn sich das eine oder andere realisieren lässt. Danke :)

 

Stefan.

Share this post


Link to post
Lars_MQ

Also zur idispatch schnittstelle des OSD kann ich gleich sagen das wird nicht kommen. Das OSD kann nur im selben prozessraum angesprochen werden, also durch eine (Plugin)dll.

 

Dort kann das ganze über interfaces auf basis von IUnknown abgewickelt werden vergleichbar der Directshow oder auch DirectX schnittstelle. Mein Problem ist: ich muss etwa 100 kb an source in ein c header datei übersetzen und das geht nicht von heute auf morgen.

 

Die genre sachen lassen sich sicherlich lösen, bei den userfeld sachen wird das einiges schwieriger, da muss ich sehen, was da möglich wäre, aber versprechen kann ich erstmal nichts. :) Kannst Du Dir bei den userfeldsachen eventuell mit dem Datamanager behelfen? Dort kann man ja beliebige Key/Value paare reinschieben...

Share this post


Link to post
Rayman
Also zur idispatch schnittstelle des OSD kann ich gleich sagen das wird nicht kommen. Das OSD kann nur im selben prozessraum angesprochen werden, also durch eine (Plugin)dll.

Puh. :) Hat das schonmal jemand außerhalb von Delphi gemacht?

 

Danke für die Einblicke und Tipps mit dem Datamanager, ich werde das so angehen.

Share this post


Link to post
Richi

Ich würde mir folgendes wünschen: Datenbank auffrischen, säubern und komprimieren

 

EDIT:

Kann man die COM-Schnittstelle der Recorderprogrammierung um ein oder mehrere Userfelder erweitern? Sollen im DVBV nicht angezeigt werden, nur für COM-Zugriff.

Wünsche ich mir auch!

 

Gruss,

Richi

Edited by Richi

Share this post


Link to post
Lars_MQ

aus der actions.ini

Refresh RecDB=8260
Cleanup RecDB=8261
Compress RecDB=8262
Refresh Cleanup Compress RecDB=8263

Das ist schon seit der letzten version drinne. kann per /x commandline oder per idvbviewer.sendcommand oder postmessage oder oder oder genutzt werden :)

Share this post


Link to post
tmielke

Was noch fehlt ist eine Korrektur des IFreeDB_HTTP Interface. Sowohl Java als auch Microsoft Visual Studio (mit Foundation Clases) haben Probleme beim Import:

 

Unable to handle the type TMatch
 method Matchlist
 interface IFreeDB_HTTP

c:\users\tm1\projekte\lcddvbviewer\debug\DVBViewer.tlh(617) : error C3803: 'TMatch IFreeDB_HTTP::Matchlist[]': Eigenschaft hat einen Typ, der mit einem seiner Accessoren inkompatibel ist 'long IFreeDB_HTTP::GetMatchlist(VARIANT *)'

c:\users\tm1\projekte\lcddvbviewer\debug\DVBViewer.tlh(589): Siehe Deklaration von 'IFreeDB_HTTP::Matchlist':

__declspec(property(get=GetMatchlist)) struct TMatch Matchlist[];

c:\users\tm1\projekte\lcddvbviewer\debug\DVBViewer.tlh(617): Siehe Deklaration von 'IFreeDB_HTTP::GetMatchlist':

struct TMatch GetMatchlist ( long Index );
long GetMatchlist ( VARIANT * Value );

Siehe auch diesen thread:

 

http://www.DVBViewer.info/forum/index.php?showtopic=24057

 

Ist ein echter Blocker bei mir, weil ich mich weigere den COM-Kram zu Fuß, also ohne die automatisch generierten Wrapper-Klassen, zu benutzen, was ein irrsinniger Aufwand wäre.

Share this post


Link to post
CiNcH

Hmm, zumindest mit COM4J konnte ich die Stubs trotz der Fehler generieren. Bei JACOB geht alles über Reflection. Braucht man halt API-Doc neben sich.

Share this post


Link to post
tmielke
Hmm, zumindest mit COM4J konnte ich die Stubs trotz der Fehler generieren. Bei JACOB geht alles über Reflection. Braucht man halt API-Doc neben sich.

 

Visual Studio 2008 ist da weniger tolerant. Das Problem mit Visual Studio 2008 ist, dass es aus der DVBViewer.exe direkt eine .tlh Datei mit allen benötigten und nicht benötigten Interfaces baut die auch bei jedem Compilieren notorisch neu erzeugt wird. Ich kann da praktisch nichts ändern, weil alles automatisch geht. Ich hoffe, dass ich noch irgendwoher alte .idl Dateien bekomme.

 

Ansonsten bleibt mir nur einen Apell an den zuständigen Entwickler (Lars?): BITTE BITTE stell eine korrigierte Version zur Verfügung oder zumindest eine Version der exe, bei der das FreeDB Interface fehlt, rein zum Zweck des Interface-Imports! Von Bernd Hackbart habe ich nur den Hinweis bekommen, dass das Problem wohl auf Seiten von JAVA und dem Visual Studio liegt, aber dass ich ruhig nochmal im Forum dazu posten solle. ;)

Share this post


Link to post
CiNcH
Visual Studio 2008 ist da weniger tolerant. Das Problem mit Visual Studio 2008 ist, dass es aus der DVBViewer.exe direkt eine .tlh Datei mit allen benötigten und nicht benötigten Interfaces baut die auch bei jedem Compilieren notorisch neu erzeugt wird. Ich kann da praktisch nichts ändern, weil alles automatisch geht. Ich hoffe, dass ich noch irgendwoher alte .idl Dateien bekomme.

 

Geht mit COM4J gleich, da allerdings kommen nur Warnungen und es funktioniert trotzdem. Da regieren in dem Fall wohl andere zimperlicher. Wäre in dem Fall schon schön, wenn man sich das mal eben anschauen könnte...

Share this post


Link to post
JMS

@tmielke

 

Hast Du mal beim #import mit exclude("IFreeDB_HTTP") et al herumprobiert? Wenn die Schnittstelle benutzt wird, kracht es vermutlich trotzdem, da kann man dann einen kleinen schmutzigen Trick ergänzen und vor dem #import zwei #define machen:

 

#define IFreeDB_HTTP IUnknown

#define IFreeDB_HTTPPtr IUnknownPtr

 

#import "<Path to EXE>" exclude("IFreeDB_HTTP")

 

Jochen

 

<Zusatz>

Ich habe noch etwas herumrecherchiert und der Fehler könnte auch kommen, wenn jemand in einer IDL eine Methode Get<Irgendwas> und eine Property <Irgendwas> im selben Interface definiert (<Irgendwas> wäre hier dann wohl Matchlist, das Interface wohl IFreeDB_HTTP). Da gäbe es dann ganz sauber und ohne Verluste (naja, Du must Deine Properties dann entweder über OBJ-><PropertyName> oder OBJ->GetProp<PropertyName>() aufrufen, OBJ->Get<PropertyName>() gibt es dann nicht mehr (verwende ich persönlich extrem selten, daher würde ich es vermutlich nicht mal merken)) die #import Option high_property_prefixes("GetProp", "SetProp", "SetRefProp") (oder was für einen Prefix Du auch immer bevorzugst, nur in diesem besonderen Fall darf der erste Parameter halt nicht Get sein).

</Zusatz>

Edited by JMS

Share this post


Link to post
Findus

Hi Lars,

 

 

".....

Also zur idispatch schnittstelle des OSD kann ich gleich sagen das wird nicht kommen. Das OSD kann nur im selben prozessraum angesprochen werden, also durch eine (Plugin)dll.

 

Dort kann das ganze über interfaces auf basis von IUnknown abgewickelt werden vergleichbar der Directshow oder auch DirectX schnittstelle. Mein Problem ist: ich muss etwa 100 kb an source in ein c header datei übersetzen und das geht nicht von heute auf morgen.

 

...."

 

 

Gibt es zu deiner Aussage im Februar schon Fortschritt zu berichten?

 

 

Gruss Findus

Share this post


Link to post
Prinz

Hallo,

 

folgenden Vorschlag habe ich noch:

 

Es gibt aktuell den COM-Event onAddRecord.

 

 

Wäre es möglich auch bei einem Löschen eines Timer-Eintrags einen Event auszulösen? Auf diese Weise könnten externe event-basierende Programme entsprechend reagieren.

 

Hier daher mein Vorschlag für den neuen Event:

 

procedure onRemovedRecord(ID: Integer); 
The event gets fired whenever a Timer entry is removed. 

Parameters
ID 
ID of the removed timer.

 

Wäre das machbar?

 

Gruß

Prinz

Share this post


Link to post
Portisch

Ich will nur auf einen kleinen "Fehler" hinweisen.

 

Wenn DVBViewer gestartet wird ist im COM-Interface und über den Datamanger der Wert für Volume (0-100) leer.

 

Erst wenn die Lautstärke im DVBViewer verändert wird ist auch in Volumen ein Wert drinnen.

Share this post


Link to post
Goersch

Hallo,

 

kann ich über das COM Interface die "Time Before" und "Time After" Werte aus Recorder\Recordings\One Click Programming (EPG) auslesen ?

 

Danke !

Georg

Share this post


Link to post
Prinz

Hallo,

kann ich über das COM Interface die "Time Before" und "Time After" Werte aus Recorder\Recordings\One Click Programming (EPG) auslesen ?

 

Ja, die stehen in der setup.xml unter der Session "General" und den entries "EPGBefore" und "EPGAfter". Über den COM-Befehl "GetSetupValue" kannst Du dann diese Werte ermitteln.

 

Theoretisch könntest Du die Datei auch direkt mit einem XML-Parser auswerten, dann braucht der DVBViewer nicht gestartet zu sein.

 

Gruß

Prinz

Share this post


Link to post
Goersch
Hallo,

 

 

Ja, die stehen in der setup.xml unter der Session "General" und den entries "EPGBefore" und "EPGAfter". Über den COM-Befehl "GetSetupValue" kannst Du dann diese Werte ermitteln.

 

Theoretisch könntest Du die Datei auch direkt mit einem XML-Parser auswerten, dann braucht der DVBViewer nicht gestartet zu sein.

 

Gruß

Prinz

 

Hallo Prinz,

 

danke für die Info - der DVBVViewer muss eh für meine Anwendung laufen - insoweit sollte das funktionieren !

 

Danke !

Georg

Share this post


Link to post
Goersch

dem möchte ich mich anschliessen. Ein solches Event wäre auch bei mir sehr hilfreich :)

Share this post


Link to post
Allodo

Hallo,

 

gibt es mittlerweile die Möglichkeit den DVD-Titel und Kapitel auszulesen? Habe im DVBSpy nichts gesehen, was darauf schliessen lässt. Unter #Media.Title steht nur "VIDEO_TS". Die Spieldauer bekomme ich angezeigt.

 

 

Danke ;)

Share this post


Link to post
gispos

Hallo,

der Thread scheint ja schon etwas älter zu sein, hoffe dass ich hier auf dem richtigen Dampfer bin um meine Wünsche kund zu tun.

 

Wenn es was an Performance bringen sollte nur z.B. 3 EPG Daten Sätze und nicht alle bis zum Ende abzufragen, währe es schön dies auch mit einem Integer (Count) und nicht nach TDateTime (Zeit) bestimmen zu können. Ich weis ja nicht bis zu welcher Zeit ich abfragen muss um 3 Datensätze zu erhalten.

Also: eCount := EPGManager.GetAsArray(EPGID, Now, 3, eList)

 

Beim FavoritenManager währe es nützlich wenn es im Array auch eine ChannelNr geben würde, es würde den Umweg über GetNr(CHID) ersparen.

Und im ChannelManager Array vermisse ich wiederum die ChannelID.

 

Das nächste betrifft das Event beim umschalten eines Senders (OnChannelChange), des Öfteren bekomme ich keine Rückmeldung beim umschalten, erst nach Abfrage zum CurrentChannel wird mir der aktuelle Sender preisgegeben. OnStartRecord und OnEndRecord funktionieren dagegen Tadellos!

 

Beim löschen (stoppen) einer Aufnahme, bleibt das Record Symbol in der Statusleiste meistens weiterhin bestehen. Ich habe das im Moment mit PostMessage(DVBViewerWND, WM_Paint, DVBViewerWND, 0) gelöst.

 

Edit: Hat sich erledigt! Direkt Zugriffe sind um einiges schneller.

Mir ist aufgefallen das die meisten Array Felder mit Tuner.###### doch überflüssig sind?

 

 

Grüße

gispos

Edited by gispos

Share this post


Link to post
Headhunter3000

Hi,

 

ich würde mir analog zu den diversen schon existierenden Events des DVBViewers zusätzliche Events wünschen, die VOR der eigentlichen Aktion gefeuert werden und ein Abbrechen der Aktion ermöglichen, z.B. durch Rückgabe eines bool-Wertes (false = Abbrechen).

 

z.B. (darunter immer die Angabe, was man momentan machen kann, wenn überhaupt):

 

bool OnBeforeChannelChange(int oldChannelID, int newChannelID);

Zurzeit nur über Plugin-Methode "bool Execute(ch, pid)" möglich. -> kein COM

 

 

bool OnBeforeDVBVClose(int closeActionID);

Zurzeit nur über Definition eigener Actions und Behandlung in command.vbs bzw. onAction-Event möglich.

 

 

bool OnBeforeAction(int actionID);

Zurzeit nur über Definition eigener Actions und Behandlung in command.vbs bzw. onAction-Event möglich.

 

 

bool OnBeforeStartRecord();

Zurzeit nicht möglich.

 

 

bool OnBeforeEndRecord();

Zurzeit nicht möglich.

 

 

bool OnBeforeOSDWindow(int oldWindowID, int newWindowID);

Zurzeit nicht möglich.

 

 

bool OnBeforePlaybackStart();

Zurzeit nicht möglich.

 

 

bool OnBeforePlaybackEnd();

Zurzeit nicht möglich.

 

 

bool OnBeforePlaylist(string filename);

Zurzeit nicht möglich.

 

 

bool OnBeforePlaystateChange(TRendererTyp oldRendererType, TPlaystates oldState, TRendererTyp newRendererType, TPlaystates newState);

Zurzeit nicht möglich.

 

 

Ggf. auch noch sinnvoll:

 

bool OnControlChange(int windowID, int oldControlID, int newControlID);

Zurzeit nicht möglich.

 

 

bool OnBeforeSelectedItemChange();

Zurzeit nicht möglich.

 

 

Die diversen "old..."-Parameter könnte man sich natürlich auch aus dem DataManager ziehen.

Share this post


Link to post
gispos

Meine Wunschliste, sortiert nach Dringlichkeit. :bye:

 

1.)

Würde mich riesig darüber freuen wenn das Preview (Bild in Bild) über die COM ansprechbar währe. (w00t)

Abfragen: Tuner und ChannelNr oder ChannelID.

Setzen: Einen Sender über eine ChannelNr zuweisen, etwa DVBViewer.PreviewCurrentChannelNr, natürlich mit Show wenn nicht sichtbar.

 

2.)

Bei jedem Aufnahmestart wird das Preview wieder entfernt.

Schön währe es wenn zuvor geprüft würde ob es entfernt werden muss. Das ist bei 2 und mehr Tunern nicht immer der Fall.

 

Was mir Aufgefallen ist (Bug ?):

Abfrage zur ChannelNr über die ChannelID liefert bei Sendern die von einem SubItem der Senderliste in einen Haupteintrag kopiert (verschoben) wurden die falsche Nr. zurück.

Es wird die ChannelNr des Haupteintrages aus dem das SubItem stammt zurück gegeben, selbst wenn es sich in den Favoriten befindet.

So kann dann dieser Sender nicht mehr richtig angewählt werden, zumindest geht das nicht mehr über GetNr.

 

Über die COM ist kein Timer.Overlap Test mehr möglich (Result immer nil).

 

Grüße

gispos

Share this post


Link to post
majstang

I also have some proposals regarding the development of the COM.

 

1)

Some way to query CAMAVAIL is missing. If having this possibility one could make a script to autoreconnect when RS and DVBViewer connection breaks.

http://www.DVBViewer.tv/forum/topic/43508-auto-reconnect-to-rs/page__view__findpost__p__321381

 

2)

-Aspect Ratio

-Video Output

-Audio Output

 

...simply lacks their own tag and are collected under the #Info tag, which makes it hard to include them in scripts.

http://www.DVBViewer.tv/forum/topic/41641-how-to-tell-current-state-of-actionid-2-3-4/page__view__findpost__p__307339

Share this post


Link to post
GruberMa

Hallo!

 

Alle EPG-Update-Scripts, -Plug-Ins und auch das Recording Service verlassen sich derzeit darauf, dass ein Sender pro Transponder eine gewisse Zeit aktiv ist und dann auf einen Sender des nächsten Transponders gewechselt wird. Dies erfolgt unabhängig davon, ob das EPG-Update für alle Sender dieses Transponders in Wirklichkeit kürzer oder länger als diese Tune-Zeit dauert.

 

Ich würde in meinem EPG Update Script gerne eine Funktion einbauen, die einen Sender nicht mehr eine fixe Zeit lang einstellt, sondern solange, bis ein komplettes Set an EPG-Informationen empfangen wurde.

 

Mein erster Ansatz war es, jede Sekunde die Gesamtanzahl der EPG-Informationen via DVBViewer.EPGManager.GetAsArray abzufragen und den Sender zu wechseln, sobald die Gesamtanzahl fünf Sekunden lang gleich bleibt. Das funktioniert jedoch nur dann, wenn beim Start des Scripts keine EPG-Daten vorhanden sind bzw. wenn bei einem langen EPG-Stream beim Start des Scripts zufälligerweise gerade die Änderungen übertragen werden.

 

Ich würde mich freuen, wenn eine der folgenden Möglichkeiten über die COM-Schnittstelle realisiert werden könnte:

 

 

Möglichkeit A: Löschen des gesamten EPG eines Senders.

Dann würde ich das EPG für alle Sender eines Transponders löschen und könnte tatsächlich DVBViewer.EPGManager.GetAsArray nutzen.

 

 

 

Möglichkeit B: Löschen des gesamten EPG eines Transponders.

Auch dann würde mein Ansatz mit DVBViewer.EPGManager.GetAsArray funktionieren.

 

 

 

Möglichkeit C: Der DVBViewer teilt mir mit, wie weit er mit dem EPG Update fortgeschritten ist.

Wenn ich Abschnitt 5.2.4 aus ETSI EN 300 468 richtig verstanden habe, dann wird zu Beginn eines EPG-Streams die Anzahl der folgenden Einträge angegeben und die Einträge sind ebenfalls nummeriert. Der DVBViewer könnte mir mitteilen, wann (Datum und sekundengenaue Uhrzeit) er beim aktuell eingestellten Transponder das letzte Mal ein EPG-Stream Startpaket verarbeitet hat oder wie oft er seit dem Wechsel auf den aktuellen Transponder so ein Paket erhalten hat.

Möglichkeit für Scripts/Plug-Ins: Sender einstellen, wir sind mitten im EPG-Stream, der DVBViewer gibt als Zeitpunkt des letzten EPG-Stream Startpakets oder als Zähler "0" zurück, ein Script kann "Warten auf Beginn des EPG-Streams" melden. Sobald er am Startpaket vorbeikommt, liefert er eine Zeit, zB "2012-10-13 09:56:10", oder den Zähler "1", der Status im Script wäre "EPG-Update läuft". Beim nächsten EPG-Startpaket wird die Zeit aktualisiert, zB "2012-10-13 09:56:17", oder der Zähler auf 2 hochgesetzt. Ein EPG-Durchlauf für einen Transponder ist damit fertig, es kann auf einen Kanal des nächsten Transponders gewechselt werden.

 

 

 

Ich würde mich über Rückmeldung vom Entwickler-Team freuen.

 

LG,

 

 

 

GruberMa

 

 

 

Zur Untermauerung, warum ich gerne eine der im vorigen Post erwähnten Möglichkeiten umgesetzt sähe, habe ich gemessen, wie lange ein vollständiges EPG-Update pro Transponder dauert.

 

DVBViewer: EPG wird vom Service geholt, nicht lokal gespeichert, keine zusätzlichen EPG-Daten wie Mediahighway und ähnliche empfangen.

Recordingservice: EPG mit "epg_clear=1" gelöscht

 

Ich überwache die Anzahl der EPG-Einträge via DVBViewer.EPGManager.GetAsArray. Wenn diese Anzahl auf einem Transponder mindestens 5 Sekunden lang gleich bleibt, wird auf den nächsten Transponder gewechselt. Die 5 Sekunden Wartezeit werden natürlich von der EPG-Empfangszeit abgezogen.

 

Auf Astra 19,2 gibt es Transponder mit einer EPG-Empfangszeit von 3-4 Sekunden (11464h, 10773h, 12070h, 10921h, 12383h etc.), viele im Bereich von 15-40 Sekunden und auch Transponder mit über 100 Sekunden EPG-Empfangszeit (12722h, 12515h, 12344h).

 

 

Um ein in der Laufzeit möglichst kurzes und dennoch vollständiges EPG-Update zu ermöglichen ohne zuvor das gesamte EPG löschen zu müssen bietet die COM-Schnittstelle meiner Meinung nach derzeit nicht genug Schnittstellen - die oben angeführten Möglichkeiten könnten das ändern.

Edited by GruberMa

Share this post


Link to post
mrphlox

Kleiner Wunsch / Verbesserungsvorschlag für das COM interface: Heute schon erzeugt DVBViewer für alle möglichen Zustandsänderungen Events, genial.

 

Was noch fehlt: Events für TimeshiftStart und TimeshiftStop.

Share this post


Link to post
ö-r-rf

Fehlt und gewünscht:

 

1) Funktion zum Speichern von Teletextseiten als Bitmap und PNG

2) Funktion zum Speichern von ganzen Teletextseitenbereichen (z. B. 100-899) auf einen Schlag bzw. abspeichern von allen Seiten

 

Beides ist bereits über die GUI möglich.

 

Ich wäre sehr dankbar für diese Funktionen :innocent:

Share this post


Link to post

Join the conversation

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

Guest
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...