Hallo alle miteinander,
habe hier ein Programm, welches auf User-Input per Tastatur reagieren soll. Erhält es einen bestimmten Input, so soll es solange Videos abspielen, bis mit anderem Input die Wiedergabe unterbrochen wird.
Soweit so gut. Das Abspielen zu starten ist kein Thema. Das stoppen an sich auch nicht. Das Problem ist die fortlaufende Wiedergabe. Wenn ein Video gespielt wird, wird währenddessen weiterhin die Tastatur abgefragt, ob der User die Wiedergabe stoppen möchte. Das ist an sich kein Thema, wenn es nicht das Problem gäbe, dass er das Abspielen nach jedem Video unterbricht, man dann erst IRGENDEINE Taste drücken muss, und er dann erst das nächste Video spielt. Ich möchte aber, dass er eben ohne weitere Nutzerinteraktion fortlaufend abspielt, bis er eben stoppen soll.
Der "kritische" Code-Teil sieht so aus:
ev ist ein input_event, this->devfd_ ist ein File-Pointer auf (in meinem Fall) /dev/input/event2.
Nun suche ich nach einer Möglichkeit, diese Abfrage zeitgesteuert zu unterbrechen. Wenn z.B. 100 ms nichts passiert, dann soll im Programm einfach fortgefahren werden.
Hat jemand von euch eine Idee, wie ich das realisieren kann?
Programmiert wird mit C++ unter Linux.
Vielen Dank im Voraus
Trench
habe hier ein Programm, welches auf User-Input per Tastatur reagieren soll. Erhält es einen bestimmten Input, so soll es solange Videos abspielen, bis mit anderem Input die Wiedergabe unterbrochen wird.
Soweit so gut. Das Abspielen zu starten ist kein Thema. Das stoppen an sich auch nicht. Das Problem ist die fortlaufende Wiedergabe. Wenn ein Video gespielt wird, wird währenddessen weiterhin die Tastatur abgefragt, ob der User die Wiedergabe stoppen möchte. Das ist an sich kein Thema, wenn es nicht das Problem gäbe, dass er das Abspielen nach jedem Video unterbricht, man dann erst IRGENDEINE Taste drücken muss, und er dann erst das nächste Video spielt. Ich möchte aber, dass er eben ohne weitere Nutzerinteraktion fortlaufend abspielt, bis er eben stoppen soll.
Der "kritische" Code-Teil sieht so aus:
Code:
do {
fread(&ev, sizeof(ev), 1, this->devfd_);
} while (ev.type != EV_KEY);
ev ist ein input_event, this->devfd_ ist ein File-Pointer auf (in meinem Fall) /dev/input/event2.
Nun suche ich nach einer Möglichkeit, diese Abfrage zeitgesteuert zu unterbrechen. Wenn z.B. 100 ms nichts passiert, dann soll im Programm einfach fortgefahren werden.
Hat jemand von euch eine Idee, wie ich das realisieren kann?
Programmiert wird mit C++ unter Linux.
Vielen Dank im Voraus
Trench