so habe ich das im PVR350-Plugin jetzt gebastelt:
void cPvr350Device::TrickSpeed(int Speed)
{
printf("Set speed %d\n",Speed);
struct ivtv_speed speed;
int ret;
m_RingBuffer->Clear();
memset(&speed, 0, sizeof(speed));
speed.fr_mask = 2;
switch (Speed) {
case 1 : speed.scale = 0; break;
case 3 : speed.scale = 30 / (24 / 3); break;
case 6 : speed.scale = 30 / (24 / 6); break;
}
if ( (ret = ioctl(fd_out,IVTV_IOC_S_SPEED, &speed)) < 0 ) {
printf("speed %d\n",ret);
SetPlayMode(m_PlayMode);
}
}
Alles anzeigen
vdr ist auf Multispeed-Modus konfiguriert. Wenn ich jetzt aus Play heraus den Bildsuchlauf vorwärts betätige (=Pfeiltaste rechts drücke) , ist sofort eine schnelle Vorlaufgeschwindigkeit da. Das funzte auch schon, als dieser Abschnitt nur so aussah:
void cPvr350Device::TrickSpeed(int Speed)
{
printf("Set speed %d\n",Speed);
m_RingBuffer->Clear();
SetPlayMode(m_PlayMode);
}
Wenn ich beim neuen Code jetzt die Geschwindigkeitsstufe erhöhe (also nochmal Pfeil rechts für Stufe 2 drücke, wirds langsamer. Einen zurück auf Stufe 1 wirds noch langsamer. Und Stufe 3 ist dann etwa so schnell wie Stufe 1, wenn sie beim ersten Drücken auf die rechte Pfeiltaste aufgerufen wird. Klingt kompliziert, ich weiss
Ich begreife die Zusammenhämnge zwischen dem vdr-Code und dem plugin-Code als Programmier-Laie nicht so recht.
Hat jemand eine Idee, wie ich erreichen kann, dass bereits beim ersten Tastendruck die Stufe 1, wie sie durch ivtv dargestellt wird, zum Einsatz kommt?