public void StartPage(TeletextPageHeader header, UInt64 presentTime)
        {
            this.presentTime = presentTime;
            int mag = header.Magazine();

            if (mag != magID)
            {
                Log.Debug("Magazine magid mag: {0}, {1}", magID, mag);
            }
            assert(mag == magID, "Inconsistent magazine id");
            assert(pageNumInProgress == -1 || (pageNumInProgress >= 100 && pageNumInProgress <= 966),
                   "PageNumInProgress out of range");

            if (header.isTimeFiller() || !header.isSubtitle())
            {
                // time filling header to indicate end of page
                if (pageNumInProgress != -1)
                {
                    // if we were working on a previous page its finished now
                    EndPage();
                }
                //LogDebug("Mag %i FILLER ends page %i", magID, pageNumInProgress);
                Clear();
                pageNumInProgress = -1;
                return;
            }

            if (header.isSerial() && !this.isSerial)
            {
                Log.Debug("MagID {0} is in serial mode", magID);
                this.isSerial = true;
            }
            int new_page_num = header.PageNumber();

            if (pageNumInProgress != new_page_num)
            {
                //LogDebug("Mag %i, Page %i finished by new page %i", magID, pageNumInProgress, new_page_num);
                if (pageNumInProgress != -1)
                {
                    // if we were working on a previous page its finished now
                    EndPage();
                }
                language = header.Language();
                Clear();
                pageNumInProgress = new_page_num;
            }

            if (header.eraseBit())
            {
                Clear();
            }
            assert(pageNumInProgress >= 100 && pageNumInProgress <= 966, "StartPage: pageNumInProgress out of range");
        }
Esempio n. 2
0
    public void StartPage(TeletextPageHeader header, UInt64 presentTime)
    {
      this.presentTime = presentTime;
      int mag = header.Magazine();
      if (mag != magID)
      {
        Log.Debug("Magazine magid mag: {0}, {1}", magID, mag);
      }
      assert(mag == magID, "Inconsistent magazine id");
      assert(pageNumInProgress == -1 || (pageNumInProgress >= 100 && pageNumInProgress <= 966),
             "PageNumInProgress out of range");

      if (header.isTimeFiller() || !header.isSubtitle())
      {
        // time filling header to indicate end of page
        if (pageNumInProgress != -1)
        {
          // if we were working on a previous page its finished now
          EndPage();
        }
        //LogDebug("Mag %i FILLER ends page %i", magID, pageNumInProgress);
        Clear();
        pageNumInProgress = -1;
        return;
      }

      if (header.isSerial() && !this.isSerial)
      {
        Log.Debug("MagID {0} is in serial mode", magID);
        this.isSerial = true;
      }
      int new_page_num = header.PageNumber();

      if (pageNumInProgress != new_page_num)
      {
        //LogDebug("Mag %i, Page %i finished by new page %i", magID, pageNumInProgress, new_page_num);
        if (pageNumInProgress != -1)
        {
          // if we were working on a previous page its finished now
          EndPage();
        }
        language = header.Language();
        Clear();
        pageNumInProgress = new_page_num;
      }

      if (header.eraseBit())
      {
        Clear();
      }
      assert(pageNumInProgress >= 100 && pageNumInProgress <= 966, "StartPage: pageNumInProgress out of range");
    }