juf Posted October 13, 2005 Share Posted October 13, 2005 Hallo, ich arbeit mit dem DVBViewer GE 1.6. Ich nutze den Recorder vorwiegend um Trickfilme für meine Tochter aufzuzeichnen. Es wäre schön, wenn ich neben der Einstellung Wiederholung auch noch sagen könnte nach x Wiederholungen (Wochen) ist Schluß. So müßte ich nicht wenn ich mal einen Woche nicht da bin, alle Filme durchsehen und es würde auch Festplattenplatz sparen. Nur mal so ein Gedanke. Danke, Ihre leistet gute Arbeit. MfG JUF Quote Link to comment
admi-ral Posted October 14, 2005 Share Posted October 14, 2005 Ich würde mal behaupten, dass solche eine Funktion (wenn überhaupt) eher in der Pro umgesetzt werden würde als in der GE, da die GE keine Datenbankverwaltung für die Medien/Aufnahmen hat. Ich hab mir auch schonmal ähnliche Gedanken gemacht und eine Beta für einen "TimerManager" gebastelt, der die Festplatte für "wichtige" Aufnahmen sauber hält. Fand nicht viel Response, deswegen habe ich da erstmal nur für mich persönlich weitergebastelt. Wenn allerdings gute Tipps und Hinweise kämen, könnte ich das Ding vielleicht noch ein bisschen aufmotzen http://www.DVBViewer.com/forum/index.php?showtopic=8557 Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 Ich schließe mich an! Das dürfte auch in der kein Prob sein, wird halt in diew Ini - geschrieben, wie oft noch und bei jedem Aufnahmstart eins abgezogen !. Torben Quote Link to comment
Griga Posted October 14, 2005 Share Posted October 14, 2005 Ehrlich gesagt ist mir nicht klar, wozu das gut sein soll. Konkretes Beispiel? Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 Hallo Griga, z.B. Wenn ProSieben immer Dienstag Abends zur gleichen Zeit die Starwars Reihe sendet (oder Kabel 1 das Star Trek - Zeugs). Man programmiert dann eine sich sechs, sieben, fünf mal wiederholende Serie, wobei man beachtet, dass man genug Pufferzeit zum Abfangen der um etwa 3 Minuten unterschiedlichen Endzeiten har. Oder ZDF Expedition. Oder eine Serie mit 52 Folgen, die nuir wochentags gesendet wird. Ich bitte dich, den Feauter Wunsch an zu erkkenen. Das zu Programmieren, stellt meiner Ansicht nach kein Problem fdar. Torben Quote Link to comment
Guest Lars_MQ Posted October 14, 2005 Share Posted October 14, 2005 Also ein Timer mit verfallsdatum. Sowas steht sehr, sehr weit hinten in der Liste von Dingen, die man braucht Quote Link to comment
Griga Posted October 14, 2005 Share Posted October 14, 2005 Worin soll der Vorteil eines im Voraus festgelegten Zählers gegenüber dem einfachen Deaktivieren der wiederholten Aufnahme zum richtigen Zeitpunkt liegen? Meine Erfahrung ist: Je weiter etwas vorausgeplant wird, um so mehr Angriffsfläche bietet es für die Wechselfälle des Lebens... Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 Hallo Griga, man könnte sich so das Löschen/Deaktiviren der periodischen Aufnahmen erspaaren ! Manuelle Eingriffe können ja trotzdem vorgenommen werden. Und wenn man nicht so viel Platz auf der Platte hat und mal 6 Wochen in den Urlaub fährt und man nur die ersten zwei Wochen ne periodische Aufnahme ham will, damit noch genügend Platz für Aufnahmen in den anderen 4 Wochen ist... Bitte, bitte, bitte programmier es! Torben Quote Link to comment
Pohl-Michael Posted October 14, 2005 Share Posted October 14, 2005 Moin! Ich finde, daß das ein sinnvolles Feature wäre. Es muß nicht unbedingt ein Zähler sein, ich fände ein Verfallsdatum für eine wiederholte Aufnahme sinnvoller. Gerade für die angesprochene Urlaubssituation (besonders um Weihnachten) wäre das optimal, um sich 1000 und 1 einzelne Aufnahme zu sparen. Tschau, Michael Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 Am besten wäre natürlich beides! Quote Link to comment
Griga Posted October 14, 2005 Share Posted October 14, 2005 man könnte sich so das Löschen/Deaktiviren der periodischen Aufnahmen erspaaren Dafür muss man vorausschauend den Zähler programmieren. Wo ist da der Gewinn? und man nur die ersten zwei Wochen ne periodische Aufnahme ham will Dann programmiert man halt zwei einzelne Aufnahmen ohne Wiederholung. Einmal das Datum ändern, Hinzufügen klicken und fertig. Überzeugt mich alles nicht. Scheint eine dieser "Komfortfunktionen" zu sein, durch deren Anhäufung man das beste Programm ruinieren kann. Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 Hallo Griga, dann gib mir den Quellcode und lass mich es programmiren! Torben Quote Link to comment
Guest Lars_MQ Posted October 14, 2005 Share Posted October 14, 2005 Scheint eine dieser "Komfortfunktionen" zu sein, durch deren Anhäufung man das beste Programm ruinieren kann. dann gib mir den Quellcode und lass mich es programmiren! Da ist er: 10 Print "Hallo" 20 GoTo 10 Quote Link to comment
admi-ral Posted October 14, 2005 Share Posted October 14, 2005 Eine kleine Erklärung zu meinem obigen Script (unabhängig ob es noch mit bugs gespickt ist ): Es ist damit möglich jedem Timer eine Priorität zuzuweisen, die in Form der Timer-Description (Beschreibung) offensichtlich gespeichert wird (1-9). Diese Timer-Description wird i.d.R. mit in den Dateinamen geschrieben. Beim Aufnahme-Start wird (soweit vorhanden) die Datei startrec.vbs ausgeführt, die wiederum ein größeres Script startet, welches: - Die Priorität der gerade gestarteten Aufnahme vergleicht mit der Priorität der bereits aufgenommenen Dateien, ist die Priorität der neuen Aufnahme größer und kein Speicher vorhanden, so wird eine alte Datei automatisch gelöscht. - Anhand der Priorität der vorhanden Dateien und des Datums diese löschen kann, wenn eine bestimmte Grenze überschritten ist (Priorität 1 = 1Tag x Multiplikator Haltbarkeit) @Torben: Mit ein bisschen Programmierkenntnissen müsstest Du dir doch selbst etwas schreiben können, was überprüft, wieviel Dateien mit ähnlichem Inhalt (z.b. "StarTrek") in einem Verzeichnis vorhanden sind, und die ältesten von denen beim Überschreiten einer gewissen Anzahl (von Dateien oder Tagen) dann löscht?!? Sowas ist sogar mit nem Script zu lösen, da dürftest Du doch mit Delphi keine Problem haben Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 Ich will aber kein Dingens, sondern ne Funktion im GE wie andere auch. Natürlich ist das kein Problem, aber irgendwie ein wenig umständlicher. Außerdem müsste ich ja dann wissen, wie die Aufnahmen in der Setup.ini abgespeichert werden (TINI, ok, aber das Format???) um sie zu manipulieren. Also bei 6 vorhandenen Dateien den Eintrag löschen. Torben Quote Link to comment
Frosch Posted October 14, 2005 Share Posted October 14, 2005 Und wenn man nicht so viel Platz auf der Platte hat und mal 6 Wochen in den Urlaub fährt <{POST_SNAPBACK}> Cool, 6 Wochen in Urlaub! Hmm, ich denke, wer sich 6 Wochen Urlaub leisten kann, der hat auch Geld für ne große Platte Quote Link to comment
Frosch Posted October 14, 2005 Share Posted October 14, 2005 Ich finde, daß das ein sinnvolles Feature wäre. Es muß nicht unbedingt ein Zähler sein, ich fände ein Verfallsdatum für eine wiederholte Aufnahme sinnvoller. <{POST_SNAPBACK}> Hast Du Dir schon einmal das TVInfo-Plugin angesehen? Auf tvinfo.de kannst Du Dir dann die Sendungen raussuchen, die Du aufnehmen möchtest und mit dem Plugin diese Daten abgreifen. DAS war mal eine sinnvolle Idee! Quote Link to comment
Hartwig Posted October 14, 2005 Share Posted October 14, 2005 Da ist er:CODE 10 Print "Hallo" 20 GoTo 10 Ah, basic. Dann kann mein Taschenrechner also auch aufnehmen?? Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 Um mal bei der Sache zu bleiben: procedure onStartRecording begin //Parameter übergeben, weiterschalten, INI öffnen + auslesen (TIni; nenn ich jetz mal Setup) nochAufnahmen := nochAufnahmen - 1 //BVariable aus der INI Setup.write(//aktuelle Aufnahme); end; Nix BASIC, Delphi Torben PS: program Project1; uses Dialogs; {$R *.res} begin repeat showmessage('Hallo'); until false; end. Quote Link to comment
admi-ral Posted October 14, 2005 Share Posted October 14, 2005 Ich will aber kein Dingens, sondern ne Funktion im GE wie andere auch. ich glaube du bist nur zu faul, dir ernsthafte gedanken zu machen. Wie wäre es, wenn Du zur Abwechslung mal was produktives hier postest, Anreize und verbesserungswünsche hast du ja anscheinend genug! Und wenn das Plugin/Addon dann wie gewünscht funktioniert, kann sich Griga ja immer noch mit einer Integration beschäftigen, wenn Deine Ansätze gut sind Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 OK, dann brauch ich aber immer noch ne Erkärung, wie das Zahlengewiir in der Sektion [VCR] in der INI zu verstehen ist! Torben Quote Link to comment
Griga Posted October 14, 2005 Share Posted October 14, 2005 OK, das Format. Von links nach rechts werden in der Section [VCR] durch Semikolon getrennt folgende Datenfelder gespeichert (gilt nur für die GE!): - Beschreibung bzw. Titel (String) - Sender-ID, bestehend aus 65536 x Audio-PID + ServiceID|Sendername - Datum als TT.MM.JJJJ - Anfangszeit als HH:MM:SS - Endzeit als HH:MM:SS - Aktion nach der Aufnahme (0..5, = Index des Eintrags in der Dropdownliste) - Unused (immer = 0, aus Kompatibilitätsgründen drin). - Aufnahmeart (0..3, = Index des Eintrags in der Dropdownliste) - Aufnahmetage (0..255, binär in einem Byte kodiert) - Aktivierung (0 = deaktiviert, 1 = aktiviert) Anmerkungen: Wenn die Endzeit vor der Anfangszeit liegt, überschreitet die Aufnahme Mitternacht Die Aufnahmetage werden bitweise gespeichert, gemäß der folgenden Konstantendeklaration: const binMonday = $01; binTuesday = $02; binWednesday = $04; binThursday = $08; binFriday = $10; binSaturday = $20; binSunday = $40; binRepeat = $80; Ein gesetztes Bit 7 (= binRepeat) markiert die aktivierte wöchentliche Wiederholung. Nützlich sind die folgenden beiden Aufrufe. Der erste veranlasst den DVBViewer GE während des laufenden Betriebs, die gesamte Setup.ini neu zu schreiben (bzw. zu aktualisieren). Der zweite lässt den DVBViewer GE die Setup.ini lesen, und zwar nur die Rekorder-Einträge. Alles andere wird ignoriert. const WM_DVBVIEWER = $B2C2; MSG_INILOAD = $1020; MSG_INISAVE = $1021; var Handle: Integer; begin Handle := FindWindow(nil,'DVBViewer'); if Handle <> 0 then begin PostMessage(Handle,WM_DVBVIEWER,MSG_INISAVE,0); PostMessage(Handle,WM_DVBVIEWER,MSG_INILOAD,0); end; end. Diesen Mechanismus benutzt das TVGenial-Plugin, um Timeraufnahmen in die Setup.ini zu patchen. Ich hoffe, damit ist Torben erst mal eine Weile beschäftigt Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 (edited) Hallo Griga, erstmal danke für den Code. Ich hab jetzt zwei Wochen Ferien und viel Zeit zum programmieren. Torben EDIT: Projekt = Rekorderprogrammierung als externe Anwendung mit: -Wiederholungszähler -Kanalnummerneingabe, dazu brauch ich allerdings noch den Lade- und Zugriffsvorrgang für die Channels.dat (bitte in Deutsch (Kommentare)) -allen jetzt schon vorhandenen Feautures -einer von Griga verlangeten Lizenzgebühr? Ich bin bereit und willens dieses Projekt in Angriff zu nehmen. Da ich Delphi als Hobby betreibe möchte ich kein Geld dafür verlangen. Was Griga macht, werden wir noch sehen. Daher bitte ich Griga um die benötigten Sources euch um eutre Meinung. Sobald die erste Beta fertig ist, wird sie (wenn keine Lizenzgebühr für den Code von Griga fällig ist) hier zur Verfügung gestellt @Griga: - Beschreibung bzw. Titel (String) - Sender-ID, bestehend aus 65536 x Audio-PID + ServiceID|Sendername - Datum als TT.MM.JJJJ - Anfangszeit als HH:MM:SS - Endzeit als HH:MM:SS - Aktion nach der Aufnahme (0..5, = Index des Eintrags in der Dropdownliste) - Unused (immer = 0, aus Kompatibilitätsgründen drin). - Aufnahmeart (0..3, = Index des Eintrags in der Dropdownliste) - Aufnahmetage (0..255, binär in einem Byte kodiert) - Aktivierung (0 = deaktiviert, 1 = aktiviert) - Noch Aufnahmen (int64 ) Wenn das Schema so aussähe, würde der GE beim weiterschalten die letzte Zahl unberührt lassen. Falls das nicht so ist, oder dadurch Probs mit irgendwelchen Programmen (Sheduler, TVGenial) auftreten, blase ich die Sache ab, es sei denn du würdest einen Aufrufbefehl für das Prog einbauen, sobald sich an der RecProg irgendwas ändert! Edited October 14, 2005 by Pfaff_Torben Quote Link to comment
Griga Posted October 14, 2005 Share Posted October 14, 2005 dazu brauch ich allerdings noch den Lade- und Zugriffsvorrgang für die Channels.dat (bitte in Deutsch (Kommentare)) Du wirst wohl oder übel ausreichend Englisch lernen müssen. Ohne dies hast du als Programmierer ohnehin keine Chance. Du glaubst doch nicht im Ernst, dass ich mich jetzt hinsetze und das für dich übersetze? Bin ich etwa der Babelfisch? Quote Link to comment
Pfaff_Torben Posted October 14, 2005 Share Posted October 14, 2005 Wer ist der Babelfisch? Tja, dass kann man halt nur die Bezeichnung, das Datum, die Zeiten und die Wiederholungsgeschiche einstellen? Wie sieht es mit dem zusätzlichen Eintrag aus? Quote Link to comment
Griga Posted October 14, 2005 Share Posted October 14, 2005 Wer ist der Babelfisch? http://world.altavista.com/ Quote Link to comment
Tjod Posted October 14, 2005 Share Posted October 14, 2005 (edited) Da war Griga schneller aber falls du mal andere Sprachen brauchst http://www.babelfish.org/. Babelfisch ist eine Lebewesen aus dem Roman Per Anhalter durch die Galaxis Edited October 14, 2005 by Tjod Quote Link to comment
Pfaff_Torben Posted October 15, 2005 Share Posted October 15, 2005 (edited) Hallo Griga, ich hab jetzt schon eine sehr konkrete Vorstellung wie das Ding funktioniren soll. Allerdings müsste ich wissen ob beim folgenden VCR - Schema in der Setup.ini Probleme auftreten und ob der letzte Eintag nicht überschrieben, gelöscht, etc. wird. Ups hatte vergessen das Profil anzugeben - Beschreibung bzw. Titel (String) - Sender-ID, bestehend aus 65536 x Audio-PID + ServiceID|Sendername - Datum als TT.MM.JJJJ - Anfangszeit als HH:MM:SS - Endzeit als HH:MM:SS - Aktion nach der Aufnahme (0..5, = Index des Eintrags in der Dropdownliste) - Unused (immer = 0, aus Kompatibilitätsgründen drin). - Aufnahmeart (0..3, = Index des Eintrags in der Dropdownliste) - Aufnahmetage (0..255, binär in einem Byte kodiert) - Aktivierung (0 = deaktiviert, 1 = aktiviert) - Noch Aufnahmen (int64 ) Ich warte auf deine Antwort! Torben PS: Nen Babelfisch werd ich mir als Haustier zulegen EDIT: Wie soll man den programmieren, wenn man die benötigten Informationen nicht bekommt??? EDIT2: So, mir reicht es! Ich geb das Projekt jetzt auf, weil ich absolut keine Unterstützung erhalte. Ich für meinen Teil hag 200 GB Platz für Aufnahmen und dafür kein Geld für Urlaub. Sollen das doch andere machen, ich brauch den Zähler jedenfals nicht mehr!!! @Griga Ich wäre bereit einfache Verbesserungswünsche in die GE einzubauen. Dazu bräuchte ich allerdings den Quellcodedas zu verbessernden Programmteils! EDIT3: EDIT := IGNORE, I'm at programming with the fully of my heart! Edited October 18, 2005 by Pfaff_Torben Quote Link to comment
Pfaff_Torben Posted October 16, 2005 Share Posted October 16, 2005 Und damit man auch sieht, dass ich mich nochmal geäußert habe, poste ich dieses hier! Quote Link to comment
Guest Lars_MQ Posted October 16, 2005 Share Posted October 16, 2005 Alles was Du benötigst hat griga Dir an die Hand gegeben. Wenn er sich jetzt noch daneben setzen muss, weil Dir das nötige wissen fehlt, um aus den Daten erstmal z.Bsp. einen einfachen viewer für die Timer zu entwickeln und darauf aufbauend Deine Erweiterungen zu verwirklichen, kann griga es auch selber machen Quote Link to comment
Pfaff_Torben Posted October 16, 2005 Share Posted October 16, 2005 (edited) Hallo Lars, das Problem liegt im Moment in der Kommunikation zwischem meinem Prog und dem DVBViewer. Wenn mein Programm die Aufnahmen verwalten soll, draf der GE sie ja nicht einfach weiterschalten, oder? ICH BEHERRSCHE ÜBRIGENS KEINE DLL-PROGRAMMIERUNG ! Deshalb wäre es für mich wesentlich einfacher, denn original Quelltext zu modifiziren als eine externe EXE Lösung zu basteln. Torben EDIT: Am dem Viewer arbeite ich schon mit Hochdruck Mein erster Ansatz war das Anlegen eines Record - Arrays für die Aufnahmen. Im Moment bin ich gerade dabei, die Strings aus der INI fachgerecht zu zerlegen Torben Edited October 16, 2005 by Pfaff_Torben Quote Link to comment
admi-ral Posted October 16, 2005 Share Posted October 16, 2005 @Torben: Es führen (gerade beim Programmieren) viele Wege nach Rom. Das solltest Du wissen. Es gibt, wenn man ein bisschen über die Problematik nachdenkt, sicherlich einige Wege ein Plugin bzw. eine externe Anwendung zu stricken, ohne die von dir geforderte "Unterstützung" zu bekommen. Wie wirklich wichtig deine Forderung für dich war, sieht man ja da dran: So, mir reicht es! Ich geb das Projekt jetzt auf, weil ich absolut keine Unterstützung erhalte. Ich für meinen Teil hag 200 GB Platz für Aufnahmen und dafür kein Geld für Urlaub. Sollen das doch andere machen, ich brauch den Zähler jedenfals nicht mehr!!! Quote Link to comment
Pfaff_Torben Posted October 16, 2005 Share Posted October 16, 2005 (edited) Hallo admi-ral, nunja, ich mach das Programmieren eigentlich auch nur als Hobby. Ich möchte das ja eigentlich auch für die anderen User machen. Torben EDIT: Ich hab ne Idee: Ich leg einfach für jede Aufnahme nen eigenen Eintag mit Laufmasche (=Nummer) an. Also bei 6 Wiederholungen: Rumschiff Entenscheiss_1 Rumschiff Entennscheiss_2 usw. So müsste es gehen Danke admi-ral Edited October 16, 2005 by Pfaff_Torben Quote Link to comment
juf Posted October 16, 2005 Author Share Posted October 16, 2005 (edited) Hallo, an alle. so viel Streß wollte ich garnicht machen. Aber danke an alle die sich des "Problems" angenommen haben. :-)) MfG JUF Edited October 16, 2005 by juf Quote Link to comment
Pfaff_Torben Posted October 16, 2005 Share Posted October 16, 2005 Hallo juf, vielen DAnk ! Es wird allerdings noch einige Zeit bis zu meinem ersten Beta - Relaese vergehen. Öfters mal hier schauen, ob sich etwas neues tut Torben Quote Link to comment
Griga Posted October 16, 2005 Share Posted October 16, 2005 Denke daran, dass sich die verwendete Setup.ini nicht zwangsläufig im DVBViewer GE-Ordner befindet. Ihren Ort musst du in Abhängigkeit vom Inhalt der UserMode.ini über die API-Funktion function SHGetFolderPath(hwnd: HWND; csidl: Integer; hToken: Cardinal; dwFlags: Cardinal; pszPath: PChar): HRESULT; ermitteln. Mehr zu der Funktion hier: http://msdn.microsoft.com/library/default....tfolderpath.asp Verwendet wird das typischerweise so: uses SHFolder; function GetConfigDir(UserMode: Integer; const Root: String): String; //Root = 'DVBViewer GE\' var Buffer: array[0..MAX_PATH] of AnsiChar; CSIDL: Integer; begin result := ''; if (UserMode in [1,2]) and (@SHGetFolderPath <> nil) then begin if UserMode = 1 then CSIDL := CSIDL_APPDATA else //UserMode = 2 CSIDL := CSIDL_COMMON_APPDATA; if SUCCEEDED(SHGetFolderPath(0,CSIDL,0,0,@Buffer)) then begin result := IncludeTrailingPathDelimiter(Buffer) + Root; if not DirectoryExists(result) and not CreateDir(result) then result := '' end; end; if result = '' then result := ExtractFilePath(ParamStr(0)); //exe directory end; Quote Link to comment
Pfaff_Torben Posted October 16, 2005 Share Posted October 16, 2005 Hallo Griga, Danke! Ich denke aber eher an einen opendialog für die Setup.ini. Ist irgendwie besser, da man ja mehere Istallationen haben kann! Torben Quote Link to comment
Pfaff_Torben Posted October 18, 2005 Share Posted October 18, 2005 Hallo Griga, ich brauch noch ein Icon für mein Prog. Die Uhr vom GE würde ganz gut passen, denke ich... Torben Quote Link to comment
Klausing Posted October 18, 2005 Share Posted October 18, 2005 Das ist jetzt ein Witz oder???????????????????????????????????? Du wirst doch wohl in der Lage sein ein eigenes Icon zu basteln Quote Link to comment
Pfaff_Torben Posted October 18, 2005 Share Posted October 18, 2005 Hallo Griga, soll ich mit Hilfe der Canvas die Pixel random einfärben, oder was? Ich kann programmieren, aber keine Icons malen! Außerdem erkennt dann jeder die Verbindung zum GE! Torben 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.