Seite 1 von 1

Allgemeine Frage zur Programmierung (im speziellen RecCopy)!

Verfasst: Sa 19. Feb 2011, 21:27
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

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

Verfasst: Sa 19. Feb 2011, 21:59
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.

Verfasst: Sa 19. Feb 2011, 22:40
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

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

Verfasst: So 20. Feb 2011, 17:13
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.

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

Verfasst: So 20. Feb 2011, 17:34
von FireBird
Der Download-Link zeigt zu mir. Du kannst mir die Files schicken (email siehe Profil) und ich lege sie auf den Server.

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

Verfasst: So 20. Feb 2011, 20:35
von cubeibook
Alles klar, das mache ich.

Es gibt dann also eine 4.5c.

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

Verfasst: So 20. Feb 2011, 20:39
von FireBird
Danke, die email ist schon angekommen.