MythTV
0.27pre
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Groups
Pages
libs
libmyth
programtypes.cpp
Go to the documentation of this file.
1
// -*- Mode: c++ -*-
2
3
#include <QDateTime>
4
#include <QMutex>
5
6
#include "
programtypes.h
"
7
#include "
mythdate.h
"
8
9
const
char
*
kPlayerInUseID
=
"player"
;
10
const
char
*
kPIPPlayerInUseID
=
"pipplayer"
;
11
const
char
*
kPBPPlayerInUseID
=
"pbpplayer"
;
12
const
char
*
kImportRecorderInUseID
=
"import_recorder"
;
13
const
char
*
kRecorderInUseID
=
"recorder"
;
14
const
char
*
kFileTransferInUseID
=
"filetransfer"
;
15
const
char
*
kTruncatingDeleteInUseID
=
"truncatingdelete"
;
16
const
char
*
kFlaggerInUseID
=
"flagger"
;
17
const
char
*
kTranscoderInUseID
=
"transcoder"
;
18
const
char
*
kPreviewGeneratorInUseID
=
"preview_generator"
;
19
const
char
*
kJobQueueInUseID
=
"jobqueue"
;
20
const
char
*
kCCExtractorInUseID
=
"ccextractor"
;
21
22
QString
toString
(
MarkTypes
type
)
23
{
24
switch
(type)
25
{
26
case
MARK_ALL
:
return
"ALL"
;
27
case
MARK_UNSET
:
return
"UNSET"
;
28
case
MARK_TMP_CUT_END
:
return
"TMP_CUT_END"
;
29
case
MARK_TMP_CUT_START
:
return
"TMP_CUT_START"
;
30
case
MARK_UPDATED_CUT
:
return
"UPDATED_CUT"
;
31
case
MARK_PLACEHOLDER
:
return
"PLACEHOLDER"
;
32
case
MARK_CUT_END
:
return
"CUT_END"
;
33
case
MARK_CUT_START
:
return
"CUT_START"
;
34
case
MARK_BOOKMARK
:
return
"BOOKMARK"
;
35
case
MARK_BLANK_FRAME
:
return
"BLANK_FRAME"
;
36
case
MARK_COMM_START
:
return
"COMM_START"
;
37
case
MARK_COMM_END
:
return
"COMM_END"
;
38
case
MARK_GOP_START
:
return
"GOP_START"
;
39
case
MARK_KEYFRAME
:
return
"KEYFRAME"
;
40
case
MARK_SCENE_CHANGE
:
return
"SCENE_CHANGE"
;
41
case
MARK_GOP_BYFRAME
:
return
"GOP_BYFRAME"
;
42
case
MARK_ASPECT_1_1
:
return
"ASPECT_1_1 (depreciated)"
;
43
case
MARK_ASPECT_4_3
:
return
"ASPECT_4_3"
;
44
case
MARK_ASPECT_16_9
:
return
"ASPECT_16_9"
;
45
case
MARK_ASPECT_2_21_1
:
return
"ASPECT_2_21_1"
;
46
case
MARK_ASPECT_CUSTOM
:
return
"ASPECT_CUSTOM"
;
47
case
MARK_VIDEO_WIDTH
:
return
"VIDEO_WIDTH"
;
48
case
MARK_VIDEO_HEIGHT
:
return
"VIDEO_HEIGHT"
;
49
case
MARK_VIDEO_RATE
:
return
"VIDEO_RATE"
;
50
case
MARK_DURATION_MS
:
return
"DURATION_MS"
;
51
case
MARK_TOTAL_FRAMES
:
return
"TOTAL_FRAMES"
;
52
}
53
54
return
"unknown"
;
55
}
56
57
QString
toUIState
(
RecStatusType
recstatus)
58
{
59
if
(recstatus ==
rsRecorded
|| recstatus ==
rsWillRecord
||
60
recstatus ==
rsOtherShowing
)
61
return
"normal"
;
62
63
if
(recstatus ==
rsRecording
|| recstatus ==
rsTuning
||
64
recstatus ==
rsOtherRecording
|| recstatus ==
rsOtherTuning
)
65
return
"running"
;
66
67
if
(recstatus ==
rsConflict
|| recstatus ==
rsOffLine
||
68
recstatus ==
rsTunerBusy
|| recstatus ==
rsFailed
||
69
recstatus ==
rsAborted
|| recstatus ==
rsMissed
)
70
{
71
return
"error"
;
72
}
73
74
if
(recstatus ==
rsRepeat
||
75
recstatus ==
rsNeverRecord
|| recstatus ==
rsDontRecord
||
76
(recstatus !=
rsDontRecord
&& recstatus <=
rsEarlierShowing
))
77
{
78
return
"disabled"
;
79
}
80
81
return
"warning"
;
82
}
83
85
QString
toString
(
RecStatusType
recstatus,
uint
id
)
86
{
87
QString ret =
"-"
;
88
switch
(recstatus)
89
{
90
case
rsAborted
:
91
ret = QObject::tr(
"A"
,
"RecStatusChar rsAborted"
);
92
break
;
93
case
rsRecorded
:
94
ret = QObject::tr(
"R"
,
"RecStatusChar rsRecorded"
);
95
break
;
96
case
rsRecording
:
97
ret = QString::number(
id
);
98
break
;
99
case
rsTuning
:
100
ret = QString::number(
id
);
101
break
;
102
case
rsWillRecord
:
103
ret = QString::number(
id
);
104
break
;
105
case
rsDontRecord
:
106
ret = QObject::tr(
"X"
,
"RecStatusChar rsDontRecord"
);
107
break
;
108
case
rsPreviousRecording
:
109
ret = QObject::tr(
"P"
,
"RecStatusChar rsPreviousRecording"
);
110
break
;
111
case
rsCurrentRecording
:
112
ret = QObject::tr(
"R"
,
"RecStatusChar rsCurrentRecording"
);
113
break
;
114
case
rsEarlierShowing
:
115
ret = QObject::tr(
"E"
,
"RecStatusChar rsEarlierShowing"
);
116
break
;
117
case
rsTooManyRecordings
:
118
ret = QObject::tr(
"T"
,
"RecStatusChar rsTooManyRecordings"
);
119
break
;
120
case
rsCancelled
:
121
ret = QObject::tr(
"c"
,
"RecStatusChar rsCancelled"
);
122
break
;
123
case
rsMissed
:
124
ret = QObject::tr(
"M"
,
"RecStatusChar rsMissed"
);
125
break
;
126
case
rsMissedFuture
:
127
ret =
"M"
;
128
break
;
129
case
rsConflict
:
130
ret = QObject::tr(
"C"
,
"RecStatusChar rsConflict"
);
131
break
;
132
case
rsLaterShowing
:
133
ret = QObject::tr(
"L"
,
"RecStatusChar rsLaterShowing"
);
134
break
;
135
case
rsRepeat
:
136
ret = QObject::tr(
"r"
,
"RecStatusChar rsRepeat"
);
137
break
;
138
case
rsInactive
:
139
ret = QObject::tr(
"x"
,
"RecStatusChar rsInactive"
);
140
break
;
141
case
rsLowDiskSpace
:
142
ret = QObject::tr(
"K"
,
"RecStatusChar rsLowDiskSpace"
);
143
break
;
144
case
rsTunerBusy
:
145
ret = QObject::tr(
"B"
,
"RecStatusChar rsTunerBusy"
);
146
break
;
147
case
rsFailed
:
148
ret = QObject::tr(
"f"
,
"RecStatusChar rsFailed"
);
149
break
;
150
case
rsNotListed
:
151
ret = QObject::tr(
"N"
,
"RecStatusChar rsNotListed"
);
152
break
;
153
case
rsNeverRecord
:
154
ret = QObject::tr(
"V"
,
"RecStatusChar rsNeverRecord"
);
155
break
;
156
case
rsOffLine
:
157
ret = QObject::tr(
"F"
,
"RecStatusChar rsOffLine"
);
158
break
;
159
case
rsOtherShowing
:
160
ret = QString::number(
id
);
161
break
;
162
case
rsOtherRecording
:
163
ret = QString::number(
id
);
164
break
;
165
case
rsOtherTuning
:
166
ret = QString::number(
id
);
167
break
;
168
case
rsUnknown
:
169
break
;
170
}
171
172
return
(ret.isEmpty()) ? QString(
"-"
) : ret;
173
}
174
176
QString
toString
(
RecStatusType
recstatus,
RecordingType
rectype)
177
{
178
if
(recstatus ==
rsUnknown
&& rectype ==
kNotRecording
)
179
return
QObject::tr(
"Not Recording"
);
180
181
switch
(recstatus)
182
{
183
case
rsAborted
:
184
return
QObject::tr(
"Aborted"
);
185
case
rsRecorded
:
186
return
QObject::tr(
"Recorded"
);
187
case
rsRecording
:
188
return
QObject::tr(
"Recording"
);
189
case
rsTuning
:
190
return
QObject::tr(
"Tuning"
);
191
case
rsWillRecord
:
192
return
QObject::tr(
"Will Record"
);
193
case
rsDontRecord
:
194
return
QObject::tr(
"Don't Record"
);
195
case
rsPreviousRecording
:
196
return
QObject::tr(
"Previously Recorded"
);
197
case
rsCurrentRecording
:
198
return
QObject::tr(
"Currently Recorded"
);
199
case
rsEarlierShowing
:
200
return
QObject::tr(
"Earlier Showing"
);
201
case
rsTooManyRecordings
:
202
return
QObject::tr(
"Max Recordings"
);
203
case
rsCancelled
:
204
return
QObject::tr(
"Manual Cancel"
);
205
case
rsMissed
:
206
return
QObject::tr(
"Missed"
);
207
case
rsMissedFuture
:
208
return
"Missed Future"
;
209
case
rsConflict
:
210
return
QObject::tr(
"Conflicting"
);
211
case
rsLaterShowing
:
212
return
QObject::tr(
"Later Showing"
);
213
case
rsRepeat
:
214
return
QObject::tr(
"Repeat"
);
215
case
rsInactive
:
216
return
QObject::tr(
"Inactive"
);
217
case
rsLowDiskSpace
:
218
return
QObject::tr(
"Low Disk Space"
);
219
case
rsTunerBusy
:
220
return
QObject::tr(
"Tuner Busy"
);
221
case
rsFailed
:
222
return
QObject::tr(
"Recorder Failed"
);
223
case
rsNotListed
:
224
return
QObject::tr(
"Not Listed"
);
225
case
rsNeverRecord
:
226
return
QObject::tr(
"Never Record"
);
227
case
rsOffLine
:
228
return
QObject::tr(
"Recorder Off-Line"
);
229
case
rsOtherShowing
:
230
return
QObject::tr(
"Other Showing"
);
231
case
rsOtherRecording
:
232
return
QObject::tr(
"Other Recording"
);
233
case
rsOtherTuning
:
234
return
QObject::tr(
"Other Tuning"
);
235
case
rsUnknown
:
236
return
QObject::tr(
"Unknown"
);
237
}
238
239
return
QObject::tr(
"Unknown"
);
240
}
241
243
QString
toDescription
(
RecStatusType
recstatus,
RecordingType
rectype,
244
const
QDateTime &recstartts)
245
{
246
if
(recstatus ==
rsUnknown
&& rectype ==
kNotRecording
)
247
return
QObject::tr(
"This showing is not scheduled to record"
);
248
249
QString message;
250
QDateTime now =
MythDate::current
();
251
252
if
(recstatus <=
rsWillRecord
||
253
recstatus ==
rsOtherShowing
)
254
{
255
switch
(recstatus)
256
{
257
case
rsWillRecord
:
258
message = QObject::tr(
"This showing will be recorded."
);
259
break
;
260
case
rsRecording
:
261
message = QObject::tr(
"This showing is being recorded."
);
262
break
;
263
case
rsTuning
:
264
message = QObject::tr(
"The showing is being tuned."
);
265
break
;
266
case
rsOtherRecording
:
267
message = QObject::tr(
"This showing is being recorded on "
268
"a different channel."
);
269
break
;
270
case
rsOtherTuning
:
271
message = QObject::tr(
"The showing is being tuned on a "
272
"different channel."
);
273
break
;
274
case
rsRecorded
:
275
message = QObject::tr(
"This showing was recorded."
);
276
break
;
277
case
rsAborted
:
278
message = QObject::tr(
"This showing was recorded but was "
279
"aborted before completion."
);
280
break
;
281
case
rsMissed
:
282
case
rsMissedFuture
:
283
message = QObject::tr(
"This showing was not recorded because "
284
"the master backend was not running."
);
285
break
;
286
case
rsCancelled
:
287
message = QObject::tr(
"This showing was not recorded because "
288
"it was manually cancelled."
);
289
break
;
290
case
rsLowDiskSpace
:
291
message = QObject::tr(
"This showing was not recorded because "
292
"there wasn't enough disk space."
);
293
break
;
294
case
rsTunerBusy
:
295
message = QObject::tr(
"This showing was not recorded because "
296
"the recorder was already in use."
);
297
break
;
298
case
rsFailed
:
299
message = QObject::tr(
"This showing was not recorded because "
300
"the recorder failed."
);
301
break
;
302
case
rsOtherShowing
:
303
message += QObject::tr(
"This showing will be recorded on a "
304
"different channel."
);
305
break
;
306
default
:
307
message = QObject::tr(
"The status of this showing is unknown."
);
308
break
;
309
}
310
311
return
message;
312
}
313
314
if
(recstartts > now)
315
message = QObject::tr(
"This showing will not be recorded because "
);
316
else
317
message = QObject::tr(
"This showing was not recorded because "
);
318
319
switch
(recstatus)
320
{
321
case
rsDontRecord
:
322
message += QObject::tr(
"it was manually set to not record."
);
323
break
;
324
case
rsPreviousRecording
:
325
message += QObject::tr(
"this episode was previously recorded "
326
"according to the duplicate policy chosen "
327
"for this title."
);
328
break
;
329
case
rsCurrentRecording
:
330
message += QObject::tr(
"this episode was previously recorded and "
331
"is still available in the list of "
332
"recordings."
);
333
break
;
334
case
rsEarlierShowing
:
335
message += QObject::tr(
"this episode will be recorded at an "
336
"earlier time instead."
);
337
break
;
338
case
rsTooManyRecordings
:
339
message += QObject::tr(
"too many recordings of this program have "
340
"already been recorded."
);
341
break
;
342
case
rsConflict
:
343
message += QObject::tr(
"another program with a higher priority "
344
"will be recorded."
);
345
break
;
346
case
rsLaterShowing
:
347
message += QObject::tr(
"this episode will be recorded at a "
348
"later time instead."
);
349
break
;
350
case
rsRepeat
:
351
message += QObject::tr(
"this episode is a repeat."
);
352
break
;
353
case
rsInactive
:
354
message += QObject::tr(
"this recording rule is inactive."
);
355
break
;
356
case
rsNotListed
:
357
message += QObject::tr(
"this rule does not match any showings in "
358
"the current program listings."
);
359
break
;
360
case
rsNeverRecord
:
361
message += QObject::tr(
"it was marked to never be recorded."
);
362
break
;
363
case
rsOffLine
:
364
message += QObject::tr(
"the required recorder is off-line."
);
365
break
;
366
default
:
367
if
(recstartts > now)
368
message = QObject::tr(
"This showing will not be recorded."
);
369
else
370
message = QObject::tr(
"This showing was not recorded."
);
371
break
;
372
}
373
374
return
message;
375
}
376
377
QString
toString
(
AvailableStatusType
status)
378
{
379
switch
(status)
380
{
381
case
asAvailable
:
return
"Available"
;
382
case
asNotYetAvailable
:
return
"NotYetAvailable"
;
383
case
asPendingDelete
:
return
"PendingDelete"
;
384
case
asFileNotFound
:
return
"FileNotFound"
;
385
case
asZeroByte
:
return
"ZeroByte"
;
386
case
asDeleted
:
return
"Deleted"
;
387
}
388
return
QString(
"Unknown(%1)"
).arg((
int
)status);
389
}
390
391
/* vim: set expandtab tabstop=4 shiftwidth=4: */
Generated on Sat May 18 2013 00:59:57 for MythTV by
1.8.1.2