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

            if (mag != _magId)
            {
                ServiceRegistration.Get <ILogger>().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() && !_isSerial)
            {
                ServiceRegistration.Get <ILogger>().Debug("MagID {0} is in serial mode", _magId);
                _isSerial = true;
            }
            int newPageNum = header.PageNumber();

            _language = header.Language();

            if (_pageNumInProgress != newPageNum)
            {
                //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();
                }
                Clear();
                _pageNumInProgress = newPageNum;
            }

            if (header.EraseBit())
            {
                Clear();
            }
            Assert(_pageNumInProgress >= 100 && _pageNumInProgress <= 966, "StartPage: pageNumInProgress out of range");
        }
示例#2
0
    public void StartPage(TeletextPageHeader header, UInt64 presentTime)
    {
      _presentTime = presentTime;
      int mag = header.Magazine();
      if (mag != _magId)
      {
        ServiceRegistration.Get<ILogger>().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() && !_isSerial)
      {
        ServiceRegistration.Get<ILogger>().Debug("MagID {0} is in serial mode", _magId);
        _isSerial = true;
      }
      int newPageNum = header.PageNumber();
      _language = header.Language();

      if (_pageNumInProgress != newPageNum)
      {
        //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();
        }
        Clear();
        _pageNumInProgress = newPageNum;
      }

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