Ticket #2155: no_osd_message_at_stream_info_change.v2.diff
File no_osd_message_at_stream_info_change.v2.diff, 6.9 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/NuppelVideoPlayer.cpp
old new 564 564 videoOutput->EmbedInWidget(embedid, embx, emby, embw, embh); 565 565 } 566 566 567 SetCaptionsEnabled(gContext->GetNumSetting("DefaultCCMode") );567 SetCaptionsEnabled(gContext->GetNumSetting("DefaultCCMode"), false); 568 568 569 569 return true; 570 570 } … … 621 621 if (textDisplayMode) 622 622 { 623 623 DisableCaptions(textDisplayMode); 624 SetCaptionsEnabled(true );624 SetCaptionsEnabled(true, false); 625 625 } 626 626 } 627 627 … … 1450 1450 1451 1451 ResetCaptions(mode); 1452 1452 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) 1454 1460 { 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)); 1462 1463 1463 1464 1465 1466 1467 1468 1469 1470 1471 1464 DisableTeletext(); 1465 } 1466 if (kDisplayAVSubtitle & mode) 1467 { 1468 msg += decoder->GetTrackDesc(kTrackTypeSubtitle, 1469 GetTrack(kTrackTypeSubtitle)); 1470 } 1471 if (kDisplayTextSubtitle & mode) 1472 { 1472 1473 msg += QObject::tr("Text subtitles"); 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 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 } 1484 1485 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 */); 1490 1490 } 1491 1491 } 1492 1492 1493 1493 // caller has decoder_changed_lock 1494 void NuppelVideoPlayer::EnableCaptions(uint mode )1494 void NuppelVideoPlayer::EnableCaptions(uint mode, bool osd_msg) 1495 1495 { 1496 1496 QString msg = ""; 1497 1497 if (kDisplayAVSubtitle & mode) … … 1536 1536 msg += " " + QObject::tr("On"); 1537 1537 1538 1538 textDisplayMode = mode; 1539 if (osd )1539 if (osd && osd_msg) 1540 1540 osd->SetSettingsText(msg, 3 /* seconds until message timeout */); 1541 1541 1542 1542 } … … 1626 1626 return textDisplayMode; 1627 1627 } 1628 1628 1629 void NuppelVideoPlayer::SetCaptionsEnabled(bool enable )1629 void NuppelVideoPlayer::SetCaptionsEnabled(bool enable, bool osd_msg) 1630 1630 { 1631 1631 uint origMode = textDisplayMode; 1632 1632 … … 1636 1636 1637 1637 if (!enable) 1638 1638 { 1639 DisableCaptions(origMode );1639 DisableCaptions(origMode, osd_msg); 1640 1640 return; 1641 1641 } 1642 1642 1643 1643 // figure out which text type to enable.. 1644 1644 bool captions_found = true; 1645 1645 if (decoder->GetTrackCount(kTrackTypeSubtitle)) 1646 EnableCaptions(kDisplayAVSubtitle );1646 EnableCaptions(kDisplayAVSubtitle, osd_msg); 1647 1647 else if (textSubtitles.GetSubtitleCount() > 0) 1648 EnableCaptions(kDisplayTextSubtitle );1648 EnableCaptions(kDisplayTextSubtitle, osd_msg); 1649 1649 else if (decoder->GetTrackCount(kTrackTypeCC708)) 1650 EnableCaptions(kDisplayCC708 );1650 EnableCaptions(kDisplayCC708, osd_msg); 1651 1651 else if (decoder->GetTrackCount(kTrackTypeTeletextCaptions)) 1652 EnableCaptions(kDisplayTeletextCaptions );1652 EnableCaptions(kDisplayTeletextCaptions, osd_msg); 1653 1653 else if (vbimode == VBIMode::PAL_TT) 1654 EnableCaptions(kDisplayNUVTeletextCaptions );1654 EnableCaptions(kDisplayNUVTeletextCaptions, osd_msg); 1655 1655 else if (vbimode == VBIMode::NTSC_CC) 1656 1656 { 1657 1657 if (decoder->GetTrackCount(kTrackTypeCC608)) 1658 EnableCaptions(kDisplayCC608 );1658 EnableCaptions(kDisplayCC608, osd_msg); 1659 1659 else 1660 1660 captions_found = false; 1661 1661 } 1662 1662 else 1663 1663 captions_found = false; 1664 1664 1665 if (!captions_found && osd )1665 if (!captions_found && osd && osd_msg) 1666 1666 { 1667 1667 QString msg = QObject::tr( 1668 1668 "No captions", "CC/Teletext/Subtitle text not available"); … … 5722 5722 ((sid == 3) ? CC_CC3 : CC_CC4); 5723 5723 } 5724 5724 DisableCaptions(textDisplayMode, false); 5725 EnableCaptions(kDisplayCC608 );5725 EnableCaptions(kDisplayCC608, false); 5726 5726 } 5727 5727 else if (kTrackTypeTeletextCaptions == type) 5728 5728 { … … 5733 5733 } 5734 5734 5735 5735 /** \fn NuppelVideoPlayer::TracksChanged(uint) 5736 * \brief This tries to re-enable scaptions/subtitles if the user5736 * \brief This tries to re-enable captions/subtitles if the user 5737 5737 * wants them and one of the captions/subtitles tracks has 5738 5738 * changed. 5739 5739 */ … … 5742 5742 if (trackType >= kTrackTypeSubtitle && 5743 5743 trackType <= kTrackTypeTeletextCaptions && textDesired) 5744 5744 { 5745 SetCaptionsEnabled(t extDesired);5745 SetCaptionsEnabled(true, false); 5746 5746 } 5747 5747 } 5748 5748 -
libs/libmythtv/NuppelVideoPlayer.h
old new 286 286 // Closed caption and teletext stuff 287 287 uint GetCaptionMode(void) const { return textDisplayMode; } 288 288 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); 291 291 bool ToggleCaptions(void); 292 292 bool ToggleCaptions(uint mode); 293 void SetCaptionsEnabled(bool );293 void SetCaptionsEnabled(bool, bool osd_msg=true); 294 294 bool LoadExternalSubtitles(const QString &subtitleFileName); 295 295 296 296 // Teletext Menu and non-NUV teletext decoder