MythTV  master
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
ProgramInfo Class Reference

Holds information on recordings and videos. More...

#include <programinfo.h>

Inheritance diagram for ProgramInfo:
Inheritance graph
[legend]
Collaboration diagram for ProgramInfo:
Collaboration graph
[legend]

Classes

struct  MarkupEntry
 

Public Types

enum  CategoryType {
  kCategoryNone, kCategoryMovie, kCategorySeries, kCategorySports,
  kCategoryTVShow
}
 
enum  Verbosity { kLongDescription, kTitleSubtitle, kRecordingKey, kSchedulingKey }
 

Public Member Functions

 ProgramInfo (void)
 Null constructor. More...
 
 ProgramInfo (const ProgramInfo &other)
 Copy constructor. More...
 
 ProgramInfo (uint recordedid)
 Constructs a ProgramInfo from data in 'recorded' table. More...
 
 ProgramInfo (uint chanid, const QDateTime &recstartts)
 Constructs a ProgramInfo from data in 'recorded' table. More...
 
 ProgramInfo (uint recordedid, QString title, QString sortTitle, QString subtitle, QString sortSubtitle, QString description, uint season, uint episode, uint totalepisodes, QString syndicatedepisode, QString category, uint chanid, QString channum, QString chansign, QString channame, QString chanplaybackfilters, QString recgroup, QString playgroup, const QString &pathname, QString hostname, QString storagegroup, QString seriesid, QString programid, QString inetref, CategoryType catType, int recpriority, uint64_t filesize, QDateTime startts, QDateTime endts, QDateTime recstartts, QDateTime recendts, float stars, uint year, uint partnumber, uint parttotal, const QDate &originalAirDate, QDateTime lastmodified, RecStatus::Type recstatus, uint recordid, RecordingDupInType dupin, RecordingDupMethodType dupmethod, uint findid, uint programflags, uint audioproperties, uint videoproperties, uint subtitleType, QString inputname, QDateTime bookmarkupdate)
 Constructs a ProgramInfo from data in 'recorded' table. More...
 
 ProgramInfo (QString title, QString sortTitle, QString subtitle, QString sortSubtitle, QString description, uint season, uint episode, QString category, uint chanid, QString channum, QString chansign, QString channame, QString seriesid, QString programid, QString inetref, QDateTime startts, QDateTime endts, QDateTime recstartts, QDateTime recendts, RecStatus::Type recstatus, uint recordid, RecordingType rectype, uint findid, bool duplicate)
 Constructs a ProgramInfo from data in 'oldrecorded' table. More...
 
 ProgramInfo (QString title, QString sortTitle, QString subtitle, QString sortSubtitle, QString description, QString syndicatedepisode, QString category, uint chanid, QString channum, QString chansign, QString channame, QString chanplaybackfilters, QDateTime startts, QDateTime endts, QDateTime recstartts, QDateTime recendts, QString seriesid, QString programid, CategoryType catType, float stars, uint year, uint partnumber, uint parttotal, const QDate &originalAirDate, RecStatus::Type recstatus, uint recordid, RecordingType rectype, uint findid, bool commfree, bool repeat, uint videoproperties, uint audioproperties, uint subtitletype, uint season, uint episode, uint totalepisodes, const ProgramList &schedList)
 Constructs a ProgramInfo from listings data in 'program' table. More...
 
 ProgramInfo (QString title, QString sortTitle, QString subtitle, QString sortSubtitle, QString description, uint season, uint episode, uint totalepisodes, QString category, uint chanid, QString channum, QString chansign, QString channame, QString chanplaybackfilters, QString recgroup, QString playgroup, QDateTime startts, QDateTime endts, QDateTime recstartts, QDateTime recendts, QString seriesid, QString programid, QString inetref, QString inputname)
 Constructs a basic ProgramInfo (used by RecordingInfo) More...
 
 ProgramInfo (const QString &pathname)
 Constructs a ProgramInfo for a pathname. More...
 
 ProgramInfo (const QString &pathname, const QString &plot, const QString &title, const QString &sortTitle, const QString &subtitle, const QString &sortSubtitle, const QString &director, int season, int episode, const QString &inetref, uint length_in_minutes, uint year, const QString &programid)
 Constructs a ProgramInfo for a video. More...
 
 ProgramInfo (const QString &_title, uint _chanid, const QDateTime &_startts, const QDateTime &_endts)
 Constructs a manual record ProgramInfo. More...
 
 ProgramInfo (QString _title, QString _category, QDateTime _startts, QDateTime _endts)
 Constructs a Dummy ProgramInfo (used by GuideGrid) More...
 
 ProgramInfo (QStringList::const_iterator &it, const QStringList::const_iterator &end)
 
 ProgramInfo (const QStringList &list)
 
bool operator== (const ProgramInfo &rhs)
 
ProgramInfooperator= (const ProgramInfo &other)
 Copies important fields from other ProgramInfo. More...
 
virtual void clone (const ProgramInfo &other, bool ignore_non_serialized_data=false)
 Copies important fields from other ProgramInfo. More...
 
void ensureSortFields (void)
 Ensure that the sortTitle and sortSubtitle fields are set. More...
 
virtual void clear (void)
 
virtual ~ProgramInfo ()=default
 
void ToStringList (QStringList &list) const
 Serializes ProgramInfo into a QStringList which can be passed over a socket. More...
 
virtual void ToMap (InfoMap &progMap, bool showrerecord=false, uint star_range=10) const
 Converts ProgramInfo into QString QHash containing each field in ProgramInfo converted into localized strings. More...
 
virtual void SubstituteMatches (QString &str)
 Subsitute MATCH% type variable names in the given string. More...
 
bool IsSameProgram (const ProgramInfo &other) const
 Checks whether this is the same program as "other", which may or may not be a repeat or on another channel. More...
 
bool IsDuplicateProgram (const ProgramInfo &other) const
 Checks for duplicates according to dupmethod. More...
 
bool IsSameProgramAndStartTime (const ProgramInfo &other) const
 Match same program, with same starttime (channel may be different) More...
 
bool IsSameTitleStartTimeAndChannel (const ProgramInfo &other) const
 Checks title, chanid or callsign and start times for equality. More...
 
bool IsSameTitleTimeslotAndChannel (const ProgramInfo &other) const
 Checks title, chanid or chansign, start/end times, cardid, inputid for fully inclusive overlap. More...
 
bool IsSameProgramWeakCheck (const ProgramInfo &other) const
 Checks for duplicate using only title, chanid and startts. More...
 
bool IsSameRecording (const ProgramInfo &other) const
 
bool IsSameChannel (const ProgramInfo &other) const
 Checks whether channel id or callsign are identical. More...
 
QString MakeUniqueKey (void) const
 Creates a unique string that can be used to identify an existing recording. More...
 
uint GetSecondsInRecording (void) const
 Returns length of program/recording in seconds. More...
 
QString ChannelText (const QString &format) const
 Returns channel info using "format". More...
 
QString GetPathname (void) const
 
QString GetBasename (void) const
 
bool IsVideoFile (void) const
 
bool IsVideoDVD (void) const
 
bool IsVideoBD (void) const
 
bool IsLocal (void) const
 
bool IsMythStream (void) const
 
bool IsPathSet (void) const
 
bool HasPathname (void) const
 
bool IsFileReadable (void)
 Attempts to ascertain if the main file for this ProgramInfo is readable. More...
 
QString GetTitle (void) const
 
QString GetSortTitle (void) const
 
QString GetSubtitle (void) const
 
QString GetSortSubtitle (void) const
 
QString GetDescription (void) const
 
uint GetSeason (void) const
 
uint GetEpisode (void) const
 
uint GetEpisodeTotal (void) const
 
QString GetCategory (void) const
 
uint GetChanID (void) const
 This is the unique key used in the database to locate tuning information. More...
 
QString GetChanNum (void) const
 This is the channel "number", in the form 1, 1_2, 1-2, 1#1, etc. More...
 
QString GetChannelSchedulingID (void) const
 This is the unique programming identifier of a channel. More...
 
QString GetChannelName (void) const
 This is the channel name in the local market, i.e. More...
 
QString GetChannelPlaybackFilters (void) const
 
QDateTime GetScheduledStartTime (void) const
 The scheduled start time of program. More...
 
QString GetScheduledStartTime (MythDate::Format fmt) const
 The scheduled start time of program (with formatting). More...
 
QDateTime GetScheduledEndTime (void) const
 The scheduled end time of the program. More...
 
QString GetScheduledEndTime (MythDate::Format fmt) const
 The scheduled end time of the program (with formatting). More...
 
QDateTime GetRecordingStartTime (void) const
 Approximate time the recording started. More...
 
QString GetRecordingStartTime (MythDate::Format fmt) const
 Approximate time the recording started (with formatting). More...
 
QDateTime GetRecordingEndTime (void) const
 Approximate time the recording should have ended, did end, or is intended to end. More...
 
QString GetRecordingEndTime (MythDate::Format fmt) const
 Approximate time the recording should have ended, did end, or is intended to end (with formatting). More...
 
QString GetRecordingGroup (void) const
 
QString GetPlaybackGroup (void) const
 
QString GetHostname (void) const
 
QString GetStorageGroup (void) const
 
uint GetYearOfInitialRelease (void) const
 
QDate GetOriginalAirDate (void) const
 
QDateTime GetLastModifiedTime (void) const
 
QString GetLastModifiedTime (MythDate::Format fmt) const
 
virtual uint64_t GetFilesize (void) const
 
QString GetSeriesID (void) const
 
QString GetProgramID (void) const
 
QString GetInetRef (void) const
 
CategoryType GetCategoryType (void) const
 
QString GetCategoryTypeString (void) const
 Returns catType as a string. More...
 
int GetRecordingPriority (void) const
 
int GetRecordingPriority2 (void) const
 
float GetStars (void) const
 
uint GetStars (uint range_max) const
 
uint GetRecordingID (void) const
 
RecStatus::Type GetRecordingStatus (void) const
 
uint GetRecordingRuleID (void) const
 
uint GetParentRecordingRuleID (void) const
 
RecordingType GetRecordingRuleType (void) const
 
RecordingDupInType GetDuplicateCheckSource (void) const
 Where should we check for duplicates? More...
 
RecordingDupMethodType GetDuplicateCheckMethod (void) const
 What should be compared to determine if two programs are the same? More...
 
uint GetSourceID (void) const
 
uint GetInputID (void) const
 
QString GetInputName (void) const
 
QString GetShortInputName (void) const
 
void ClearInputName (void)
 
uint GetFindID (void) const
 
uint32_t GetProgramFlags (void) const
 
ProgramInfoType GetProgramInfoType (void) const
 
QDateTime GetBookmarkUpdate (void) const
 
bool IsGeneric (void) const
 
bool IsInUsePlaying (void) const
 
bool IsCommercialFree (void) const
 
bool HasCutlist (void) const
 
bool IsBookmarkSet (void) const
 
bool IsWatched (void) const
 
bool IsAutoExpirable (void) const
 
bool IsPreserved (void) const
 
bool IsVideo (void) const
 
bool IsRecording (void) const
 
bool IsRepeat (void) const
 
bool IsDuplicate (void) const
 
bool IsReactivated (void) const
 
bool IsDeletePending (void) const
 
uint GetSubtitleType (void) const
 
uint GetVideoProperties (void) const
 
uint GetAudioProperties (void) const
 
QString toString (Verbosity v=kLongDescription, const QString &sep=":", const QString &grp="\"") const
 
void SetTitle (const QString &t, const QString &st=nullptr)
 
void SetSubtitle (const QString &st, const QString &sst=nullptr)
 
void SetProgramInfoType (ProgramInfoType t)
 
void SetPathname (const QString &pn)
 
void SetChanID (uint _chanid)
 
void SetScheduledStartTime (const QDateTime &dt)
 
void SetScheduledEndTime (const QDateTime &dt)
 
void SetRecordingStartTime (const QDateTime &dt)
 
void SetRecordingEndTime (const QDateTime &dt)
 
void SetRecordingGroup (const QString &group)
 
void SetPlaybackGroup (const QString &group)
 
void SetHostname (const QString &host)
 
void SetStorageGroup (const QString &group)
 
virtual void SetFilesize (uint64_t sz)
 
void SetSeriesID (const QString &id)
 TODO Move to RecordingInfo. More...
 
void SetProgramID (const QString &id)
 
void SetCategory (const QString &cat)
 
void SetCategoryType (const CategoryType type)
 
void SetRecordingPriority (int priority)
 
void SetRecordingPriority2 (int priority)
 
void SetRecordingRuleID (uint id)
 
void SetSourceID (uint id)
 
void SetInputID (uint id)
 
void SetReactivated (bool reactivate)
 
void SetEditing (bool editing)
 
void SetFlagging (bool flagging)
 
void SetIgnoreBookmark (bool ignore)
 If "ignore" is true GetBookmark() will return 0, otherwise GetBookmark() will return the bookmark position if it exists. More...
 
void SetIgnoreProgStart (bool ignore)
 If "ignore" is true QueryProgStart() will return 0, otherwise QueryProgStart() will return the progstart position if it exists. More...
 
void SetAllowLastPlayPos (bool allow)
 If "ignore" is true QueryLastPlayPos() will return 0, otherwise QueryLastPlayPos() will return the last playback position if it exists. More...
 
virtual void SetRecordingID (uint _recordedid)
 
void SetRecordingStatus (RecStatus::Type status)
 
void SetRecordingRuleType (RecordingType type)
 
void SetPositionMapDBReplacement (PMapDBReplacement *pmap)
 
QString QueryBasename (void) const
 Gets the basename, from the DB if necessary. More...
 
uint QueryMplexID (void) const
 Queries multiplex any recording would be made on, zero if unknown. More...
 
QDateTime QueryBookmarkTimeStamp (void) const
 Queries Latest bookmark timestamp from the database. More...
 
uint64_t QueryBookmark (void) const
 Gets any bookmark position in database, unless the ignore bookmark flag is set. More...
 
uint64_t QueryProgStart (void) const
 Gets any progstart position in database, unless the ignore progstart flag is set. More...
 
uint64_t QueryLastPlayPos (void) const
 Gets any lastplaypos position in database, unless the ignore lastplaypos flag is set. More...
 
CategoryType QueryCategoryType (void) const
 Queries recordedprogram to get the category_type of the recording. More...
 
QStringList QueryDVDBookmark (const QString &serialid) const
 Queries "dvdbookmark" table for bookmarking DVD serial number. More...
 
QStringList QueryBDBookmark (const QString &serialid) const
 Queries "bdbookmark" table for bookmarking BD serial number. More...
 
bool QueryIsEditing (void) const
 Queries "recorded" table for its "editing" field and returns true if it is set to true. More...
 
bool QueryIsInUse (QStringList &byWho) const
 Returns true if Program is in use. More...
 
bool QueryIsInUse (QString &byWho) const
 Returns true if Program is in use. More...
 
bool QueryIsDeleteCandidate (bool one_playback_allowed=false) const
 Returns true iff this is a recording, it is not in use (except by the recorder), and at most one player iff one_playback_allowed is set. More...
 
AutoExpireType QueryAutoExpire (void) const
 Returns "autoexpire" field from "recorded" table. More...
 
TranscodingStatus QueryTranscodeStatus (void) const
 Returns the "transcoded" field in "recorded" table. More...
 
bool QueryTuningInfo (QString &channum, QString &input) const
 Returns the channel and input needed to record the program. More...
 
QString QueryInputDisplayName (void) const
 
uint QueryAverageWidth (void) const
 If present in recording this loads average width of the main video stream from database's stream markup table. More...
 
uint QueryAverageHeight (void) const
 If present in recording this loads average height of the main video stream from database's stream markup table. More...
 
uint QueryAverageFrameRate (void) const
 If present in recording this loads average frame rate of the main video stream from database's stream markup table. More...
 
MarkTypes QueryAverageAspectRatio (void) const
 
bool QueryAverageScanProgressive (void) const
 If present in recording this loads average video scan type of the main video stream from database's stream markup table. More...
 
uint32_t QueryTotalDuration (void) const
 If present this loads the total duration in milliseconds of the main video stream from recordedmarkup table in the database. More...
 
int64_t QueryTotalFrames (void) const
 If present in recording this loads total frames of the main video stream from database's stream markup table. More...
 
QString QueryRecordingGroup (void) const
 Query recgroup from recorded. More...
 
bool QueryMarkupFlag (MarkTypes type) const
 Returns true iff the speficied mark type is set on frame 0. More...
 
uint QueryTranscoderID (void) const
 
uint64_t QueryLastFrameInPosMap (void) const
 Returns last frame in position map or 0. More...
 
bool Reload (void)
 
virtual void SaveFilesize (uint64_t fsize)
 Sets recording file size in database, and sets "filesize" field. More...
 
void SaveBookmark (uint64_t frame)
 TODO Move to RecordingInfo. More...
 
void SaveEditing (bool edit)
 Sets "editing" field in "recorded" table to "edit". More...
 
void SaveTranscodeStatus (TranscodingStatus trans)
 Set "transcoded" field in "recorded" table to "trans". More...
 
void SaveWatched (bool watchedFlag)
 Set "watched" field in recorded/videometadata to "watchedFlag". More...
 
void SaveDeletePendingFlag (bool deleteFlag)
 Set "deletepending" field in "recorded" table to "deleteFlag". More...
 
void SaveCommFlagged (CommFlagStatus flag)
 Set "commflagged" field in "recorded" table to "flag". More...
 
void SaveAutoExpire (AutoExpireType autoExpire, bool updateDelete=false)
 Set "autoexpire" field in "recorded" table to "autoExpire". More...
 
void SavePreserve (bool preserveEpisode)
 Set "preserve" field in "recorded" table to "preserveEpisode". More...
 
bool SaveBasename (const QString &basename)
 Sets a recording's basename in the database. More...
 
void SaveAspect (uint64_t frame, MarkTypes type, uint customAspect)
 Store aspect ratio of a frame in the recordedmark table. More...
 
void SaveResolution (uint64_t frame, uint width, uint height)
 Store the Resolution at frame in the recordedmarkup table. More...
 
void SaveFrameRate (uint64_t frame, uint framerate)
 Store the Frame Rate at frame in the recordedmarkup table. More...
 
void SaveVideoScanType (uint64_t frame, bool progressive)
 Store the Progressive/Interlaced state in the recordedmarkup table. More...
 
void SaveTotalDuration (int64_t duration)
 Store the Total Duration at frame 0 in the recordedmarkup table. More...
 
void SaveTotalFrames (int64_t frames)
 Store the Total Frames at frame 0 in the recordedmarkup table. More...
 
void SaveVideoProperties (uint mask, uint video_property_flags)
 
void SaveMarkupFlag (MarkTypes type) const
 Clears the specified flag, then if sets it. More...
 
void ClearMarkupFlag (MarkTypes type) const
 
void UpdateLastDelete (bool setTime) const
 Set or unset the record.last_delete field. More...
 
void MarkAsInUse (bool inuse, const QString &usedFor="")
 Tracks a recording's in use status, to prevent deletion and to allow the storage scheduler to perform IO load balancing. More...
 
void UpdateInUseMark (bool force=false)
 
void SaveSeasonEpisode (uint seas, uint ep)
 
void SaveInetRef (const QString &inet)
 
QString DiscoverRecordingDirectory (void)
 
QString GetPlaybackURL (bool checkMaster=false, bool forceCheckLocal=false)
 Returns filename or URL to be used to play back this recording. More...
 
ProgramInfoType DiscoverProgramInfoType (void) const
 
bool QueryCutList (frm_dir_map_t &delMap, bool loadAutosave=false) const
 
void SaveCutList (frm_dir_map_t &delMap, bool isAutoSave=false) const
 
void QueryCommBreakList (frm_dir_map_t &frames) const
 
void SaveCommBreakList (frm_dir_map_t &frames) const
 
void QueryPositionMap (frm_pos_map_t &posMap, MarkTypes type) const
 
void ClearPositionMap (MarkTypes type) const
 
void SavePositionMap (frm_pos_map_t &posMap, MarkTypes type, int64_t min_frame=-1, int64_t max_frame=-1) const
 
void SavePositionMapDelta (frm_pos_map_t &posMap, MarkTypes type) const
 
bool QueryKeyFrameInfo (uint64_t *result, uint64_t position_or_keyframe, bool backwards, MarkTypes type, const char *from_filemarkup_asc, const char *from_filemarkup_desc, const char *from_recordedseek_asc, const char *from_recordedseek_desc) const
 
bool QueryKeyFramePosition (uint64_t *position, uint64_t keyframe, bool backwards) const
 
bool QueryPositionKeyFrame (uint64_t *keyframe, uint64_t position, bool backwards) const
 
bool QueryKeyFrameDuration (uint64_t *duration, uint64_t keyframe, bool backwards) const
 
bool QueryDurationKeyFrame (uint64_t *keyframe, uint64_t duration, bool backwards) const
 
void QueryMarkup (QVector< MarkupEntry > &mapMark, QVector< MarkupEntry > &mapSeek) const
 
void SaveMarkup (const QVector< MarkupEntry > &mapMark, const QVector< MarkupEntry > &mapSeek) const
 
void SendUpdateEvent (void) const
 Sends event out that the ProgramInfo should be reloaded. More...
 
void SendAddedEvent (void) const
 Sends event out that the ProgramInfo should be added to lists. More...
 
void SendDeletedEvent (void) const
 Sends event out that the ProgramInfo should be delete from lists. More...
 
void QueryMarkupMap (frm_dir_map_t &marks, MarkTypes type, bool merge=false) const
 
void SaveMarkupMap (const frm_dir_map_t &marks, MarkTypes type=MARK_ALL, int64_t min_frame=-1, int64_t max_frame=-1) const
 
void ClearMarkupMap (MarkTypes type=MARK_ALL, int64_t min_frame=-1, int64_t max_frame=-1) const
 
void SetAvailableStatus (AvailableStatusType status, const QString &where)
 
AvailableStatusType GetAvailableStatus (void) const
 

Static Public Member Functions

static bool UsingProgramIDAuthority (void)
 
static void CheckProgramIDAuthorities (void)
 
static void SaveDVDBookmark (const QStringList &fields)
 
static void SaveBDBookmark (const QStringList &fields)
 
static QString i18n (const QString &msg)
 Translations for play,recording, & storage groups +. More...
 
static QString MakeUniqueKey (uint chanid, const QDateTime &recstartts)
 Creates a unique string that can be used to identify a recording. More...
 
static bool ExtractKey (const QString &uniquekey, uint &chanid, QDateTime &recstartts)
 Extracts chanid and recstartts from a unique key generated by MakeUniqueKey(). More...
 
static bool ExtractKeyFromPathname (const QString &pathname, uint &chanid, QDateTime &recstartts)
 
static bool QueryKeyFromPathname (const QString &pathname, uint &chanid, QDateTime &recstartts)
 
static bool QueryRecordedIdFromPathname (const QString &pathname, uint &recordedid)
 
static QString QueryRecordingGroupPassword (const QString &group)
 
static uint64_t QueryBookmark (uint chanid, const QDateTime &recstartts)
 
static QMap< QString, uint32_t > QueryInUseMap (void)
 
static QMap< QString, boolQueryJobsRunning (int type)
 
static QStringList LoadFromScheduler (const QString &tmptable, int recordid)
 

Public Attributes

int8_t m_spread {-1}
 
int8_t m_startCol {-1}
 

Static Public Attributes

static constexpr int kNumCatTypes = 5
 
static const QString kFromRecordedQuery
 

Protected Member Functions

QString CreateRecordBasename (const QString &ext) const
 Returns a filename for a recording based on the recording channel and date. More...
 
bool LoadProgramFromRecorded (uint chanid, const QDateTime &recstartts)
 Loads ProgramInfo for an existing recording. More...
 
bool FromStringList (QStringList::const_iterator &it, const QStringList::const_iterator &end)
 Uses a QStringList to initialize this ProgramInfo instance. More...
 

Static Protected Member Functions

static void QueryMarkupMap (const QString &video_pathname, frm_dir_map_t &marks, MarkTypes type, bool merge=false)
 
static void QueryMarkupMap (uint chanid, const QDateTime &recstartts, frm_dir_map_t &marks, MarkTypes type, bool merge=false)
 
static int InitStatics (void)
 

Protected Attributes

QString m_title
 
QString m_sortTitle
 
QString m_subtitle
 
QString m_sortSubtitle
 
QString m_description
 
uint m_season {0}
 
uint m_episode {0}
 
uint m_totalEpisodes {0}
 
QString m_syndicatedEpisode
 
QString m_category
 
QString m_director
 
int32_t m_recPriority {0}
 
uint32_t m_chanId {0}
 
QString m_chanStr
 
QString m_chanSign
 
QString m_chanName
 
QString m_chanPlaybackFilters
 
QString m_recGroup {"Default"}
 
QString m_playGroup {"Default"}
 
QString m_pathname
 
QString m_hostname
 
QString m_storageGroup {"Default"}
 
QString m_seriesId
 
QString m_programId
 
QString m_inetRef
 
CategoryType m_catType {kCategoryNone}
 
uint64_t m_fileSize {0ULL}
 
QDateTime m_startTs {MythDate::current(true)}
 
QDateTime m_endTs {m_startTs}
 
QDateTime m_recStartTs {m_startTs}
 
QDateTime m_recEndTs {m_startTs}
 
float m_stars {0.0F}
 Rating, range [0..1]. More...
 
QDate m_originalAirDate
 
QDateTime m_lastModified {m_startTs}
 
QDateTime m_lastInUseTime {m_startTs.addSecs(-4 * 60 * 60)}
 
int32_t m_recPriority2 {0}
 
uint32_t m_recordId {0}
 
uint32_t m_parentId {0}
 
uint32_t m_sourceId {0}
 
uint32_t m_inputId {0}
 
uint32_t m_findId {0}
 
uint32_t m_programFlags {FL_NONE}
 ProgramFlag. More...
 
uint16_t m_properties {0}
 SubtitleType,VideoProperty,AudioProperty. More...
 
uint16_t m_year {0}
 
uint16_t m_partNumber {0}
 
uint16_t m_partTotal {0}
 
int8_t m_recStatus {RecStatus::Unknown}
 
uint8_t m_recType {kNotRecording}
 
uint8_t m_dupIn {kDupsInAll}
 
uint8_t m_dupMethod {kDupCheckSubThenDesc}
 
uint m_recordedId {0}
 
QString m_inputName
 
QDateTime m_bookmarkUpdate
 
uint8_t m_availableStatus {asAvailable}
 
QString m_inUseForWhat
 
PMapDBReplacementm_positionMapDBReplacement {nullptr}
 

Static Protected Attributes

static QMutex s_staticDataLock
 
static ProgramInfoUpdaters_updater
 
static bool s_usingProgIDAuth = true
 

Friends

int pginfo_init_statics (void)
 

Detailed Description

Holds information on recordings and videos.

ProgramInfo can also contain partial information for a program we wish to find in the schedule, and may also contain information on a video we wish to view. This class is serializable from frontend to backend and back and is the basic unit of information on anything we may wish to view or record.

Any method that begins with "Is", "Get" or "Set" will run quickly and the results from "Is" or "Get" do not need to be cached.

Any method beginning with "Make" or "Extract" will run quickly, but it may be prudent to cache the results if they are to be used frequently.

Any method that begins with "Query", "Save" or "Update" will touch the database and so may take some time to complete.

Any method beginning with another verb needs to be examined to determine its expected run time.

There is one exception to this set of rules, GetPlaybackURL() is a very complex beast which not only touches the database but also may query remote backends about the files visible to them. It blocks until this task is complete and may need to wake up remote hosts that are currently powered off to complete it's task. It should not be called from the UI thread and its result should be cached.

Definition at line 67 of file programinfo.h.

Member Enumeration Documentation

◆ CategoryType

Enumerator
kCategoryNone 
kCategoryMovie 
kCategorySeries 
kCategorySports 
kCategoryTVShow 

Definition at line 72 of file programinfo.h.

◆ Verbosity

Enumerator
kLongDescription 
kTitleSubtitle 
kRecordingKey 
kSchedulingKey 

Definition at line 494 of file programinfo.h.

Constructor & Destructor Documentation

◆ ProgramInfo() [1/14]

ProgramInfo::ProgramInfo ( void  )
inline

Null constructor.

Constructs a manual record ProgramInfo.

Constructs a ProgramInfo for a video.

Constructs a basic ProgramInfo (used by RecordingInfo)

Constructs a ProgramInfo from listings data in 'program' table.

Constructs a ProgramInfo from data in 'oldrecorded' table.

Constructs a ProgramInfo from data in 'recorded' table.

Definition at line 76 of file programinfo.h.

Referenced by LoadFromOldRecorded(), LoadFromProgram(), LoadFromRecorded(), and LoadProgramFromProgram().

◆ ProgramInfo() [2/14]

ProgramInfo::ProgramInfo ( const ProgramInfo other)

Copy constructor.

Definition at line 149 of file programinfo.cpp.

◆ ProgramInfo() [3/14]

ProgramInfo::ProgramInfo ( uint  recordedid)
explicit

Constructs a ProgramInfo from data in 'recorded' table.

Definition at line 233 of file programinfo.cpp.

◆ ProgramInfo() [4/14]

ProgramInfo::ProgramInfo ( uint  chanid,
const QDateTime &  recstartts 
)

Constructs a ProgramInfo from data in 'recorded' table.

Definition at line 264 of file programinfo.cpp.

◆ ProgramInfo() [5/14]

ProgramInfo::ProgramInfo ( uint  recordedid,
QString  title,
QString  sortTitle,
QString  subtitle,
QString  sortSubtitle,
QString  description,
uint  season,
uint  episode,
uint  totalepisodes,
QString  syndicatedepisode,
QString  category,
uint  chanid,
QString  channum,
QString  chansign,
QString  channame,
QString  chanplaybackfilters,
QString  recgroup,
QString  playgroup,
const QString &  pathname,
QString  hostname,
QString  storagegroup,
QString  seriesid,
QString  programid,
QString  inetref,
CategoryType  catType,
int  recpriority,
uint64_t  filesize,
QDateTime  startts,
QDateTime  endts,
QDateTime  recstartts,
QDateTime  recendts,
float  stars,
uint  year,
uint  partnumber,
uint  parttotal,
const QDate &  originalAirDate,
QDateTime  lastmodified,
RecStatus::Type  recstatus,
uint  recordid,
RecordingDupInType  dupin,
RecordingDupMethodType  dupmethod,
uint  findid,
uint  programflags,
uint  audioproperties,
uint  videoproperties,
uint  subtitleType,
QString  inputname,
QDateTime  bookmarkupdate 
)

Constructs a ProgramInfo from data in 'recorded' table.

Definition at line 275 of file programinfo.cpp.

◆ ProgramInfo() [6/14]

ProgramInfo::ProgramInfo ( QString  title,
QString  sortTitle,
QString  subtitle,
QString  sortSubtitle,
QString  description,
uint  season,
uint  episode,
QString  category,
uint  chanid,
QString  channum,
QString  chansign,
QString  channame,
QString  seriesid,
QString  programid,
QString  inetref,
QDateTime  startts,
QDateTime  endts,
QDateTime  recstartts,
QDateTime  recendts,
RecStatus::Type  recstatus,
uint  recordid,
RecordingType  rectype,
uint  findid,
bool  duplicate 
)

Constructs a ProgramInfo from data in 'oldrecorded' table.

Definition at line 413 of file programinfo.cpp.

◆ ProgramInfo() [7/14]

ProgramInfo::ProgramInfo ( QString  title,
QString  sortTitle,
QString  subtitle,
QString  sortSubtitle,
QString  description,
QString  syndicatedepisode,
QString  category,
uint  chanid,
QString  channum,
QString  chansign,
QString  channame,
QString  chanplaybackfilters,
QDateTime  startts,
QDateTime  endts,
QDateTime  recstartts,
QDateTime  recendts,
QString  seriesid,
QString  programid,
CategoryType  catType,
float  stars,
uint  year,
uint  partnumber,
uint  parttotal,
const QDate &  originalAirDate,
RecStatus::Type  recstatus,
uint  recordid,
RecordingType  rectype,
uint  findid,
bool  commfree,
bool  repeat,
uint  videoproperties,
uint  audioproperties,
uint  subtitletype,
uint  season,
uint  episode,
uint  totalepisodes,
const ProgramList schedList 
)

Constructs a ProgramInfo from listings data in 'program' table.

Definition at line 488 of file programinfo.cpp.

◆ ProgramInfo() [8/14]

ProgramInfo::ProgramInfo ( QString  title,
QString  sortTitle,
QString  subtitle,
QString  sortSubtitle,
QString  description,
uint  season,
uint  episode,
uint  totalepisodes,
QString  category,
uint  chanid,
QString  channum,
QString  chansign,
QString  channame,
QString  chanplaybackfilters,
QString  recgroup,
QString  playgroup,
QDateTime  startts,
QDateTime  endts,
QDateTime  recstartts,
QDateTime  recendts,
QString  seriesid,
QString  programid,
QString  inetref,
QString  inputname 
)

Constructs a basic ProgramInfo (used by RecordingInfo)

Definition at line 632 of file programinfo.cpp.

◆ ProgramInfo() [9/14]

ProgramInfo::ProgramInfo ( const QString &  pathname)
explicit

Constructs a ProgramInfo for a pathname.

Definition at line 700 of file programinfo.cpp.

◆ ProgramInfo() [10/14]

ProgramInfo::ProgramInfo ( const QString &  pathname,
const QString &  plot,
const QString &  title,
const QString &  sortTitle,
const QString &  subtitle,
const QString &  sortSubtitle,
const QString &  director,
int  season,
int  episode,
const QString &  inetref,
uint  length_in_minutes,
uint  year,
const QString &  programid 
)

Constructs a ProgramInfo for a video.

Definition at line 736 of file programinfo.cpp.

◆ ProgramInfo() [11/14]

ProgramInfo::ProgramInfo ( const QString &  _title,
uint  _chanid,
const QDateTime &  _startts,
const QDateTime &  _endts 
)

Constructs a manual record ProgramInfo.

Definition at line 780 of file programinfo.cpp.

◆ ProgramInfo() [12/14]

ProgramInfo::ProgramInfo ( QString  _title,
QString  _category,
QDateTime  _startts,
QDateTime  _endts 
)
inline

Constructs a Dummy ProgramInfo (used by GuideGrid)

Definition at line 277 of file programinfo.h.

◆ ProgramInfo() [13/14]

ProgramInfo::ProgramInfo ( QStringList::const_iterator &  it,
const QStringList::const_iterator &  end 
)
inline

Definition at line 282 of file programinfo.h.

◆ ProgramInfo() [14/14]

ProgramInfo::ProgramInfo ( const QStringList &  list)
inlineexplicit

Definition at line 288 of file programinfo.h.

◆ ~ProgramInfo()

virtual ProgramInfo::~ProgramInfo ( )
virtualdefault

Member Function Documentation

◆ operator==()

bool ProgramInfo::operator== ( const ProgramInfo rhs)

Compare two ProgramInfo instances to see if they are equal. Equal is defined as all parameters that are serialized and passed across the myth protocol are the same.

Parameters
rhsThe ProgramInfo instance to compare to the current instance.
Returns
True if all the serialized fields match, False otherwise.

Definition at line 1038 of file programinfo.cpp.

◆ operator=()

ProgramInfo & ProgramInfo::operator= ( const ProgramInfo other)

Copies important fields from other ProgramInfo.

Definition at line 824 of file programinfo.cpp.

◆ clone()

void ProgramInfo::clone ( const ProgramInfo other,
bool  ignore_non_serialized_data = false 
)
virtual

Copies important fields from other ProgramInfo.

Reimplemented in ProgramRecPriorityInfo, and RecordingInfo.

Definition at line 834 of file programinfo.cpp.

Referenced by RecordingInfo::clone(), PlaybackSock::FillProgramInfo(), operator=(), and Reload().

◆ ensureSortFields()

void ProgramInfo::ensureSortFields ( void  )

Ensure that the sortTitle and sortSubtitle fields are set.

Definition at line 1135 of file programinfo.cpp.

Referenced by FromStringList(), ProgramInfo(), SetSubtitle(), and SetTitle().

◆ clear()

void ProgramInfo::clear ( void  )
virtual

Reimplemented in ProgramRecPriorityInfo, and RecordingInfo.

Definition at line 928 of file programinfo.cpp.

Referenced by RecordingInfo::clear(), LoadProgramFromRecorded(), and ProgramInfo().

◆ ToStringList()

void ProgramInfo::ToStringList ( QStringList &  list) const

◆ ToMap()

void ProgramInfo::ToMap ( InfoMap progMap,
bool  showrerecord = false,
uint  star_range = 10 
) const
virtual

◆ SubstituteMatches()

void ProgramInfo::SubstituteMatches ( QString &  str)
virtual

Subsitute MATCH% type variable names in the given string.

Parameters
strQString to substitute matches in
Note
This method sometimes initiates a QUERY_CHECKFILE MythProto call and so should not be called from the UI thread.

Reimplemented in RecordingInfo.

Definition at line 5216 of file programinfo.cpp.

Referenced by JobQueue::GetJobCommand(), and RecordingInfo::SubstituteMatches().

◆ IsSameProgram()

bool ProgramInfo::IsSameProgram ( const ProgramInfo other) const

Checks whether this is the same program as "other", which may or may not be a repeat or on another channel.

Matches based on programid with a fallback to dupmethod

Parameters
otherProgramInfo to compare this one with.

Definition at line 2141 of file programinfo.cpp.

Referenced by MainServer::HandleStopRecording(), PlayerContext::IsSameProgram(), and IsSameProgramAndStartTime().

◆ IsDuplicateProgram()

bool ProgramInfo::IsDuplicateProgram ( const ProgramInfo other) const

Checks for duplicates according to dupmethod.

Parameters
otherProgramInfo to compare this one with.

Definition at line 2072 of file programinfo.cpp.

Referenced by Scheduler::IsSameProgram().

◆ IsSameProgramAndStartTime()

bool ProgramInfo::IsSameProgramAndStartTime ( const ProgramInfo other) const

Match same program, with same starttime (channel may be different)

Parameters
otherProgramInfo to compare this one with.
Returns
true if this program is the same and shares same start time as "other" program.

Definition at line 2199 of file programinfo.cpp.

Referenced by ProgramInfo().

◆ IsSameTitleStartTimeAndChannel()

bool ProgramInfo::IsSameTitleStartTimeAndChannel ( const ProgramInfo other) const

Checks title, chanid or callsign and start times for equality.

Parameters
otherProgramInfo to compare this one with.
Returns
true if this program shares same time slot as "other" program.

Definition at line 2215 of file programinfo.cpp.

Referenced by Scheduler::ChangeRecordingEnd(), Scheduler::PruneOverlaps(), and Scheduler::PruneRedundants().

◆ IsSameTitleTimeslotAndChannel()

bool ProgramInfo::IsSameTitleTimeslotAndChannel ( const ProgramInfo other) const

Checks title, chanid or chansign, start/end times, cardid, inputid for fully inclusive overlap.

Parameters
otherProgramInfo to compare this one with.
Returns
true if this program is contained in time slot of "other" program.

Definition at line 2229 of file programinfo.cpp.

◆ UsingProgramIDAuthority()

static bool ProgramInfo::UsingProgramIDAuthority ( void  )
inlinestatic

Definition at line 319 of file programinfo.h.

Referenced by Scheduler::UpdateDuplicates().

◆ CheckProgramIDAuthorities()

void ProgramInfo::CheckProgramIDAuthorities ( void  )
static

Definition at line 2251 of file programinfo.cpp.

Referenced by handle_command(), and Scheduler::Scheduler().

◆ IsSameProgramWeakCheck()

bool ProgramInfo::IsSameProgramWeakCheck ( const ProgramInfo other) const

Checks for duplicate using only title, chanid and startts.

Parameters
otherProgramInfo to compare this one with.

Definition at line 2061 of file programinfo.cpp.

Referenced by TVRec::StartRecording().

◆ IsSameRecording()

bool ProgramInfo::IsSameRecording ( const ProgramInfo other) const
inline

Definition at line 327 of file programinfo.h.

Referenced by Scheduler::GetRecStatus(), and EncoderLink::MatchesRecording().

◆ IsSameChannel()

bool ProgramInfo::IsSameChannel ( const ProgramInfo other) const

Checks whether channel id or callsign are identical.

Parameters
otherProgramInfo to compare this one with.
Returns
true if this program's channel is likely to be the same as the "other" program's channel

Definition at line 2244 of file programinfo.cpp.

Referenced by IsSameProgramAndStartTime(), IsSameTitleStartTimeAndChannel(), IsSameTitleTimeslotAndChannel(), and ProgramInfo().

◆ MakeUniqueKey() [1/2]

QString ProgramInfo::MakeUniqueKey ( void  ) const
inline

◆ GetSecondsInRecording()

uint ProgramInfo::GetSecondsInRecording ( void  ) const

Returns length of program/recording in seconds.

Definition at line 1782 of file programinfo.cpp.

Referenced by PlayerContext::SetPlayingInfo().

◆ ChannelText()

QString ProgramInfo::ChannelText ( const QString &  format) const

Returns channel info using "format".

There are three tags in "format" that will be replaced with the appropriate info. These tags are "<num>", "<sign>", and "<name>", they replaced with the channel number, channel call sign, and channel name, respectively.

Parameters
formatformatting string.
Returns
formatted string.

Definition at line 4697 of file programinfo.cpp.

Referenced by ProgramInfo(), and ToMap().

◆ GetPathname()

QString ProgramInfo::GetPathname ( void  ) const
inline

◆ GetBasename()

QString ProgramInfo::GetBasename ( void  ) const
inline

◆ IsVideoFile()

bool ProgramInfo::IsVideoFile ( void  ) const
inline

Definition at line 340 of file programinfo.h.

Referenced by PlayerContext::GetPlayingInfoMap(), TV::QuickRecord(), and SaveWatched().

◆ IsVideoDVD()

bool ProgramInfo::IsVideoDVD ( void  ) const
inline

◆ IsVideoBD()

bool ProgramInfo::IsVideoBD ( void  ) const
inline

◆ IsLocal()

bool ProgramInfo::IsLocal ( void  ) const
inline

◆ IsMythStream()

bool ProgramInfo::IsMythStream ( void  ) const
inline

Definition at line 351 of file programinfo.h.

Referenced by IsFileReadable().

◆ IsPathSet()

bool ProgramInfo::IsPathSet ( void  ) const
inline

Definition at line 352 of file programinfo.h.

Referenced by PlaybackBox::Play().

◆ HasPathname()

bool ProgramInfo::HasPathname ( void  ) const
inline

◆ IsFileReadable()

bool ProgramInfo::IsFileReadable ( void  )

Attempts to ascertain if the main file for this ProgramInfo is readable.

Note
This method often initiates a QUERY_CHECKFILE MythProto call and so should not be called from the UI thread.
Returns
true iff file is readable

Definition at line 4772 of file programinfo.cpp.

Referenced by PBHEventHandler::CheckAvailability().

◆ GetTitle()

QString ProgramInfo::GetTitle ( void  ) const
inline

Definition at line 356 of file programinfo.h.

Referenced by RecordingInfo::AddHistory(), Scheduler::AddNewRecords(), Scheduler::AddRecording(), Scheduler::AssignGroupInput(), RecordingRule::AssignProgramInfo(), ScheduledRecording::BuildCheckRequest(), comp_overlap(), comp_priority(), comp_redundant(), comp_retry(), RecMetadataEdit::Create(), PlaybackBox::CreateProgramInfoString(), CreateProgramInfoString(), CustomEdit::CustomEdit(), ProgFinder::customEvent(), PrevRecordedList::DeleteOldSeries(), ProgLister::DeleteOldSeries(), StatusBox::doAutoExpireList(), MainServer::DoHandleDeleteRecording(), StatusBox::doJobQueueStatus(), StatusBox::doTunerStatus(), CustomEdit::evaluate(), MythBDPlayer::EventStart(), MythDVDPlayer::EventStart(), extract_subtitle(), FillProgramInfo(), HttpStatus::FillProgramInfo(), GuideUpdateProgramRow::fillProgramRowInfosWith(), Scheduler::FindNextConflict(), TVRec::FinishedRecording(), FlagCommercials(), GuideGrid::gestureEvent(), PlayGroup::GetInitialName(), TV::GetStatus(), Scheduler::HandleRecording(), Scheduler::HandleWakeSlave(), GuideGrid::keyPressEvent(), CustomEdit::loadClauses(), CustomPriority::loadData(), ProgDetails::loadPage(), MetadataFactory::Lookup(), LookupFromProgramInfo(), TV::Playback(), print_comm_flag_output(), TV::QuickRecord(), RebuildSeekTable(), CustomEdit::recordClicked(), RemoteGetExistingRecorder(), RemoteGetRecordingStatus(), Scheduler::SchedNewFirstPass(), PlayerContext::SetPseudoLiveTV(), PrevRecordedList::ShowDeleteOldEpisodeMenu(), ProgLister::ShowDeleteOldEpisodeMenu(), PrevRecordedList::ShowDeleteOldSeriesMenu(), ProgLister::ShowDeleteOldSeriesMenu(), TV::ShowLCDChannelInfo(), TV::ShowOSDPromptDeleteRecording(), ScheduleCommon::ShowPrevious(), PlaybackBox::ShowRecordedEpisodes(), ScheduleCommon::ShowUpcoming(), ScheduleCommon::ShowUpcomingScheduled(), TVRec::StartRecording(), TVRec::TuningRestartRecorder(), and TVRec::TuningSignalCheck().

◆ GetSortTitle()

QString ProgramInfo::GetSortTitle ( void  ) const
inline

◆ GetSubtitle()

QString ProgramInfo::GetSubtitle ( void  ) const
inline

◆ GetSortSubtitle()

QString ProgramInfo::GetSortSubtitle ( void  ) const
inline

◆ GetDescription()

QString ProgramInfo::GetDescription ( void  ) const
inline

◆ GetSeason()

uint ProgramInfo::GetSeason ( void  ) const
inline

◆ GetEpisode()

uint ProgramInfo::GetEpisode ( void  ) const
inline

◆ GetEpisodeTotal()

uint ProgramInfo::GetEpisodeTotal ( void  ) const
inline

Definition at line 363 of file programinfo.h.

Referenced by FillProgramInfo(), and ProgDetails::loadPage().

◆ GetCategory()

QString ProgramInfo::GetCategory ( void  ) const
inline

◆ GetChanID()

uint ProgramInfo::GetChanID ( void  ) const
inline

This is the unique key used in the database to locate tuning information.

[1..2^32] are valid keys, 0 is not.

Definition at line 367 of file programinfo.h.

Referenced by Content::AddRecordingLiveStream(), Dvr::AllowReRecord(), LiveTVChain::AppendNewProgram(), Scheduler::AssignGroupInput(), RecordingRule::AssignProgramInfo(), TVBrowseHelper::BrowseStart(), TV::ChangeChannel(), PBHEventHandler::CheckAvailability(), ClearBookmarks(), ClearSeekTable(), ClearSkipList(), RecordingInfo::clone(), comp_overlap(), comp_priority(), comp_recstart(), comp_retry(), CompleteJob(), CopySkipListToCutList(), PlaybackBox::createJobMenu(), PlaybackBox::createPlaylistJobMenu(), TV::customEvent(), MainServer::customEvent(), PlaybackBox::customEvent(), commDetector2::debugDirectory(), PrevRecordedList::DeleteOldEpisode(), ProgLister::DeleteOldEpisode(), LiveTVChain::DeleteProgram(), Dvr::DeleteRecording(), MainServer::DoDeleteThread(), TV::DoEditSchedule(), DoFlagCommercials(), MainServer::DoHandleDeleteRecording(), PlaybackBox::doJobQueueJob(), StatusBox::doJobQueueStatus(), PlaybackBox::doPlaylistJobQueueJob(), TV::DoQueueTranscode(), StatusBox::doTunerStatus(), CustomEdit::evaluate(), PBHEventHandler::event(), MythPlayer::EventLoop(), PlaybackBox::extract_commflag_state(), PlaybackBox::extract_job_state(), FillCastMemberList(), HttpStatus::FillChannelInfo(), FillCommBreak(), FillCutList(), FillProgramInfo(), FillSeek(), HttpStatus::FillStatusXML(), Scheduler::FindNextConflict(), LiveTVChain::FinishedRecording(), TVRec::FinishedRecording(), FlagCommercials(), GetMarkupList(), GetPlaybackURL(), PlayerContext::GetPlayingInfoMap(), Content::GetPreviewImage(), GetProgramInfo(), getProgramInfoForFile(), Content::GetRecording(), TV::GetStatus(), MainServer::HandleCutMapQuery(), MainServer::HandleDeleteRecording(), MainServer::HandleForgetRecording(), MainServer::HandleGetConflictingRecordings(), TV::HandlePseudoLiveTVTimerEvent(), MainServer::HandleQueryRecording(), Scheduler::HandleRecording(), Scheduler::HandleRecordingStatusChange(), MainServer::HandleSetBookmark(), MainServer::HandleStopRecording(), MainServer::HandleUndeleteRecording(), incomingCustomEvent(), init_jobs(), RecordingInfo::InsertProgram(), TVRec::IsBusy(), Scheduler::IsBusyRecording(), JobQueue::IsJobRunning(), EncoderLink::IsRecording(), TV::ITVRestart(), ProgDetails::loadPage(), FileServerHandler::LocalFilePath(), MainServer::LocalFilePath(), LookupFromProgramInfo(), main(), Dvr::ManageJobQueue(), MythPlayer::OpenFile(), TV::PlaybackMenuInit(), Frontend::PlayRecording(), ProgDetails::PowerPriorities(), preview_helper(), print_comm_flag_output(), JobQueue::ProcessJob(), PlaybackBox::processNetworkControlCommand(), TV::ProcessNetworkControlCommand(), LiveTVChain::ProgramIsAt(), QueueCommFlagJob(), QueueJob(), JobQueue::QueueRecordingJobs(), QueueTranscodeJob(), TV::QuickRecord(), Dvr::ReactivateRecording(), Reload(), ReloadBookmark(), RemoteDeleteRecording(), RemoteUndeleteRecording(), TVBrowseHelper::run(), PreviewGenerator::Run(), SendMythSystemPlayEvent(), SendMythSystemRecEvent(), SetCutList(), TVRec::SetLiveRecording(), LiveTVChain::SetProgram(), RecorderBase::SetRecordingStatus(), ScheduleCommon::ShowChannelSearch(), ProgFinder::ShowGuide(), ScheduleCommon::ShowGuide(), ScheduleCommon::ShowUpcoming(), TVRec::StartRecording(), EncoderLink::StartRecording(), TV::StartTV(), PlaybackBox::stopPlaylistJobQueueJob(), Dvr::StopRecording(), MythSystemEventHandler::SubstituteMatches(), TVRec::SwitchRecordingRingBuffer(), toString(), TVRec::TuningNewRecorder(), TVRec::TuningRestartRecorder(), TVRec::TuningSignalCheck(), Dvr::UnDeleteRecording(), Dvr::UpdateRecordedWatchedStatus(), and WaitToDelete().

◆ GetChanNum()

QString ProgramInfo::GetChanNum ( void  ) const
inline

◆ GetChannelSchedulingID()

QString ProgramInfo::GetChannelSchedulingID ( void  ) const
inline

This is the unique programming identifier of a channel.

For example "BBC1 Crystal Palace". The channel may be broadcast over satelite, cable and terrestrially – but will almost always contain the same programming. This is used when determining if two channels can be treated as the same channel in recording rules. In the DB this is called 'callsign' for historic reasons.

Definition at line 378 of file programinfo.h.

Referenced by Scheduler::AddNewRecords(), Scheduler::AssignGroupInput(), RecordingRule::AssignProgramInfo(), comp_recstart(), comp_redundant(), CustomEdit::evaluate(), HttpStatus::FillChannelInfo(), CustomEdit::loadClauses(), ViewScheduled::LoadList(), LookupFromProgramInfo(), MythPlayer::OpenFile(), TV::Playback(), and TV::ShowLCDChannelInfo().

◆ GetChannelName()

QString ProgramInfo::GetChannelName ( void  ) const
inline

This is the channel name in the local market, i.e.

BBC1. This is purely for use in the user interface.

Definition at line 381 of file programinfo.h.

Referenced by StatusBox::doJobQueueStatus(), CustomEdit::evaluate(), HttpStatus::FillChannelInfo(), LookupFromProgramInfo(), and RemoteGetRecordingStatus().

◆ GetChannelPlaybackFilters()

QString ProgramInfo::GetChannelPlaybackFilters ( void  ) const
inline

◆ GetScheduledStartTime() [1/2]

QDateTime ProgramInfo::GetScheduledStartTime ( void  ) const
inline

◆ GetScheduledStartTime() [2/2]

QString ProgramInfo::GetScheduledStartTime ( MythDate::Format  fmt) const
inline

The scheduled start time of program (with formatting).

Definition at line 387 of file programinfo.h.

◆ GetScheduledEndTime() [1/2]

QDateTime ProgramInfo::GetScheduledEndTime ( void  ) const
inline

◆ GetScheduledEndTime() [2/2]

QString ProgramInfo::GetScheduledEndTime ( MythDate::Format  fmt) const
inline

The scheduled end time of the program (with formatting).

Definition at line 394 of file programinfo.h.

◆ GetRecordingStartTime() [1/2]

QDateTime ProgramInfo::GetRecordingStartTime ( void  ) const
inline

Approximate time the recording started.

Definition at line 399 of file programinfo.h.

Referenced by LiveTVChain::AppendNewProgram(), RecordingInfo::ApplyNeverRecord(), Scheduler::AssignGroupInput(), RecordingInfo::clone(), comp_originalAirDate(), comp_originalAirDate_rev(), comp_priority(), comp_programid(), comp_programid_rev(), comp_recordDate(), comp_recordDate_rev(), comp_recpriority2(), comp_recstart(), comp_retry(), comp_sortdate_lt(), comp_sortdate_lt_rev(), CompleteJob(), PlaybackBox::createJobMenu(), PlaybackBox::createPlaylistJobMenu(), PlaybackBox::CreateProgramInfoString(), CreateProgramInfoString(), TV::customEvent(), LiveTVChain::DeleteProgram(), Dvr::DeleteRecording(), StatusBox::doAutoExpireList(), DoFlagCommercials(), MainServer::DoHandleDeleteRecording(), PlaybackBox::doJobQueueJob(), StatusBox::doJobQueueStatus(), PlaybackBox::doPlaylistJobQueueJob(), TV::DoQueueTranscode(), ScheduleCommon::EditRecording(), PlaybackBox::extract_commflag_state(), PlaybackBox::extract_job_state(), FillProgramInfo(), HttpStatus::FillProgramInfo(), Scheduler::FindNextConflict(), LiveTVChain::FinishedRecording(), TVRec::FinishedRecording(), PreviewGeneratorQueue::GeneratePreviewImage(), GetPlaybackURL(), TVRec::GetProgramRingBufferForLiveTV(), TV::GetStatus(), Scheduler::HandleRecording(), Scheduler::HandleRecordingStatusChange(), MainServer::HandleRemoteEncoder(), Scheduler::HandleWakeSlave(), incomingCustomEvent(), init_jobs(), JobQueue::IsJobRunning(), EncoderLink::IsRecording(), ViewScheduled::LoadList(), ProgDetails::loadPage(), PreviewGenerator::LocalPreviewRun(), LookupFromProgramInfo(), main(), Dvr::ManageJobQueue(), Frontend::PlayRecording(), print_comm_flag_output(), TV::ProcessNetworkControlCommand(), LiveTVChain::ProgramIsAt(), QueueCommFlagJob(), QueueJob(), JobQueue::QueueRecordingJobs(), QueueTranscodeJob(), ReloadBookmark(), RemoteDeleteRecording(), RemoteUndeleteRecording(), PreviewGenerator::Run(), Scheduler::SchedNewFirstPass(), SendMythSystemPlayEvent(), SendMythSystemRecEvent(), LiveTVChain::SetProgram(), PlayerContext::SetPseudoLiveTV(), MythPlayer::SetWatched(), ViewScheduleDiff::showStatus(), Scheduler::ShutdownServer(), TVRec::StartRecording(), EncoderLink::StartRecording(), PlaybackBox::stopPlaylistJobQueueJob(), Dvr::StopRecording(), ToMap(), toString(), Scheduler::TryAnotherShowing(), TVRec::TuningRestartRecorder(), Dvr::UnDeleteRecording(), WaitToDelete(), and EncoderLink::WouldConflict().

◆ GetRecordingStartTime() [2/2]

QString ProgramInfo::GetRecordingStartTime ( MythDate::Format  fmt) const
inline

Approximate time the recording started (with formatting).

Definition at line 401 of file programinfo.h.

◆ GetRecordingEndTime() [1/2]

QDateTime ProgramInfo::GetRecordingEndTime ( void  ) const
inline

◆ GetRecordingEndTime() [2/2]

QString ProgramInfo::GetRecordingEndTime ( MythDate::Format  fmt) const
inline

Approximate time the recording should have ended, did end, or is intended to end (with formatting).

Definition at line 410 of file programinfo.h.

◆ GetRecordingGroup()

QString ProgramInfo::GetRecordingGroup ( void  ) const
inline

◆ GetPlaybackGroup()

QString ProgramInfo::GetPlaybackGroup ( void  ) const
inline

◆ GetHostname()

QString ProgramInfo::GetHostname ( void  ) const
inline

◆ GetStorageGroup()

QString ProgramInfo::GetStorageGroup ( void  ) const
inline

◆ GetYearOfInitialRelease()

uint ProgramInfo::GetYearOfInitialRelease ( void  ) const
inline

◆ GetOriginalAirDate()

QDate ProgramInfo::GetOriginalAirDate ( void  ) const
inline

◆ GetLastModifiedTime() [1/2]

QDateTime ProgramInfo::GetLastModifiedTime ( void  ) const
inline

◆ GetLastModifiedTime() [2/2]

QString ProgramInfo::GetLastModifiedTime ( MythDate::Format  fmt) const
inline

Definition at line 425 of file programinfo.h.

◆ GetFilesize()

uint64_t ProgramInfo::GetFilesize ( void  ) const
virtual

◆ GetSeriesID()

QString ProgramInfo::GetSeriesID ( void  ) const
inline

◆ GetProgramID()

QString ProgramInfo::GetProgramID ( void  ) const
inline

◆ GetInetRef()

QString ProgramInfo::GetInetRef ( void  ) const
inline

◆ GetCategoryType()

CategoryType ProgramInfo::GetCategoryType ( void  ) const
inline

◆ GetCategoryTypeString()

QString ProgramInfo::GetCategoryTypeString ( void  ) const

Returns catType as a string.

Definition at line 1790 of file programinfo.cpp.

Referenced by FillProgramInfo(), HttpStatus::FillProgramInfo(), RecordingRule::LoadByProgram(), and PlaybackBox::updateIcons().

◆ GetRecordingPriority()

int ProgramInfo::GetRecordingPriority ( void  ) const
inline

◆ GetRecordingPriority2()

int ProgramInfo::GetRecordingPriority2 ( void  ) const
inline

◆ GetStars() [1/2]

float ProgramInfo::GetStars ( void  ) const
inline

◆ GetStars() [2/2]

uint ProgramInfo::GetStars ( uint  range_max) const
inline

Definition at line 438 of file programinfo.h.

◆ GetRecordingID()

uint ProgramInfo::GetRecordingID ( void  ) const
inline

◆ GetRecordingStatus()

RecStatus::Type ProgramInfo::GetRecordingStatus ( void  ) const
inline

◆ GetRecordingRuleID()

uint ProgramInfo::GetRecordingRuleID ( void  ) const
inline

◆ GetParentRecordingRuleID()

uint ProgramInfo::GetParentRecordingRuleID ( void  ) const
inline

◆ GetRecordingRuleType()

RecordingType ProgramInfo::GetRecordingRuleType ( void  ) const
inline

◆ GetDuplicateCheckSource()

RecordingDupInType ProgramInfo::GetDuplicateCheckSource ( void  ) const
inline

Where should we check for duplicates?

Definition at line 450 of file programinfo.h.

Referenced by FillProgramInfo(), and HttpStatus::FillProgramInfo().

◆ GetDuplicateCheckMethod()

RecordingDupMethodType ProgramInfo::GetDuplicateCheckMethod ( void  ) const
inline

What should be compared to determine if two programs are the same?

Definition at line 454 of file programinfo.h.

Referenced by ScheduleCommon::EditRecording(), FillProgramInfo(), and HttpStatus::FillProgramInfo().

◆ GetSourceID()

uint ProgramInfo::GetSourceID ( void  ) const
inline

◆ GetInputID()

uint ProgramInfo::GetInputID ( void  ) const
inline

◆ GetInputName()

QString ProgramInfo::GetInputName ( void  ) const
inline

◆ GetShortInputName()

QString ProgramInfo::GetShortInputName ( void  ) const
inline

Definition at line 460 of file programinfo.h.

Referenced by ToMap().

◆ ClearInputName()

void ProgramInfo::ClearInputName ( void  )
inline

Definition at line 463 of file programinfo.h.

◆ GetFindID()

uint ProgramInfo::GetFindID ( void  ) const
inline

◆ GetProgramFlags()

uint32_t ProgramInfo::GetProgramFlags ( void  ) const
inline

◆ GetProgramInfoType()

ProgramInfoType ProgramInfo::GetProgramInfoType ( void  ) const
inline

Definition at line 468 of file programinfo.h.

Referenced by ToMap().

◆ GetBookmarkUpdate()

QDateTime ProgramInfo::GetBookmarkUpdate ( void  ) const
inline

Definition at line 470 of file programinfo.h.

Referenced by PreviewGeneratorQueue::GeneratePreviewImage().

◆ IsGeneric()

bool ProgramInfo::IsGeneric ( void  ) const

Definition at line 1816 of file programinfo.cpp.

Referenced by RecordingInfo::AddHistory(), and ScheduleCommon::EditRecording().

◆ IsInUsePlaying()

bool ProgramInfo::IsInUsePlaying ( void  ) const
inline

Definition at line 472 of file programinfo.h.

Referenced by PlaybackBox::SetItemIcons().

◆ IsCommercialFree()

bool ProgramInfo::IsCommercialFree ( void  ) const
inline

◆ HasCutlist()

bool ProgramInfo::HasCutlist ( void  ) const
inline

Definition at line 474 of file programinfo.h.

Referenced by JobQueue::DoTranscodeThread(), and PlaybackBox::SetItemIcons().

◆ IsBookmarkSet()

bool ProgramInfo::IsBookmarkSet ( void  ) const
inline

◆ IsWatched()

bool ProgramInfo::IsWatched ( void  ) const
inline

◆ IsAutoExpirable()

bool ProgramInfo::IsAutoExpirable ( void  ) const
inline

◆ IsPreserved()

bool ProgramInfo::IsPreserved ( void  ) const
inline

◆ IsVideo()

bool ProgramInfo::IsVideo ( void  ) const
inline

◆ IsRecording()

bool ProgramInfo::IsRecording ( void  ) const
inline

◆ IsRepeat()

bool ProgramInfo::IsRepeat ( void  ) const
inline

◆ IsDuplicate()

bool ProgramInfo::IsDuplicate ( void  ) const
inline

◆ IsReactivated()

bool ProgramInfo::IsReactivated ( void  ) const
inline

Definition at line 483 of file programinfo.h.

Referenced by comp_priority(), comp_retry(), and RecordingInfo::SubstituteMatches().

◆ IsDeletePending()

bool ProgramInfo::IsDeletePending ( void  ) const
inline

Definition at line 484 of file programinfo.h.

◆ GetSubtitleType()

uint ProgramInfo::GetSubtitleType ( void  ) const
inline

◆ GetVideoProperties()

uint ProgramInfo::GetVideoProperties ( void  ) const
inline

◆ GetAudioProperties()

uint ProgramInfo::GetAudioProperties ( void  ) const
inline

◆ toString()

QString ProgramInfo::toString ( Verbosity  v = kLongDescription,
const QString &  sep = ":",
const QString &  grp = "\"" 
) const

◆ SetTitle()

void ProgramInfo::SetTitle ( const QString &  t,
const QString &  st = nullptr 
)

◆ SetSubtitle()

void ProgramInfo::SetSubtitle ( const QString &  st,
const QString &  sst = nullptr 
)

Definition at line 1152 of file programinfo.cpp.

Referenced by ProgramRecPriority::scheduleChanged().

◆ SetProgramInfoType()

void ProgramInfo::SetProgramInfoType ( ProgramInfoType  t)
inline

Definition at line 507 of file programinfo.h.

Referenced by SetPathname().

◆ SetPathname()

void ProgramInfo::SetPathname ( const QString &  pn)

◆ SetChanID()

void ProgramInfo::SetChanID ( uint  _chanid)
inline

◆ SetScheduledStartTime()

void ProgramInfo::SetScheduledStartTime ( const QDateTime &  dt)
inline

Definition at line 511 of file programinfo.h.

Referenced by RecordingInfo::ApplyNeverRecord().

◆ SetScheduledEndTime()

void ProgramInfo::SetScheduledEndTime ( const QDateTime &  dt)
inline

◆ SetRecordingStartTime()

void ProgramInfo::SetRecordingStartTime ( const QDateTime &  dt)
inline

◆ SetRecordingEndTime()

void ProgramInfo::SetRecordingEndTime ( const QDateTime &  dt)
inline

◆ SetRecordingGroup()

void ProgramInfo::SetRecordingGroup ( const QString &  group)
inline

◆ SetPlaybackGroup()

void ProgramInfo::SetPlaybackGroup ( const QString &  group)
inline

Definition at line 516 of file programinfo.h.

◆ SetHostname()

void ProgramInfo::SetHostname ( const QString &  host)
inline

Definition at line 517 of file programinfo.h.

◆ SetStorageGroup()

void ProgramInfo::SetStorageGroup ( const QString &  group)
inline

Definition at line 518 of file programinfo.h.

Referenced by TVRec::GetProgramRingBufferForLiveTV().

◆ SetFilesize()

void ProgramInfo::SetFilesize ( uint64_t  sz)
virtual

◆ SetSeriesID()

void ProgramInfo::SetSeriesID ( const QString &  id)
inline

TODO Move to RecordingInfo.

Definition at line 520 of file programinfo.h.

◆ SetProgramID()

void ProgramInfo::SetProgramID ( const QString &  id)
inline

◆ SetCategory()

void ProgramInfo::SetCategory ( const QString &  cat)
inline

Definition at line 522 of file programinfo.h.

Referenced by ProgramRecPriority::scheduleChanged().

◆ SetCategoryType()

void ProgramInfo::SetCategoryType ( const CategoryType  type)
inline

Definition at line 523 of file programinfo.h.

◆ SetRecordingPriority()

void ProgramInfo::SetRecordingPriority ( int  priority)
inline

Definition at line 524 of file programinfo.h.

Referenced by ProgramRecPriority::scheduleChanged().

◆ SetRecordingPriority2()

void ProgramInfo::SetRecordingPriority2 ( int  priority)
inline

Definition at line 525 of file programinfo.h.

Referenced by Scheduler::PruneRedundants().

◆ SetRecordingRuleID()

void ProgramInfo::SetRecordingRuleID ( uint  id)
inline

◆ SetSourceID()

void ProgramInfo::SetSourceID ( uint  id)
inline

Definition at line 527 of file programinfo.h.

◆ SetInputID()

void ProgramInfo::SetInputID ( uint  id)
inline

◆ SetReactivated()

void ProgramInfo::SetReactivated ( bool  reactivate)
inline

Definition at line 529 of file programinfo.h.

Referenced by RecordingInfo::AddHistory().

◆ SetEditing()

void ProgramInfo::SetEditing ( bool  editing)
inline

◆ SetFlagging()

void ProgramInfo::SetFlagging ( bool  flagging)
inline

◆ SetIgnoreBookmark()

void ProgramInfo::SetIgnoreBookmark ( bool  ignore)
inline

If "ignore" is true GetBookmark() will return 0, otherwise GetBookmark() will return the bookmark position if it exists.

Definition at line 546 of file programinfo.h.

Referenced by MythPlayer::EventStart(), and TV::StartTV().

◆ SetIgnoreProgStart()

void ProgramInfo::SetIgnoreProgStart ( bool  ignore)
inline

If "ignore" is true QueryProgStart() will return 0, otherwise QueryProgStart() will return the progstart position if it exists.

Definition at line 553 of file programinfo.h.

Referenced by MythPlayer::EventStart(), PreviewGenerator::LocalPreviewRun(), and TV::StartTV().

◆ SetAllowLastPlayPos()

void ProgramInfo::SetAllowLastPlayPos ( bool  allow)
inline

If "ignore" is true QueryLastPlayPos() will return 0, otherwise QueryLastPlayPos() will return the last playback position if it exists.

Definition at line 561 of file programinfo.h.

Referenced by MythPlayer::EventStart(), PreviewGenerator::LocalPreviewRun(), and TV::StartTV().

◆ SetRecordingID()

virtual void ProgramInfo::SetRecordingID ( uint  _recordedid)
inlinevirtual

Reimplemented in RecordingInfo.

Definition at line 566 of file programinfo.h.

Referenced by PlaybackSock::StartRecording(), and TVRec::StartRecording().

◆ SetRecordingStatus()

void ProgramInfo::SetRecordingStatus ( RecStatus::Type  status)
inline

◆ SetRecordingRuleType()

void ProgramInfo::SetRecordingRuleType ( RecordingType  type)
inline

◆ SetPositionMapDBReplacement()

void ProgramInfo::SetPositionMapDBReplacement ( PMapDBReplacement pmap)
inline

Definition at line 570 of file programinfo.h.

◆ QueryBasename()

QString ProgramInfo::QueryBasename ( void  ) const

Gets the basename, from the DB if necessary.

If the base part of pathname is not empty this will return that value otherwise this queries the recorded table in the DB for the basename stored there for this ProgramInfo's recordedid

Definition at line 2402 of file programinfo.cpp.

Referenced by CompleteJob(), and GetPlaybackURL().

◆ QueryMplexID()

uint ProgramInfo::QueryMplexID ( void  ) const

Queries multiplex any recording would be made on, zero if unknown.

Definition at line 2546 of file programinfo.cpp.

Referenced by TVRec::StartRecording().

◆ QueryBookmarkTimeStamp()

QDateTime ProgramInfo::QueryBookmarkTimeStamp ( void  ) const

Queries Latest bookmark timestamp from the database.

If the timestamp has not been set this returns an invalid QDateTime.

Definition at line 2624 of file programinfo.cpp.

◆ QueryBookmark() [1/2]

uint64_t ProgramInfo::QueryBookmark ( void  ) const

Gets any bookmark position in database, unless the ignore bookmark flag is set.

Returns
Bookmark position in frames if the query is executed and succeeds, zero otherwise.

Definition at line 2651 of file programinfo.cpp.

Referenced by Video::GetSavedBookmark(), Dvr::GetSavedBookmark(), MainServer::HandleBookmarkQuery(), and PreviewGenerator::LocalPreviewRun().

◆ QueryProgStart()

uint64_t ProgramInfo::QueryProgStart ( void  ) const

Gets any progstart position in database, unless the ignore progstart flag is set.

Returns
Progstart position in frames if the query is executed and succeeds, zero otherwise.

Definition at line 2678 of file programinfo.cpp.

◆ QueryLastPlayPos()

uint64_t ProgramInfo::QueryLastPlayPos ( void  ) const

Gets any lastplaypos position in database, unless the ignore lastplaypos flag is set.

Returns
LastPlayPos position in frames if the query is executed and succeeds, zero otherwise.

Definition at line 2695 of file programinfo.cpp.

Referenced by PlaybackBox::createPlayFromMenu(), and PlaybackBox::ShowActionPopup().

◆ QueryCategoryType()

ProgramInfo::CategoryType ProgramInfo::QueryCategoryType ( void  ) const

Queries recordedprogram to get the category_type of the recording.

Returns
string category_type

Definition at line 2852 of file programinfo.cpp.

Referenced by GuessLookupType().

◆ QueryDVDBookmark()

QStringList ProgramInfo::QueryDVDBookmark ( const QString &  serialid) const

Queries "dvdbookmark" table for bookmarking DVD serial number.

Deletes old dvd bookmarks if "delbookmark" is set.

Returns
list containing title, audio track, subtitle, framenum

Definition at line 2711 of file programinfo.cpp.

Referenced by MythDVDPlayer::GetBookmark().

◆ QueryBDBookmark()

QStringList ProgramInfo::QueryBDBookmark ( const QString &  serialid) const

Queries "bdbookmark" table for bookmarking BD serial number.

Returns
BD state string

Definition at line 2788 of file programinfo.cpp.

Referenced by MythBDPlayer::GetBookmark().

◆ QueryIsEditing()

bool ProgramInfo::QueryIsEditing ( void  ) const

Queries "recorded" table for its "editing" field and returns true if it is set to true.

Returns
true if we have started, but not finished, editing.

Definition at line 2927 of file programinfo.cpp.

Referenced by DeleteMap::IsFileEditing(), TV::StartProgramEditMode(), and Transcode::TranscodeFile().

◆ QueryIsInUse() [1/2]

bool ProgramInfo::QueryIsInUse ( QStringList &  byWho) const

Returns true if Program is in use.

This is determined by the inuseprograms table which is updated automatically by NuppelVideoPlayer.

Definition at line 3006 of file programinfo.cpp.

Referenced by QueryIsDeleteCandidate(), QueryIsInUse(), PlaybackBox::ShowAvailabilityPopup(), and TV::ShowOSDPromptDeleteRecording().

◆ QueryIsInUse() [2/2]

bool ProgramInfo::QueryIsInUse ( QString &  byWho) const

Returns true if Program is in use.

This is determined by the inuseprograms table which is updated automatically by NuppelVideoPlayer.

Definition at line 3069 of file programinfo.cpp.

◆ QueryIsDeleteCandidate()

bool ProgramInfo::QueryIsDeleteCandidate ( bool  one_playback_allowed = false) const

Returns true iff this is a recording, it is not in use (except by the recorder), and at most one player iff one_playback_allowed is set.

Parameters
one_playback_allowediff true still returns true if there is one playback in progress and all other checks pass.

Definition at line 3086 of file programinfo.cpp.

Referenced by TV::IsDeleteAllowed(), PlaybackBox::PlaylistDelete(), PlaybackBox::RemoveProgram(), and TV::ShowOSDPromptDeleteRecording().

◆ QueryAutoExpire()

AutoExpireType ProgramInfo::QueryAutoExpire ( void  ) const

Returns "autoexpire" field from "recorded" table.

Definition at line 3275 of file programinfo.cpp.

Referenced by TV::IsBookmarkAllowed(), MythPlayer::OpenFile(), TV::PlaybackMenuInit(), TV::QuickRecord(), PlaybackBox::ShowDeletePopup(), and TV::ToggleAutoExpire().

◆ QueryTranscodeStatus()

TranscodingStatus ProgramInfo::QueryTranscodeStatus ( void  ) const

Returns the "transcoded" field in "recorded" table.

Definition at line 3121 of file programinfo.cpp.

Referenced by MythPlayer::SetWatched().

◆ QueryTuningInfo()

bool ProgramInfo::QueryTuningInfo ( QString &  channum,
QString &  input 
) const

Returns the channel and input needed to record the program.

Note
Ideally this would return a the chanid & input, since we do not enforce a uniqueness constraint on channum in the DB.
Returns
true on success, false on failure

Definition at line 5092 of file programinfo.cpp.

Referenced by TVRec::IsBusy(), and TVRec::TuningGetChanNum().

◆ QueryInputDisplayName()

QString ProgramInfo::QueryInputDisplayName ( void  ) const

◆ QueryAverageWidth()

uint ProgramInfo::QueryAverageWidth ( void  ) const

If present in recording this loads average width of the main video stream from database's stream markup table.

Note
Saves loaded value for future reference by GetWidth().

Definition at line 4284 of file programinfo.cpp.

Referenced by RecorderBase::FinishRecording().

◆ QueryAverageHeight()

uint ProgramInfo::QueryAverageHeight ( void  ) const

If present in recording this loads average height of the main video stream from database's stream markup table.

Note
Saves loaded value for future reference by GetHeight().

Definition at line 4275 of file programinfo.cpp.

Referenced by TVRec::FinishedRecording(), and RecorderBase::FinishRecording().

◆ QueryAverageFrameRate()

uint ProgramInfo::QueryAverageFrameRate ( void  ) const

If present in recording this loads average frame rate of the main video stream from database's stream markup table.

Note
Saves loaded value for future reference by GetFrameRate().

Definition at line 4293 of file programinfo.cpp.

Referenced by RecorderBase::FinishRecording().

◆ QueryAverageAspectRatio()

MarkTypes ProgramInfo::QueryAverageAspectRatio ( void  ) const

Definition at line 4298 of file programinfo.cpp.

Referenced by TVRec::FinishedRecording(), and RecorderBase::FinishRecording().

◆ QueryAverageScanProgressive()

bool ProgramInfo::QueryAverageScanProgressive ( void  ) const

If present in recording this loads average video scan type of the main video stream from database's stream markup table.

Note
Saves loaded value for future reference by QueryAverageScanProgressive().

Definition at line 4348 of file programinfo.cpp.

Referenced by TVRec::FinishedRecording().

◆ QueryTotalDuration()

uint32_t ProgramInfo::QueryTotalDuration ( void  ) const

If present this loads the total duration in milliseconds of the main video stream from recordedmarkup table in the database.

Returns
Duration in milliseconds

Definition at line 4359 of file programinfo.cpp.

Referenced by UPnpCDSTv::LoadRecordings(), and AvFormatDecoder::OpenFile().

◆ QueryTotalFrames()

int64_t ProgramInfo::QueryTotalFrames ( void  ) const

If present in recording this loads total frames of the main video stream from database's stream markup table.

Definition at line 4379 of file programinfo.cpp.

◆ QueryRecordingGroup()

QString ProgramInfo::QueryRecordingGroup ( void  ) const

Query recgroup from recorded.

Definition at line 4806 of file programinfo.cpp.

Referenced by TVRec::CheckForRecGroupChange(), and TVRec::FinishedRecording().

◆ QueryMarkupFlag()

bool ProgramInfo::QueryMarkupFlag ( MarkTypes  type) const

Returns true iff the speficied mark type is set on frame 0.

Definition at line 3572 of file programinfo.cpp.

Referenced by Transcode::TranscodeFile().

◆ QueryTranscoderID()

uint ProgramInfo::QueryTranscoderID ( void  ) const

Definition at line 4822 of file programinfo.cpp.

Referenced by JobQueue::DoTranscodeThread(), and JobQueue::GetJobCommand().

◆ QueryLastFrameInPosMap()

uint64_t ProgramInfo::QueryLastFrameInPosMap ( void  ) const

Returns last frame in position map or 0.

Definition at line 1796 of file programinfo.cpp.

Referenced by GetMarkupList().

◆ Reload()

bool ProgramInfo::Reload ( void  )

Definition at line 1862 of file programinfo.cpp.

Referenced by JobQueue::DoTranscodeThread().

◆ SaveFilesize()

void ProgramInfo::SaveFilesize ( uint64_t  fsize)
virtual

Sets recording file size in database, and sets "filesize" field.

Reimplemented in RecordingInfo.

Definition at line 6130 of file programinfo.cpp.

Referenced by CompleteJob(), JobQueue::DoTranscodeThread(), MainServer::HandleQueryRecordings(), RecordingInfo::SaveFilesize(), and UpdateFileSize().

◆ SaveBookmark()

void ProgramInfo::SaveBookmark ( uint64_t  frame)

TODO Move to RecordingInfo.

Clears any existing bookmark in DB and if frame is greater than 0 sets a new bookmark.

Definition at line 2571 of file programinfo.cpp.

Referenced by PlaybackBox::ClearBookmark(), CompleteJob(), MainServer::HandleSetBookmark(), MythPlayer::SetBookmark(), Video::SetSavedBookmark(), and Dvr::SetSavedBookmark().

◆ SaveDVDBookmark()

void ProgramInfo::SaveDVDBookmark ( const QStringList &  fields)
static

Definition at line 2744 of file programinfo.cpp.

Referenced by MythDVDPlayer::SetBookmark().

◆ SaveBDBookmark()

void ProgramInfo::SaveBDBookmark ( const QStringList &  fields)
static

Definition at line 2806 of file programinfo.cpp.

Referenced by MythBDPlayer::SetBookmark().

◆ SaveEditing()

void ProgramInfo::SaveEditing ( bool  edit)

Sets "editing" field in "recorded" table to "edit".

Parameters
editEditing state to set.

Definition at line 2953 of file programinfo.cpp.

Referenced by MythPlayer::DisableEdit(), MythPlayer::EnableEdit(), and TV::HandleOSDAlreadyEditing().

◆ SaveTranscodeStatus()

void ProgramInfo::SaveTranscodeStatus ( TranscodingStatus  trans)

Set "transcoded" field in "recorded" table to "trans".

Note
Also sets the FL_TRANSCODED flag if the status is TRASCODING_COMPLETE and clears it otherwise.
Parameters
transvalue to set transcoded field to.

Definition at line 3141 of file programinfo.cpp.

Referenced by JobQueue::DoTranscodeThread().

◆ SaveWatched()

void ProgramInfo::SaveWatched ( bool  watchedFlag)

Set "watched" field in recorded/videometadata to "watchedFlag".

Definition at line 2875 of file programinfo.cpp.

Referenced by PlaybackBox::doPlaylistWatchedSetting(), MythPlayer::SetWatched(), and Dvr::UpdateRecordedWatchedStatus().

◆ SaveDeletePendingFlag()

void ProgramInfo::SaveDeletePendingFlag ( bool  deleteFlag)

Set "deletepending" field in "recorded" table to "deleteFlag".

Parameters
deleteFlagvalue to set delete pending field to.

Definition at line 2978 of file programinfo.cpp.

Referenced by MainServer::DoDeleteThread(), and MainServer::DoHandleDeleteRecording().

◆ SaveCommFlagged()

void ProgramInfo::SaveCommFlagged ( CommFlagStatus  flag)

Set "commflagged" field in "recorded" table to "flag".

Parameters
flagvalue to set commercial flagging field to.

Definition at line 3164 of file programinfo.cpp.

Referenced by CompleteJob(), DoFlagCommercials(), and TVRec::StartedRecording().

◆ SaveAutoExpire()

void ProgramInfo::SaveAutoExpire ( AutoExpireType  autoExpire,
bool  updateDelete = false 
)

Set "autoexpire" field in "recorded" table to "autoExpire".

Parameters
autoExpirevalue to set auto expire field to.
updateDeleteiff true, call UpdateLastDelete(true)

Definition at line 3217 of file programinfo.cpp.

Referenced by TVRec::CreateLiveTVRingBuffer(), MainServer::DoHandleDeleteRecording(), MainServer::DoHandleUndeleteRecording(), PlaybackBox::doPlaylistExpireSetting(), TV::QuickRecord(), TVRec::SwitchLiveTVRingBuffer(), TV::ToggleAutoExpire(), and TVRec::TuningRestartRecorder().

◆ SavePreserve()

void ProgramInfo::SavePreserve ( bool  preserveEpisode)

Set "preserve" field in "recorded" table to "preserveEpisode".

Parameters
preserveEpisodevalue to set preserve field to.

Definition at line 3190 of file programinfo.cpp.

◆ SaveBasename()

bool ProgramInfo::SaveBasename ( const QString &  basename)

Sets a recording's basename in the database.

Definition at line 2362 of file programinfo.cpp.

Referenced by CompleteJob().

◆ SaveAspect()

void ProgramInfo::SaveAspect ( uint64_t  frame,
MarkTypes  type,
uint  customAspect 
)

Store aspect ratio of a frame in the recordedmark table.

Note
All frames until the next one with a stored aspect ratio are assumed to have the same aspect ratio

Definition at line 4057 of file programinfo.cpp.

Referenced by RecorderBase::AspectChange().

◆ SaveResolution()

void ProgramInfo::SaveResolution ( uint64_t  frame,
uint  width,
uint  height 
)

Store the Resolution at frame in the recordedmarkup table.

Note
All frames until the next one with a stored resolution are assumed to have the same resolution

Definition at line 4201 of file programinfo.cpp.

Referenced by RecorderBase::ResolutionChange().

◆ SaveFrameRate()

void ProgramInfo::SaveFrameRate ( uint64_t  frame,
uint  framerate 
)

Store the Frame Rate at frame in the recordedmarkup table.

Note
All frames until the next one with a stored frame rate are assumed to have the same frame rate

Definition at line 4087 of file programinfo.cpp.

Referenced by RecorderBase::FrameRateChange().

◆ SaveVideoScanType()

void ProgramInfo::SaveVideoScanType ( uint64_t  frame,
bool  progressive 
)

Store the Progressive/Interlaced state in the recordedmarkup table.

Note
All frames until the next one with a stored Scan type are assumed to have the same scan type

Definition at line 4112 of file programinfo.cpp.

Referenced by RecorderBase::VideoScanChange().

◆ SaveTotalDuration()

void ProgramInfo::SaveTotalDuration ( int64_t  duration)

Store the Total Duration at frame 0 in the recordedmarkup table.

Definition at line 4135 of file programinfo.cpp.

Referenced by RecordingInfo::FinishedRecording(), DecoderBase::SaveTotalDuration(), and RecorderBase::SetDuration().

◆ SaveTotalFrames()

void ProgramInfo::SaveTotalFrames ( int64_t  frames)

Store the Total Frames at frame 0 in the recordedmarkup table.

Definition at line 4167 of file programinfo.cpp.

Referenced by DecoderBase::SaveTotalFrames(), and RecorderBase::SetTotalFrames().

◆ SaveVideoProperties()

void ProgramInfo::SaveVideoProperties ( uint  mask,
uint  video_property_flags 
)

◆ SaveMarkupFlag()

void ProgramInfo::SaveMarkupFlag ( MarkTypes  type) const

Clears the specified flag, then if sets it.

Definition at line 3582 of file programinfo.cpp.

Referenced by DoFlagCommercials(), and DeleteMap::SaveMap().

◆ ClearMarkupFlag()

void ProgramInfo::ClearMarkupFlag ( MarkTypes  type) const
inline

Definition at line 626 of file programinfo.h.

Referenced by ClearBookmarks(), ClearSeekTable(), and Transcode::TranscodeFile().

◆ UpdateLastDelete()

void ProgramInfo::UpdateLastDelete ( bool  setTime) const

Set or unset the record.last_delete field.

Parameters
setTimeto set or clear the time stamp.

Definition at line 3243 of file programinfo.cpp.

Referenced by MainServer::DoHandleUndeleteRecording(), PlaybackBox::RemoveProgram(), SaveAutoExpire(), SavePreserve(), and SaveWatched().

◆ MarkAsInUse()

void ProgramInfo::MarkAsInUse ( bool  inuse,
const QString &  usedFor = "" 
)

Tracks a recording's in use status, to prevent deletion and to allow the storage scheduler to perform IO load balancing.

Note
This method sometimes initiates a QUERY_CHECKFILE MythProto call and so should not be called from the UI thread.

Definition at line 4898 of file programinfo.cpp.

Referenced by TVRec::CreateLiveTVRingBuffer(), FileTransfer::FileTransfer(), PreviewGenerator::LocalPreviewRun(), JobQueue::ProcessJob(), JobQueue::RemoveRunningJob(), TVRec::RingBufferChanged(), PlayerContext::SetPlayingInfo(), TVRec::StartRecording(), TVRec::SwitchLiveTVRingBuffer(), TVRec::TeardownRecorder(), MainServer::TruncateAndClose(), TVRec::TuningNewRecorder(), TVRec::TuningRestartRecorder(), TVRec::TuningShutdowns(), UpdateInUseMark(), and FileTransfer::~FileTransfer().

◆ UpdateInUseMark()

void ProgramInfo::UpdateInUseMark ( bool  force = false)

◆ SaveSeasonEpisode()

void ProgramInfo::SaveSeasonEpisode ( uint  seas,
uint  ep 
)

Definition at line 4723 of file programinfo.cpp.

Referenced by LookerUpper::customEvent().

◆ SaveInetRef()

void ProgramInfo::SaveInetRef ( const QString &  inet)

Definition at line 4747 of file programinfo.cpp.

◆ DiscoverRecordingDirectory()

QString ProgramInfo::DiscoverRecordingDirectory ( void  )
Note
This method sometimes initiates a QUERY_CHECKFILE MythProto call and so should not be called from the UI thread.

Definition at line 4842 of file programinfo.cpp.

Referenced by Scheduler::FillRecordingDir(), and MarkAsInUse().

◆ GetPlaybackURL()

QString ProgramInfo::GetPlaybackURL ( bool  checkMaster = false,
bool  forceCheckLocal = false 
)

Returns filename or URL to be used to play back this recording.

If the file is accessible locally, the filename will be returned, otherwise a myth:// URL will be returned.

Note
This method sometimes initiates a QUERY_CHECKFILE MythProto call and so should not be called from the UI thread.

Definition at line 2440 of file programinfo.cpp.

Referenced by CompleteJob(), commDetector2::debugDirectory(), DiscoverRecordingDirectory(), JobQueue::DoFlagCommercialsThread(), JobQueue::DoTranscodeThread(), get_filename(), GetPlaybackURL(), getProgramInfoForFile(), TV::HandleStateChange(), IsFileReadable(), MythPlayer::JumpToProgram(), main(), MarkAsInUse(), preview_helper(), JobQueue::ProcessJob(), PlaybackBox::processNetworkControlCommand(), RunCCExtract(), SubstituteMatches(), TV::SwitchInputs(), and MythPlayer::SwitchToProgram().

◆ DiscoverProgramInfoType()

ProgramInfoType ProgramInfo::DiscoverProgramInfoType ( void  ) const

Definition at line 2340 of file programinfo.cpp.

◆ QueryCutList()

bool ProgramInfo::QueryCutList ( frm_dir_map_t delMap,
bool  loadAutosave = false 
) const

◆ SaveCutList()

void ProgramInfo::SaveCutList ( frm_dir_map_t delMap,
bool  isAutoSave = false 
) const

◆ QueryCommBreakList()

void ProgramInfo::QueryCommBreakList ( frm_dir_map_t frames) const

◆ SaveCommBreakList()

void ProgramInfo::SaveCommBreakList ( frm_dir_map_t frames) const

Definition at line 3370 of file programinfo.cpp.

Referenced by ClearSkipList(), DoFlagCommercials(), and SetMarkupList().

◆ QueryPositionMap()

void ProgramInfo::QueryPositionMap ( frm_pos_map_t posMap,
MarkTypes  type 
) const

◆ ClearPositionMap()

void ProgramInfo::ClearPositionMap ( MarkTypes  type) const

◆ SavePositionMap()

void ProgramInfo::SavePositionMap ( frm_pos_map_t posMap,
MarkTypes  type,
int64_t  min_frame = -1,
int64_t  max_frame = -1 
) const

Definition at line 3674 of file programinfo.cpp.

Referenced by UpdatePositionMap().

◆ SavePositionMapDelta()

void ProgramInfo::SavePositionMapDelta ( frm_pos_map_t posMap,
MarkTypes  type 
) const

◆ QueryKeyFrameInfo()

bool ProgramInfo::QueryKeyFrameInfo ( uint64_t *  result,
uint64_t  position_or_keyframe,
bool  backwards,
MarkTypes  type,
const char *  from_filemarkup_asc,
const char *  from_filemarkup_desc,
const char *  from_recordedseek_asc,
const char *  from_recordedseek_desc 
) const

◆ QueryKeyFramePosition()

bool ProgramInfo::QueryKeyFramePosition ( uint64_t *  position,
uint64_t  keyframe,
bool  backwards 
) const

Definition at line 4026 of file programinfo.cpp.

Referenced by FillCommBreak(), FillCutList(), and Dvr::GetSavedBookmark().

◆ QueryPositionKeyFrame()

bool ProgramInfo::QueryPositionKeyFrame ( uint64_t *  keyframe,
uint64_t  position,
bool  backwards 
) const

Definition at line 4017 of file programinfo.cpp.

Referenced by Dvr::SetSavedBookmark().

◆ QueryKeyFrameDuration()

bool ProgramInfo::QueryKeyFrameDuration ( uint64_t *  duration,
uint64_t  keyframe,
bool  backwards 
) const

Definition at line 4044 of file programinfo.cpp.

Referenced by FillCommBreak(), FillCutList(), and Dvr::GetSavedBookmark().

◆ QueryDurationKeyFrame()

bool ProgramInfo::QueryDurationKeyFrame ( uint64_t *  keyframe,
uint64_t  duration,
bool  backwards 
) const

Definition at line 4035 of file programinfo.cpp.

Referenced by Dvr::SetSavedBookmark().

◆ QueryMarkup()

void ProgramInfo::QueryMarkup ( QVector< MarkupEntry > &  mapMark,
QVector< MarkupEntry > &  mapSeek 
) const

Definition at line 4385 of file programinfo.cpp.

Referenced by GetMarkup().

◆ SaveMarkup()

void ProgramInfo::SaveMarkup ( const QVector< MarkupEntry > &  mapMark,
const QVector< MarkupEntry > &  mapSeek 
) const

Definition at line 4466 of file programinfo.cpp.

Referenced by SetMarkup().

◆ SendUpdateEvent()

void ProgramInfo::SendUpdateEvent ( void  ) const

◆ SendAddedEvent()

void ProgramInfo::SendAddedEvent ( void  ) const

Sends event out that the ProgramInfo should be added to lists.

Definition at line 2611 of file programinfo.cpp.

Referenced by SaveDeletePendingFlag(), and RecordingInfo::StartedRecording().

◆ SendDeletedEvent()

void ProgramInfo::SendDeletedEvent ( void  ) const

Sends event out that the ProgramInfo should be delete from lists.

Definition at line 2616 of file programinfo.cpp.

Referenced by MainServer::DoHandleDeleteRecording().

◆ i18n()

QString ProgramInfo::i18n ( const QString &  msg)
static

◆ MakeUniqueKey() [2/2]

QString ProgramInfo::MakeUniqueKey ( uint  chanid,
const QDateTime &  recstartts 
)
static

Creates a unique string that can be used to identify a recording.

Definition at line 1160 of file programinfo.cpp.

◆ ExtractKey()

bool ProgramInfo::ExtractKey ( const QString &  uniquekey,
uint chanid,
QDateTime &  recstartts 
)
static

Extracts chanid and recstartts from a unique key generated by MakeUniqueKey().

Returns
true iff a valid chanid and recstartts have been extracted.

Definition at line 1169 of file programinfo.cpp.

Referenced by TV::customEvent(), and incomingCustomEvent().

◆ ExtractKeyFromPathname()

bool ProgramInfo::ExtractKeyFromPathname ( const QString &  pathname,
uint chanid,
QDateTime &  recstartts 
)
static

Definition at line 1180 of file programinfo.cpp.

Referenced by QueryKeyFromPathname().

◆ QueryKeyFromPathname()

bool ProgramInfo::QueryKeyFromPathname ( const QString &  pathname,
uint chanid,
QDateTime &  recstartts 
)
static

Definition at line 1202 of file programinfo.cpp.

Referenced by preview_helper(), and ProgramInfo().

◆ QueryRecordedIdFromPathname()

bool ProgramInfo::QueryRecordedIdFromPathname ( const QString &  pathname,
uint recordedid 
)
static

Definition at line 1225 of file programinfo.cpp.

Referenced by Dvr::RecordedIdForPathname().

◆ QueryRecordingGroupPassword()

QString ProgramInfo::QueryRecordingGroupPassword ( const QString &  group)
static

Definition at line 4789 of file programinfo.cpp.

◆ QueryBookmark() [2/2]

uint64_t ProgramInfo::QueryBookmark ( uint  chanid,
const QDateTime &  recstartts 
)
static

Definition at line 2662 of file programinfo.cpp.

◆ QueryInUseMap()

QMap< QString, uint32_t > ProgramInfo::QueryInUseMap ( void  )
static

◆ QueryJobsRunning()

QMap< QString, bool > ProgramInfo::QueryJobsRunning ( int  type)
static

◆ LoadFromScheduler()

QStringList ProgramInfo::LoadFromScheduler ( const QString &  tmptable,
int  recordid 
)
static

◆ QueryMarkupMap() [1/3]

void ProgramInfo::QueryMarkupMap ( frm_dir_map_t marks,
MarkTypes  type,
bool  merge = false 
) const

◆ SaveMarkupMap()

void ProgramInfo::SaveMarkupMap ( const frm_dir_map_t marks,
MarkTypes  type = MARK_ALL,
int64_t  min_frame = -1,
int64_t  max_frame = -1 
) const

◆ ClearMarkupMap()

void ProgramInfo::ClearMarkupMap ( MarkTypes  type = MARK_ALL,
int64_t  min_frame = -1,
int64_t  max_frame = -1 
) const

◆ CreateRecordBasename()

QString ProgramInfo::CreateRecordBasename ( const QString &  ext) const
protected

Returns a filename for a recording based on the recording channel and date.

Definition at line 2286 of file programinfo.cpp.

Referenced by RecordingInfo::StartedRecording().

◆ LoadProgramFromRecorded()

bool ProgramInfo::LoadProgramFromRecorded ( uint  chanid,
const QDateTime &  _recstartts 
)
protected

Loads ProgramInfo for an existing recording.

Returns
true iff sucessful

Definition at line 1876 of file programinfo.cpp.

Referenced by ProgramInfo().

◆ FromStringList()

bool ProgramInfo::FromStringList ( QStringList::const_iterator &  it,
const QStringList::const_iterator &  end 
)
protected

Uses a QStringList to initialize this ProgramInfo instance.

Parameters
itIterator pointing to first item in list to treat as beginning of serialized ProgramInfo.
endIterator that will stop parsing of the ProgramInfo
Returns
true if it succeeds, false if it fails.
See also
FromStringList(const QStringList&,uint) ToStringList(QStringList&) const

Definition at line 1373 of file programinfo.cpp.

◆ QueryMarkupMap() [2/3]

void ProgramInfo::QueryMarkupMap ( const QString &  video_pathname,
frm_dir_map_t marks,
MarkTypes  type,
bool  merge = false 
)
staticprotected

Definition at line 3508 of file programinfo.cpp.

◆ QueryMarkupMap() [3/3]

void ProgramInfo::QueryMarkupMap ( uint  chanid,
const QDateTime &  recstartts,
frm_dir_map_t marks,
MarkTypes  type,
bool  merge = false 
)
staticprotected

Definition at line 3539 of file programinfo.cpp.

◆ InitStatics()

int ProgramInfo::InitStatics ( void  )
staticprotected

Definition at line 5192 of file programinfo.cpp.

Referenced by pginfo_init_statics().

◆ SetAvailableStatus()

void ProgramInfo::SetAvailableStatus ( AvailableStatusType  status,
const QString &  where 
)

◆ GetAvailableStatus()

AvailableStatusType ProgramInfo::GetAvailableStatus ( void  ) const
inline

Friends And Related Function Documentation

◆ pginfo_init_statics

int pginfo_init_statics ( void  )
friend

Definition at line 44 of file programinfo.cpp.

Member Data Documentation

◆ kNumCatTypes

constexpr int ProgramInfo::kNumCatTypes = 5
staticconstexpr

Definition at line 71 of file programinfo.h.

◆ m_title

QString ProgramInfo::m_title
protected

◆ m_sortTitle

QString ProgramInfo::m_sortTitle
protected

Definition at line 741 of file programinfo.h.

Referenced by clear(), clone(), ensureSortFields(), ProgramInfo(), SetTitle(), and ToMap().

◆ m_subtitle

QString ProgramInfo::m_subtitle
protected

◆ m_sortSubtitle

QString ProgramInfo::m_sortSubtitle
protected

Definition at line 743 of file programinfo.h.

Referenced by clear(), clone(), ensureSortFields(), ProgramInfo(), SetSubtitle(), and ToMap().

◆ m_description

QString ProgramInfo::m_description
protected

◆ m_season

uint ProgramInfo::m_season {0}
protected

◆ m_episode

uint ProgramInfo::m_episode {0}
protected

◆ m_totalEpisodes

uint ProgramInfo::m_totalEpisodes {0}
protected

◆ m_syndicatedEpisode

QString ProgramInfo::m_syndicatedEpisode
protected

◆ m_category

QString ProgramInfo::m_category
protected

◆ m_director

QString ProgramInfo::m_director
protected

Definition at line 750 of file programinfo.h.

Referenced by clear(), clone(), operator==(), ProgramInfo(), and ToMap().

◆ m_recPriority

int32_t ProgramInfo::m_recPriority {0}
protected

◆ m_chanId

uint32_t ProgramInfo::m_chanId {0}
protected

Definition at line 754 of file programinfo.h.

Referenced by RecordingInfo::AddHistory(), RecordingInfo::ApplyRecordPlayGroupChange(), RecordingInfo::ApplyRecordRecGroupChange(), RecordingInfo::ApplyRecordRecID(), RecordingInfo::ApplyRecordRecTitleChange(), RecordingInfo::ApplyStorageGroupChange(), RecordingInfo::ApplyTranscoderProfileChange(), RecordingInfo::ApplyTranscoderProfileChangeById(), clear(), ClearMarkupMap(), ClearPositionMap(), clone(), RecordingInfo::clone(), CreateRecordBasename(), DiscoverProgramInfoType(), RecordingInfo::FinishedRecording(), RecordingInfo::ForgetHistory(), FromStringList(), GetFilesize(), RecordingInfo::InsertProgram(), IsSameChannel(), IsSameProgramWeakCheck(), IsSameRecording(), LoadProgramFromRecorded(), MarkAsInUse(), operator==(), ProgramInfo(), QueryAutoExpire(), QueryAverageAspectRatio(), QueryAverageFrameRate(), QueryAverageHeight(), QueryAverageScanProgressive(), QueryAverageWidth(), QueryBookmarkTimeStamp(), QueryCategoryType(), QueryIsEditing(), QueryIsInUse(), QueryKeyFrameInfo(), QueryMarkup(), QueryMarkupMap(), QueryMplexID(), QueryPositionMap(), QueryRecordingGroup(), QueryTotalDuration(), QueryTotalFrames(), QueryTranscoderID(), QueryTranscodeStatus(), QueryTuningInfo(), RecordingInfo::RecordingInfo(), Reload(), SaveAspect(), SaveAutoExpire(), SaveBookmark(), SaveCommFlagged(), SaveCutList(), SaveDeletePendingFlag(), SaveEditing(), SaveFilesize(), SaveFrameRate(), SaveInetRef(), SaveMarkup(), SaveMarkupMap(), SavePositionMap(), SavePositionMapDelta(), SavePreserve(), SaveResolution(), SaveSeasonEpisode(), SaveTotalDuration(), SaveTotalFrames(), SaveTranscodeStatus(), SaveVideoProperties(), SaveVideoScanType(), SaveWatched(), SetPathname(), RecordingInfo::StartedRecording(), SubstituteMatches(), ToMap(), ToStringList(), and RecordingInfo::UpdateRecordingEnd().

◆ m_chanStr

QString ProgramInfo::m_chanStr
protected

◆ m_chanSign

QString ProgramInfo::m_chanSign
protected

◆ m_chanName

QString ProgramInfo::m_chanName
protected

◆ m_chanPlaybackFilters

QString ProgramInfo::m_chanPlaybackFilters
protected

◆ m_recGroup

QString ProgramInfo::m_recGroup {"Default"}
protected

◆ m_playGroup

QString ProgramInfo::m_playGroup {"Default"}
protected

◆ m_pathname

QString ProgramInfo::m_pathname
mutableprotected

◆ m_hostname

QString ProgramInfo::m_hostname
protected

◆ m_storageGroup

QString ProgramInfo::m_storageGroup {"Default"}
protected

◆ m_seriesId

QString ProgramInfo::m_seriesId
protected

◆ m_programId

QString ProgramInfo::m_programId
protected

◆ m_inetRef

QString ProgramInfo::m_inetRef
protected

◆ m_catType

CategoryType ProgramInfo::m_catType {kCategoryNone}
protected

◆ m_fileSize

uint64_t ProgramInfo::m_fileSize {0ULL}
protected

◆ m_startTs

QDateTime ProgramInfo::m_startTs {MythDate::current(true)}
protected

◆ m_endTs

QDateTime ProgramInfo::m_endTs {m_startTs}
protected

◆ m_recStartTs

QDateTime ProgramInfo::m_recStartTs {m_startTs}
protected

Definition at line 777 of file programinfo.h.

Referenced by RecordingInfo::ApplyRecordPlayGroupChange(), RecordingInfo::ApplyRecordRecGroupChange(), RecordingInfo::ApplyRecordRecID(), RecordingInfo::ApplyRecordRecTitleChange(), RecordingInfo::ApplyStorageGroupChange(), RecordingInfo::ApplyTranscoderProfileChange(), RecordingInfo::ApplyTranscoderProfileChangeById(), clear(), ClearMarkupMap(), ClearPositionMap(), clone(), RecordingInfo::clone(), CreateRecordBasename(), RecordingInfo::DeleteHistory(), RecordingInfo::FinishedRecording(), RecordingInfo::ForgetHistory(), FromStringList(), GetFilesize(), GetSecondsInRecording(), RecordingInfo::InsertProgram(), IsSameRecording(), LoadProgramFromRecorded(), MarkAsInUse(), operator==(), ProgramInfo(), QueryAutoExpire(), QueryAverageAspectRatio(), QueryAverageFrameRate(), QueryAverageHeight(), QueryAverageScanProgressive(), QueryAverageWidth(), QueryBookmarkTimeStamp(), QueryIsEditing(), QueryIsInUse(), QueryKeyFrameInfo(), QueryMarkup(), QueryMarkupMap(), QueryPositionMap(), QueryRecordingGroup(), QueryTotalDuration(), QueryTotalFrames(), QueryTranscoderID(), QueryTranscodeStatus(), RecordingInfo::RecordingInfo(), Reload(), SaveAspect(), SaveAutoExpire(), SaveBookmark(), SaveCommFlagged(), SaveCutList(), SaveDeletePendingFlag(), SaveEditing(), SaveFilesize(), SaveFrameRate(), SaveInetRef(), SaveMarkup(), SaveMarkupMap(), SavePositionMap(), SavePositionMapDelta(), SavePreserve(), SaveResolution(), SaveSeasonEpisode(), SaveTotalDuration(), SaveTotalFrames(), SaveTranscodeStatus(), SaveVideoScanType(), SaveWatched(), RecordingInfo::StartedRecording(), SubstituteMatches(), ToMap(), toString(), ToStringList(), UpdateLastDelete(), and RecordingInfo::UpdateRecordingEnd().

◆ m_recEndTs

QDateTime ProgramInfo::m_recEndTs {m_startTs}
protected

◆ m_stars

float ProgramInfo::m_stars {0.0F}
protected

◆ m_originalAirDate

QDate ProgramInfo::m_originalAirDate
protected

◆ m_lastModified

QDateTime ProgramInfo::m_lastModified {m_startTs}
protected

◆ m_lastInUseTime

QDateTime ProgramInfo::m_lastInUseTime {m_startTs.addSecs(-4 * 60 * 60)}
protected

◆ m_recPriority2

int32_t ProgramInfo::m_recPriority2 {0}
protected

◆ m_recordId

uint32_t ProgramInfo::m_recordId {0}
protected

◆ m_parentId

uint32_t ProgramInfo::m_parentId {0}
protected

◆ m_sourceId

uint32_t ProgramInfo::m_sourceId {0}
protected

◆ m_inputId

uint32_t ProgramInfo::m_inputId {0}
protected

◆ m_findId

uint32_t ProgramInfo::m_findId {0}
protected

◆ m_programFlags

uint32_t ProgramInfo::m_programFlags {FL_NONE}
protected

◆ m_properties

uint16_t ProgramInfo::m_properties {0}
protected

SubtitleType,VideoProperty,AudioProperty.

Definition at line 796 of file programinfo.h.

Referenced by clear(), clone(), FromStringList(), LoadProgramFromRecorded(), operator==(), RecordingInfo::RecordingInfo(), and SaveVideoProperties().

◆ m_year

uint16_t ProgramInfo::m_year {0}
protected

◆ m_partNumber

uint16_t ProgramInfo::m_partNumber {0}
protected

◆ m_partTotal

uint16_t ProgramInfo::m_partTotal {0}
protected

◆ m_recStatus

int8_t ProgramInfo::m_recStatus {RecStatus::Unknown}
protected

◆ m_recType

uint8_t ProgramInfo::m_recType {kNotRecording}
protected

◆ m_dupIn

uint8_t ProgramInfo::m_dupIn {kDupsInAll}
protected

◆ m_dupMethod

uint8_t ProgramInfo::m_dupMethod {kDupCheckSubThenDesc}
protected

◆ m_recordedId

uint ProgramInfo::m_recordedId {0}
protected

◆ m_inputName

QString ProgramInfo::m_inputName
protected

◆ m_bookmarkUpdate

QDateTime ProgramInfo::m_bookmarkUpdate
protected

◆ m_availableStatus

uint8_t ProgramInfo::m_availableStatus {asAvailable}
protected

◆ m_spread

int8_t ProgramInfo::m_spread {-1}

◆ m_startCol

int8_t ProgramInfo::m_startCol {-1}

◆ kFromRecordedQuery

const QString ProgramInfo::kFromRecordedQuery
static
Initial value:
=
"SELECT r.title, r.subtitle, r.description, "
" r.season, r.episode, r.category, "
" r.chanid, c.channum, c.callsign, "
" c.name, c.outputfilters,r.recgroup, "
" r.playgroup, r.storagegroup, r.basename, "
" r.hostname, r.recpriority, r.seriesid, "
" r.programid, r.inetref, r.filesize, "
" r.progstart, r.progend, r.stars, "
" r.starttime, r.endtime, p.airdate+0, "
" r.originalairdate, r.lastmodified, r.recordid, "
" c.commmethod, r.commflagged, r.previouslyshown, "
" r.transcoder, r.transcoded, r.deletepending, "
" r.preserve, r.cutlist, r.autoexpire, "
" r.editing, r.bookmark, r.watched, "
" p.audioprop+0, p.videoprop+0, p.subtitletypes+0, "
" r.findid, rec.dupin, rec.dupmethod, "
" p.syndicatedepisodenumber, p.partnumber, p.parttotal, "
" p.season, p.episode, p.totalepisodes, "
" p.category_type, r.recordedid, r.inputname, "
" r.bookmarkupdate "
"FROM recorded AS r "
"LEFT JOIN channel AS c "
"ON (r.chanid = c.chanid) "
"LEFT JOIN recordedprogram AS p "
"ON (r.chanid = p.chanid AND "
" r.progstart = p.starttime) "
"LEFT JOIN record AS rec "
"ON (r.recordid = rec.recordid) "

Definition at line 819 of file programinfo.h.

Referenced by LoadFromRecorded(), and LoadProgramFromRecorded().

◆ m_inUseForWhat

QString ProgramInfo::m_inUseForWhat
protected

◆ m_positionMapDBReplacement

PMapDBReplacement* ProgramInfo::m_positionMapDBReplacement {nullptr}
protected

◆ s_staticDataLock

QMutex ProgramInfo::s_staticDataLock
staticprotected

Definition at line 825 of file programinfo.h.

Referenced by InitStatics(), and RecordingInfo::RecordingInfo().

◆ s_updater

ProgramInfoUpdater * ProgramInfo::s_updater
staticprotected

◆ s_usingProgIDAuth

bool ProgramInfo::s_usingProgIDAuth = true
staticprotected

Definition at line 827 of file programinfo.h.

Referenced by CheckProgramIDAuthorities(), IsDuplicateProgram(), and IsSameProgram().


The documentation for this class was generated from the following files: