summaryrefslogtreecommitdiffstats
path: root/daemon/Controller.h
blob: 60dfa539efe41c30cab6508ea8f76af30211a121 (plain) (blame)
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
#ifndef CONTROLLER_H
#define CONTROLLER_H

#include "Movie.h"
#include "UploadTask.h"
#include "EncodeTask.h"
#ifdef ENABLE_RIPPING
#include "RipTask.h"
#endif
#include <QObject>
#include <QLinkedList>
#include <QStringList>

class Controller : public QObject
{
	Q_OBJECT
public:
	Controller(QObject *parent = 0);
	bool addMovie(Movie *movie);
	Movie* movieForTitle(const QString &title);
	Movie* addISO(const QString &fileName);
	bool removeMovie(Movie *movie);
	QLinkedList<Movie*> addRecursiveISOs(const QString &dirName);
	QLinkedList<Movie*> movies() const;
#ifdef ENABLE_RIPPING
	RipTask* ripTask() const;
#endif
	EncodeTask* encodeTask() const;
	UploadTask* uploadTask() const;

private:
	QLinkedList<Movie*> m_movies;
#ifdef ENABLE_RIPPING
	RipTask m_ripTask;
#endif
	EncodeTask m_encodeTask;
	UploadTask m_uploadTask;

	void runTasks(Movie *movie);

private slots:
	void runTasksIfTrue(bool runThem);

public slots:
	void runTasks();

};

#endif // CONTROLLER_H