vdr  2.2.0
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
cRecording Class Reference

#include <recording.h>

Collaboration diagram for cRecording:
[legend]

Public Member Functions

 cRecording (cTimer *Timer, const cEvent *Event)
 
 cRecording (const char *FileName)
 
virtual ~cRecording ()
 
time_t Start (void) const
 
int Priority (void) const
 
int Lifetime (void) const
 
time_t Deleted (void) const
 
virtual int Compare (const cListObject &ListObject) const
 
bool IsInPath (const char *Path)
 
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
 
const cRecordingInfoInfo (void) const
 
const char * PrefixFileName (char Prefix)
 
int HierarchyLevels (void) const
 
void ResetResume (void) const
 
double FramesPerSecond (void) const
 
int NumFrames (void) const
 
int LengthInSeconds (void) const
 
int FileSizeMB (void) const
 
int GetResume (void) const
 
bool IsNew (void) const
 
bool IsEdited (void) const
 
bool IsPesRecording (void) const
 
bool IsOnVideoDirectoryFileSystem (void) const
 
bool HasMarks (void)
 
bool DeleteMarks (void)
 
void ReadInfo (void)
 
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
 
cListObjectPrev (void) const
 
cListObjectNext (void) const
 

Private Member Functions

 cRecording (const cRecording &)
 
cRecordingoperator= (const cRecording &)
 
char * SortName (void) const
 
void ClearSortName (void)
 

Static Private Member Functions

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

Private Attributes

int resume
 
char * titleBuffer
 
char * sortBufferName
 
char * sortBufferTime
 
char * fileName
 
char * name
 
int fileSizeMB
 
int numFrames
 
int channel
 
int instanceId
 
bool isPesRecording
 
int isOnVideoDirectoryFileSystem
 
double framesPerSecond
 
cRecordingInfoinfo
 
time_t start
 
int priority
 
int lifetime
 
time_t deleted
 

Friends

class cRecordings
 

Detailed Description

Definition at line 98 of file recording.h.

Constructor & Destructor Documentation

cRecording::cRecording ( const cRecording )
private
cRecording::cRecording ( cTimer Timer,
const cEvent Event 
)
cRecording::cRecording ( const char *  FileName)
cRecording::~cRecording ( )
virtual

Definition at line 936 of file recording.c.

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

Member Function Documentation

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 1036 of file recording.c.

References FOLDERDELIMCHAR, and name.

Referenced by cMenuRecordingEdit::cMenuRecordingEdit().

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 1229 of file recording.c.

References cRecordings::ChangeState(), ClearSortName(), dsyslog, fileName, FileName(), isOnVideoDirectoryFileSystem, MakeDirs(), cVideoDirectory::MoveVideoFile(), name, Name(), Recordings, and cRecordings::TouchUpdate().

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

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 1202 of file recording.c.

References cRecordings::ChangeState(), dsyslog, fileName, FileName(), info, IsPesRecording(), cRecordingInfo::lifetime, lifetime, Lifetime(), Name(), cRecordingInfo::priority, priority, Priority(), Recordings, cVideoDirectory::RenameVideoFile(), cRecordingInfo::SetFileName(), cRecordings::TouchUpdate(), and WriteInfo().

Referenced by cMenuRecordingEdit::ApplyChanges().

void cRecording::ClearSortName ( void  )
private

Definition at line 999 of file recording.c.

References sortBufferName, and sortBufferTime.

Referenced by ChangeName().

int cRecording::Compare ( const cListObject ListObject) const
virtual

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 1015 of file recording.c.

References SortName().

bool cRecording::Delete ( void  )

Changes the file name so that it will no longer be visible in the "Recordings" menu Returns false in case of error.

Definition at line 1255 of file recording.c.

References DELEXT, FileName(), cRecordingUserCommand::InvokeCommand(), isyslog, RECEXT, cVideoDirectory::RemoveVideoFile(), cVideoDirectory::RenameVideoFile(), and RUC_DELETERECORDING.

Referenced by cRecordingsHandlerEntry::Active(), AssertFreeDiskSpace(), cSVDRP::CmdDELR(), cMenuRecordings::Delete(), and cReplayControl::Stop().

time_t cRecording::Deleted ( void  ) const
inline

Definition at line 131 of file recording.h.

References deleted.

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 1163 of file recording.c.

References fileName, LOG_ERROR_STR, and cMarks::MarksFileName().

Referenced by cMenuRecordingEdit::DeleteMarks().

const char * cRecording::FileName ( void  ) const
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 1353 of file recording.c.

References DirSizeMB(), FileName(), fileSizeMB, cIndexFile::IndexFileName(), IsPesRecording(), LastModifiedTime(), and MININDEXAGE.

Referenced by cRecordings::ScanVideoDir().

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 1029 of file recording.c.

References FOLDERDELIMCHAR, and name.

Referenced by cMenuRecordingEdit::cMenuRecordingEdit().

double cRecording::FramesPerSecond ( void  ) const
inline
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 1006 of file recording.c.

References FileName(), isPesRecording, cResumeFile::Read(), resume, and RESUME_NOT_INITIALIZED.

Referenced by cRecording(), and IsNew().

bool cRecording::HasMarks ( void  )

Returns true if this recording has any editing marks.

Definition at line 1158 of file recording.c.

References cMarks::MarksFileName().

Referenced by cMenuRecordingEdit::SetHelpKeys().

int cRecording::HierarchyLevels ( void  ) const

Definition at line 1133 of file recording.c.

References FOLDERDELIMCHAR, and name.

Referenced by Title().

const cRecordingInfo* cRecording::Info ( void  ) const
inline
bool cRecording::IsEdited ( void  ) const

Definition at line 1144 of file recording.c.

References FOLDERDELIMCHAR, and name.

Referenced by AssertFreeDiskSpace().

bool cRecording::IsInPath ( const char *  Path)

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 1021 of file recording.c.

References FOLDERDELIMCHAR, isempty(), and name.

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 1318 of file recording.c.

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

Referenced by cMenuRecordingEdit::Action(), cSVDRP::CmdDELR(), cSVDRP::CmdMOVR(), and cMenuRecordingEdit::Set().

bool cRecording::IsNew ( void  ) const
inline

Definition at line 165 of file recording.h.

References GetResume().

Referenced by Title().

bool cRecording::IsOnVideoDirectoryFileSystem ( void  ) const
bool cRecording::IsPesRecording ( void  ) const
inline
int cRecording::LengthInSeconds ( void  ) const

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

Definition at line 1345 of file recording.c.

References FramesPerSecond(), and NumFrames().

Referenced by Title().

int cRecording::Lifetime ( void  ) const
inline
const char* cRecording::Name ( void  ) const
inline
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 1334 of file recording.c.

References FileName(), cIndexFile::GetLength(), cIndexFile::IndexFileName(), IsPesRecording(), LastModifiedTime(), MININDEXAGE, and numFrames.

Referenced by LengthInSeconds(), and cRecordings::ScanVideoDir().

cRecording& cRecording::operator= ( const cRecording )
private
const char * cRecording::PrefixFileName ( char  Prefix)

Definition at line 1122 of file recording.c.

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

Referenced by cCutter::EditedFileName().

int cRecording::Priority ( void  ) const
inline
void cRecording::ReadInfo ( void  )
bool cRecording::Remove ( void  )

Actually removes the file from the disk Returns false in case of error.

Definition at line 1281 of file recording.c.

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

Referenced by cRemoveDeletedRecordingsThread::Action(), and AssertFreeDiskSpace().

void cRecording::ResetResume ( void  ) const

Definition at line 1329 of file recording.c.

References resume, and RESUME_NOT_INITIALIZED.

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 1195 of file recording.c.

References fileName, start, and Start().

Referenced by cCutter::EditedFileName().

char * cRecording::SortName ( void  ) const
private
time_t cRecording::Start ( void  ) const
inline
char * cRecording::StripEpisodeName ( char *  s,
bool  Strip 
)
staticprivate

Definition at line 946 of file recording.c.

Referenced by SortName().

const char * cRecording::Title ( char  Delimiter = ' ',
bool  NewIndicator = false,
int  Level = -1 
) const
bool cRecording::Undelete ( void  )

Changes the file name so that it will be visible in the "Recordings" menu again and not processed by cRemoveDeletedRecordingsThread.

Returns false in case of error

Definition at line 1292 of file recording.c.

References DELEXT, esyslog, FileName(), isyslog, RECEXT, and cVideoDirectory::RenameVideoFile().

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

Writes in 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 1182 of file recording.c.

References cSafeFile::Close(), FileName(), info, INFOFILESUFFIX, isPesRecording, LOG_ERROR_STR, cSafeFile::Open(), cString::sprintf(), and cRecordingInfo::Write().

Referenced by ChangePriorityLifetime(), and cCutter::Start().

Friends And Related Function Documentation

friend class cRecordings
friend

Definition at line 99 of file recording.h.

Member Data Documentation

int cRecording::channel
private

Definition at line 109 of file recording.h.

Referenced by cRecording(), and FileName().

time_t cRecording::deleted
private
char* cRecording::fileName
mutableprivate
int cRecording::fileSizeMB
mutableprivate

Definition at line 107 of file recording.h.

Referenced by cRecording(), and FileSizeMB().

double cRecording::framesPerSecond
private

Definition at line 113 of file recording.h.

Referenced by cRecording(), FramesPerSecond(), and ReadInfo().

cRecordingInfo* cRecording::info
private

Definition at line 114 of file recording.h.

Referenced by ChangePriorityLifetime(), cRecording(), Info(), ReadInfo(), WriteInfo(), and ~cRecording().

int cRecording::instanceId
private

Definition at line 110 of file recording.h.

Referenced by cRecording(), and FileName().

int cRecording::isOnVideoDirectoryFileSystem
mutableprivate

Definition at line 112 of file recording.h.

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

bool cRecording::isPesRecording
private

Definition at line 111 of file recording.h.

Referenced by cRecording(), FileName(), GetResume(), IsPesRecording(), and WriteInfo().

int cRecording::lifetime
private

Definition at line 122 of file recording.h.

Referenced by ChangePriorityLifetime(), cRecording(), FileName(), Lifetime(), and ReadInfo().

char* cRecording::name
mutableprivate
int cRecording::numFrames
mutableprivate

Definition at line 108 of file recording.h.

Referenced by cRecording(), and NumFrames().

int cRecording::priority
private

Definition at line 121 of file recording.h.

Referenced by ChangePriorityLifetime(), cRecording(), FileName(), Priority(), and ReadInfo().

int cRecording::resume
mutableprivate

Definition at line 101 of file recording.h.

Referenced by cRecording(), GetResume(), and ResetResume().

char* cRecording::sortBufferName
mutableprivate

Definition at line 103 of file recording.h.

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

char* cRecording::sortBufferTime
mutableprivate

Definition at line 104 of file recording.h.

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

time_t cRecording::start
private

Definition at line 120 of file recording.h.

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

char* cRecording::titleBuffer
mutableprivate

Definition at line 102 of file recording.h.

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


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