summaryrefslogtreecommitdiff
path: root/extensions/recfolderinfo.h
blob: 6e9f920e655bbe8eea302f783165cae7dacb4bc0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef __RECFOLDERINFO_H
#define __RECFOLDERINFO_H

#include <vdr/recording.h>


class cRecordingsFolderInfo {
public:
  class cFolderInfoIntern;

private:
  int                 _recState;
  cFolderInfoIntern  *_root;
  mutable cMutex      _rootLock;

  void Rebuild(void);

public:
  class cFolderInfo {
  public:
    cString Name;
    cString FullName;
    time_t  Latest;
    int     Count;
    cString LatestFileName;

    cFolderInfo(const char *Name, const char *FullName, time_t Latest, int Count, const char *LatestFileName);
  };

  cRecordingsFolderInfo();
  ~cRecordingsFolderInfo(void);

  // caller must delete the cInfo object!
  // returns NULL if folder doesn't exists
  // will rebuild tree if recordings' state has changed
  // is thread-safe
  cFolderInfo  *Get(const char *Folder);

  cString DebugOutput(void) const;
};

#endif // __RECFOLDERINFO_H