void CPVRManager::OnPlaybackStarted(const CFileItemPtr item) { m_playingChannel.reset(); m_playingRecording.reset(); m_playingEpgTag.reset(); m_playingClientId = -1; m_strPlayingClientName.clear(); if (item->HasPVRChannelInfoTag()) { const CPVRChannelPtr channel(item->GetPVRChannelInfoTag()); m_playingChannel = channel; m_playingClientId = m_playingChannel->ClientID(); SetPlayingGroup(channel); int iLastWatchedDelay = m_settings.GetIntValue(CSettings::SETTING_PVRPLAYBACK_DELAYMARKLASTWATCHED) * 1000; if (iLastWatchedDelay > 0) { // Insert new / replace existing last watched update timer if (m_lastWatchedUpdateTimer) m_lastWatchedUpdateTimer->Stop(true); m_lastWatchedUpdateTimer.reset(new CLastWatchedUpdateTimer(*this, channel, CDateTime::GetUTCDateTime())); m_lastWatchedUpdateTimer->Start(iLastWatchedDelay); } else { // Store last watched timestamp immediately UpdateLastWatched(channel, CDateTime::GetUTCDateTime()); } } else if (item->HasPVRRecordingInfoTag()) { m_playingRecording = item->GetPVRRecordingInfoTag(); m_playingClientId = m_playingRecording->m_iClientId; } else if (item->HasEPGInfoTag()) { m_playingEpgTag = item->GetEPGInfoTag(); m_playingClientId = m_playingEpgTag->ClientID(); } if (m_playingClientId != -1) { const CPVRClientPtr client = GetClient(m_playingClientId); if (client) m_strPlayingClientName = client->GetFriendlyName(); } m_guiActions->OnPlaybackStarted(item); m_epgContainer.OnPlaybackStarted(item); }
void CPVRManager::OnPlaybackStarted(const CFileItemPtr item) { m_playingChannel.reset(); m_playingRecording.reset(); m_playingEpgTag.reset(); m_playingClientId = -1; m_strPlayingClientName.clear(); if (item->HasPVRChannelInfoTag()) { const CPVRChannelPtr channel(item->GetPVRChannelInfoTag()); m_playingChannel = channel; m_playingClientId = m_playingChannel->ClientID(); SetPlayingGroup(channel); UpdateLastWatched(channel); } else if (item->HasPVRRecordingInfoTag()) { m_playingRecording = item->GetPVRRecordingInfoTag(); m_playingClientId = m_playingRecording->m_iClientId; } else if (item->HasEPGInfoTag()) { m_playingEpgTag = item->GetEPGInfoTag(); m_playingClientId = m_playingEpgTag->ClientID(); } if (m_playingClientId != -1) { const CPVRClientPtr client = GetClient(m_playingClientId); if (client) m_strPlayingClientName = client->GetFriendlyName(); } m_guiActions->OnPlaybackStarted(item); }