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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
#include "Movie.h"
#include "EncodeTarget.h"
#include <QDir>
#include <QFile>
#include <QFileInfo>
#include <QCoreApplication>
#ifdef ENABLE_RIPPING
Movie::Movie(const QString &title, QObject *parent) : QObject(parent),
m_title(title),
m_isoLocation(fileNameFromTitle(title, QLatin1String("iso"))),
m_videoTrack(0),
m_audioTrack(1),
m_hasRipped(false),
m_hasUploaded(false)
{
setMp4LocationDirectory(QFileInfo(m_isoLocation).path());
}
#endif
Movie::Movie(const QString &title, const QString &isoLocation, QObject *parent) : QObject(parent),
m_title(title),
m_isoLocation(isoLocation),
m_videoTrack(0),
m_audioTrack(1),
m_hasRipped(QFile::exists(isoLocation)),
m_hasUploaded(false)
{
setMp4LocationDirectory(QFileInfo(m_isoLocation).path());
}
Movie::Movie(const QString &title, const QString &isoLocation, const QString &mp4LocationDirectory, QObject *parent) : QObject(parent),
m_title(title),
m_isoLocation(isoLocation),
m_videoTrack(0),
m_audioTrack(1),
m_hasRipped(QFile::exists(isoLocation)),
m_hasUploaded(false)
{
setMp4LocationDirectory(mp4LocationDirectory);
}
QString Movie::fileNameFromTitle(const QString &title, const QString &extension)
{
QString directory = QString("%1/%2/%3").arg(QDir::homePath(), QCoreApplication::applicationName(), title);
QDir().mkpath(directory);
return QString("%1/%2.%3").arg(directory, title, extension);
}
QString Movie::titleFromISOName(const QString &isoName)
{
QString name = QString(isoName).replace(QLatin1Char('_'), QLatin1Char(' ')).toLower();
int i = 0;
do {
name[i] = name[i].toUpper();
i = name.indexOf(QLatin1Char(' '), i) + 1;
} while (i);
return name;
}
QString Movie::title() const
{
return m_title;
}
void Movie::setTitle(const QString &title)
{
m_title = title;
}
QString Movie::isoLocation() const
{
return m_isoLocation;
}
void Movie::setIsoLocation(const QString &isoLocation)
{
m_isoLocation = isoLocation;
m_hasRipped = QFile::exists(isoLocation);
}
bool Movie::hasRipped() const
{
return m_hasRipped;
}
void Movie::setRipped(bool ripped)
{
m_hasRipped = ripped && QFile::exists(m_isoLocation);
}
QStringList Movie::mp4Locations() const
{
return m_mp4Locations;
}
void Movie::setMp4LocationDirectory(const QString &mp4LocationDirectory)
{
m_mp4Locations.clear();
QDir().mkpath(mp4LocationDirectory);
foreach (EncodeTarget target, EncodeTarget::targets()) {
m_mp4Locations.append(QString("%1/%2%3").arg(mp4LocationDirectory, m_title, target.suffix()));
}
setEncoded(m_mp4Locations.length() != 1);
}
bool Movie::hasEncoded() const
{
return m_hasEncoded;
}
void Movie::setEncoded(bool encoded)
{
m_hasEncoded = encoded;
foreach (QString mp4Location, m_mp4Locations)
m_hasEncoded &= QFile::exists(mp4Location);
}
bool Movie::hasUploaded() const
{
return m_hasUploaded;
}
void Movie::setUploaded(bool uploaded)
{
m_hasUploaded = uploaded;
}
quint8 Movie::videoTrack() const
{
return m_videoTrack;
}
void Movie::setVideoTrack(quint8 videoTrack)
{
m_videoTrack = videoTrack;
if (m_videoTrack)
emit trackSet();
}
quint8 Movie::audioTrack() const
{
return m_audioTrack;
}
void Movie::setAudioTrack(quint8 audioTrack)
{
m_audioTrack = audioTrack;
if (m_audioTrack)
emit trackSet();
}
|