Guest Lars_MQ Posted August 5, 2005 Share Posted August 5, 2005 In diesem Thread sammeln wir einfach mal alle Erweiterungswünsche für die COM schnittstelle des DVBViewer. Ich habe schonmal die Favoriten eingebaut, die hatte ich irgendwie total vergessen. lars Quote Link to comment
JustCute Posted August 5, 2005 Share Posted August 5, 2005 (edited) Bei den Collections (IEPGCollection, IChannelCollection, usw.) wär kewl wenn man die durch foreach-en könnte. Ich bekomm beim Compilen: 'Interop.DVBViewer.IChannelCollection' because 'Interop.DVBViewer.IChannelCollection' does not contain a definition for 'GetEnumerator', or it is inaccessible evtl isTimerAt durch isTimerBetween ersetzen oder hinzufügen Edited August 5, 2005 by JustCute Quote Link to comment
Guest Lars_MQ Posted August 5, 2005 Share Posted August 5, 2005 Ich habe das for each vor der veröffentlich rausgenommen, weil ich da keinen so rechten sinn drin sah, weil es sowas in delphi nicht gibt (also echtes delphi keines der absolut buggy teile >7). Das war wohl ein fehler, das rauszunehmen, Ich hatte nicht mit einer so relativ grossen resonanz gerechnet Ich bringe den Collections das for each wieder bei Quote Link to comment
JustCute Posted August 5, 2005 Share Posted August 5, 2005 juhuu Ein paar Events wären praktisch: o Close / Closing o ChannelChange so mehr fällt mir zZ nicht ein. Quote Link to comment
pokidoki Posted August 5, 2005 Share Posted August 5, 2005 Ein paar Codesnippets für visual basic wären auch gerne gesehen. Ich hab mir gestern einen abgebrochen von MS Access aus die EPG-Daten abzufragen. Es gibt leider nur über die sehr, sehr langsame und inperformante Art über Get(0,0,0,0).x. Die Andere Art lieferte nur unvollständige Daten und hatte Probleme beim Transfer der ints für channel und transponder. Wenn die Items zugänglich wären wie bei den Recordings fänd ich das klasse. Wenn ich die MDB am Laufen habe kann ich die hier gerne zur Verfügung stellen. (Soll EPG-Daten sammeln, filtern, und Recordings erzeugen, sowie die Daten in eine Fillmdatenbank übernehmen mit automatischem Download von Filmdaten wie Darsteller, etc. Gruss, Oli PS: Danke für die COM-Schnittstelle, echt genial! Quote Link to comment
Guest Lars_MQ Posted August 5, 2005 Share Posted August 5, 2005 Die Andere Art lieferte nur unvollständige Daten und hatte Probleme beim Transfer der ints für channel und transponder. Also ich habe das selber schon in vb (word) und vbscript getestet. Keinerlei Probleme gehabt, vielleicht kannst Du den entsprechenden Codeschnippsel ja mal posten, dann teste ich das bei mir mal gegen... [edit]Ich glaube sobald der Admi-ral wieder aus dem Urlaub zurück ist werden so einige vb sachen hier sein [/edit] Quote Link to comment
Griga Posted August 5, 2005 Share Posted August 5, 2005 Ich glaube sobald der Admi-ral wieder aus dem Urlaub zurück ist werden so einige vb sachen hier sein Glaubst du, dass VBScript einen ausreichenden WAF hat, um damit im Urlaub bei seiner Freundin durchzukommen? Ich nicht. Übrigens war admi-ral gestern nachmittag im Forum, durfte aber wohl nicht posten... Quote Link to comment
Guest Lars_MQ Posted August 5, 2005 Share Posted August 5, 2005 Na wir bauen noch ein paar WAF freundliche sachen ein wie News von GZSZ, ein Horrorskop und schliessen den elektrischen gurkenhobel per vbscript an, dann geht das schon Quote Link to comment
Griga Posted August 5, 2005 Share Posted August 5, 2005 Irgendwie hast du es in letzter Zeit mit den Haushaltsutensilien... Quote Link to comment
e-schrott Posted August 8, 2005 Share Posted August 8, 2005 Wünsche: - Eine "Play" Methode bei IRecording (Starten einer Aufnahme mit vbs) - Eine Möglichkeit festzustellen ob gerade Timeshift aktiviert ist - Eine Möglichkeit festzustellen welches Tonformat gerade wiedergegeben Wird MPEG2, Dolby Digital 2.0, Dolby Digital 5.1, DTS Noch ein Paar Probleme: Das Filename Property von IRecording kann ich mit vbs nicht auslesen, dann kommt wiede die dubiose Meldung "Objekt erforderlich", das hatten wir schonmal bei Utils.FreeDB.ReturnDiscInfo.DiscTitle Etwas ist mir noch aufgefallen: Interface IEPGManager sind die Properties EPGNow und EPGNext vertauscht, d.h. EPGNow liefert den EPG des nächsten Programms... Außerdem habe ich noch ein Problem festgestellt (kein COM spezifisches, ist mir jedoch beim COM programmieren aufgefallen): Wenn mann zwei überlappende Aufnahmen auf einem Transponder programmiert, erfolgt nach der ersten Aufnahme ein Zurücksetzen der Properties ITimerCollection.Recording was zur Folge hat, daß die folgende Aufnahme nicht mehr signalisiert wird und auch keine Meldung mehr beim beim Umschalten erfolgt, und somit die zweite Aufnahme abgebrochen wird wenn man den Kanal wechselt. Gruß Quote Link to comment
Guest Lars_MQ Posted August 8, 2005 Share Posted August 8, 2005 - Eine "Play" Methode bei IRecording (Starten einer Aufnahme mit vbs) ITimer = Timeraufnahme IRecording = aufgenommenes Programm (liegt dann im Capture verzeichniss vor ergo eine manuelle aufnahme = DVBViewer.TimerManager.InstantRecord. Ansonsten mal in das TVGenial.VBS schauen dort werden Timer erstellt. - Eine Möglichkeit festzustellen ob gerade Timeshift aktiviert ist OK das fehlt. - Eine Möglichkeit festzustellen welches Tonformat gerade wiedergegeben Wird MPEG2, Dolby Digital 2.0, Dolby Digital 5.1, DTS Hmm mal schauen, wo ich das einbaue. Das Filename Property von IRecording kann ich mit vbs nicht auslesen, dann kommt wiede die dubiose Meldung "Objekt erforderlich", das hatten wir schonmal bei Utils.FreeDB.ReturnDiscInfo.DiscTitle Das lag damals an dem Record, den VB nicht verdauen konnte. Ich kann das problem nicht nachvollziehen, hast Du nen kleinen codeschnippsel vielleicht? Quote Link to comment
e-schrott Posted August 8, 2005 Share Posted August 8, 2005 (edited) - Eine "Play" Methode bei IRecording (Starten einer Aufnahme mit vbs) ITimer = Timeraufnahme IRecording = aufgenommenes Programm (liegt dann im Capture verzeichniss vor ergo eine manuelle aufnahme = DVBViewer.TimerManager.InstantRecord. Ansonsten mal in das TVGenial.VBS schauen dort werden Timer erstellt. Ich habe mich glaube ich falsch ausgedrückt, ich möcht eine vorhandene Aufnahme abspielen. Das TVGenial.VBS kenne ich bereits, das stammt nämlich von mir. Gruß Edited August 8, 2005 by e-schrott Quote Link to comment
Guest Lars_MQ Posted August 8, 2005 Share Posted August 8, 2005 Das TVGenial.VBS kenne ich bereits, das stammt nämlich von mir. oar ich verliere wohl den überblick OK das kann ich einbauen Obwohl wenn man den filenamen an die playfile vom DVBViewer übergibt, sollte die gespielt werden. Wir müssen mal schauen warum du das nicht auslesen kannst... Quote Link to comment
e-schrott Posted August 8, 2005 Share Posted August 8, 2005 Das TVGenial.VBS kenne ich bereits, das stammt nämlich von mir. oar ich verliere wohl den überblick OK das kann ich einbauen Obwohl wenn man den filenamen an die playfile vom DVBViewer übergibt, sollte die gespielt werden. Wir müssen mal schauen warum du das nicht auslesen kannst... <{POST_SNAPBACK}> Hallo Lars, war ein Fehler meinerseits. Ich hatte einen Laufzeitfehler, da ich den Index für die Items zu weit hochzählte. Danke für die schnelle Antwort. Quote Link to comment
Guest Lars_MQ Posted August 10, 2005 Share Posted August 10, 2005 Etwas ist mir noch aufgefallen:Interface IEPGManager sind die Properties EPGNow und EPGNext vertauscht, d.h. EPGNow liefert den EPG des nächsten Programms... Bestätigt, da hatte ich nen dreher drinne Ist korrigiert. Was gibts für erweiterungen: - istimeshift - isDVD - isMediaplayback - audioformat (-1..3) -1=unknown, 0 =Mono, 1=stereo, 2=2.0, 3=5.1 - Overlap -> um festzustellen ob es eine überschneidung bei Timern gibt. - For Each geht für alle Collectionen/Listen Quote Link to comment
erwin Posted August 16, 2005 Share Posted August 16, 2005 Vorschlag: ToString() in den einzelnen Interfaces wäre recht praktisch (für die Entwicklung, fürs Abspeichern in Dateien etc.) mfG erwin Quote Link to comment
Guest Lars_MQ Posted August 16, 2005 Share Posted August 16, 2005 ToString() in den einzelnen Interfaces wäre recht praktisch (für die Entwicklung, fürs Abspeichern in Dateien etc.) Was habe ich mir darunter vorzustellen? Quote Link to comment
erwin Posted August 17, 2005 Share Posted August 17, 2005 (edited) ToString() in den einzelnen Interfaces wäre recht praktisch (für die Entwicklung, fürs Abspeichern in Dateien etc.) Was habe ich mir darunter vorzustellen? <{POST_SNAPBACK}> Einfach eine String-Darstellung aller properties eines Objects. z.B (Pseudocode!): IEPGItem epgItem; epgItem.ServiceID = 0815; epgItem.Time = "17.05.2005 13:12" ; epg.Description = "Hello World"; ... epg.ToString() ergibt: "ServiceID:0815 TransportID:...Time:17.05.2005 13:12 Description:Hello World " Ich habe dies bei Java zu schätzen gelernt. Immer nützlich wenn ich dies Object mal als String brauche. Da wäre z.B. persistentes Ablegen in Textdateien, Debugging oder mal eine während der Entwicklung schnell eingeschobenen Messagebox: MsgBox( "Zur Zeit bearbeitetes IEPGItem", epgItem ); Viele Sprachen unterstützen den hier verwendeten impliziten Type-Cast:. Sonst: MsgBox( "Zur Zeit bearbeitetes IEPGItem", epgItem.ToString() ); Auch sinnvoll z.B. im catch-Block zur Fehlerausgabe. Übrigens: Alle eure COM-Objekte haben diese Memberfunktion vererbt bekommen. Allerdings steht belangloses Zeug drin da von Euch nicht 'overloaded'. Dasselbe betrifft auch die Methode 'Equal()'. Hatte z.B das Problem beim Anlegen eines neuen Record-Timers. Wollte sicherstellen dass der nicht schon besteht und dachte was in der der Form: if ( timer.Equal( einerDerTimerAusAllTimers ) ) { // timer existiert schon in AllTimers } Gut, über memberweisen Vergleich geht's auch, aber wie oben ist irgenwie eleganter. mfG erwin Edited August 17, 2005 by erwin Quote Link to comment
Guest Lars_MQ Posted August 19, 2005 Share Posted August 19, 2005 Übrigens: Alle eure COM-Objekte haben diese Memberfunktion vererbt bekommen. Allerdings steht belangloses Zeug drin da von Euch nicht 'overloaded'.Dasselbe betrifft auch die Methode 'Equal()'. Hatte z.B das Problem beim Anlegen eines neuen Record-Timers. Wollte sicherstellen dass der nicht schon besteht und dachte was in der der Form: Das bezweifle ich sehr stark. Das mag vielleicht von Deiner Programmiersprache eingesetzt werden, aber die COM Objecte implementieren nur iDispatch Interfaces IDVBViewer = interface(IDispatch) //mit IDispatch = interface(IUnknown) function GetTypeInfoCount(out Count: Integer): HResult; stdcall; function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall; function GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall; function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall; end; Ich müsste wahrscheinlich das entsprechende Interface (welches das auch sein mag) implementieren und das habe ich eigentlich nicht unbedingt vor, da es keinerlei Vorteile birgt und ich das auch bisher nur bei .Net gesehen hab. Wie das AsString ist das was für faule Programmierer, die keine eigene routine dafür schreiben wollen Quote Link to comment
erwin Posted September 2, 2005 Share Posted September 2, 2005 Hallo, bin wieder da. Das bezweifle ich sehr stark. Das mag vielleicht von Deiner Programmiersprache eingesetzt werden, aber die COM Objecte implementieren nur iDispatch Interfaces Stimmt, Du hast recht. Weder in der Typelib noch wie oben in Deinen Code gezeigt vorhanden. Das Mißverständnis liegt wahrscheinlich daran das ich mich unklar, eigentlich sogar falsch, ausgedrückt habe. Also konkreter: Nicht die von Dir exportieren Interfaces haben die erwähnten Memberfunktionen vererbt bekommen, sondern die Objekte die Ihr intern in Eurem Delphi-Code benutzt. Alle erben von TObject (möglicherweise impliziet). Nun, zumindest in der .NET-basierten Delphi-Version erben sie damit auch Equals(), ToString() u.s.w. Meine Anregung bestand nun darin diese ebenfalls für jedes von Dir exportierte COM-Object über ein, sagen wir, 'Object'-Interface verfügbar zu machen. IDVBViewer = interface(IObject) mit IObject = inerface(IDispatch) Ich müsste wahrscheinlich das entsprechende Interface (welches das auch sein mag) implementieren und das habe ich eigentlich nicht unbedingt vor, da es keinerlei Vorteile birgt ... Du hast recht, funktionelle Erweiterungen haben erstmal vorrang. Das hier würde aus Gründen der Infrastruktur, der Einheitlichkeit u.s.w erfolgen. Was die _keinerlei Vorteile_ betrifft schau bitte nochmal meine Faulheit-Replik am Ende. ... und ich das auch bisher nur bei .Net gesehen hab. Also, so ein root-Object von dem alle diese Methoden erben, haben Java, C#, zumindest alle .NET-basierten Sprachen, so auch die neueren Delphi-Versionen (korrigier mich wenn ich dumm-schwätze; ich programmier selbst nicht in Delphi) Was gibt 's z.Z- noch an Sprachen im zweistelligen Prozentbereich der Anwendung? Merkwürdigerweise haben die Methoden sogar den selben Namen, ob SUN oder MS . Vielleicht doch was dran das man sich sowas mehrfach ausdenkt? Wie das AsString ist das was für faule Programmierer, die keine eigene routine dafür schreiben wollen Hatte folgendes Problem beim Anlegen eines neuen Record-Timers. Wollte sicherstellen dass der nicht schon besteht . int count = timers.Count; for ( int i = 0; i < count; i++ ) { if ( timers[i].ChannelID == timerItem.ChannelID && timers[i].Date == timerItem.Date && timers[i].StartTime == timerItem.StartTime && timers[i].EndTime == timerItem.EndTime) { recordIt = false; break; } } Was passiert hier? 4 (vier!) (langsame) COM-calls, und dies in einer Schleife. BRR! Ich häts so lösen wollen: int count = timers.Count; for ( int i = 0; i < count; i++ ) { if ( timers[i].Equals( timerItem ) ) { //evt. timers[i].ToString() == timerItem[i].ToString() recordIt = false; break; } } Nur noch einmal COM! Kurz mit Faulheit hat dies nichts zu tun. Nicht der Fleiß des Anwenders Deiner Interfaces begrenzt hier unnötig die Perfomance. Ansonsten, ich hänge nicht an meiner Anregung. Es läuft auch so erstklassig. mfG erwin Quote Link to comment
Guest Lars_MQ Posted September 2, 2005 Share Posted September 2, 2005 Alle erben von TObject (möglicherweise impliziet). Nun, zumindest in der .NET-basierten Delphi-Version erben sie damit auch Equals(), ToString() u.s.w. Meine Anregung bestand nun darin diese ebenfalls für jedes von Dir exportierte COM-Object über ein, sagen wir, 'Object'-Interface verfügbar zu machen. Sie erben alles mehr oder weniger direkt von TObject bei Delphi. (TInterfacedObject bzw TAutoInfObject). ABER der Viewer kommt komplett ohne .NET aus, wird sogar, man mag es kaum glauben, in der alten Delphi 7 Version in Win32 geschrieben. Es bestehen im Moment auch keinerlei Tendenzen das zu ändern und dem DVBViewer 20 MB+ an Net-Runtimes ans bein zu hängen Das hat mehrere Gründe: Zum einen sind alle neuen Delphi Versionen hochbuggy. Zum anderen gibt es keinen Zwang auf .NET umzustellen, da es keine Vorteile birgt. Durch die hochgradige Abhängigkeit von diversen windowsinterna (und einigen asm routinen) wird es sicherlich niemals "portabel" werden können. Was passiert hier? 4 (vier!) (langsame) COM-calls, und dies in einer Schleife. BRR! Stimmt, dafür habe ich extra die Safearray routinen eingebaut. Damit hat man für alle Timer einen Roundtrip (COM-Call) und arbeitet danach lokal. Ich habe das für alle Listen Objecte jetzt integriert, um die Out-of-process (oder womöglich DCOM) geschwindigkeitsproblematik zu entschärfen. Verstehe das nicht falsch, ich bin für jede Anregung dankbar, nur muss ich auch abwägen, ob und wie sowas sinnvoll und schmerzfrei zu integrieren ist ohne alles über gebühr aufzublasen. lars Quote Link to comment
erwin Posted September 2, 2005 Share Posted September 2, 2005 ABER der Viewer kommt komplett ohne .NET aus, wird sogar, man mag es kaum glauben, in der alten Delphi 7 Version in Win32 geschrieben. Es bestehen im Moment auch keinerlei Tendenzen das zu ändern und dem DVBViewer 20 MB+ an Net-Runtimes ans bein zu hängen Das hat mehrere Gründe: Brauchst Du eigentlich nicht zu begründen. Bin ja auch kein .NET-um-jeden-Preis-Anhänger. Wenns super läuft warum dann? Stimmt, dafür habe ich extra die Safearray routinen eingebaut. Damit hat man für alle Timer einen Roundtrip (COM-Call) und arbeitet danach lokal. Ich habe das für alle Listen Objecte jetzt integriert, um die Out-of-process (oder womöglich DCOM) geschwindigkeitsproblematik zu entschärfen. Lars! Ich versteh hier nur Bahnhof. Hab ich was verpasst. Nicht die letzte Version? Was meinst Du damit? Vielleicht kurz an meinen Beispielproblem demonstriert wie man dies einsetzt. Verstehe das nicht falsch, ich bin für jede Anregung dankbar, nur muss ich auch abwägen, ob und wie sowas sinnvoll und schmerzfrei zu integrieren ist ohne alles über gebühr aufzublasen. So hab ichs auch immer verstanden. mfG erwin Quote Link to comment
Guest Lars_MQ Posted September 2, 2005 Share Posted September 2, 2005 Da war ich wieder etwas voreilig. Die Safearrays für die anderen Listen kommen in der neuen Version erst. Im Moment gibt es die nur für EPG und Channels s. "EPG automatisch durchsuchen" Aber Du hast mich auf eine Idee gebracht. Ich werde eine funktion einbauen, die überprüft ob es einen Timer in eienem bestimmten Zeitraum und Channel gibt. Wenn ja liefert die einen Timer bzw eine Liste von Timern zurück (es können ja mehrere überlappende Timer für einen Channel bestehen). Quote Link to comment
erwin Posted September 2, 2005 Share Posted September 2, 2005 Aber Du hast mich auf eine Idee gebracht. Ich werde eine funktion einbauen, die überprüft ob es einen Timer in eienem bestimmten Zeitraum und Channel gibt. Wenn ja liefert die einen Timer bzw eine Liste von Timern zurück (es können ja mehrere überlappende Timer für einen Channel bestehen). Ist sogar noch besser als meine Vorstellung von einem Equals () in einer for-Schleife weil dann wirklich nur noch ein COM-Aufruf reicht. Dein Vorschlag sollte auch für die anderen Collektions überprüft werden, also ist ein bestimmter Item in einer Collektion vorhanden mit nur einem Call und ohne Abfageschleife Item für Item. mfG erwin Quote Link to comment
e-schrott Posted September 17, 2005 Share Posted September 17, 2005 Etwas ist mir noch aufgefallen:Interface IEPGManager sind die Properties EPGNow und EPGNext vertauscht, d.h. EPGNow liefert den EPG des nächsten Programms... Bestätigt, da hatte ich nen dreher drinne Ist korrigiert. Was gibts für erweiterungen: - istimeshift - isDVD - isMediaplayback - audioformat (-1..3) -1=unknown, 0 =Mono, 1=stereo, 2=2.0, 3=5.1 - Overlap -> um festzustellen ob es eine überschneidung bei Timern gibt. - For Each geht für alle Collectionen/Listen <{POST_SNAPBACK}> Hallo Lars, kann es sein dass die Features bei der 3.2.3 noch nicht umgesetzt sind? Ausserdem funktioniert die FreeDB Track Abfrage mit vbs immer noch nicht. Gruß Quote Link to comment
Guest Lars_MQ Posted September 17, 2005 Share Posted September 17, 2005 Doch sie sind umgesetzt. ich werde morgen die doku aktualisieren. Ich kann nicht an allen stellen gleichzeitig arbeiten Quote Link to comment
e-schrott Posted September 17, 2005 Share Posted September 17, 2005 Doch sie sind umgesetzt. ich werde morgen die doku aktualisieren. Ich kann nicht an allen stellen gleichzeitig arbeiten <{POST_SNAPBACK}> Mit der Doku stehen viele kreative Personen auf Kriegsfuß. Trotzdem finde ich die COM Doku echt super, ausserdem war sie schon kurz nach Programmumsetzung verfügbar, super Leistung. Quote Link to comment
e-schrott Posted September 19, 2005 Share Posted September 19, 2005 Doch sie sind umgesetzt. ich werde morgen die doku aktualisieren. Ich kann nicht an allen stellen gleichzeitig arbeiten <{POST_SNAPBACK}> Hallo Lars, ich habe die methode audiomode getestet. Leider gibt diese auch bei dd 5.1 Sendungen 2 anstatt 3 zurück. Z.B. bei Lost auf Pro7 (der NVIDIA Audio Decoder erkennt DD 5.1) Liegt es vielleicht daran, daß ich den rldumper Filter deregistriert habe, da ansonsten bei Radiosendern kein Ton zu hören ist? Gruß Quote Link to comment
Guest Lars_MQ Posted September 19, 2005 Share Posted September 19, 2005 Hmm ich benutze dafür einfach nur eine der internen funktionen des DVBViewer, ich werde christian dazu nochmal genauer befragen. Eventuell habe ich etwas dabei übersehen Quote Link to comment
saeder Posted September 27, 2005 Share Posted September 27, 2005 Ich wünsche mir die Möglichkeit per Menü/Makrofunktion kombinierte Einstellungen vorzunehmen: 1. Helligkeit/Kontrast/Farbe auf Default zurücksetzen + Bildformat Auto + Kein Zoom 2. Helligkeit/Kontrast/Farbe auf Default zurücksetzen + Bildformat Auto + Standard-Zoom für Pseudo 16/9 3. Helligkeit/Kontrast/Farbe auf Default zurücksetzen + Bildformat 16/9 + Kein Zoom Schön wär's auch 3. bei DVD-Wiedergabe automatisch einzustellen und 1. beim Wechsel der Wiedergabequelle oder des Kanals. Geht das per Script? Quote Link to comment
Mojo Posted February 18, 2006 Share Posted February 18, 2006 Hallo, ich hab da mal ne Frage/Wunsch bezüglich der EPG ->Time und ->EndTime Funktionen! Warum wird da nur das Datum ausgegeben wenn eine Sendung um 00:00Uhr beginnt bzw. endet? Time EndTime Titel Duration 18.02.2006 22:30:00 - 19.02.2006********* Die Bratpfannenstory 01:30:00 19.02.2006********* - 19.02.2006 00:30:00 Brisant 00:30:00 19.02.2006 00:30:00 - 19.02.2006 02:05:00 Spider & Rose 01:35:00 ("*" selbst eingefügt ...) Ich bin gerade dabei ein PHP Script zubasteln und da stört es sehr wenn diese "0,:" fehlen! Wäre es nicht möglich diese mit auszugeben? Quote Link to comment
Guest Lars_MQ Posted February 18, 2006 Share Posted February 18, 2006 Das ist kein Fehler des COM Objectes, sondern, mal hart gesagt, ein Fehler von deinem script Die automations kompatible TDatetime, die verwendet wird, setzt sich zusammen aus xxxxx.yyyyy Wobei xxxxx das Datum ist und yyyyy hinter dem Komma ist die Zeit. Bei 0:00 Uhr sieht das dann so aus xxxxx.0 und das scheint bei Dir als reines Datum interpretiert zu werden, was in diesem Fall nicht korrekt ist. Quote Link to comment
Benson Posted February 18, 2006 Share Posted February 18, 2006 (edited) Ja, das automatische Typecasting von PHP ist manchmal etwas tückisch. Du kannst versuchen, den Datumstring, den die Com-Funktion zurückliefert, über date("m.d.Y H:i",mktime() oder strtotime()) zu einem "echten" Datumsstring umzuwandeln. Edited February 18, 2006 by Benson Quote Link to comment
Guest Lars_MQ Posted February 18, 2006 Share Posted February 18, 2006 Wohlgemerkt, Com liefert keinen string, sondern einen automations kompatiblen DateTime Wert (Float oder Kommazahl ). Quote Link to comment
Mojo Posted February 18, 2006 Share Posted February 18, 2006 Ui das hätte ich ja jetzt gar nicht gedacht - hmm! Na ja dann muss ich halt nen bissel rumprobieren ... Danke für eure tipps Quote Link to comment
markymark Posted May 7, 2006 Share Posted May 7, 2006 So whats missing is access to media playback information including: - length of the media - current position (wehere applicable) this would come in handy for my VFD plugin. Also, access to ongoing recordings would be useful... WBR Markymark Quote Link to comment
Guest Lars_MQ Posted May 7, 2006 Share Posted May 7, 2006 - length of the media- current position You could use IDVBViewer.propGetValue with the tags #Media.title #Media.file #Media.duration #Media.tracknumber Also, access to ongoing recordings would be useful... You could check #TV.rec or iDVBViewer.TimerManager.Recording and then check the iTimerItems if they are recording. You could also use the Events onPlaybackstart OnPlaybackEnd OnPlaystatechange onRDS (for showing Radiotext in the Display) onAddRecord onStartRecord onEndRecord onControlChange (To show which button is active) -> in combi with tag #currentcontrol onSelectedItemChange -> (for lists) in combi with tag #selecteditem onOSDWindow -> in Combi with tag #currentwindow To get a list of all possible Tags have a look at IDVBViewer.propGetAll This gives you all tag/value pairs in one string seperated by a ";" I hope this ist enough information Quote Link to comment
markymark Posted May 8, 2006 Share Posted May 8, 2006 - length of the media- current position You could use IDVBViewer.propGetValue with the tags #Media.title #Media.file #Media.duration #Media.tracknumber Also, access to ongoing recordings would be useful... You could check #TV.rec or iDVBViewer.TimerManager.Recording and then check the iTimerItems if they are recording. You could also use the Events onPlaybackstart OnPlaybackEnd OnPlaystatechange onRDS (for showing Radiotext in the Display) onAddRecord onStartRecord onEndRecord onControlChange (To show which button is active) -> in combi with tag #currentcontrol onSelectedItemChange -> (for lists) in combi with tag #selecteditem onOSDWindow -> in Combi with tag #currentwindow To get a list of all possible Tags have a look at IDVBViewer.propGetAll This gives you all tag/value pairs in one string seperated by a ";" I hope this ist enough information <{POST_SNAPBACK}> Jep, that helps a lot Thanks. Ill put that into the plugin soon. BTW: I will also add a program to check the charset, so it works with yours (the iMon) as well ... Quote Link to comment
christian_stepper Posted October 18, 2006 Share Posted October 18, 2006 Hallo ich hab mal für alle die in VB6 programieren und Schwierigkeiten haben den DVBViewer anzusprechen ein kleines Beispielprogramm geschrieben. Vielleicht hilfts ja jemandem Bin für Verbesserungen natürlich offen und Dankbar... DVB_Beispiel.zip Quote Link to comment
Wolle Posted October 31, 2006 Share Posted October 31, 2006 Hallo, ich vermisse das Gegenstück zu der Function InstantRecord und oder die Aufnahmedauer der Sofort Aufnahme auszulesen und zu setzen 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.