MythTV  master
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Static Protected Member Functions | Static Protected Attributes | Private Attributes | List of all members
RecordingInfo Class Reference

Holds information on a TV Program one might wish to record. More...

#include <recordinginfo.h>

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

Public Types

enum  LoadStatus { kNoProgram = 0, kFoundProgram = 1, kFakedLiveTVProgram = 2, kFakedZeroMinProgram = 3 }
 
enum  SpecialRecordingGroups { kDefaultRecGroup = 1, kLiveTVRecGroup = 2, kDeletedRecGroup = 3 }
 
- Public Types inherited from ProgramInfo
enum  CategoryType {
  kCategoryNone, kCategoryMovie, kCategorySeries, kCategorySports,
  kCategoryTVShow
}
 
enum  Verbosity { kLongDescription, kTitleSubtitle, kRecordingKey, kSchedulingKey }
 

Public Member Functions

 RecordingInfo (void)
 
 RecordingInfo (const RecordingInfo &other)
 
 RecordingInfo (const ProgramInfo &other)
 
 RecordingInfo (uint _recordedid)
 
 RecordingInfo (uint _chanid, const QDateTime &_recstartts)
 
 RecordingInfo (QStringList::const_iterator &it, const QStringList::const_iterator &end)
 
 RecordingInfo (const QString &title, const QString &sortTitle, const QString &subtitle, const QString &sortSubtitle, const QString &description, uint season, uint episode, uint totalepisodes, const QString &syndicatedepisode, const QString &category, uint chanid, const QString &chanstr, const QString &chansign, const QString &channame, const QString &recgroup, const QString &playgroup, const QString &hostname, const QString &storagegroup, uint year, uint partnumber, uint parttotal, const QString &seriesid, const QString &programid, const QString &inetref, CategoryType catType, int recpriority, const QDateTime &startts, const QDateTime &endts, const QDateTime &recstartts, const QDateTime &recendts, float stars, QDate originalAirDate, bool repeat, RecStatus::Type oldrecstatus, bool reactivate, uint recordid, uint parentid, RecordingType rectype, RecordingDupInType dupin, RecordingDupMethodType dupmethod, uint sourceid, uint inputid, uint findid, bool commfree, uint subtitleType, uint videoproperties, uint audioproperties, bool future, int schedorder, uint mplexid, uint sgroupid, const QString &inputname)
 Create RecordingInfo from 'program'+'record'+'channel' tables, used in scheduler.cpp @ ~ 3296. More...
 
 RecordingInfo (const QString &title, const QString &sortTitle, const QString &subtitle, const QString &sortSubtitle, const QString &description, uint season, uint episode, const QString &category, uint chanid, const QString &chanstr, const QString &chansign, const QString &channame, const QString &recgroup, const QString &playgroup, const QString &seriesid, const QString &programid, const QString &inetref, int recpriority, const QDateTime &startts, const QDateTime &endts, const QDateTime &recstartts, const QDateTime &recendts, RecStatus::Type recstatus, uint recordid, RecordingType rectype, RecordingDupInType dupin, RecordingDupMethodType dupmethod, uint findid, bool commfree)
 Create RecordingInfo from 'record'+'channel' tables, user in scheduler.cpp @ ~ 3566 & ~ 3643. More...
 
 RecordingInfo (uint _chanid, const QDateTime &desiredts, bool genUnknown, std::chrono::hours maxHours=0h, LoadStatus *status=nullptr)
 Fills RecordingInfo for the program that airs at "desiredts" on "chanid". More...
 
RecordingInfooperator= (const RecordingInfo &other)
 
RecordingInfooperator= (const ProgramInfo &other)
 
virtual void clone (const RecordingInfo &other, bool ignore_non_serialized_data=false)
 Copies important fields from other RecordingInfo. More...
 
void clone (const ProgramInfo &other, bool ignore_non_serialized_data=false) override
 Copies important fields from ProgramInfo. More...
 
void clear (void) override
 
 ~RecordingInfo () override
 Destructor deletes "record" if it exists. More...
 
void SubstituteMatches (QString &str) override
 Replace MATCH% vars in the specified string. More...
 
void SetRecordingID (uint _recordedid) override
 
QString MakeUniqueSchedulerKey (void) const
 Creates a unique string that can be used to identify a scheduled recording. More...
 
RecordingRuleGetRecordingRule (void)
 Returns the "record" field, creating it if necessary. More...
 
int getRecordID (void)
 Returns a record id, creating "record" it if necessary. More...
 
int GetAutoRunJobs (void) const
 Returns a bitmap of which jobs are attached to this RecordingInfo. More...
 
RecordingType GetProgramRecordingStatus (void)
 Returns the recording type for this RecordingInfo, creating "record" field if necessary. More...
 
QString GetProgramRecordingProfile (void) const
 Returns recording profile name that will be, or was used, for this program, creating "record" field if necessary. More...
 
void ApplyRecordStateChange (RecordingType newstate, bool save=true)
 Sets RecordingType of "record", creating "record" if it does not exist. More...
 
void ApplyRecordRecPriorityChange (int newrecpriority)
 Sets recording priority of "record", creating "record" if it does not exist. More...
 
void QuickRecord (void)
 Create a kSingleRecord if not already scheduled. More...
 
void SetDesiredStartTime (const QDateTime &dt)
 
void SetDesiredEndTime (const QDateTime &dt)
 
QDateTime GetDesiredStartTime (void) const
 
QDateTime GetDesiredEndTime (void) const
 
void AddHistory (bool resched=true, bool forcedup=false, bool future=false)
 Adds recording history, creating "record" it if necessary. More...
 
void DeleteHistory (void)
 Deletes recording history, creating "record" it if necessary. More...
 
void ForgetHistory (void)
 Forget the recording of a program so it will be recorded again. More...
 
void SetDupHistory (void)
 Set the duplicate flag in oldrecorded. More...
 
void StartedRecording (const QString &ext)
 Inserts this RecordingInfo into the database as an existing recording. More...
 
bool InsertRecording (const QString &ext, bool force_match=false)
 
void InsertFile (void)
 
void FinishedRecording (bool allowReRecord)
 If not a premature stop, adds program to history of recorded programs. More...
 
void UpdateRecordingEnd (void)
 Update information in the recorded table when the end-time of a recording is changed. More...
 
void ReactivateRecording (void)
 Asks the scheduler to restart this recording if possible. More...
 
void ApplyRecordRecID (void)
 Sets recordid to match RecordingRule recordid. More...
 
void ApplyRecordRecGroupChange (const QString &newrecgroup)
 Sets the recording group, both in this RecordingInfo and in the database. More...
 
void ApplyRecordRecGroupChange (int newrecgroupid)
 
void ApplyRecordPlayGroupChange (const QString &newplaygroup)
 Sets the recording group, both in this RecordingInfo and in the database. More...
 
void ApplyStorageGroupChange (const QString &newstoragegroup)
 Sets the storage group, both in this RecordingInfo and in the database. More...
 
void ApplyRecordRecTitleChange (const QString &newTitle, const QString &newSubtitle, const QString &newDescription)
 Sets the recording title, subtitle, and description both in this RecordingInfo and in the database. More...
 
void ApplyTranscoderProfileChange (const QString &profile) const
 Sets the transcoder profile for a recording. More...
 
void ApplyTranscoderProfileChangeById (int id)
 
void ApplyNeverRecord (void)
 Set this program to never be recorded by inserting 'history' for it into the database with a status of RecStatus::NeverRecord. More...
 
void ApplyStarsChange (float newstarsvalue)
 Sets the stars value in the database. More...
 
void ApplyOriginalAirDateChange (QDate originalairdate)
 
void LoadRecordingFile ()
 
RecordingFileGetRecordingFile () const
 
void SaveFilesize (uint64_t fsize) override
 Sets recording file size in database, and sets "filesize" field. More...
 
void SetFilesize (uint64_t fsize) override
 
uint64_t GetFilesize (void) const override
 
- Public Member Functions inherited from ProgramInfo
 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, 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, 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, std::chrono::minutes 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...
 
void ensureSortFields (void)
 Ensure that the sortTitle and sortSubtitle fields are set. More...
 
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, uint date_format=0) const
 Converts ProgramInfo into QString QHash containing each field in ProgramInfo converted into localized strings. 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...
 
std::chrono::seconds 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
 
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
 
QString GetProgramFlagNames (void) const
 
ProgramInfoType GetProgramInfoType (void) const
 
QDateTime GetBookmarkUpdate (void) const
 
bool IsGeneric (void) const
 
bool IsInUsePlaying (void) const
 
bool IsCommercialFree (void) const
 
bool IsCommercialFlagged (void) const
 
bool HasCutlist (void) const
 
bool IsBookmarkSet (void) const
 
bool IsLastPlaySet (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
 
QString GetSubtitleTypeNames (void) const
 
uint GetVideoProperties (void) const
 
QString GetVideoPropertyNames (void) const
 
uint GetAudioProperties (void) const
 
QString GetAudioPropertyNames (void) const
 
void ProgramFlagsFromNames (const QString &names)
 
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)
 
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 SetIgnoreLastPlayPos (bool ignore)
 If "ignore" is true QueryLastPlayPos() will return 0, otherwise QueryLastPlayPos() will return the last playback position if it exists. More...
 
void SetRecordingStatus (RecStatus::Type status)
 
void SetRecordingRuleType (RecordingType type)
 
void SetPositionMapDBReplacement (PMapDBReplacement *pmap)
 
void CalculateRecordedProgress ()
 
uint GetRecordedPercent () const
 
void CalculateWatchedProgress (uint64_t pos)
 
uint GetWatchedPercent () const
 
void SetWatchedPercent (uint progress)
 
void CalculateProgress (uint64_t pos)
 
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...
 
uint64_t QueryStartMark (void) const
 
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...
 
std::chrono::milliseconds 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)
 
void SaveLastPlayPos (uint64_t frame)
 TODO Move to RecordingInfo. More...
 
void SaveBookmark (uint64_t frame)
 Clears any existing bookmark in DB and if frame is greater than 0 sets a new bookmark. 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 (std::chrono::milliseconds 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 UpdateMarkTimeStamp (bool bookmarked) const
 
void UpdateLastPlayTimeStamp (bool lastplay) const
 
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 QueryRecordedIdForKey (int &recordedid, uint chanid, const QDateTime &recstartts)
 
static QString GetRecgroupString (uint recGroupID)
 Temporary helper during transition from string to ID. More...
 
static uint GetRecgroupID (const QString &recGroup)
 Temporary helper during transition from string to ID. More...
 
- Static Public Member Functions inherited from ProgramInfo
static bool UsingProgramIDAuthority (void)
 
static void CheckProgramIDAuthorities (void)
 
static uint SubtitleTypesFromNames (const QString &names)
 
static uint VideoPropertiesFromNames (const QString &names)
 
static uint AudioPropertiesFromNames (const QString &names)
 
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

RecStatus::Type m_oldrecstatus {RecStatus::Unknown}
 
RecStatus::Type m_savedrecstatus {RecStatus::Unknown}
 
bool m_future {false}
 
int m_schedOrder {0}
 
uint m_mplexId {0}
 
uint m_sgroupId {0}
 
QDateTime m_desiredRecStartTs
 
QDateTime m_desiredRecEndTs
 
- Public Attributes inherited from ProgramInfo
int8_t m_spread {-1}
 
int8_t m_startCol {-1}
 
QDateTime m_previewUpdate
 

Static Public Attributes

static const QRegularExpression kReSearchTypeName { R"(\s*\(.*\)$)" }
 
static const QRegularExpression kReLeadingAnd { R"(^\s*AND\s*)", QRegularExpression::CaseInsensitiveOption }
 
- Static Public Attributes inherited from ProgramInfo
static constexpr int kNumCatTypes = 5
 
static const QString kFromRecordedQuery
 

Static Protected Member Functions

static bool InsertProgram (RecordingInfo *pg, const RecordingRule *rule)
 
- Static Protected Member Functions inherited from ProgramInfo
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)
 

Static Protected Attributes

static QString s_unknownTitle
 
- Static Protected Attributes inherited from ProgramInfo
static constexpr int64_t kLastInUseOffset {4LL * 60 * 60}
 
static QMutex s_staticDataLock
 
static ProgramInfoUpdaters_updater
 
static bool s_usingProgIDAuth = true
 

Private Attributes

class RecordingRulem_record {nullptr}
 
RecordingFilem_recordingFile {nullptr}
 

Additional Inherited Members

- Protected Member Functions inherited from ProgramInfo
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...
 
- Protected Attributes inherited from ProgramInfo
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(-kLastInUseOffset)}
 
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...
 
VideoPropsType m_videoProperties {VID_UNKNOWN}
 
AudioPropsType m_audioProperties {AUD_UNKNOWN}
 
SubtitlePropsType m_subtitleProperties {SUB_UNKNOWN}
 
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}
 
int8_t m_recordedPercent {-1}
 
int8_t m_watchedPercent {-1}
 
QString m_inUseForWhat
 
PMapDBReplacementm_positionMapDBReplacement {nullptr}
 

Detailed Description

Holds information on a TV Program one might wish to record.

This class exxtends ProgramInfo with additional information about scheduled recordings and contains helper methods to aid in the scheduling of recordings.

Definition at line 35 of file recordinginfo.h.

Member Enumeration Documentation

◆ LoadStatus

Enumerator
kNoProgram 
kFoundProgram 
kFakedLiveTVProgram 
kFakedZeroMinProgram 

Definition at line 180 of file recordinginfo.h.

◆ SpecialRecordingGroups

Enumerator
kDefaultRecGroup 
kLiveTVRecGroup 
kDeletedRecGroup 

Definition at line 190 of file recordinginfo.h.

Constructor & Destructor Documentation

◆ RecordingInfo() [1/9]

RecordingInfo::RecordingInfo ( void  )
inline

Definition at line 38 of file recordinginfo.h.

◆ RecordingInfo() [2/9]

RecordingInfo::RecordingInfo ( const RecordingInfo other)
inline

Definition at line 39 of file recordinginfo.h.

◆ RecordingInfo() [3/9]

RecordingInfo::RecordingInfo ( const ProgramInfo other)
inlineexplicit

Definition at line 49 of file recordinginfo.h.

◆ RecordingInfo() [4/9]

RecordingInfo::RecordingInfo ( uint  _recordedid)
inlineexplicit

Definition at line 53 of file recordinginfo.h.

◆ RecordingInfo() [5/9]

RecordingInfo::RecordingInfo ( uint  _chanid,
const QDateTime &  _recstartts 
)
inline

Definition at line 57 of file recordinginfo.h.

◆ RecordingInfo() [6/9]

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

Definition at line 61 of file recordinginfo.h.

◆ RecordingInfo() [7/9]

RecordingInfo::RecordingInfo ( const QString &  title,
const QString &  sortTitle,
const QString &  subtitle,
const QString &  sortSubtitle,
const QString &  description,
uint  season,
uint  episode,
uint  totalepisodes,
const QString &  syndicatedepisode,
const QString &  category,
uint  chanid,
const QString &  chanstr,
const QString &  chansign,
const QString &  channame,
const QString &  recgroup,
const QString &  playgroup,
const QString &  hostname,
const QString &  storagegroup,
uint  year,
uint  partnumber,
uint  parttotal,
const QString &  seriesid,
const QString &  programid,
const QString &  inetref,
CategoryType  catType,
int  recpriority,
const QDateTime &  startts,
const QDateTime &  endts,
const QDateTime &  recstartts,
const QDateTime &  recendts,
float  stars,
QDate  originalAirDate,
bool  repeat,
RecStatus::Type  oldrecstatus,
bool  reactivate,
uint  recordid,
uint  parentid,
RecordingType  rectype,
RecordingDupInType  dupin,
RecordingDupMethodType  dupmethod,
uint  sourceid,
uint  inputid,
uint  findid,
bool  commfree,
uint  subtitleType,
uint  videoproperties,
uint  audioproperties,
bool  future,
int  schedorder,
uint  mplexid,
uint  sgroupid,
const QString &  inputname 
)

Create RecordingInfo from 'program'+'record'+'channel' tables, used in scheduler.cpp @ ~ 3296.

Definition at line 37 of file recordinginfo.cpp.

◆ RecordingInfo() [8/9]

RecordingInfo::RecordingInfo ( const QString &  title,
const QString &  sortTitle,
const QString &  subtitle,
const QString &  sortSubtitle,
const QString &  description,
uint  season,
uint  episode,
const QString &  category,
uint  chanid,
const QString &  chanstr,
const QString &  chansign,
const QString &  channame,
const QString &  recgroup,
const QString &  playgroup,
const QString &  seriesid,
const QString &  programid,
const QString &  inetref,
int  recpriority,
const QDateTime &  startts,
const QDateTime &  endts,
const QDateTime &  recstartts,
const QDateTime &  recendts,
RecStatus::Type  recstatus,
uint  recordid,
RecordingType  rectype,
RecordingDupInType  dupin,
RecordingDupMethodType  dupmethod,
uint  findid,
bool  commfree 
)

Create RecordingInfo from 'record'+'channel' tables, user in scheduler.cpp @ ~ 3566 & ~ 3643.

Definition at line 167 of file recordinginfo.cpp.

◆ RecordingInfo() [9/9]

RecordingInfo::RecordingInfo ( uint  _chanid,
const QDateTime &  desiredts,
bool  genUnknown,
std::chrono::hours  maxHours = 0h,
LoadStatus status = nullptr 
)

Fills RecordingInfo for the program that airs at "desiredts" on "chanid".

Parameters
_chanidChannel ID on which to search for program.
desiredtsDate and Time for which we desire the program.
genUnknownGenerate a full entry for live-tv if unknown
maxHoursClamp the maximum time to X hours from dtime.
[out]statusLoadStatus describing what happened.

Definition at line 241 of file recordinginfo.cpp.

◆ ~RecordingInfo()

RecordingInfo::~RecordingInfo ( )
override

Destructor deletes "record" if it exists.

Definition at line 462 of file recordinginfo.cpp.

Member Function Documentation

◆ operator=() [1/2]

RecordingInfo& RecordingInfo::operator= ( const RecordingInfo other)
inline

Definition at line 203 of file recordinginfo.h.

◆ operator=() [2/2]

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

Definition at line 205 of file recordinginfo.h.

◆ clone() [1/2]

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

Copies important fields from other RecordingInfo.

Reimplemented in ProgramRecPriorityInfo.

Definition at line 372 of file recordinginfo.cpp.

Referenced by ProgramRecPriorityInfo::clone(), and operator=().

◆ clone() [2/2]

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

Copies important fields from ProgramInfo.

Reimplemented from ProgramInfo.

Reimplemented in ProgramRecPriorityInfo.

Definition at line 407 of file recordinginfo.cpp.

◆ clear()

void RecordingInfo::clear ( void  )
overridevirtual

Reimplemented from ProgramInfo.

Reimplemented in ProgramRecPriorityInfo.

Definition at line 438 of file recordinginfo.cpp.

Referenced by ProgramRecPriorityInfo::clear().

◆ SubstituteMatches()

void RecordingInfo::SubstituteMatches ( QString &  str)
overridevirtual

Replace MATCH% vars in the specified string.

Parameters
strQString containing matches to be substituted

Reimplemented from ProgramInfo.

Definition at line 1669 of file recordinginfo.cpp.

Referenced by MythSystemEventHandler::SubstituteMatches().

◆ SetRecordingID()

void RecordingInfo::SetRecordingID ( uint  _recordedid)
inlineoverridevirtual

Reimplemented from ProgramInfo.

Definition at line 220 of file recordinginfo.h.

Referenced by Scheduler::HandleRecording(), and InsertProgram().

◆ MakeUniqueSchedulerKey()

QString RecordingInfo::MakeUniqueSchedulerKey ( void  ) const
inline

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

Definition at line 227 of file recordinginfo.h.

◆ GetRecordingRule()

RecordingRule * RecordingInfo::GetRecordingRule ( void  )

◆ getRecordID()

int RecordingInfo::getRecordID ( void  )

Returns a record id, creating "record" it if necessary.

Definition at line 935 of file recordinginfo.cpp.

Referenced by ApplyRecordRecID(), ProgramRecPriority::scheduleChanged(), and SubstituteMatches().

◆ QueryRecordedIdForKey()

bool RecordingInfo::QueryRecordedIdForKey ( int &  recordedid,
uint  chanid,
const QDateTime &  recstartts 
)
static

Definition at line 942 of file recordinginfo.cpp.

Referenced by Dvr::RecordedIdForKey(), and V2Dvr::RecordedIdForKey().

◆ GetAutoRunJobs()

int RecordingInfo::GetAutoRunJobs ( void  ) const

Returns a bitmap of which jobs are attached to this RecordingInfo.

See also
JobTypes, GetProgramFlags()

Definition at line 506 of file recordinginfo.cpp.

Referenced by init_jobs(), main(), and JobQueue::QueueRecordingJobs().

◆ GetProgramRecordingStatus()

RecordingType RecordingInfo::GetProgramRecordingStatus ( void  )

Returns the recording type for this RecordingInfo, creating "record" field if necessary.

See also
RecordingType, RecordingRule

Definition at line 476 of file recordinginfo.cpp.

Referenced by ApplyRecordRecPriorityChange(), ApplyRecordStateChange(), FinishedRecording(), getRecordID(), GetRecordingRule(), and QuickRecord().

◆ GetProgramRecordingProfile()

QString RecordingInfo::GetProgramRecordingProfile ( void  ) const

Returns recording profile name that will be, or was used, for this program, creating "record" field if necessary.

See also
RecordingRule

Definition at line 492 of file recordinginfo.cpp.

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

◆ ApplyRecordStateChange()

void RecordingInfo::ApplyRecordStateChange ( RecordingType  newstate,
bool  save = true 
)

Sets RecordingType of "record", creating "record" if it does not exist.

Parameters
newstateState to apply to "record" RecordingType. This uses same values as return of GetProgramRecordingState
saveIf true, save the new state of the recording into the database. Note: If the new state is kNotRecording this means that the recording will be deleted.

Definition at line 573 of file recordinginfo.cpp.

Referenced by Dvr::AddDontRecordSchedule(), V2Dvr::AddDontRecordSchedule(), ScheduleCommon::customEvent(), and QuickRecord().

◆ ApplyRecordRecPriorityChange()

void RecordingInfo::ApplyRecordRecPriorityChange ( int  newrecpriority)

Sets recording priority of "record", creating "record" if it does not exist.

Parameters
newrecpriorityNew recording priority.

Definition at line 643 of file recordinginfo.cpp.

Referenced by ProgramRecPriority::saveRecPriority().

◆ QuickRecord()

void RecordingInfo::QuickRecord ( void  )

Create a kSingleRecord if not already scheduled.

Definition at line 916 of file recordinginfo.cpp.

Referenced by ScheduleCommon::QuickRecord(), and TV::QuickRecord().

◆ SetDesiredStartTime()

void RecordingInfo::SetDesiredStartTime ( const QDateTime &  dt)
inline

Definition at line 243 of file recordinginfo.h.

Referenced by RecorderBase::GetRecordingQuality(), and TVRec::StartRecording().

◆ SetDesiredEndTime()

void RecordingInfo::SetDesiredEndTime ( const QDateTime &  dt)
inline

◆ GetDesiredStartTime()

QDateTime RecordingInfo::GetDesiredStartTime ( void  ) const
inline

Definition at line 245 of file recordinginfo.h.

Referenced by get_start(), and RecorderBase::GetRecordingQuality().

◆ GetDesiredEndTime()

QDateTime RecordingInfo::GetDesiredEndTime ( void  ) const
inline

Definition at line 246 of file recordinginfo.h.

Referenced by get_end(), and RecorderBase::GetRecordingQuality().

◆ AddHistory()

void RecordingInfo::AddHistory ( bool  resched = true,
bool  forcedup = false,
bool  future = false 
)

Adds recording history, creating "record" it if necessary.

Definition at line 1350 of file recordinginfo.cpp.

Referenced by ApplyNeverRecord(), Scheduler::ChangeRecordingEnd(), Scheduler::HandleRecording(), Scheduler::HandleRecordingStatusChange(), and TVRec::NotifySchedulerOfRecording().

◆ DeleteHistory()

void RecordingInfo::DeleteHistory ( void  )

Deletes recording history, creating "record" it if necessary.

Definition at line 1420 of file recordinginfo.cpp.

◆ ForgetHistory()

void RecordingInfo::ForgetHistory ( void  )

Forget the recording of a program so it will be recorded again.

The duplicate flags in both the recorded and old recorded tables are set to 0. This causes these records to be skipped in the left join in the BUSQ In addition, any "Never Record" fake entries are removed from the oldrecorded table and any entries in the oldfind table are removed.

Definition at line 1459 of file recordinginfo.cpp.

Referenced by PrevRecordedList::AllowRecord(), Dvr::AllowReRecord(), V2Dvr::AllowReRecord(), ProgLister::customEvent(), MainServer::customEvent(), PlaybackBox::doAllowRerecord(), MainServer::DoHandleDeleteRecording(), PlaybackBox::doPlaylistAllowRerecord(), AutoExpire::ExpireEpisodesOverMax(), and MainServer::HandleForgetRecording().

◆ SetDupHistory()

void RecordingInfo::SetDupHistory ( void  )

Set the duplicate flag in oldrecorded.

Definition at line 1642 of file recordinginfo.cpp.

Referenced by ProgLister::customEvent(), and PrevRecordedList::PreventRecord().

◆ StartedRecording()

void RecordingInfo::StartedRecording ( const QString &  ext)

Inserts this RecordingInfo into the database as an existing recording.

This method, of course, only works if a recording has been scheduled and started.

Parameters
extFile extension for recording

Definition at line 982 of file recordinginfo.cpp.

Referenced by TVRec::StartedRecording().

◆ InsertRecording()

bool RecordingInfo::InsertRecording ( const QString &  ext,
bool  force_match = false 
)

◆ InsertFile()

void RecordingInfo::InsertFile ( void  )

◆ FinishedRecording()

void RecordingInfo::FinishedRecording ( bool  allowReRecord)

If not a premature stop, adds program to history of recorded programs.

Parameters
allowReRecordThis flag goes into the entry in the recorded programs. It also determines whether the recordedmarkup database table is updated with the program length.

Definition at line 1269 of file recordinginfo.cpp.

Referenced by TVRec::FinishedRecording().

◆ UpdateRecordingEnd()

void RecordingInfo::UpdateRecordingEnd ( void  )

Update information in the recorded table when the end-time of a recording is changed.

Definition at line 1309 of file recordinginfo.cpp.

Referenced by TVRec::StartRecording().

◆ ReactivateRecording()

void RecordingInfo::ReactivateRecording ( void  )

Asks the scheduler to restart this recording if possible.

Definition at line 1329 of file recordinginfo.cpp.

Referenced by Dvr::ReactivateRecording(), and V2Dvr::ReactivateRecording().

◆ ApplyRecordRecID()

void RecordingInfo::ApplyRecordRecID ( void  )

Sets recordid to match RecordingRule recordid.

Definition at line 538 of file recordinginfo.cpp.

Referenced by TVRec::NotifySchedulerOfRecording().

◆ ApplyRecordRecGroupChange() [1/2]

void RecordingInfo::ApplyRecordRecGroupChange ( const QString &  newrecgroup)

◆ ApplyRecordRecGroupChange() [2/2]

void RecordingInfo::ApplyRecordRecGroupChange ( int  newrecgroupid)

Definition at line 702 of file recordinginfo.cpp.

◆ ApplyRecordPlayGroupChange()

void RecordingInfo::ApplyRecordPlayGroupChange ( const QString &  newplaygroup)

Sets the recording group, both in this RecordingInfo and in the database.

Parameters
newplaygroupNew recording group.

Definition at line 740 of file recordinginfo.cpp.

Referenced by PlaybackBox::setPlayGroup().

◆ ApplyStorageGroupChange()

void RecordingInfo::ApplyStorageGroupChange ( const QString &  newstoragegroup)

Sets the storage group, both in this RecordingInfo and in the database.

Parameters
newstoragegroupNew storage group.

Definition at line 765 of file recordinginfo.cpp.

◆ ApplyRecordRecTitleChange()

void RecordingInfo::ApplyRecordRecTitleChange ( const QString &  newTitle,
const QString &  newSubtitle,
const QString &  newDescription 
)

Sets the recording title, subtitle, and description both in this RecordingInfo and in the database.

Parameters
newTitleNew recording title.
newSubtitleNew recording subtitle
newDescriptionNew recording description

Definition at line 792 of file recordinginfo.cpp.

Referenced by PlaybackBox::saveRecMetadata().

◆ ApplyTranscoderProfileChange()

void RecordingInfo::ApplyTranscoderProfileChange ( const QString &  profile) const

Sets the transcoder profile for a recording.

Parameters
profileDescriptive name of the profile. ie: Autodetect

Definition at line 844 of file recordinginfo.cpp.

Referenced by TV::DoQueueTranscode(), and QueueTranscodeJob().

◆ ApplyTranscoderProfileChangeById()

void RecordingInfo::ApplyTranscoderProfileChangeById ( int  id)

Definition at line 824 of file recordinginfo.cpp.

Referenced by PlaybackBox::changeProfileAndTranscode().

◆ ApplyNeverRecord()

void RecordingInfo::ApplyNeverRecord ( void  )

Set this program to never be recorded by inserting 'history' for it into the database with a status of RecStatus::NeverRecord.

Definition at line 905 of file recordinginfo.cpp.

Referenced by Dvr::AddDontRecordSchedule(), and V2Dvr::AddDontRecordSchedule().

◆ ApplyStarsChange()

void RecordingInfo::ApplyStarsChange ( float  stars)

Sets the stars value in the database.

Parameters
newstarsvalue.

Definition at line 593 of file recordinginfo.cpp.

◆ ApplyOriginalAirDateChange()

void RecordingInfo::ApplyOriginalAirDateChange ( QDate  originalairdate)

Definition at line 618 of file recordinginfo.cpp.

◆ GetRecgroupString()

QString RecordingInfo::GetRecgroupString ( uint  recGroupID)
static

Temporary helper during transition from string to ID.

Definition at line 1705 of file recordinginfo.cpp.

Referenced by ApplyRecordRecGroupChange(), UPnpCDSTv::BuildWhereClause(), FillRecRuleInfo(), RecordingRule::Save(), ProgramRecPriority::scheduleChanged(), and V2FillRecRuleInfo().

◆ GetRecgroupID()

uint RecordingInfo::GetRecgroupID ( const QString &  recGroup)
static

Temporary helper during transition from string to ID.

Definition at line 1686 of file recordinginfo.cpp.

Referenced by Dvr::AddRecordSchedule(), V2Dvr::AddRecordSchedule(), ApplyRecordRecGroupChange(), InsertProgram(), Dvr::UpdateRecordSchedule(), and V2Dvr::UpdateRecordSchedule().

◆ LoadRecordingFile()

void RecordingInfo::LoadRecordingFile ( )

◆ GetRecordingFile()

RecordingFile* RecordingInfo::GetRecordingFile ( ) const
inline

◆ SaveFilesize()

void RecordingInfo::SaveFilesize ( uint64_t  fsize)
overridevirtual

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

Reimplemented from ProgramInfo.

Definition at line 1732 of file recordinginfo.cpp.

Referenced by RecorderBase::FinishRecording(), ImportRecorder::run(), RecorderBase::SavePositionMap(), RecorderBase::SetNextRecording(), and ImportRecorder::UpdateRecSize().

◆ SetFilesize()

void RecordingInfo::SetFilesize ( uint64_t  fsize)
overridevirtual

Reimplemented from ProgramInfo.

Definition at line 1744 of file recordinginfo.cpp.

◆ GetFilesize()

uint64_t RecordingInfo::GetFilesize ( void  ) const
overridevirtual

◆ InsertProgram()

bool RecordingInfo::InsertProgram ( RecordingInfo pg,
const RecordingRule rule 
)
staticprotected

Definition at line 1086 of file recordinginfo.cpp.

Referenced by InsertRecording().

Member Data Documentation

◆ kReSearchTypeName

const QRegularExpression RecordingInfo::kReSearchTypeName { R"(\s*\(.*\)$)" }
static

◆ kReLeadingAnd

const QRegularExpression RecordingInfo::kReLeadingAnd { R"(^\s*AND\s*)", QRegularExpression::CaseInsensitiveOption }
static

◆ m_oldrecstatus

RecStatus::Type RecordingInfo::m_oldrecstatus {RecStatus::Unknown}

Definition at line 287 of file recordinginfo.h.

Referenced by AddHistory(), clear(), clone(), and Scheduler::HandleRecording().

◆ m_savedrecstatus

RecStatus::Type RecordingInfo::m_savedrecstatus {RecStatus::Unknown}

Definition at line 288 of file recordinginfo.h.

Referenced by clear(), and clone().

◆ m_future

bool RecordingInfo::m_future {false}

Definition at line 289 of file recordinginfo.h.

Referenced by clear(), and clone().

◆ m_schedOrder

int RecordingInfo::m_schedOrder {0}

Definition at line 290 of file recordinginfo.h.

Referenced by clear(), clone(), comp_priority(), and comp_retry().

◆ m_mplexId

uint RecordingInfo::m_mplexId {0}

◆ m_sgroupId

uint RecordingInfo::m_sgroupId {0}

Definition at line 292 of file recordinginfo.h.

Referenced by clear(), clone(), and Scheduler::FindNextConflict().

◆ m_desiredRecStartTs

QDateTime RecordingInfo::m_desiredRecStartTs

Definition at line 293 of file recordinginfo.h.

Referenced by clear(), clone(), and RecordingInfo().

◆ m_desiredRecEndTs

QDateTime RecordingInfo::m_desiredRecEndTs

Definition at line 294 of file recordinginfo.h.

Referenced by clear(), clone(), and RecordingInfo().

◆ m_record

class RecordingRule* RecordingInfo::m_record {nullptr}
private

◆ m_recordingFile

RecordingFile* RecordingInfo::m_recordingFile {nullptr}
private

Definition at line 298 of file recordinginfo.h.

Referenced by clear(), clone(), LoadRecordingFile(), and ~RecordingInfo().

◆ s_unknownTitle

QString RecordingInfo::s_unknownTitle
staticprotected

Definition at line 304 of file recordinginfo.h.

Referenced by RecordingInfo().


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