FastWind Beta2

    • FastWind Beta2

      07.05.: Beta2 ergänzt (siehe Message 7 unten).

      ___________________________
      Hier ist mal eine erste Testversion eines Plugins, das schnelles Spulen mit den Zifferntasten 1,4,7 & 3,6,9 erlaubt. Ihr könnt damit mit einem Tastendruck 3,5 oder 7 Minuten vor- oder zurückspulen.

      HINWEIS: DIESESN PLUGIN BEHEBT NICHT DEN GENERELLEN SPULFEHLER.
      Korrigiert nicht spulbare Aufnahmen mit ForIdx und/oder mit dem FixIt Plugin.

      Wie immer bitte für weitere Updates auch im Octagon Forum schauen.


      Voraussetzungen:
      ================
      Es wird empfohlen, die Skip-Time (in Aufnahme-Menü) auf 30 Sekunden zu setzen.

      Installation:
      =============
      Installation wie jedes andere Plugin (Plugin-Ordner auf USB, Stick in Octagon stecken).
      Formatieren der Nutzerdaten ist nicht nötig.

      Anleitung:
      ==========
      Dieses Plugin funktioniert nur, wenn die sogenannte Abspielleiste (Playbar) sichtbar ist.
      (Dort wo man den Zeitbalken und den Fortschritt der aktuellen Wiedergabe sehen kann).
      Falls nötig den Play Button > zum Aufrufen der Abspielleiste drücken.

      Für schnelles Vorspulen drücke
      3 für 3 Minuten (6 Mal Skiptime)
      6 für 5 Minuten (10 Mal Skiptime)
      9 für 7 Minuten (14 Mal Skiptime)

      Für schnelles Rückspulen drücke
      1 für 3 Minuten (6 Mal Skiptime)
      4 für 5 Minuten (10 Mal Skiptime)
      7 für 7 Minuten (14 Mal Skiptime)

      Einschränkungen:
      =============
      Diese Beta hat folgende Einschränkungen:
      - ab und zu wird ein Tastendruck verloren - es wird weniger gespult als intendiert.
      - Spulen funktioniert nur, wenn Abspielleiste wird angezeigt.
      - manchmal schlägt das Spulen fehlt (noch nicht verstanden), ggf weniger spulen.
      Dateien

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von maxodil ()

    • Geiler Ansatz.

      Du schaust ob man im Sub-State Playbar ist und fängst dann die Zifferntasten und gibs sie als Cursor Left/Right x N raus.
      Muss man erst mal drauf kommen. :nummer1:

      Nutzt du GetConfig(CFG_CommercialSkipTime)?
      Hast du schon mal nur mit Cursor-Links das Skippen begonnen und dort nach dem Sub-State geschaut? (OsdCapture wennde nicht ausproggen willst)
      Wie schauts mit Reapeat aus? //(WiMainQ, MSG_BASE_REMOCON, irKeyCode | MSG_MASK_KEY_REPEAT, NULL, NULL);
      +++ Octagon SF-1018 HD +++ Philips 32PFL9604 +++
      --- Bastel I: Icecrypt S4000 ---
    • Wirklich ne gute Sache ... klasse Arbeit.
      Wenn ich die 9 zum Vorspulen nutze habe ich aber sehr oft das er auf etwa 5min zurück springt egal wo ich bin.
      Ist das auf den Spulbug zurück zu führen?
      Meine Bastelboxen: Mut@nt HD51 | GB Quad 4K | Mut@nt HD60 | OSMIO4K | HIS 4k Combo+

      ... Keinen Support per PN ... bitte stellt eure Fragen ins Forum!...

      ~ Benutzung OpenHDF Image ~ Benutzung der HDF-Toolbox ~ FAQ und Linksammlung ~ Build und Foren Server Spendenaktion ~
    • Vorweg ein paar Details dazu, wie es funktioniert. Im Prinzip genau wie von Eisha beschrieben. Allerdings kann man offensichtlich nicht einfach 10 x eine Message absetzen. Die Mainapp scheint jede Message einzeln empfangen zu müssen. Mehr als 1-2 Kommandos am Stück habe ich nicht reinbekommen (auch nicht mit KEY_REPEAT).
      Deshalb starte ich einen Thread, der dann mit einer derzeit empirisch ermittelten Verzögerung von 150ms Events feuert. Das klappt prinzipiell schon mal, ist aber nicht optimal. Die nächste Version wird mitzählen, ob der gesendete Event in der Messagequeue eintrifft und dann den nächsten Event feuern. Damit sollte sich die Geschwindigkeit der Events selbst adaptieren und wir können sicher sein, was ankommt.

      Eisha schrieb:

      Nutzt du GetConfig(CFG_CommercialSkipTime)?
      Hast du schon mal nur mit Cursor-Links das Skippen begonnen und dort nach dem Sub-State geschaut? (OsdCapture wennde nicht ausproggen willst)
      Wie schauts mit Reapeat aus? //(WiMainQ, MSG_BASE_REMOCON, irKeyCode | MSG_MASK_KEY_REPEAT, NULL, NULL);
      Die Commercial Skip Time nutze ich noch nicht. Könnte man tun. Derzeit ist die Sache bzgl. des "Raussendens" von Events noch nicht wirklich perfekt. Ich möchte das erst mal in den Griff bekommen.


      Bzgl. SubState: M.E. die der Playbar, wenn das Skippen begonnen hat. Ich werd's nochmal verifizieren.

      Repeat: Mit Repeat kannst Du m.E. erkennen, ob einen Taste weiterhin gedrückt ist. Ich hab damit rumexperimentiert. Für das Senden in die MainApp für diesen Usecase konnte ich keinen Vorteil ausmachen.

      Koivo schrieb:

      Wenn ich die 9 zum Vorspulen nutze habe ich aber sehr oft das er auf etwa 5min zurück springt egal wo ich bin.
      Stimmt. Ich vermute stark, dass es an der Eventmenge liegt. Ich hoffe, dass ich am WoE auf das am Anfang beschriebene Eventhandling umsteigen kann und es dann besser funktioniert. Ich habe allerdings auch schon ganz mysteriöse Spulverhalten beobachtet . allerdings auf der 10797 (weil m.E. alles spätere mehr als fragwürdig ist). Irgendwas scheint mir da am Mediaplayer auch noch nicht ganz ausgereift.
    • Na dann wünsch ich mal erfolgreiches WE.

      Der Sub-State ist "SUBSTATE_PlayBar". Diesen könnte man ggf. auch mit SetState() setzen.
      Bei meinem Test klappt es zumindest mit "MainState_Normal" das Plugin-Menü zu verlassen.

      Um zu erkennen ob gerade eine Wiedergabe läuft habe ich nicht wirklich etwas gefunden.
      Einzige Idee schauen ob Main-State "STATE_FilePlayList" mit OK verlassen wurde, aber das Ende ???
      Normalerweise müsste die bei SvcStart oder so mitkommen. Die Enums sehen dies nicht vor.

      Das ein Plugin einen Key sendet und dieser wieder bei ihm vorbei kommt würde ich bei der App nicht erwarten.

      Welche Thread-Technik benutzt du?
      Die WiTask oder reine c++?
      An der Stelle hätte ich es eher mit einem Timer versucht, da die App die Timer-Events bestimmt bei Idle einsteuert und da auch wieder etwas entgegen nehmen kann. Also StartTimer(50ms), in der Event-Loop dekrementieren und dann wieder StopTimer().

      Im AAF hat ein User manyone den binären Skip vom Topf gelobt. D.h. mit 16fach N-mal vorwärts loslaufen und bei Richtungswechsel /2, so dass man an die Stelle schnell herankommt (Skip dann auf 10 s). Diesen dann noch auf die Cursor Up/Down mit Selbstaufruf von SetState(PlayBar) und du bist der Held des Monats Mai.
      +++ Octagon SF-1018 HD +++ Philips 32PFL9604 +++
      --- Bastel I: Icecrypt S4000 ---
    • Eisha schrieb:

      Der Sub-State ist "SUBSTATE_PlayBar". Diesen könnte man ggf. auch mit SetState() setzen.
      Bei meinem Test klappt es zumindest mit "MainState_Normal" das Plugin-Menü zu verlassen.
      Schon klar. Das Problem ist eher umgekehrt. Ich weiß nicht, ob eine Wiedergabe läuft. Also missbrauche ich den Status Playbar. Ansonsten geht entweder die Senderwahl über alphanum Tasten nicht mehr oder ich nehme eine andere Taste, um das Spulen zu aktivieren. Dann können wir aber auch gleich bei der Playtaste bleiben.
      Alternative wäre: "Spulen links" + "5" innerhalb von 500ms. Ohne die "5" halt ganz normal. Die Tastenkombination ist im Normalbetrieb unwahrscheinlich.

      Eisha schrieb:

      Das ein Plugin einen Key sendet und dieser wieder bei ihm vorbei kommt würde ich bei der App nicht erwarten.
      Wenn ich aus einem Thread sende, geht das. Vermutlich kommt sogar immer Dein eigener Event bei Dir vorbei :-)

      Eisha schrieb:

      Welche Thread-Technik benutzt du?
      WiTask. Das ist halt das einfachste; wenn ich den Code aufgeräumt hab, poste ich's mal.

      Eisha schrieb:

      m AAF hat ein User manyone den binären Skip vom Topf gelobt.
      klingt interessant. Probier ich mal aus; das sollte nicht zu schwer sein... wie oben beschrieben wird die Playbar vermutlich erst mal bleiben müssen.

      Ein Problem bringe ich allerdings derzeit noch nicht weg: bei 14 Skips spinnt der Mediaplayer. Ab und zu springt das Ding dann plötzlich auf ca. 10 Min zurück. Als würde irgendeine Queue überlaufen ...
    • So. Hackertrieb ausgelebt. Beta2 hängt oben in Message #1. Auch die Binärsuche ist mit Trickspulen drin. Das schnelle Vorlaufen funktioniert ja auf dem Octagon nur stockend. Die Funktion macht damit keinen Spaß. Mit dem Trickspulen funktioniert es prima


      - Einige Bugs entfernt, Einschränkungen der ersten Version sollten behoben sein.
      - Eventhandling verbessert.
      - Binäre Suche Spulen eingebaut.
      - Pfeil hoch / runter Tasten spulen:
      8 Minuten, bei Richtungswechsel wird die Zeit halbiert
      (probiert einfach mal auf mit rauf/runter das Ende der Werbung zu finden;
      die gespulte Zeit wird immer kleiner, bis auf 30 Sek runter.)

      Source Code:
      ============
      Liegt bei.
    • Toll, weiter so, komme aber erst heute Abend wieder zum Testen.

      Quellcode

      1. 2000000: MSG_BASE_REMOCON 1 0 0
      2. FF113000: APPLMSG_SI_NIT 127C6D0 1 34654000
      3. 2000000: MSG_BASE_REMOCON 1F 0 0
      4. FFF0FF01: PLUGINMSG_StateChanged 2E 45 0
      5. 2000000: MSG_BASE_REMOCON 1F 0 0
      6. FFF0FF01: PLUGINMSG_StateChanged 2E 0 0
      7. FFF0FF01: PLUGINMSG_StateChanged 2E 0 0
      8. FFF0FF01: PLUGINMSG_StateChanged 0 0 0
      9. FFF0FF01: PLUGINMSG_StateChanged 4 0 0
      10. FFF0FF01: PLUGINMSG_StateChanged 4 0 0
      11. FFF0FF01: PLUGINMSG_StateChanged 4 0 0
      12. FF820000: APPLMSG_SVC_Stop 0 0 0
      13. FF810001: APPLMSG_SVC_NewSvcStart 0 0 0
      14. FF112000: APPLMSG_SI_PMT 12B6860 445C0002 34568000
      15. FF12F001: APPLMSG_SI_ALL_PMT 2 0 0
      16. FF12F000: APPLMSG_SI_CUR_PMT 0 0 0
      17. FF115001: APPLMSG_SI_TOT 1245A50 0 34580000
      18. FF115000: APPLMSG_SI_TDT 1245190 0 34580000
      19. FF113000: APPLMSG_SI_NIT 12448D0 0 34580000
      20. 2000000: MSG_BASE_REMOCON 54 0 0
      21. FFF0FF01: PLUGINMSG_StateChanged 4 50 0
      22. FF810000: APPLMSG_SVC_Start 0 0 19
      23. FF810001: APPLMSG_SVC_NewSvcStart 0 0 0
      24. FF12F000: APPLMSG_SI_CUR_PMT 0 0 0
      Alles anzeigen


      Mich deucht, ein NewSvcStart ohne ein vorherieges SvcStart könnte eine Wiedergabe sein.
      Hab einfach mal einen WiMainQ-Logger angefangen, sonst wird das ja nie was mit der State-Maschine :D
      Einfach: chmod + ./WiMainQ + killall "WiMainQ"
      Dateien
      • WiMainQ.zip

        (42,07 kB, 3 mal heruntergeladen, zuletzt: )
      +++ Octagon SF-1018 HD +++ Philips 32PFL9604 +++
      --- Bastel I: Icecrypt S4000 ---
    • @ Eisha: Großartige Sache. Ich befürchte nur, dass ein Raten der Zustände auf Grund von Message-Abfolgen böse versionsabhängig werden kann. Für's Forschen und Debuggen jedenfalls eine coole Sache.

      Für alle die die 10816 haben, bitte die Datei im Anhang downloaden und fastwind in /var/bin tauschen. Diese Version läuft unter 10816 und den Vorversionen. Alle die eine Version vor 10816 haben, lassen besser alles so wie es ist.

      Leider hat Fortis die Plugin Schnittstelle mit der 10816 ruiniert (näheres im O Forum). Ich hoffe, dass da zurückgerudert wird und wir bis dahin ein Pflaster mit der anhängenden Version kleben können.

      Grüße, maxodil
      Dateien

    Flag Counter