vdr 2.8.3
cRecording Class Reference

#include <recording.h>

Public Member Functions

 cRecording (cTimer *Timer, const cEvent *Event)
 cRecording (const char *FileName)
virtual ~cRecording () override
int Id (void) const
time_t Start (void) const
int Priority (void) const
int Lifetime (void) const
time_t Deleted (void) const
bool RetentionExpired (void) const
void SetDeleted (void)
virtual int Compare (const cListObject &ListObject) const override
bool IsInPath (const char *Path) const
cString Folder (void) const
cString BaseName (void) const
const char * Name (void) const
const char * FileName (void) const
const char * Title (char Delimiter=' ', bool NewIndicator=false, int Level=-1) const
cRecordingInfo * Info (void) const
const char * PrefixFileName (char Prefix)
int HierarchyLevels (void) const
void ResetResume (void) const
void DeleteResume (void) const
double FramesPerSecond (void) const
int NumFrames (void) const
int NumFramesAfterEdit (void) const
int LengthInSeconds (void) const
int LengthInSecondsAfterEdit (void) const
int FileSizeMB (void) const
int GetResume (void) const
time_t GetLastReplayTime (void) const
bool IsNew (void) const
bool IsEdited (void) const
bool IsPesRecording (void) const
bool IsOnVideoDirectoryFileSystem (void) const
bool HasMarks (void) const
bool DeleteMarks (void)
void ReadInfo (bool Force=false)
bool WriteInfo (const char *OtherFileName=NULL)
void SetStartTime (time_t Start)
bool ChangePriorityLifetime (int NewPriority, int NewLifetime)
bool ChangeName (const char *NewName)
bool Delete (void)
bool Remove (void)
bool Undelete (void)
int IsInUse (void) const
Public Member Functions inherited from cListObject
 cListObject (void)
virtual ~cListObject ()
void Append (cListObject *Object)
void Insert (cListObject *Object)
void Unlink (void)
int Index (void) const
cListObject * Prev (void) const
cListObject * Next (void) const

Private Member Functions

 cRecording (const cRecording &)
cRecording & operator= (const cRecording &)
char * SortName (void) const
void ClearSortName (void)
void SetId (int Id)

Static Private Member Functions

static char * StripEpisodeName (char *s, bool Strip)

Private Attributes

int id
cResumeFile * resume
char * titleBuffer
char * sortBufferName
char * sortBufferTime
char * fileName
char * name
int fileSizeMB
int numFrames
int channel
int instanceId
bool isPesRecording
int isOnVideoDirectoryFileSystem
cRecordingInfo * info
time_t start
time_t deleted

Friends

class cRecordings

Detailed Description

Definition at line 133 of file recording.h.

Constructor & Destructor Documentation

◆ cRecording() [1/3]

◆ cRecording() [2/3]

◆ cRecording() [3/3]

◆ ~cRecording()

cRecording::~cRecording ( )
overridevirtual

Definition at line 1108 of file recording.c.

References fileName, info, name, resume, sortBufferName, sortBufferTime, and titleBuffer.

Member Function Documentation

◆ BaseName()

cString cRecording::BaseName ( void ) const

Returns the base name of this recording (without the video directory and folder).

For use in menus etc.

Definition at line 1232 of file recording.c.

References FOLDERDELIMCHAR, name, and strgetlast().

Referenced by cMenuRecordingEdit::cMenuRecordingEdit().

◆ ChangeName()

bool cRecording::ChangeName ( const char * NewName)

Changes the name of this recording to the given value.

NewName is in the same format as the one returned by Name(), i.e. without the video directory and the actual '*.rec' part, and using FOLDERDELIMCHAR as the directory delimiter. If the new name is the same as the old one, nothing happens. Returns false in case of error.

Definition at line 1422 of file recording.c.

References ClearSortName(), dsyslog, esyslog, FileName(), fileName, info, isOnVideoDirectoryFileSystem, MakeDirs(), cVideoDirectory::MoveVideoFile(), Name(), name, resume, cRecordingInfo::SetFileName(), and cResumeFile::SetFileName().

Referenced by cMenuRecordingEdit::ApplyChanges().

◆ ChangePriorityLifetime()

bool cRecording::ChangePriorityLifetime ( int NewPriority,
int NewLifetime )

Changes the priority and lifetime of this recording to the given values.

If the new values are the same as the old ones, nothing happens. Returns false in case of error.

Definition at line 1398 of file recording.c.

References dsyslog, FileName(), fileName, info, IsPesRecording(), Lifetime(), Name(), Priority(), cVideoDirectory::RenameVideoFile(), resume, cRecordingInfo::SetFileName(), cResumeFile::SetFileName(), cRecordingInfo::SetLifetime(), cRecordingInfo::SetPriority(), and WriteInfo().

Referenced by cMenuRecordingEdit::ApplyChanges().

◆ ClearSortName()

void cRecording::ClearSortName ( void )
private

Definition at line 1172 of file recording.c.

References sortBufferName, and sortBufferTime.

Referenced by ChangeName(), and operator=().

◆ Compare()

int cRecording::Compare ( const cListObject & ListObject) const
overridevirtual

Must return 0 if this object is equal to ListObject, a positive value if it is "greater", and a negative value if it is "smaller".

Reimplemented from cListObject.

Definition at line 1208 of file recording.c.

References cListObject::cListObject(), cRecording(), cSetup::RecSortingDirection, rsdAscending, Setup, and SortName().

◆ Delete()

bool cRecording::Delete ( void )

Changes the file name (both internally and on disk) to make this a "deleted" recording.

The caller must explicitly move this object from the Recordings to the DeletedRecordings list. Returns false in case of error.

Definition at line 1451 of file recording.c.

References DELEXT, FileName(), fileName, info, cRecordingUserCommand::InvokeCommand(), isyslog, RECEXT, cVideoDirectory::RemoveVideoFile(), cVideoDirectory::RenameVideoFile(), resume, RUC_DELETERECORDING, SetDeleted(), cRecordingInfo::SetFileName(), cResumeFile::SetFileName(), and TouchFile().

Referenced by AssertFreeDiskSpace(), and cMenuRecordings::Delete().

◆ Deleted()

time_t cRecording::Deleted ( void ) const
inline

◆ DeleteMarks()

bool cRecording::DeleteMarks ( void )

Deletes the editing marks from this recording (if any).

Returns true if the operation was successful. If there is no marks file for this recording, it also returns true.

Definition at line 1360 of file recording.c.

References cMarks::DeleteMarksFile().

◆ DeleteResume()

void cRecording::DeleteResume ( void ) const

Definition at line 1553 of file recording.c.

References cResumeFile::Delete(), and resume.

Referenced by cMenuRecordings::Rewind().

◆ FileName()

◆ FileSizeMB()

int cRecording::FileSizeMB ( void ) const

Returns the total file size of this recording (in MB), or -1 if the file size is unknown.

Definition at line 1597 of file recording.c.

References DirSizeMB(), FileName(), fileSizeMB, and StillRecording().

Referenced by cVideoDirectoryScannerThread::ScanVideoDir().

◆ Folder()

cString cRecording::Folder ( void ) const

Returns the name of the folder this recording is stored in (without the video directory).

For use in menus etc.

Definition at line 1225 of file recording.c.

References cString::cString(), FOLDERDELIMCHAR, and name.

Referenced by cMenuRecordingEdit::ApplyChanges(), and cMenuRecordingEdit::cMenuRecordingEdit().

◆ FramesPerSecond()

◆ GetLastReplayTime()

time_t cRecording::GetLastReplayTime ( void ) const

Returns the time this recording was last replayed (which is actually the timestamp of the resume file), or 0 if no resume file exists.

Definition at line 1189 of file recording.c.

References cResumeFile::FileTime(), and resume.

◆ GetResume()

int cRecording::GetResume ( void ) const

Returns the index of the frame where replay of this recording shall be resumed, or -1 in case of an error.

Definition at line 1184 of file recording.c.

References cResumeFile::Index(), and resume.

Referenced by cRecording(), and IsNew().

◆ HasMarks()

bool cRecording::HasMarks ( void ) const

Returns true if this recording has any editing marks.

Definition at line 1355 of file recording.c.

References cMarks::MarksFileName().

Referenced by cMenuRecordingEdit::SetHelpKeys().

◆ HierarchyLevels()

int cRecording::HierarchyLevels ( void ) const

Definition at line 1331 of file recording.c.

References FOLDERDELIMCHAR, and name.

Referenced by Title().

◆ Id()

int cRecording::Id ( void ) const
inline

Definition at line 162 of file recording.h.

References id.

Referenced by cSVDRPServer::CmdLSTR(), operator=(), and SetId().

◆ Info()

◆ IsEdited()

bool cRecording::IsEdited ( void ) const

Definition at line 1342 of file recording.c.

References FOLDERDELIMCHAR, name, and strgetlast().

Referenced by AssertFreeDiskSpace().

◆ IsInPath()

bool cRecording::IsInPath ( const char * Path) const

Returns true if this recording is stored anywhere under the given Path.

If Path is NULL or an empty string, the entire video directory is checked.

Definition at line 1217 of file recording.c.

References FOLDERDELIMCHAR, isempty(), and name.

◆ IsInUse()

int cRecording::IsInUse ( void ) const

Checks whether this recording is currently in use and therefore shall not be tampered with.

Returns 0 (ruNone) if the recording is not in use. The return value may consist of several or'd eRecordingUsage flags. If the caller is just interested in whether the recording is in use or not, the return value can be used like a boolean value. A recording may be in use for several reasons (like being recorded and replayed, as in time-shift).

Definition at line 1531 of file recording.c.

References FileName(), cRecordControls::GetRecordControl(), cRecordingsHandler::GetUsage(), cReplayControl::NowReplaying(), RecordingsHandler, ruNone, ruReplay, and ruTimer.

Referenced by cMenuRecordingEdit::Action(), cMenuRecordingItem::cMenuRecordingItem(), cMenuRecordingEdit::Set(), and Title().

◆ IsNew()

bool cRecording::IsNew ( void ) const
inline

Definition at line 213 of file recording.h.

References GetResume().

Referenced by Title().

◆ IsOnVideoDirectoryFileSystem()

bool cRecording::IsOnVideoDirectoryFileSystem ( void ) const

◆ IsPesRecording()

◆ LengthInSeconds()

int cRecording::LengthInSeconds ( void ) const

Returns the length (in seconds) of this recording, or -1 in case of error.

Definition at line 1581 of file recording.c.

References FramesPerSecond(), and NumFrames().

Referenced by Title().

◆ LengthInSecondsAfterEdit()

int cRecording::LengthInSecondsAfterEdit ( void ) const

Returns the length (in seconds) of the edited version of this recording, or -1 in case of error.

If there are no editing marks, 0 will be returned.

Definition at line 1589 of file recording.c.

References FramesPerSecond(), and NumFramesAfterEdit().

◆ Lifetime()

int cRecording::Lifetime ( void ) const
inline

◆ Name()

◆ NumFrames()

int cRecording::NumFrames ( void ) const

Returns the number of frames in this recording.

If the number of frames is unknown, -1 will be returned.

Definition at line 1559 of file recording.c.

References FileName(), cIndexFile::GetLength(), IsPesRecording(), numFrames, and StillRecording().

Referenced by FileSizeMBafterEdit(), LengthInSeconds(), and cVideoDirectoryScannerThread::ScanVideoDir().

◆ NumFramesAfterEdit()

int cRecording::NumFramesAfterEdit ( void ) const

Returns the number of frames in the edited version of this recording.

If there are no editing marks, 0 will be returned. If the number of frames is unknown, -1 will be returned.

Definition at line 1570 of file recording.c.

References fileName, FramesPerSecond(), cMarks::GetFrameAfterEdit(), cIndexFile::GetLength(), isPesRecording, and cMarks::Load().

Referenced by FileSizeMBafterEdit(), and LengthInSecondsAfterEdit().

◆ operator=()

cRecording & cRecording::operator= ( const cRecording & )
private

◆ PrefixFileName()

const char * cRecording::PrefixFileName ( char Prefix)

Definition at line 1320 of file recording.c.

References FileName(), fileName, and cVideoDirectory::PrefixVideoFileName().

Referenced by cCutter::EditedFileName().

◆ Priority()

int cRecording::Priority ( void ) const
inline

◆ ReadInfo()

void cRecording::ReadInfo ( bool Force = false)

Definition at line 1365 of file recording.c.

References info, and cRecordingInfo::Read().

Referenced by cVideoDirectoryScannerThread::ScanVideoDir().

◆ Remove()

bool cRecording::Remove ( void )

Actually removes the file from the disk.

The caller must explicitly delete this object from the DeletedRecordings list. Returns false in case of error.

Definition at line 1486 of file recording.c.

References DELEXT, endswith(), esyslog, FileName(), isyslog, and cVideoDirectory::RemoveVideoFile().

Referenced by AssertFreeDiskSpace().

◆ ResetResume()

void cRecording::ResetResume ( void ) const

Definition at line 1547 of file recording.c.

References cResumeFile::Reset(), and resume.

◆ RetentionExpired()

bool cRecording::RetentionExpired ( void ) const

Definition at line 1194 of file recording.c.

References Deleted(), DELETEDLIFETIME, cSetup::DeleteRetention, SECSINDAY, and Setup.

◆ SetDeleted()

void cRecording::SetDeleted ( void )

◆ SetId()

void cRecording::SetId ( int Id)
private

Definition at line 1179 of file recording.c.

References Id().

Referenced by cRecordings::Add(), and operator=().

◆ SetStartTime()

void cRecording::SetStartTime ( time_t Start)

Sets the start time of this recording to the given value.

If a filename has already been set for this recording, it will be deleted and a new one will be generated (using the new start time) at the next call to FileName(). Use this function with care - it does not check whether a recording with this new name already exists, and if there is one, results may be unexpected!

Definition at line 1391 of file recording.c.

References fileName, Start(), and start.

Referenced by cCutter::EditedFileName().

◆ SortName()

◆ Start()

◆ StripEpisodeName()

char * cRecording::StripEpisodeName ( char * s,
bool Strip )
staticprivate

Definition at line 1119 of file recording.c.

References cSetup::RecSortingDirection, rsdAscending, and Setup.

Referenced by operator=(), and SortName().

◆ Title()

◆ Undelete()

bool cRecording::Undelete ( void )

Changes the file name (both internally and on disk) to make this a "normal" recording.

The caller must explicitly move this object from the DeletedRecordings to the Recordings list. Returns false in case of error.

Definition at line 1497 of file recording.c.

References deleted, DELEXT, esyslog, FileName(), fileName, info, isyslog, RECEXT, cVideoDirectory::RenameVideoFile(), resume, cRecordingInfo::SetFileName(), and cResumeFile::SetFileName().

◆ WriteInfo()

bool cRecording::WriteInfo ( const char * OtherFileName = NULL)

Writes the info file of this recording.

If OtherFileName is given, the info file will be written under that recording file name instead of this recording's file name.

Definition at line 1370 of file recording.c.

References cSafeFile::Close(), cRecordingInfo::Errors(), FileName(), info, INFOFILESUFFIX, isPesRecording, LOG_ERROR_STR, max(), cSafeFile::Open(), cRecordingInfo::Read(), cRecordingInfo::SetErrors(), cString::sprintf(), cRecordingInfo::TmpErrors(), and cRecordingInfo::Write().

Referenced by cMenuRecordingEdit::ApplyChanges(), ChangePriorityLifetime(), and cRecordControl::cRecordControl().

◆ cRecordings

friend class cRecordings
friend

Definition at line 134 of file recording.h.

References cRecordings.

Referenced by cRecordings.

Member Data Documentation

◆ channel

int cRecording::channel
private

Definition at line 145 of file recording.h.

Referenced by cRecording(), cRecording(), and FileName().

◆ deleted

time_t cRecording::deleted
private

Definition at line 157 of file recording.h.

Referenced by cRecording(), cRecording(), Deleted(), SetDeleted(), and Undelete().

◆ fileName

◆ fileSizeMB

int cRecording::fileSizeMB
mutableprivate

Definition at line 143 of file recording.h.

Referenced by cRecording(), cRecording(), and FileSizeMB().

◆ id

int cRecording::id
private

Definition at line 136 of file recording.h.

Referenced by Id().

◆ info

◆ instanceId

int cRecording::instanceId
private

Definition at line 146 of file recording.h.

Referenced by cRecording(), cRecording(), and FileName().

◆ isOnVideoDirectoryFileSystem

int cRecording::isOnVideoDirectoryFileSystem
mutableprivate

Definition at line 148 of file recording.h.

Referenced by ChangeName(), cRecording(), cRecording(), and IsOnVideoDirectoryFileSystem().

◆ isPesRecording

bool cRecording::isPesRecording
private

◆ name

char* cRecording::name
mutableprivate

◆ numFrames

int cRecording::numFrames
mutableprivate

Definition at line 144 of file recording.h.

Referenced by cRecording(), cRecording(), and NumFrames().

◆ resume

◆ sortBufferName

char* cRecording::sortBufferName
mutableprivate

Definition at line 139 of file recording.h.

Referenced by ClearSortName(), cRecording(), cRecording(), SortName(), and ~cRecording().

◆ sortBufferTime

char* cRecording::sortBufferTime
mutableprivate

Definition at line 140 of file recording.h.

Referenced by ClearSortName(), cRecording(), cRecording(), SortName(), and ~cRecording().

◆ start

time_t cRecording::start
private

Definition at line 156 of file recording.h.

Referenced by cRecording(), cRecording(), FileName(), SetStartTime(), SortName(), Start(), and Title().

◆ titleBuffer

char* cRecording::titleBuffer
mutableprivate

Definition at line 138 of file recording.h.

Referenced by cRecording(), cRecording(), Title(), and ~cRecording().


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