Allgemeine Frage zur Programmierung (im speziellen RecCopy)!

Zusatz-Programme für Receiver der 5000er und 6000er Serie.

Hier geht's um alles, was mit den TAP Anwendungen für den PVR5x00/6000 zu tun hat.
Antworten
Benutzeravatar
cubeibook
Topfversteher
Topfversteher
Beiträge: 325
Registriert: Di 21. Feb 2006, 07:55

Allgemeine Frage zur Programmierung (im speziellen RecCopy)!

#1

Beitrag von cubeibook »

Hallo!

Im RecCopy Thread habe ich ja schon geschrieben, daß ich eine Änderung an RecCopy gemacht habe, damit nach dem Umschalten auf den Aufnahmesender noch ein wenig gewartet wird, damit der Sender richtig entschlüsselt werden kann.
Diese Änderung hat aber wider Erwarten nichts gebracht. Ich habe die Pause sogar auf 10s gesetzt, aber es passiert einfach nichts, der Sender bleibt schwarz.

Hier ist die entsprechende Codestelle.

Code: Alles auswählen

        if (CurrentChannel != DecodingChannel || CurrentService != DecodingService)
        {
          ChannelInfo(text, DecodingChannel, DecodingService);
          DEBUG("Switching to decoding channel %s\n", text);

          if (TAP_Channel_Start(CHANNEL_Main, DecodingService, DecodingChannel) != 0)
          {
            DEBUG("Failed to switch\n");

            tapcom_return |= RecCopy_Result_Failure;
            CurrentRec++;
            State = StateNextCopy;
            break;
          }
          else
          {
            CurrentService = DecodingService;
            CurrentChannel = DecodingChannel;
          }
        }

        // Wait 10s for switching to the correct channel
        TAP_Delay(1000);

        if (!Played)
        {
          Played = TRUE;
          DEBUG("Originals will be %s\n", otextp(Options.Originals));
        }

        DEBUG("Decoding \"%s\"\n", Fclean(FileList[CurrentRec].FileName));

        if (Options.PacketFilter) StreamChecked = StreamCompressorDecodeStream(FileList[CurrentRec].FileName, Stream);
        else StreamChecked = FALSE;

        if (TAP_Hdd_PlayTs(FileList[CurrentRec].FileName) != 0)
        {
          DEBUG("Failed to start playback\n");

          tapcom_return |= RecCopy_Result_Failure;
          CurrentRec++;
          State = StateNextCopy;
          break;
        }

        TAP_Delay(100);

        StartTime = TAP_GetTick();
        DEBUG("Waiting for playback stabilization\n");
        retries = 2;
        ot = 0;
        State = StateStabilize;
Ich gehe davon aus, daß TAP_Channel_Start(...) den Sender umschaltet. Nur was passiert ist, daß der Bildschirm einfach dunkel bleibt und die Entschlüsselung durch die Karte nicht einsetzt. Dadurch kann dann auch die Aufnahme nicht entschlüsselt werden.
Die Zeile ziemlich in der Mitte mit dem TAP_Delay(1000) habe ich eingefügt, weil ich dachte, daß das hilft. Hat es aber nicht.
Wenn ich vorher per Hand auf den Aufnahmesender umschalte, funktioniert es hingegen.
Die Umschaltzeit per Hand auf einen verschlüsselten Sender bis ein Bild erscheint sind ca. 2s.

Muß eventuell noch etwas gemacht werden, um eine richtige Senderumschaltung durchzuführen? Was könnte noch eine Umschaltung verhindern. Wo ist der Trick?

Danke im voraus für Hilfe!
Carsten
Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 25358
Registriert: Fr 9. Dez 2005, 09:59

AW: Allgemeine Frage zur Programmierung (im speziellen RecCopy)!

#2

Beitrag von FireBird »

Vermutlich benötigt er dafür ein paar Idle-Events, TAP_Delay() blockt dagegen den gesamten Thread. Am einfachsten ist es, wenn man vor dem StatePlayback einen zusätzlichen State einfügt, der sich um die Umschaltung und die Pause kümmert.
Benutzeravatar
cubeibook
Topfversteher
Topfversteher
Beiträge: 325
Registriert: Di 21. Feb 2006, 07:55

#3

Beitrag von cubeibook »

[quote=""FireBird""]TAP_Delay() blockt dagegen den gesamten Thread. [/quote]

Ach so. Na das ist natürlich nicht das Gewünschte. Ich werde Deinen Tip mal ausprobieren.

Danke!
Carsten
Benutzeravatar
cubeibook
Topfversteher
Topfversteher
Beiträge: 325
Registriert: Di 21. Feb 2006, 07:55

AW: Allgemeine Frage zur Programmierung (im speziellen RecCopy)!

#4

Beitrag von cubeibook »

[quote=""FireBird""]vor dem StatePlayback einen zusätzlichen State einfügt, der sich um die Umschaltung und die Pause kümmert.[/quote]

Ich habe jetzt zwei States eingebaut, einen der Umschaltet und einen der ein paar Sekunden wartet bevor es mit dem Abspielen losgeht. Das Warten habe ich mit Aufrufen von TAP_GetTick erledigt, damit ich nichts blockiere.
Und was soll ich sagen. Es geht. :-)

Danke für die Hilfe!

Ich teste es jetzt noch ein wenig und dann kann ich die Sourcen zur Verfügung stellen. Wohin sollte ich die dann schicken? Ich kann ja schlecht die erste Nachricht im RecCopy Thread ändern.
Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 25358
Registriert: Fr 9. Dez 2005, 09:59

AW: Allgemeine Frage zur Programmierung (im speziellen RecCopy)!

#5

Beitrag von FireBird »

Der Download-Link zeigt zu mir. Du kannst mir die Files schicken (email siehe Profil) und ich lege sie auf den Server.
Benutzeravatar
cubeibook
Topfversteher
Topfversteher
Beiträge: 325
Registriert: Di 21. Feb 2006, 07:55

AW: Allgemeine Frage zur Programmierung (im speziellen RecCopy)!

#6

Beitrag von cubeibook »

Alles klar, das mache ich.

Es gibt dann also eine 4.5c.
Benutzeravatar
FireBird
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
Beiträge: 25358
Registriert: Fr 9. Dez 2005, 09:59

AW: Allgemeine Frage zur Programmierung (im speziellen RecCopy)!

#7

Beitrag von FireBird »

Danke, die email ist schon angekommen.
Antworten

Zurück zu „TF 5x00/6000 PVR TAP“