const bool CProgManager::GetServiceID(WORD *pwServiceID, const WORD wIndex) const { // サービスIDを取得する if((wIndex < GetServiceNum()) && pwServiceID){ *pwServiceID = m_ServiceList[wIndex].wServiceID; return true; } return false; }
const bool CProgManager::GetServiceEsPID(WORD *pwVideoPID, WORD *pwAudioPID, const WORD wIndex) const { // ESのPIDを取得する if((wIndex < GetServiceNum()) && (pwVideoPID || pwAudioPID)){ if(pwVideoPID)*pwVideoPID = m_ServiceList[wIndex].wVideoEsPID; if(pwAudioPID)*pwAudioPID = m_ServiceList[wIndex].wAudioEsPID; return true; } return false; }
const DWORD CProgManager::GetServiceName(LPTSTR lpszDst, const WORD wIndex) const { // サービス名を取得する if((wIndex < GetServiceNum()) && lpszDst){ const WORD wNameLen = ::lstrlen(m_ServiceList[wIndex].szServiceName); if(wNameLen)::lstrcpy(lpszDst, m_ServiceList[wIndex].szServiceName); return wNameLen; } return 0U; }
const WORD CSdtTable::GetServiceIndexByID(const WORD wServiceID) { // サービスIDからインデックスを返す for(WORD wIndex = 0U ; wIndex < GetServiceNum() ; wIndex++){ if(m_ServiceInfoArray[wIndex].wServiceID == wServiceID){ return wIndex; } } // サービスIDが見つからない return 0xFFFFU; }
void CProgManager::OnServiceInfoUpdated(void) { // サービス名を更新する for(WORD wIndex = 0U, wServiceNum = 0U ; wIndex < GetServiceNum() ; wIndex++){ const WORD wServiceIndex = m_pProgDatabase->GetServiceIndexByID(m_ServiceList[wIndex].wServiceID); if(wServiceIndex != 0xFFFFU){ if(m_pProgDatabase->m_ServiceList[wIndex].szServiceName[0]){ ::lstrcpy(m_ServiceList[wIndex].szServiceName, m_pProgDatabase->m_ServiceList[wServiceIndex].szServiceName); } else{ ::wsprintf(m_ServiceList[wIndex].szServiceName, TEXT("サービス%u"), wIndex + 1U); } } } TRACE(TEXT("CProgManager::OnServiceInfoUpdated()\n")); SendDecoderEvent(EID_SERVICE_INFO_UPDATED); }
const bool CSdtTable::GetFreeCaMode(const WORD wIndex) const { // Free CA Modeを返す return (wIndex < GetServiceNum())? m_ServiceInfoArray[wIndex].bFreeCaMode : false; }
const BYTE CSdtTable::GetRunningStatus(const WORD wIndex) const { // Running Statusを返す return (wIndex < GetServiceNum())? m_ServiceInfoArray[wIndex].byRunningStatus : 0xFFU; }
const WORD CSdtTable::GetServiceID(const WORD wIndex) const { // サービスIDを返す return (wIndex < GetServiceNum())? m_ServiceInfoArray[wIndex].wServiceID : 0xFFFFU; }