void FillProgramInfo( DTC::Program *pProgram, ProgramInfo *pInfo, bool bIncChannel /* = true */, bool bDetails /* = true */) { if ((pProgram == NULL) || (pInfo == NULL)) return; pProgram->setStartTime ( pInfo->GetScheduledStartTime()); pProgram->setEndTime ( pInfo->GetScheduledEndTime ()); pProgram->setTitle ( pInfo->GetTitle() ); pProgram->setSubTitle ( pInfo->GetSubtitle() ); pProgram->setCategory ( pInfo->GetCategory() ); pProgram->setCatType ( pInfo->GetCategoryType() ); pProgram->setRepeat ( pInfo->IsRepeat() ); pProgram->setVideoProps( pInfo->GetVideoProperties() ); pProgram->setAudioProps( pInfo->GetAudioProperties() ); pProgram->setSubProps ( pInfo->GetSubtitleType() ); pProgram->setSerializeDetails( bDetails ); if (bDetails) { pProgram->setSeriesId ( pInfo->GetSeriesID() ); pProgram->setProgramId ( pInfo->GetProgramID() ); pProgram->setStars ( pInfo->GetStars() ); pProgram->setFileSize ( pInfo->GetFilesize() ); pProgram->setLastModified( pInfo->GetLastModifiedTime() ); pProgram->setProgramFlags( pInfo->GetProgramFlags() ); pProgram->setHostname ( pInfo->GetHostname() ); if (pInfo->GetOriginalAirDate().isValid()) pProgram->setAirdate( pInfo->GetOriginalAirDate() ); pProgram->setDescription( pInfo->GetDescription() ); pProgram->setInetref ( pInfo->GetInetRef() ); pProgram->setSeason ( pInfo->GetSeason() ); pProgram->setEpisode ( pInfo->GetEpisode() ); } pProgram->setSerializeChannel( bIncChannel ); if ( bIncChannel ) { // Build Channel Child Element FillChannelInfo( pProgram->Channel(), pInfo, bDetails ); } // Build Recording Child Element if ( pInfo->GetRecordingStatus() != rsUnknown ) { pProgram->setSerializeRecording( true ); DTC::RecordingInfo *pRecording = pProgram->Recording(); pRecording->setStatus ( pInfo->GetRecordingStatus() ); pRecording->setPriority( pInfo->GetRecordingPriority() ); pRecording->setStartTs ( pInfo->GetRecordingStartTime() ); pRecording->setEndTs ( pInfo->GetRecordingEndTime() ); pRecording->setSerializeDetails( bDetails ); if (bDetails) { pRecording->setRecordId ( pInfo->GetRecordingRuleID() ); pRecording->setRecGroup ( pInfo->GetRecordingGroup() ); pRecording->setPlayGroup( pInfo->GetPlaybackGroup() ); pRecording->setRecType ( pInfo->GetRecordingRuleType() ); pRecording->setDupInType( pInfo->GetDuplicateCheckSource() ); pRecording->setDupMethod( pInfo->GetDuplicateCheckMethod() ); pRecording->setEncoderId( pInfo->GetCardID() ); const RecordingInfo ri(*pInfo); pRecording->setProfile( ri.GetProgramRecordingProfile() ); } } }
void FillProgramInfo( DTC::Program *pProgram, ProgramInfo *pInfo, bool bIncChannel /* = true */, bool bDetails /* = true */, bool bIncCast /* = true */) { if ((pProgram == NULL) || (pInfo == NULL)) return; pProgram->setStartTime ( pInfo->GetScheduledStartTime()); pProgram->setEndTime ( pInfo->GetScheduledEndTime ()); pProgram->setTitle ( pInfo->GetTitle() ); pProgram->setSubTitle ( pInfo->GetSubtitle() ); pProgram->setCategory ( pInfo->GetCategory() ); pProgram->setCatType ( pInfo->GetCategoryTypeString()); pProgram->setRepeat ( pInfo->IsRepeat() ); pProgram->setVideoProps( pInfo->GetVideoProperties() ); pProgram->setAudioProps( pInfo->GetAudioProperties() ); pProgram->setSubProps ( pInfo->GetSubtitleType() ); pProgram->setSerializeDetails( bDetails ); if (bDetails) { pProgram->setSeriesId ( pInfo->GetSeriesID() ); pProgram->setProgramId ( pInfo->GetProgramID() ); pProgram->setStars ( pInfo->GetStars() ); pProgram->setLastModified( pInfo->GetLastModifiedTime() ); pProgram->setProgramFlags( pInfo->GetProgramFlags() ); // ---- // DEPRECATED - See RecordingInfo instead pProgram->setFileName ( pInfo->GetPathname() ); pProgram->setFileSize ( pInfo->GetFilesize() ); pProgram->setHostName ( pInfo->GetHostname() ); // ---- if (pInfo->GetOriginalAirDate().isValid()) pProgram->setAirdate( pInfo->GetOriginalAirDate() ); else if (pInfo->GetYearOfInitialRelease() > 0) { QDate year; year.setDate(pInfo->GetYearOfInitialRelease(), 1, 1); pProgram->setAirdate( year ); } pProgram->setDescription( pInfo->GetDescription() ); pProgram->setInetref ( pInfo->GetInetRef() ); pProgram->setSeason ( pInfo->GetSeason() ); pProgram->setEpisode ( pInfo->GetEpisode() ); pProgram->setTotalEpisodes( pInfo->GetEpisodeTotal() ); } pProgram->setSerializeCast(bIncCast); if (bIncCast) { FillCastMemberList( pProgram->Cast(), pInfo ); } pProgram->setSerializeChannel( bIncChannel ); if ( bIncChannel ) { // Build Channel Child Element if (!FillChannelInfo( pProgram->Channel(), pInfo->GetChanID(), bDetails )) { // The channel associated with a given recording may no longer exist // however the ChanID is one half of the unique identifier for the // recording and therefore MUST be included in the return data pProgram->Channel()->setChanId(pInfo->GetChanID()); } } // Build Recording Child Element if ( pInfo->GetRecordingStatus() != RecStatus::Unknown ) { pProgram->setSerializeRecording( true ); DTC::RecordingInfo *pRecording = pProgram->Recording(); const RecordingInfo pRecInfo(*pInfo); pRecording->setRecordedId ( pRecInfo.GetRecordingID() ); pRecording->setStatus ( pRecInfo.GetRecordingStatus() ); pRecording->setPriority( pRecInfo.GetRecordingPriority() ); pRecording->setStartTs ( pRecInfo.GetRecordingStartTime() ); pRecording->setEndTs ( pRecInfo.GetRecordingEndTime() ); pRecording->setSerializeDetails( bDetails ); if (bDetails) { pRecording->setFileName ( pRecInfo.GetPathname() ); pRecording->setFileSize ( pRecInfo.GetFilesize() ); pRecording->setHostName ( pRecInfo.GetHostname() ); pRecording->setLastModified( pRecInfo.GetLastModifiedTime() ); pRecording->setRecordId ( pRecInfo.GetRecordingRuleID() ); pRecording->setRecGroup ( pRecInfo.GetRecordingGroup() ); pRecording->setPlayGroup ( pRecInfo.GetPlaybackGroup() ); pRecording->setStorageGroup( pRecInfo.GetStorageGroup() ); pRecording->setRecType ( pRecInfo.GetRecordingRuleType() ); pRecording->setDupInType ( pRecInfo.GetDuplicateCheckSource() ); pRecording->setDupMethod ( pRecInfo.GetDuplicateCheckMethod() ); pRecording->setEncoderId ( pRecInfo.GetInputID() ); if (pProgram->Channel()) { QString encoderName = CardUtil::GetDisplayName(pRecInfo.GetInputID()); pRecording->setEncoderName( encoderName ); } pRecording->setProfile( pRecInfo.GetProgramRecordingProfile() ); } } if (!pInfo->GetInetRef().isEmpty() ) { pProgram->setSerializeArtwork( true ); FillArtworkInfoList( pProgram->Artwork(), pInfo->GetInetRef(), pInfo->GetSeason()); } }