Hallo zusammen,
meine Frage geht an die softhddevice-Kollegen:
Was ist der Unterschied bei euch zwischen Suspend und Detach? Ich baue das gerade bei mir ein und bin etwas unsicher, was die Zustände angeht.
Ich würde es so definieren:
1) detached: Das Plugin beendet alle threads und stoppt die Verbindung zu audio- und video-Hardware, damit diese von anderen benutzt werden kann. Es läuft aber trotzdem im Hintergrund weiter und signalisiert VDR, dass weiterhin Daten angenommen werden, macht aber nichts damit. Damit das läuft, brauchts auch ein Osd. Im Prinzip wird ein temporäres dummydevice geschaffen. Soweit richtig?
Wie verlässt man aber jetzt diesen Zustand am besten wieder. Soll das ein expizites "Attach" sein, oder ein Tastendruck, der z.B. ein SetPlaymode/Play etc. auslöst? Wie reagieren da eure plugins?
2) suspend: Verstehe ich als "Ruhezustand", wo sich das Plugin quasi schlafen legt. Könnte aber auch der gleiche Zustand wie detached sein?! Geht das Plugin nach einer Zeit selbst in suspend?
Nachdem die Zustände in softhddevice-drm-gles mittlerweile als state machine umgesetzt sind, würde es so vorhaben:
- enter state DETACHED/SUSPEND: audio, video wird geschlossen, das device selbst bleibt offen, ein dummy-osd steht zur Verfügung
- leave state DETACHED: Verlassen nur mit explizitem "ATTACH", Problem: Was passiert, wenn VDR SetPlayMode() oder Play() oder was auch immer ans Plugin schickt (z.B. wenn man blind navigiert). Wenn das Plugin nicht darauf reagiert, müsste man sich ja irgendwie den gewollten Zustand merken und bei einem "ATTACH" setzen. Oder kann/soll man jegliche VDR-Aktivität blockieren? Ich habe da auch ein cSoftHdControl bei euch gefunden...
- leave state SUSPEND: Verlassen über jede User-Aktivität in den neuen state
Ich hoffe, die Fragestellung ist nicht zu kompliziert, aber wäre top, wenn ihr mich in die richtige Richtung lenken könntet.
Danke
Andreas