summaryrefslogtreecommitdiff
path: root/recording.h
blob: 37ec6601c74bbc14481f338c19edf1ac91c1be2f (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
 * recording.h: Duplicate recording handling.
 *
 * See the README file for copyright information and how to reach the author.
 *
 * $Id$
 */

#ifndef _DUPLICATES_RECORDING_H
#define _DUPLICATES_RECORDING_H

#include "visibility.h"
#include <vdr/recording.h>
#include <string>

// --- cDuplicateRecording -------------------------------------------------------

class cDuplicateRecording : public cListObject {
private:
  bool checked;
  cVisibility visibility;
  std::string fileName;
  std::string text;
  std::string title;
  std::string description;
  cList<cDuplicateRecording> *duplicates;
public:
  cDuplicateRecording(void);
  cDuplicateRecording(const cRecording *Recording);
  cDuplicateRecording(const cDuplicateRecording &DuplicateRecording);
  ~cDuplicateRecording();
  bool HasDescription(void) const { return ! description.empty(); }
  bool IsDuplicate(cDuplicateRecording *DuplicateRecording);
  void SetChecked(bool chkd = true) { checked = chkd; }
  bool Checked() { return checked; }
  cVisibility Visibility() { return visibility; }
  std::string FileName(void) { return fileName; }
  void SetText(std::string t) { text = t; }
  std::string Text(void) { return text; }
  cList<cDuplicateRecording> *Duplicates(void) { return duplicates; }
};

// --- cDuplicateRecordings ------------------------------------------------------

class cDuplicateRecordings : public cList<cDuplicateRecording> {
public:
  cDuplicateRecordings(void);
  bool RemoveDeleted(void);
};

extern cDuplicateRecordings DuplicateRecordings;

// --- cDuplicateRecordingScannerThread ------------------------------------------

class cDuplicateRecordingScannerThread : public cThread {
private:
  cStateKey recordingsStateKey;
  int title;
  int hidden;
  void Scan(void);
  bool RecordingsStateChanged(void);
protected:
  virtual void Action(void);
public:
  cDuplicateRecordingScannerThread();
  ~cDuplicateRecordingScannerThread();
  void Stop(void);
};

extern cDuplicateRecordingScannerThread DuplicateRecordingScanner;

#endif