vdr 2.7.7
cRecordings Class Reference

#include <recording.h>

Public Member Functions

 cRecordings (bool Deleted=false)
virtual ~cRecordings () override
void ResetResume (const char *ResumeFileName=NULL)
void ClearSortNames (void)
const cRecordingGetById (int Id) const
cRecordingGetById (int Id)
const cRecordingGetByName (const char *FileName) const
cRecordingGetByName (const char *FileName)
void Add (cRecording *Recording)
void AddByName (const char *FileName, bool TriggerUpdate=true)
void DelByName (const char *FileName)
void UpdateByName (const char *FileName)
int TotalFileSizeMB (void) const
double MBperMinute (void) const
int PathIsInUse (const char *Path) const
int GetNumRecordingsInPath (const char *Path) const
bool MoveRecordings (const char *OldPath, const char *NewPath)
Public Member Functions inherited from cList< cRecording >
 cList (const char *NeedsLocking=NULL)
const cRecordingGet (int Index) const
const cRecordingFirst (void) const
const cRecordingLast (void) const
const cRecordingPrev (const cRecording *Object) const
const cRecordingNext (const cRecording *Object) const
Public Member Functions inherited from cListBase
virtual ~cListBase ()
bool Lock (cStateKey &StateKey, bool Write=false, int TimeoutMs=0) const
void SetSyncStateKey (cStateKey &StateKey)
void SetUseGarbageCollector (void)
void SetExplicitModify (void)
void SetModified (void)
void Add (cListObject *Object, cListObject *After=NULL)
void Ins (cListObject *Object, cListObject *Before=NULL)
void Del (cListObject *Object, bool DeleteObject=true)
virtual void Move (int From, int To)
void Move (cListObject *From, cListObject *To)
virtual void Clear (void)
bool Contains (const cListObject *Object) const
const cListObjectGet (int Index) const
cListObjectGet (int Index)
int Count (void) const
void Sort (void)

Static Public Member Functions

static const cRecordingsGetRecordingsRead (cStateKey &StateKey, int TimeoutMs=0)
static cRecordingsGetRecordingsWrite (cStateKey &StateKey, int TimeoutMs=0)
static const cRecordingsGetDeletedRecordingsRead (cStateKey &StateKey, int TimeoutMs=0)
static cRecordingsGetDeletedRecordingsWrite (cStateKey &StateKey, int TimeoutMs=0)
static void Update (bool Wait=false)
static void TouchUpdate (void)
static bool NeedsUpdate (void)

Static Private Member Functions

static const char * UpdateFileName (void)

Static Private Attributes

static cRecordings recordings
static cRecordings deletedRecordings
static int lastRecordingId = 0
static char * updateFileName = NULL
static time_t lastUpdate = 0
static cVideoDirectoryScannerThreadvideoDirectoryScannerThread = NULL

Additional Inherited Members

Protected Member Functions inherited from cListBase
 cListBase (const char *NeedsLocking=NULL)
Protected Attributes inherited from cListBase
cListObjectobjects
cListObjectlastObject
int count
cStateLock stateLock
const char * needsLocking
bool useGarbageCollector

Detailed Description

Definition at line 250 of file recording.h.

Constructor & Destructor Documentation

◆ cRecordings()

cRecordings::cRecordings ( bool Deleted = false)

◆ ~cRecordings()

cRecordings::~cRecordings ( )
overridevirtual

Definition at line 1630 of file recording.c.

References videoDirectoryScannerThread.

Member Function Documentation

◆ Add()

void cRecordings::Add ( cRecording * Recording)

◆ AddByName()

void cRecordings::AddByName ( const char * FileName,
bool TriggerUpdate = true )

◆ ClearSortNames()

void cRecordings::ClearSortNames ( void )

Definition at line 1819 of file recording.c.

References cList< cRecording >::First(), and cList< cRecording >::Next().

◆ DelByName()

◆ GetById() [1/2]

cRecording * cRecordings::GetById ( int Id)
inline

Definition at line 286 of file recording.h.

References cRecordings().

◆ GetById() [2/2]

const cRecording * cRecordings::GetById ( int Id) const

Definition at line 1672 of file recording.c.

References cList< cRecording >::First(), and cList< cRecording >::Next().

◆ GetByName() [1/2]

cRecording * cRecordings::GetByName ( const char * FileName)
inline

Definition at line 288 of file recording.h.

References cRecordings().

◆ GetByName() [2/2]

◆ GetDeletedRecordingsRead()

const cRecordings * cRecordings::GetDeletedRecordingsRead ( cStateKey & StateKey,
int TimeoutMs = 0 )
inlinestatic

Gets the list of deleted recordings for read access.

See cTimers::GetTimersRead() for details.

Definition at line 268 of file recording.h.

References cRecordings(), and deletedRecordings.

◆ GetDeletedRecordingsWrite()

cRecordings * cRecordings::GetDeletedRecordingsWrite ( cStateKey & StateKey,
int TimeoutMs = 0 )
inlinestatic

Gets the list of deleted recordings for write access.

See cTimers::GetTimersWrite() for details.

Definition at line 271 of file recording.h.

References cRecordings(), and deletedRecordings.

◆ GetNumRecordingsInPath()

int cRecordings::GetNumRecordingsInPath ( const char * Path) const

Returns the total number of recordings in the given Path, including all sub-folders of Path.

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

Definition at line 1781 of file recording.c.

References cList< cRecording >::First(), and cList< cRecording >::Next().

◆ GetRecordingsRead()

const cRecordings * cRecordings::GetRecordingsRead ( cStateKey & StateKey,
int TimeoutMs = 0 )
inlinestatic

◆ GetRecordingsWrite()

cRecordings * cRecordings::GetRecordingsWrite ( cStateKey & StateKey,
int TimeoutMs = 0 )
inlinestatic

Gets the list of recordings for write access.

See cTimers::GetTimersWrite() for details.

Definition at line 265 of file recording.h.

References cRecordings(), and recordings.

Referenced by cMenuRecordingEdit::ApplyChanges(), cMenuRecordings::Delete(), cCuttingThread::HandleErrors(), cResumeFile::Save(), and cMenuRecordings::Set().

◆ MBperMinute()

double cRecordings::MBperMinute ( void ) const

Returns the average data rate (in MB/min) of all recordings, or -1 if this value is unknown.

Definition at line 1750 of file recording.c.

References cList< cRecording >::First(), LIMIT_SECS_PER_MB_RADIO, and cList< cRecording >::Next().

◆ MoveRecordings()

bool cRecordings::MoveRecordings ( const char * OldPath,
const char * NewPath )

Moves all recordings in OldPath to NewPath.

Returns true if all recordings were successfully moved. As soon as the operation fails for one recording, the whole action is aborted and false will be returned. Any recordings that have been successfully moved thus far will keep their new name. If OldPath and NewPath are on different file systems, the recordings will be moved in a background process and this function returns true if all recordings have been successfully added to the RecordingsHandler.

Definition at line 1791 of file recording.c.

References dsyslog, cList< cRecording >::First(), cList< cRecording >::Next(), cString::sprintf(), and TouchUpdate().

◆ NeedsUpdate()

bool cRecordings::NeedsUpdate ( void )
static

Definition at line 1652 of file recording.c.

References LastModifiedTime(), lastUpdate, and UpdateFileName().

Referenced by main(), and TouchUpdate().

◆ PathIsInUse()

int cRecordings::PathIsInUse ( const char * Path) const

Checks whether any recording in the given Path is currently in use and therefore the whole Path shall not be tampered with.

Returns 0 (ruNone) if no recording is in use. See cRecording::IsInUse() for details about the possible non-zero return values. If several recordings in the Path are currently in use, the return value will be the combination of all individual recordings' flags. If Path is NULL or an empty string, the entire video directory is checked.

Definition at line 1771 of file recording.c.

References cList< cRecording >::First(), cList< cRecording >::Next(), and ruNone.

◆ ResetResume()

void cRecordings::ResetResume ( const char * ResumeFileName = NULL)

Definition at line 1811 of file recording.c.

References cList< cRecording >::First(), and cList< cRecording >::Next().

◆ TotalFileSizeMB()

int cRecordings::TotalFileSizeMB ( void ) const

Definition at line 1739 of file recording.c.

References cList< cRecording >::First(), and cList< cRecording >::Next().

◆ TouchUpdate()

void cRecordings::TouchUpdate ( void )
static

Touches the '.update' file in the video directory, so that other instances of VDR that access the same video directory can be triggered to update their recordings list.

Definition at line 1644 of file recording.c.

References lastUpdate, NeedsUpdate(), TouchFile(), and UpdateFileName().

Referenced by cRemoveDeletedRecordingsThread::Action(), cRecordingsHandlerEntry::Active(), AddByName(), cMenuRecordingEdit::ApplyChanges(), DelByName(), and MoveRecordings().

◆ Update()

void cRecordings::Update ( bool Wait = false)
static

Triggers an update of the list of recordings, which will run as a separate thread if Wait is false.

If Wait is true, the function returns only after the update has completed.

Definition at line 1660 of file recording.c.

References deletedRecordings, lastUpdate, recordings, cCondWait::SleepMs(), and videoDirectoryScannerThread.

Referenced by AssertFreeDiskSpace(), and main().

◆ UpdateByName()

void cRecordings::UpdateByName ( const char * FileName)

Definition at line 1731 of file recording.c.

References GetByName().

Referenced by AddByName().

◆ UpdateFileName()

const char * cRecordings::UpdateFileName ( void )
staticprivate

Definition at line 1637 of file recording.c.

References AddDirectory(), cVideoDirectory::Name(), and updateFileName.

Referenced by NeedsUpdate(), and TouchUpdate().

Member Data Documentation

◆ deletedRecordings

cRecordings cRecordings::deletedRecordings
staticprivate

Definition at line 253 of file recording.h.

Referenced by GetDeletedRecordingsRead(), GetDeletedRecordingsWrite(), and Update().

◆ lastRecordingId

int cRecordings::lastRecordingId = 0
staticprivate

Definition at line 254 of file recording.h.

Referenced by Add().

◆ lastUpdate

time_t cRecordings::lastUpdate = 0
staticprivate

Definition at line 256 of file recording.h.

Referenced by NeedsUpdate(), TouchUpdate(), and Update().

◆ recordings

cRecordings cRecordings::recordings
staticprivate

Definition at line 252 of file recording.h.

Referenced by GetRecordingsRead(), GetRecordingsWrite(), and Update().

◆ updateFileName

char * cRecordings::updateFileName = NULL
staticprivate

Definition at line 255 of file recording.h.

Referenced by UpdateFileName().

◆ videoDirectoryScannerThread

cVideoDirectoryScannerThread * cRecordings::videoDirectoryScannerThread = NULL
staticprivate

Definition at line 257 of file recording.h.

Referenced by Update(), and ~cRecordings().


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