28 changes: 5 additions & 23 deletions mythtv/libs/libmythtv/tv_play.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1433,7 +1433,7 @@ void TV::GetStatus()
status.insert("chaptertimes", var);
}

uint capmode = m_player->GetCaptionMode();
uint capmode = m_captionsState.m_textDisplayMode;
QVariantMap tracks;

QStringList list = m_player->GetTracks(kTrackTypeSubtitle);
Expand Down Expand Up @@ -3106,13 +3106,6 @@ bool TV::event(QEvent* Event)

bool TV::HandleTrackAction(const QString &Action)
{
m_playerContext.LockDeletePlayer(__FILE__, __LINE__);
if (!m_player)
{
m_playerContext.UnlockDeletePlayer(__FILE__, __LINE__);
return false;
}

bool handled = true;

if (Action == ACTION_TOGGLEEXTTEXT)
Expand Down Expand Up @@ -3149,7 +3142,7 @@ bool TV::HandleTrackAction(const QString &Action)
m_ccInputTimerId = 0;
}
}
else if (m_player->GetCaptionMode() & kDisplayNUVTeletextCaptions)
else if (m_captionsState.m_textDisplayMode & kDisplayNUVTeletextCaptions)
{
ClearInputQueues(false);
AddKeyToInputQueue(0);
Expand Down Expand Up @@ -3200,9 +3193,6 @@ bool TV::HandleTrackAction(const QString &Action)
}
else
handled = false;

m_playerContext.UnlockDeletePlayer(__FILE__, __LINE__);

return handled;
}

Expand Down Expand Up @@ -3457,8 +3447,7 @@ bool TV::ProcessKeypressOrGesture(QEvent* Event)
}

// Teletext menu
m_playerContext.LockDeletePlayer(__FILE__, __LINE__);
if (m_player && (m_player->GetCaptionMode() == kDisplayTeletextMenu))
if (m_captionsState.m_textDisplayMode == kDisplayTeletextMenu)
{
QStringList tt_actions;
handled = TranslateKeyPressOrGesture("Teletext Menu", Event, tt_actions, isLiveTV);
Expand All @@ -3469,10 +3458,7 @@ bool TV::ProcessKeypressOrGesture(QEvent* Event)
{
emit HandleTeletextAction(tt_actions[i], handled);
if (handled)
{
m_playerContext.UnlockDeletePlayer(__FILE__, __LINE__);
return true;
}
}
}
}
Expand All @@ -3492,14 +3478,10 @@ bool TV::ProcessKeypressOrGesture(QEvent* Event)
{
emit HandleITVAction(actions[i], handled);
if (handled)
{
m_playerContext.UnlockDeletePlayer(__FILE__, __LINE__);
return true;
}
}
}
}
m_playerContext.UnlockDeletePlayer(__FILE__, __LINE__);

if (!alreadyTranslatedPlayback)
handled = TranslateKeyPressOrGesture("TV Playback", Event, actions, isLiveTV);
Expand Down Expand Up @@ -4668,7 +4650,7 @@ void TV::ProcessNetworkControlCommand(const QString &Command)

infoStr += QString(" Subtitles:");

uint subtype = m_player->GetCaptionMode();
uint subtype = m_captionsState.m_textDisplayMode;

if (subtype == kDisplayNone)
infoStr += QString(" *0:[None]*");
Expand Down Expand Up @@ -9267,7 +9249,7 @@ void TV::PlaybackMenuInit(const MythTVMenu &Menu)
m_tvmCanUpmix = m_audioState.m_canUpmix;
m_tvmCurSkip = m_player->GetAutoCommercialSkip();
m_tvmIsPaused = m_player->IsPaused();
m_tvmSubsCapMode = m_player->GetCaptionMode();
m_tvmSubsCapMode = m_captionsState.m_textDisplayMode;
m_tvmSubsEnabled = m_player->GetCaptionsEnabled();
m_tvmSubsHaveText = m_player->HasTextSubtitles();
m_tvmSubsForcedOn = m_player->GetAllowForcedSubtitles();
Expand Down
17 changes: 17 additions & 0 deletions mythtv/libs/libmythtv/videoouttypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,23 @@
#include <QString>
#include <QObject>

// Caption Display modes
enum
{
kDisplayNone = 0x000,
kDisplayNUVTeletextCaptions = 0x001,
kDisplayTeletextCaptions = 0x002,
kDisplayAVSubtitle = 0x004,
kDisplayCC608 = 0x008,
kDisplayCC708 = 0x010,
kDisplayTextSubtitle = 0x020,
kDisplayDVDButton = 0x040,
kDisplayRawTextSubtitle = 0x080,
kDisplayAllCaptions = 0x0FF,
kDisplayTeletextMenu = 0x100,
kDisplayAllTextCaptions = ~kDisplayDVDButton & kDisplayAllCaptions
};

enum ZoomDirection
{
kZoomHome = 0,
Expand Down