Ticket #2155: no_osd_message_at_stream_info_change.v3.diff

File no_osd_message_at_stream_info_change.v3.diff, 7.0 KB (added by Pekka Jääskeläinen <pekka.jaaskelainen@…>, 18 years ago)

Hides (hopefully) the last message when subtitles are disabled at stream info change

  • libs/libmythtv/NuppelVideoPlayer.cpp

    TODO
    ----
    - kun subit pistetaan pois paalta, tulee edelleen viesti
    
    old new  
    564564        videoOutput->EmbedInWidget(embedid, embx, emby, embw, embh);
    565565    }
    566566
    567     SetCaptionsEnabled(gContext->GetNumSetting("DefaultCCMode"));
     567    SetCaptionsEnabled(gContext->GetNumSetting("DefaultCCMode"), false);
    568568
    569569    return true;
    570570}
     
    620620
    621621    if (textDisplayMode)
    622622    {
    623         DisableCaptions(textDisplayMode);
    624         SetCaptionsEnabled(true);
     623        DisableCaptions(textDisplayMode, false);
     624        SetCaptionsEnabled(true, false);
    625625    }
    626626}
    627627
     
    14501450
    14511451    ResetCaptions(mode);
    14521452
    1453     if (osd_msg && osd)
     1453    if (!osd || !osd_msg)
     1454        return;
     1455
     1456    QString msg = " ";
     1457    if (kDisplayNUVTeletextCaptions & mode)
     1458        msg += QObject::tr("TXT CAP");
     1459    if (kDisplayTeletextCaptions & mode)
    14541460    {
    1455         QString msg = " ";
    1456         if (kDisplayNUVTeletextCaptions & mode)
    1457             msg += QObject::tr("TXT CAP");
    1458         if (kDisplayTeletextCaptions & mode)
    1459         {
    1460             msg += decoder->GetTrackDesc(kTrackTypeTeletextCaptions,
    1461                                          GetTrack(kTrackTypeTeletextCaptions));
     1461        msg += decoder->GetTrackDesc(kTrackTypeTeletextCaptions,
     1462                                     GetTrack(kTrackTypeTeletextCaptions));
    14621463
    1463             DisableTeletext();
    1464         }
    1465         if (kDisplayAVSubtitle & mode)
    1466         {
    1467             msg += decoder->GetTrackDesc(kTrackTypeSubtitle,
    1468                                          GetTrack(kTrackTypeSubtitle));
    1469         }
    1470         if (kDisplayTextSubtitle & mode)
    1471         {
     1464        DisableTeletext();
     1465    }
     1466    if (kDisplayAVSubtitle & mode)
     1467    {
     1468        msg += decoder->GetTrackDesc(kTrackTypeSubtitle,
     1469                                     GetTrack(kTrackTypeSubtitle));
     1470    }
     1471    if (kDisplayTextSubtitle & mode)
     1472    {
    14721473            msg += QObject::tr("Text subtitles");
    1473         }
    1474         if (kDisplayCC608 & mode)
    1475         {
    1476             msg += decoder->GetTrackDesc(kTrackTypeCC608,
    1477                                          GetTrack(kTrackTypeCC608));
    1478         }
    1479         if (kDisplayCC708 & mode)
    1480         {
    1481             msg += decoder->GetTrackDesc(kTrackTypeCC708,
    1482                                          GetTrack(kTrackTypeCC708));
    1483         }
     1474    }
     1475    if (kDisplayCC608 & mode)
     1476    {
     1477        msg += decoder->GetTrackDesc(kTrackTypeCC608,
     1478                                     GetTrack(kTrackTypeCC608));
     1479    }
     1480    if (kDisplayCC708 & mode)
     1481    {
     1482        msg += decoder->GetTrackDesc(kTrackTypeCC708,
     1483                                     GetTrack(kTrackTypeCC708));
     1484    }
    14841485
    1485         if (msg != " ")
    1486         {
    1487             msg += " " + QObject::tr("Off");
    1488             osd->SetSettingsText(msg, 3 /* seconds until message timeout */);
    1489         }
     1486    if (msg != " ")
     1487    {
     1488        msg += " " + QObject::tr("Off");
     1489        osd->SetSettingsText(msg, 3 /* seconds until message timeout */);
    14901490    }
    14911491}
    14921492
    14931493// caller has decoder_changed_lock
    1494 void NuppelVideoPlayer::EnableCaptions(uint mode)
     1494void NuppelVideoPlayer::EnableCaptions(uint mode, bool osd_msg)
    14951495{
    14961496    QString msg = "";
    14971497    if (kDisplayAVSubtitle & mode)
     
    15361536    msg += " " + QObject::tr("On");
    15371537
    15381538    textDisplayMode = mode;
    1539     if (osd)
     1539    if (osd && osd_msg)
    15401540        osd->SetSettingsText(msg, 3 /* seconds until message timeout */);
    15411541
    15421542}
     
    16261626    return textDisplayMode;
    16271627}
    16281628
    1629 void NuppelVideoPlayer::SetCaptionsEnabled(bool enable)
     1629void NuppelVideoPlayer::SetCaptionsEnabled(bool enable, bool osd_msg)
    16301630{
    16311631    uint origMode = textDisplayMode;
    16321632
     
    16361636
    16371637    if (!enable)
    16381638    {
    1639         DisableCaptions(origMode);
     1639        DisableCaptions(origMode, osd_msg);
    16401640        return;
    16411641    }
    16421642   
    16431643    // figure out which text type to enable..
    16441644    bool captions_found = true;
    16451645    if (decoder->GetTrackCount(kTrackTypeSubtitle))
    1646         EnableCaptions(kDisplayAVSubtitle);
     1646        EnableCaptions(kDisplayAVSubtitle, osd_msg);
    16471647    else if (textSubtitles.GetSubtitleCount() > 0)
    1648         EnableCaptions(kDisplayTextSubtitle);
     1648        EnableCaptions(kDisplayTextSubtitle, osd_msg);
    16491649    else if (decoder->GetTrackCount(kTrackTypeCC708))
    1650         EnableCaptions(kDisplayCC708);
     1650        EnableCaptions(kDisplayCC708, osd_msg);
    16511651    else if (decoder->GetTrackCount(kTrackTypeTeletextCaptions))
    1652         EnableCaptions(kDisplayTeletextCaptions);
     1652        EnableCaptions(kDisplayTeletextCaptions, osd_msg);
    16531653    else if (vbimode == VBIMode::PAL_TT)
    1654         EnableCaptions(kDisplayNUVTeletextCaptions);
     1654        EnableCaptions(kDisplayNUVTeletextCaptions, osd_msg);
    16551655    else if (vbimode == VBIMode::NTSC_CC)
    16561656    {
    16571657        if (decoder->GetTrackCount(kTrackTypeCC608))
    1658             EnableCaptions(kDisplayCC608);
     1658            EnableCaptions(kDisplayCC608, osd_msg);
    16591659        else
    16601660            captions_found = false;
    16611661    }
    16621662    else
    16631663        captions_found = false;
    16641664
    1665     if (!captions_found && osd)
     1665    if (!captions_found && osd && osd_msg)
    16661666    {
    16671667        QString msg = QObject::tr(
    16681668            "No captions", "CC/Teletext/Subtitle text not available");
     
    57225722                ((sid == 3) ? CC_CC3 : CC_CC4);
    57235723        }
    57245724        DisableCaptions(textDisplayMode, false);
    5725         EnableCaptions(kDisplayCC608);
     5725        EnableCaptions(kDisplayCC608, false);
    57265726    }
    57275727    else if (kTrackTypeTeletextCaptions == type)
    57285728    {
     
    57335733}
    57345734
    57355735/** \fn NuppelVideoPlayer::TracksChanged(uint)
    5736  *  \brief This tries to re-enables captions/subtitles if the user
     5736 *  \brief This tries to re-enable captions/subtitles if the user
    57375737 *         wants them and one of the captions/subtitles tracks has
    57385738 *         changed.
    57395739 */
     
    57425742    if (trackType >= kTrackTypeSubtitle &&
    57435743        trackType <= kTrackTypeTeletextCaptions && textDesired)
    57445744    {
    5745         SetCaptionsEnabled(textDesired);
     5745        SetCaptionsEnabled(true, false);
    57465746    }
    57475747}
    57485748
  • libs/libmythtv/NuppelVideoPlayer.h

    old new  
    286286    // Closed caption and teletext stuff
    287287    uint GetCaptionMode(void) const { return textDisplayMode; }
    288288    void ResetCaptions(uint mode_override = 0);
    289     void DisableCaptions(uint mode, bool osd_msg = true);
    290     void EnableCaptions(uint mode);
     289    void DisableCaptions(uint mode, bool osd_msg=true);
     290    void EnableCaptions(uint mode, bool osd_msg=true);
    291291    bool ToggleCaptions(void);
    292292    bool ToggleCaptions(uint mode);
    293     void SetCaptionsEnabled(bool);
     293    void SetCaptionsEnabled(bool, bool osd_msg=true);
    294294    bool LoadExternalSubtitles(const QString &subtitleFileName);
    295295
    296296    // Teletext Menu and non-NUV teletext decoder