Ticket #368: teletext.diff

File teletext.diff, 6.7 KB (added by frankm, 14 years ago)

fixes problems with doubleheighted characters / teletext key bindings

  • libs/libmythtv/osdtypeteletext.cpp

     
    147147                                    const unsigned char* buf,
    148148                                    int vbimode, int lang, int flags)
    149149{
    150     if (page < 256)
    151         return;
    152150
    153151    int magazine = MAGAZINE(page);
     152
     153    if (magazine < 1 || magazine > 8)
     154        return;
     155
    154156    int lastPage = m_magazines[magazine - 1].current_page;
    155157    int lastSubPage = m_magazines[magazine - 1].current_subpage;
    156158
     
    228230            if (vbimode == VBI_DVB || vbimode == VBI_DVB_SUBTITLE)
    229231            {
    230232                for (int j = 0; j < 40; j++)
    231                 ttpage->data[row][j] = bitswap[buf[j]];
     233                    ttpage->data[row][j] = bitswap[buf[j]];
    232234            }
    233235            else
    234236            {
     
    842844    int dy = (int)round(m_tt_rowspace / 3)+1;
    843845
    844846    if (doubleheight != 0)
    845     {
    846         dx *= 2;
    847847        dy *= 2;
    848     }
    849848
    850849    if (code & 0x10) DrawRect(x,      y + 2*dy, dx, dy);
    851850    if (code & 0x40) DrawRect(x + dx, y + 2*dy, dx, dy);
     
    904903    {
    905904        if (startbox)
    906905        {
    907             bgcolor = bgcolor = TTColor::BLACK;
     906            bgcolor = TTColor::BLACK;
    908907            startbox = false;
    909908        }
    910909
     
    10021001
    10031002            DrawBackground(x, row);
    10041003            if (doubleheight != 0)
    1005                     DrawBackground(x, row +1);
     1004                DrawBackground(x, row +1);
    10061005
    10071006            if ((mosaic) && (ch < 0x40 || ch > 0x5F))
    10081007            {
     
    10111010            }
    10121011            else
    10131012            {
    1014                 if (doubleheight != 0)
     1013                if (doubleheight != 0 && row < kTeletextRows)
    10151014                    DrawCharacter(x, row+1, CharConversion(ch, lang),
    10161015                                  doubleheight);
    10171016                else
    10181017                    DrawCharacter(x, row, CharConversion(ch, lang),
    1019                                   doubleheight);
     1018                                  0);
    10201019            }
    10211020        }
    10221021    }
  • libs/libmythtv/tv_play.cpp

     
    127127            "T");
    128128    REG_KEY("TV Playback", "TOGGLECC708",
    129129            "Toggle ATSC CC", "^");
    130     REG_KEY("TV Playback", "MENURED",
    131             "Menu Red",    "F2");
    132     REG_KEY("TV Playback", "MENUGREEN",
    133             "Menu Green",  "F3");
    134     REG_KEY("TV Playback", "MENUYELLOW",
    135             "Menu Yellow", "F4");
    136     REG_KEY("TV Playback", "MENUBLUE",
    137             "Menu Blue",   "F5");
    138     REG_KEY("TV Playback", "MENUWHITE",
    139             "Menu White",  "F6");
    140     REG_KEY("TV Playback", "REVEAL",
    141             "Teletext reveal hidden Text", "F12");
    142130    REG_KEY("TV Playback", "DISPCC608_1", "Display CC1", "");
    143131    REG_KEY("TV Playback", "DISPCC608_2", "Display CC2", "");
    144132    REG_KEY("TV Playback", "DISPCC608_3", "Display CC3", "");
     
    186174    REG_KEY("TV Editing", "BIGJUMPFWD", "Jump forward 10x the normal amount",
    187175            ">,.");
    188176    REG_KEY("TV Editing", "TOGGLEEDIT", "Exit out of Edit Mode", "E");
     177    /* Teletext keys */
     178    REG_KEY("TV Playback TXT", "NEXTPAGE",
     179            "Next Teletext Page",        "Down");
     180    REG_KEY("TV Playback TXT", "PREVPAGE",
     181            "Previous Teletext Page",    "Up");
     182    REG_KEY("TV Playback TXT", "NEXTSUBPAGE",
     183            "Next Teletext Subpage",     "Right");
     184    REG_KEY("TV Playback TXT", "PREVSUBPAGE",
     185            "Previous Teletext Subpage", "Left");
     186    REG_KEY("TV Playback TXT", "TOGGLEBACKGROUND",
     187            "Toggle Background",         "F11");
     188    REG_KEY("TV Playback TXT", "TOGGLECC",     
     189            "Toggle Teletext",           "T");
     190    REG_KEY("TV Playback TXT", "MENURED",
     191            "Menu Red",    "F2");
     192    REG_KEY("TV Playback TXT", "MENUGREEN",
     193            "Menu Green",  "F3");
     194    REG_KEY("TV Playback TXT", "MENUYELLOW",
     195            "Menu Yellow", "F4");
     196    REG_KEY("TV Playback TXT", "MENUBLUE",
     197            "Menu Blue",   "F5");
     198    REG_KEY("TV Playback TXT", "MENUWHITE",
     199            "Menu White",  "F6");
     200    REG_KEY("TV Playback TXT", "REVEAL",
     201            "Teletext reveal hidden Text", "F12");
    189202/*
    190203  keys already used:
    191204
     
    18081821        }
    18091822    }
    18101823
    1811     if (!gContext->GetMainWindow()->TranslateKeyPress(
    1812             "TV Playback", e, actions))
     1824    if (teletextmode)
    18131825    {
    1814         return;
     1826        if (!gContext->GetMainWindow()->TranslateKeyPress(
     1827                "TV Playback TXT", e, actions))
     1828            return;
    18151829    }
     1830    else
     1831    {
     1832        if (!gContext->GetMainWindow()->TranslateKeyPress(
     1833                "TV Playback", e, actions))
     1834            return;
     1835    }
    18161836
    18171837    bool handled = false;
    18181838
     
    18861906        {
    18871907            QString action = actions[i];
    18881908            handled = true;
    1889             if (action == "UP")
     1909            if (action == "NEXTPAGE")
    18901910                TeletextNavigate(-1);
    1891             else if (action == "DOWN")
     1911            else if (action == "PREVPAGE")
    18921912                TeletextNavigate(-2);
    1893             else if (action == "RIGHT")
     1913            else if (action == "NEXTSUBPAGE")
    18941914                TeletextNavigate(-3);
    1895             else if (action == "LEFT")
     1915            else if (action == "PREVSUBPAGE")
    18961916                TeletextNavigate(-4);
    1897             else if (action == "TOGGLEASPECT")
     1917            else if (action == "TOGGLEBACKGROUND")
    18981918                TeletextNavigate(-5);
    18991919            else if (action == "MENURED")
    19001920                TeletextNavigate(-6);
  • libs/libmythtv/ttfont.cpp

     
    309309           ymin = 0;
    310310       }
    311311       else
    312            ioff = (rmap->rows - ymin - 1) * rmap->cols;
     312           ioff = (rmap->rows - ( (double_size) ? (ymin << 1) : ymin) - 1) * rmap->cols;
    313313
    314314       if (ymax >= rmap->rows)
    315315           ymax = rmap->rows - 1;
     
    473473      height = h;
    474474
    475475   if (x < 0)
    476      {
    477         clipx = -x;
    478         width += x;
    479         x = 0;
    480      }
     476   {
     477       clipx = -x;
     478       width += x;
     479       x = 0;
     480   }
    481481   if (y < 0)
    482      {
    483         clipy = -y;
    484         height += y;
    485         y = 0;
    486      }
     482   {
     483       clipy = -y;
     484       height += y;
     485       y = 0;
     486   }
    487487   if ((width <= 0) || (height <= 0))
    488      {
    489         destroy_font_raster(rmap);
    490         destroy_font_raster(rtmp);
    491         return;
    492      }
     488   {
     489       destroy_font_raster(rmap);
     490       destroy_font_raster(rtmp);
     491       return;
     492   }
    493493
    494494   if (m_shadowxoff > 0 || m_shadowyoff > 0)
    495495   {