本文整理汇总了C++中CPVRClientPtr类的典型用法代码示例。如果您正苦于以下问题:C++ CPVRClientPtr类的具体用法?C++ CPVRClientPtr怎么用?C++ CPVRClientPtr使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CPVRClientPtr类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lock
bool CPVRChannelGroup::UpdateClientPriorities()
{
const CPVRClientsPtr clients = CServiceBroker::GetPVRManager().Clients();
bool bChanged = false;
CSingleLock lock(m_critSection);
for (auto& member : m_sortedMembers)
{
int iNewPriority = 0;
if (m_bUsingBackendChannelOrder)
{
CPVRClientPtr client;
if (!clients->GetCreatedClient(member.channel->ClientID(), client))
continue;
iNewPriority = client->GetPriority();
}
else
{
iNewPriority = 0;
}
bChanged |= (member.iClientPriority != iNewPriority);
member.iClientPriority = iNewPriority;
}
return bChanged;
}
示例2: ReadDemux
DemuxPacket* CDVDInputStreamPVRManager::ReadDemux()
{
CPVRClientPtr client;
if (!CServiceBroker::GetPVRManager().Clients()->GetPlayingClient(client))
{
return nullptr;
}
DemuxPacket* pPacket = nullptr;
client->DemuxRead(pPacket);
if (!pPacket)
{
return nullptr;
}
else if (pPacket->iStreamId == DMX_SPECIALID_STREAMINFO)
{
client->GetStreamProperties(m_StreamProps);
return pPacket;
}
else if (pPacket->iStreamId == DMX_SPECIALID_STREAMCHANGE)
{
client->GetStreamProperties(m_StreamProps);
UpdateStreamMap();
}
return pPacket;
}
示例3: FlushDemux
void CDVDInputStreamPVRManager::FlushDemux()
{
CPVRClientPtr client;
if (CServiceBroker::GetPVRManager().Clients()->GetPlayingClient(client))
{
client->DemuxFlush();
}
}
示例4: SetSpeed
void CDVDInputStreamPVRManager::SetSpeed(int Speed)
{
CPVRClientPtr client;
if (CServiceBroker::GetPVRManager().Clients()->GetPlayingClient(client))
{
client->SetSpeed(Speed);
}
}
示例5: SeekTime
bool CDVDInputStreamPVRManager::SeekTime(double timems, bool backwards, double *startpts)
{
CPVRClientPtr client;
if (CServiceBroker::GetPVRManager().Clients()->GetPlayingClient(client))
{
return client->SeekTime(timems, backwards, startpts);
}
return false;
}
示例6: channel
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);
}
示例7: OpenDemux
bool CDVDInputStreamPVRManager::OpenDemux()
{
CPVRClientPtr client;
if (!CServiceBroker::GetPVRManager().Clients()->GetPlayingClient(client))
{
return false;
}
client->GetStreamProperties(m_StreamProps);
UpdateStreamMap();
return true;
}
示例8: SET_CONTROL_HIDDEN
void CGUIDialogPVRGuideInfo::OnInitWindow()
{
CGUIDialog::OnInitWindow();
if (!m_progItem)
{
/* no epg event selected */
return;
}
if (!m_progItem->HasRecording())
{
/* not recording. hide the play recording button */
SET_CONTROL_HIDDEN(CONTROL_BTN_PLAY_RECORDING);
}
bool bHideRecord(true);
bool bHideAddTimer(true);
if (m_progItem->HasTimer())
{
if (m_progItem->Timer()->IsRecording())
{
SET_CONTROL_LABEL(CONTROL_BTN_RECORD, 19059); /* Stop recording */
bHideRecord = false;
}
else if (m_progItem->Timer()->HasTimerType() && !m_progItem->Timer()->GetTimerType()->IsReadOnly())
{
SET_CONTROL_LABEL(CONTROL_BTN_RECORD, 19060); /* Delete timer */
bHideRecord = false;
}
}
else if (m_progItem->Channel() && m_progItem->IsRecordable())
{
const CPVRClientPtr client = CServiceBroker::GetPVRManager().GetClient(m_progItem->ClientID());
if (client && client->GetClientCapabilities().SupportsTimers())
{
SET_CONTROL_LABEL(CONTROL_BTN_RECORD, 264); /* Record */
bHideRecord = false;
bHideAddTimer = false;
}
}
if (!m_progItem->IsPlayable())
SET_CONTROL_HIDDEN(CONTROL_BTN_PLAY_EPGTAG);
if (bHideRecord)
SET_CONTROL_HIDDEN(CONTROL_BTN_RECORD);
if (bHideAddTimer)
SET_CONTROL_HIDDEN(CONTROL_BTN_ADD_TIMER);
}
示例9: GetClient
bool CPVRManager::FillStreamFileItem(CFileItem &fileItem)
{
const CPVRClientPtr client = GetClient(fileItem);
if (client)
{
if (fileItem.IsPVRChannel())
return client->FillChannelStreamFileItem(fileItem) == PVR_ERROR_NO_ERROR;
else if (fileItem.IsPVRRecording())
return client->FillRecordingStreamFileItem(fileItem) == PVR_ERROR_NO_ERROR;
else if (fileItem.IsEPG())
return client->FillEpgTagStreamFileItem(fileItem) == PVR_ERROR_NO_ERROR;
}
return false;
}
示例10: ClearDescrambleInfo
void CPVRGUIInfo::UpdateDescrambleData(void)
{
PVR_DESCRAMBLE_INFO descrambleInfo;
ClearDescrambleInfo(descrambleInfo);
bool bIsPlayingRecording = CServiceBroker::GetPVRManager().IsPlayingRecording();
if (!bIsPlayingRecording)
{
CPVRClientPtr client;
CServiceBroker::GetPVRManager().Clients()->GetCreatedClient(CServiceBroker::GetPVRManager().GetPlayingClientID(), client);
if (client && client->GetDescrambleInfo(descrambleInfo) == PVR_ERROR_NO_ERROR)
{
m_descrambleInfo = descrambleInfo;
}
}
}
示例11: UpdatePath
void CPVRChannel::UpdatePath(const std::string& groupPath)
{
const CPVRClientPtr client = CServiceBroker::GetPVRManager().GetClient(m_iClientId);
if (client)
{
CSingleLock lock(m_critSection);
const std::string strFileNameAndPath = StringUtils::Format("%s%s_%d.pvr",
groupPath,
client->ID().c_str(),
m_iUniqueId);
if (m_strFileNameAndPath != strFileNameAndPath)
{
m_strFileNameAndPath = strFileNameAndPath;
SetChanged();
}
}
}
示例12: ClearQualityInfo
void CPVRGUIInfo::UpdateQualityData(void)
{
PVR_SIGNAL_STATUS qualityInfo;
ClearQualityInfo(qualityInfo);
if (CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(CSettings::SETTING_PVRPLAYBACK_SIGNALQUALITY))
{
bool bIsPlayingRecording = CServiceBroker::GetPVRManager().IsPlayingRecording();
if (!bIsPlayingRecording)
{
CPVRClientPtr client;
CServiceBroker::GetPVRManager().Clients()->GetCreatedClient(CServiceBroker::GetPVRManager().GetPlayingClientID(), client);
if (client && client->SignalQuality(qualityInfo) == PVR_ERROR_NO_ERROR)
{
m_qualityInfo = qualityInfo;
}
}
}
}
示例13: channel
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);
}
示例14: bChanged
//.........这里部分代码省略.........
{
bIgnoreTimer = true;
break;
}
}
if (bIgnoreTimer)
{
++it2;
continue;
}
CLog::LogFC(LOGDEBUG, LOGPVR, "Deleted timer %d on client %d",
timer->m_iClientIndex, timer->m_iClientId);
timerNotifications.push_back(std::make_pair(timer->m_iClientId, timer->GetDeletedNotificationText()));
it2 = it->second.erase(it2);
bChanged = true;
bAddedOrDeleted = true;
}
else if ((timer->m_bStartAnyTime && it->first != CDateTime()) ||
(!timer->m_bStartAnyTime && timer->StartAsUTC() != it->first))
{
/* timer start has changed */
CLog::LogFC(LOGDEBUG, LOGPVR, "Changed start time timer %d on client %d",
timer->m_iClientIndex, timer->m_iClientId);
/* remember timer */
timersToMove.push_back(timer);
/* remove timer for now, reinsert later */
it2 = it->second.erase(it2);
bChanged = true;
bAddedOrDeleted = true;
}
else
{
++it2;
}
}
if (it->second.empty())
it = m_tags.erase(it);
else
++it;
}
/* reinsert timers with changed timer start */
for (VecTimerInfoTag::const_iterator timerIt = timersToMove.begin(); timerIt != timersToMove.end(); ++timerIt)
InsertTimer(*timerIt);
/* update child information for all parent timers */
for (const auto &tagsEntry : m_tags)
{
for (const auto &timersEntry : tagsEntry.second)
{
if (timersEntry->GetTimerRuleId() != PVR_TIMER_NO_PARENT)
{
const CPVRTimerInfoTagPtr parentTimer(GetByClient(timersEntry->m_iClientId, timersEntry->GetTimerRuleId()));
if (parentTimer)
parentTimer->UpdateChildState(timersEntry);
}
}
}
m_bIsUpdating = false;
if (bChanged)
{
UpdateChannels();
lock.Leave();
CServiceBroker::GetPVRManager().SetChanged();
CServiceBroker::GetPVRManager().NotifyObservers(bAddedOrDeleted ? ObservableMessageTimersReset : ObservableMessageTimers);
if (!timerNotifications.empty() && CServiceBroker::GetPVRManager().IsStarted())
{
CPVREventlogJob *job = new CPVREventlogJob;
/* queue notifications / fill eventlog */
for (const auto &entry : timerNotifications)
{
const CPVRClientPtr client = CServiceBroker::GetPVRManager().GetClient(entry.first);
if (client)
{
job->AddEvent(m_settings.GetBoolValue(CSettings::SETTING_PVRRECORD_TIMERNOTIFICATIONS),
false, // info, no error
client->Name(),
entry.second,
client->Icon());
}
}
CJobManager::GetInstance().AddJob(job, nullptr);
}
}
return bChanged;
}
示例15: CanRecord
bool CPVRChannel::CanRecord(void) const
{
const CPVRClientPtr client = CServiceBroker::GetPVRManager().GetClient(m_iClientId);
return client && client->GetClientCapabilities().SupportsRecordings();
}