Ticket #8954: subtitle_stretch.3.diff

File subtitle_stretch.3.diff, 7.7 KB (added by stuartm, 14 years ago)

Updated patch.

  • mythtv/libs/libmythtv/subtitlescreen.cpp

     
    1616static MythFontProperties* gTextSubFont;
    1717static QHash<int, MythFontProperties*> gCC708Fonts;
    1818
    19 SubtitleScreen::SubtitleScreen(MythPlayer *player, const char * name) :
     19SubtitleScreen::SubtitleScreen(MythPlayer *player, const char * name,
     20                               int fontStretch) :
    2021    MythScreenType((MythScreenType*)NULL, name),
    2122    m_player(player),  m_subreader(NULL),   m_608reader(NULL),
    2223    m_708reader(NULL), m_safeArea(QRect()), m_useBackground(false),
    2324    m_removeHTML(QRegExp("</?.+>")),        m_subtitleType(kDisplayNone),
    24     m_textFontZoom(100),                    m_refreshArea(false)
     25    m_textFontZoom(100),                    m_refreshArea(false),
     26    m_fontStretch(fontStretch)
    2527{
    2628    m_708fontSizes[0] = 36;
    2729    m_708fontSizes[1] = 45;
     
    297299
    298300void SubtitleScreen::DisplayTextSubtitles(void)
    299301{
    300     if (!InitialiseFont() || !m_player || !m_subreader)
     302    if (!InitialiseFont(m_fontStretch) || !m_player || !m_subreader)
    301303        return;
    302304
    303305    bool changed = false;
     
    374376
    375377void SubtitleScreen::DisplayRawTextSubtitles(void)
    376378{
    377     if (!InitialiseFont() || !m_player || !m_subreader)
     379    if (!InitialiseFont(m_fontStretch) || !m_player || !m_subreader)
    378380        return;
    379381
    380382    uint64_t duration;
     
    465467                m_expireTimes.insert(shape, start + duration);
    466468        }
    467469        MythUIText* text = new MythUIText(subtitle, *gTextSubFont, rect,
    468                                 rect, this,QString("tsub%1%2").arg(x).arg(y));
     470                                rect, this, QString("tsub%1%2").arg(x).arg(y));
    469471        if (text)
    470472            text->SetJustification(Qt::AlignCenter);
    471473        y += height;
     
    552554        Qt::blue,    Qt::magenta, Qt::cyan,  Qt::white,
    553555    };
    554556
    555     if (!InitialiseFont() || !m_608reader)
     557    if (!InitialiseFont(m_fontStretch) || !m_608reader)
    556558        return;
    557559
    558560    bool changed = false;
     
    655657        return;
    656658    }
    657659
    658     if (!Initialise708Fonts())
     660    if (!Initialise708Fonts(m_fontStretch))
    659661        return;
    660662
    661663    for (uint i = 0; i < 8; i++)
     
    906908    }
    907909}
    908910
    909 bool SubtitleScreen::InitialiseFont(void)
     911bool SubtitleScreen::InitialiseFont(int fontStretch)
    910912{
    911913    static bool initialised = false;
    912914    QString font = gCoreContext->GetSetting("OSDSubFont", "FreeSans");
     
    921923    if (mythfont)
    922924    {
    923925        QFont newfont(font);
     926        newfont.setStretch(fontStretch);
    924927        font.detach();
    925928        mythfont->SetFace(newfont);
    926929        gTextSubFont = mythfont;
     
    934937    return true;
    935938}
    936939
    937 bool SubtitleScreen::Initialise708Fonts(void)
     940bool SubtitleScreen::Initialise708Fonts(int fontStretch)
    938941{
    939942    static bool initialised = false;
    940943    if (initialised)
     
    962965        if (mythfont)
    963966        {
    964967            QFont newfont(font);
     968            newfont.setStretch(fontStretch);
    965969            font.detach();
    966970            mythfont->SetFace(newfont);
    967971            gCC708Fonts.insert(count, mythfont);
  • mythtv/libs/libmythtv/subtitlescreen.h

     
    11#ifndef SUBTITLESCREEN_H
    22#define SUBTITLESCREEN_H
    33
     4#include <QFont>
     5
    46#include "mythscreentype.h"
    57#include "subtitlereader.h"
    68#include "mythplayer.h"
    79
    810class SubtitleScreen : public MythScreenType
    911{
    10     static bool InitialiseFont(void);
    11     static bool Initialise708Fonts(void);
     12    static bool InitialiseFont(int fontStretch = QFont::Unstretched);
     13    static bool Initialise708Fonts(int fontStretch = QFont::Unstretched);
    1214
    1315  public:
    14     SubtitleScreen(MythPlayer *player, const char * name);
     16    SubtitleScreen(MythPlayer *player, const char * name, int fontStretch);
    1517    virtual ~SubtitleScreen();
    1618
    1719    void EnableSubtitles(int type);
     
    5557    int                m_textFontZoom;
    5658    bool               m_refreshArea;
    5759    QHash<int,QList<MythUIType*> > m_708imageCache;
     60    int                m_fontStretch;
    5861};
    5962
    6063#endif // SUBTITLESCREEN_H
  • mythtv/libs/libmythtv/teletextscreen.cpp

     
    3939    return ch;
    4040}
    4141
    42 TeletextScreen::TeletextScreen(MythPlayer *player, const char * name) :
     42TeletextScreen::TeletextScreen(MythPlayer *player, const char * name,
     43                               int fontStretch) :
    4344    MythScreenType((MythScreenType*)NULL, name),
    4445    m_player(player),           m_safeArea(QRect()),
    4546    m_colSize(10),              m_rowSize(10),
     
    4950    m_curpage_showheader(true), m_curpage_issubtitle(false),
    5051    m_transparent(false),       m_revealHidden(false),
    5152    m_displaying(false),        m_header_changed(false),
    52     m_page_changed(false)
     53    m_page_changed(false),      m_fontStretch(fontStretch)
    5354{
    5455    memset(m_pageinput, 0, sizeof(m_pageinput));
    5556    memset(m_header,    0, sizeof(m_header));
     
    158159
    159160void TeletextScreen::Pulse(void)
    160161{
    161     if (!InitialiseFont() || !m_displaying)
     162    if (!InitialiseFont(m_fontStretch) || !m_displaying)
    162163        return;
    163164
    164165    if (m_player && m_player->getVideoOutput())
     
    12391240    return res;
    12401241}
    12411242
    1242 bool TeletextScreen::InitialiseFont(void)
     1243bool TeletextScreen::InitialiseFont(int fontStretch)
    12431244{
    12441245    static bool initialised = false;
    12451246    QString font = gCoreContext->GetSetting("OSDSubFont", "FreeSans");
     
    12551256    {
    12561257        QFont newfont(font);
    12571258        font.detach();
     1259        newfont.setStretch(fontStretch);
    12581260        mythfont->SetFace(newfont);
    12591261        gTTFont = mythfont;
    12601262    }
  • mythtv/libs/libmythtv/teletextscreen.h

     
    11#ifndef TELETEXTSCREEN_H
    22#define TELETEXTSCREEN_H
    33
     4#include <QFont>
     5
    46#include "mythscreentype.h"
    57#include "teletextdecoder.h"
    68#include "mythplayer.h"
     
    9092
    9193class TeletextScreen: public MythScreenType, public TeletextViewer
    9294{
    93     static bool  InitialiseFont(void);
     95    static bool  InitialiseFont(int fontStretch = QFont::Unstretched);
    9496
    9597  public:
    96     TeletextScreen(MythPlayer *player, const char * name);
     98    TeletextScreen(MythPlayer *player, const char * name, int fontStretch);
    9799    virtual ~TeletextScreen();
    98100
    99101    // MythScreenType methods
     
    169171    TeletextMagazine m_magazines[8];
    170172    unsigned char    m_bitswap[256];
    171173    QHash<int, QImage*> m_rowImages;
     174    int          m_fontStretch;
    172175
    173176  public:
    174177    static const QColor kColorBlack;
  • mythtv/libs/libmythtv/osd.cpp

     
    956956    else
    957957    {
    958958        OverrideUIScale();
    959         tt = new TeletextScreen(m_parent, OSD_WIN_TELETEXT);
     959        tt = new TeletextScreen(m_parent, OSD_WIN_TELETEXT, m_fontStretch);
    960960        if (tt)
    961961        {
    962962            if (tt->Create())
     
    10611061    else
    10621062    {
    10631063        OverrideUIScale();
    1064         sub = new SubtitleScreen(m_parent, OSD_WIN_SUBTITLE);
     1064        sub = new SubtitleScreen(m_parent, OSD_WIN_SUBTITLE, m_fontStretch);
    10651065        if (sub)
    10661066        {
    10671067            if (sub->Create())