00001 #ifndef _PROGRAM_INFO_TYPES_H_
00002 #define _PROGRAM_INFO_TYPES_H_
00003
00004
00005 #include <stdint.h>
00006
00007
00008 #include <deque>
00009 using namespace std;
00010
00011
00012 #include <QString>
00013 #include <QMap>
00014 #include <QHash>
00015
00016
00017 #include "mythexp.h"
00018 #include "recordingtypes.h"
00019
00020 class QDateTime;
00021 class QMutex;
00022
00023 MPUBLIC extern const char *kPlayerInUseID;
00024 MPUBLIC extern const char *kPIPPlayerInUseID;
00025 MPUBLIC extern const char *kPBPPlayerInUseID;
00026 MPUBLIC extern const char *kImportRecorderInUseID;
00027 MPUBLIC extern const char *kRecorderInUseID;
00028 MPUBLIC extern const char *kFileTransferInUseID;
00029 MPUBLIC extern const char *kTruncatingDeleteInUseID;
00030 MPUBLIC extern const char *kFlaggerInUseID;
00031 MPUBLIC extern const char *kTranscoderInUseID;
00032 MPUBLIC extern const char *kPreviewGeneratorInUseID;
00033 MPUBLIC extern const char *kJobQueueInUseID;
00034 MPUBLIC extern const char *kCCExtractorInUseID;
00035
00036 typedef QHash<QString,QString> InfoMap;
00037
00039 typedef QMap<uint64_t, uint64_t> frm_pos_map_t;
00040
00041 typedef enum {
00042 MARK_ALL = -100,
00043 MARK_UNSET = -10,
00044 MARK_TMP_CUT_END = -5,
00045 MARK_TMP_CUT_START = -4,
00046 MARK_UPDATED_CUT = -3,
00047 MARK_PLACEHOLDER = -2,
00048 MARK_CUT_END = 0,
00049 MARK_CUT_START = 1,
00050 MARK_BOOKMARK = 2,
00051 MARK_BLANK_FRAME = 3,
00052 MARK_COMM_START = 4,
00053 MARK_COMM_END = 5,
00054 MARK_GOP_START = 6,
00055 MARK_KEYFRAME = 7,
00056 MARK_SCENE_CHANGE = 8,
00057 MARK_GOP_BYFRAME = 9,
00058 MARK_ASPECT_1_1 = 10,
00059 MARK_ASPECT_4_3 = 11,
00060 MARK_ASPECT_16_9 = 12,
00061 MARK_ASPECT_2_21_1 = 13,
00062 MARK_ASPECT_CUSTOM = 14,
00063 MARK_VIDEO_WIDTH = 30,
00064 MARK_VIDEO_HEIGHT = 31,
00065 MARK_VIDEO_RATE = 32,
00066 MARK_DURATION_MS = 33,
00067 MARK_TOTAL_FRAMES = 34,
00068 } MarkTypes;
00069 MPUBLIC QString toString(MarkTypes type);
00070
00072 typedef QMap<uint64_t, MarkTypes> frm_dir_map_t;
00073
00074 typedef enum CommFlagStatuses {
00075 COMM_FLAG_NOT_FLAGGED = 0,
00076 COMM_FLAG_DONE = 1,
00077 COMM_FLAG_PROCESSING = 2,
00078 COMM_FLAG_COMMFREE = 3
00079 } CommFlagStatus;
00080
00082 typedef enum SkipTypes {
00083 COMM_DETECT_COMMFREE = -2,
00084 COMM_DETECT_UNINIT = -1,
00085 COMM_DETECT_OFF = 0x00000000,
00086 COMM_DETECT_BLANK = 0x00000001,
00087 COMM_DETECT_BLANKS = COMM_DETECT_BLANK,
00088 COMM_DETECT_SCENE = 0x00000002,
00089 COMM_DETECT_LOGO = 0x00000004,
00090 COMM_DETECT_BLANK_SCENE = (COMM_DETECT_BLANKS | COMM_DETECT_SCENE),
00091 COMM_DETECT_ALL = (COMM_DETECT_BLANKS |
00092 COMM_DETECT_SCENE |
00093 COMM_DETECT_LOGO),
00094 COMM_DETECT_2 = 0x00000100,
00095 COMM_DETECT_2_LOGO = COMM_DETECT_2 | COMM_DETECT_LOGO,
00096 COMM_DETECT_2_BLANK = COMM_DETECT_2 | COMM_DETECT_BLANKS,
00097 COMM_DETECT_2_SCENE = COMM_DETECT_2 | COMM_DETECT_SCENE,
00098
00099
00100 COMM_DETECT_2_ALL = (COMM_DETECT_2_LOGO | COMM_DETECT_2_BLANK),
00101
00102 COMM_DETECT_PREPOSTROLL = 0x00000200,
00103 COMM_DETECT_PREPOSTROLL_ALL = (COMM_DETECT_PREPOSTROLL
00104 | COMM_DETECT_BLANKS
00105 | COMM_DETECT_SCENE)
00106 } SkipType;
00107
00108 MPUBLIC QString SkipTypeToString(int);
00109 MPUBLIC deque<int> GetPreferredSkipTypeCombinations(void);
00110
00111 typedef enum TranscodingStatuses {
00112 TRANSCODING_NOT_TRANSCODED = 0,
00113 TRANSCODING_COMPLETE = 1,
00114 TRANSCODING_RUNNING = 2
00115 } TranscodingStatus;
00116
00121 typedef enum FlagMask {
00122 FL_NONE = 0x00000000,
00123 FL_COMMFLAG = 0x00000001,
00124 FL_CUTLIST = 0x00000002,
00125 FL_AUTOEXP = 0x00000004,
00126 FL_EDITING = 0x00000008,
00127 FL_BOOKMARK = 0x00000010,
00128 FL_REALLYEDITING = 0x00000020,
00129 FL_COMMPROCESSING = 0x00000040,
00130 FL_DELETEPENDING = 0x00000080,
00131 FL_TRANSCODED = 0x00000100,
00132 FL_WATCHED = 0x00000200,
00133 FL_PRESERVED = 0x00000400,
00134 FL_CHANCOMMFREE = 0x00000800,
00135 FL_REPEAT = 0x00001000,
00136 FL_DUPLICATE = 0x00002000,
00137 FL_REACTIVATE = 0x00004000,
00138 FL_IGNOREBOOKMARK = 0x00008000,
00139
00140 FL_TYPEMASK = 0x000F0000,
00141 FL_INUSERECORDING = 0x00100000,
00142 FL_INUSEPLAYING = 0x00200000,
00143 FL_INUSEOTHER = 0x00400000,
00144 } ProgramFlag;
00145
00146 typedef enum ProgramInfoType {
00147 kProgramInfoTypeRecording = 0,
00148 kProgramInfoTypeVideoFile,
00149 kProgramInfoTypeVideoDVD,
00150 kProgramInfoTypeVideoStreamingHTML,
00151 kProgramInfoTypeVideoStreamingRTSP,
00152 kProgramInfoTypeVideoBD,
00153 } ProgramInfoType;
00154
00157 typedef enum AudioProps {
00158 AUD_UNKNOWN = 0x00,
00159 AUD_STEREO = 0x01,
00160 AUD_MONO = 0x02,
00161 AUD_SURROUND = 0x04,
00162 AUD_DOLBY = 0x08,
00163 AUD_HARDHEAR = 0x10,
00164 AUD_VISUALIMPAIR = 0x20,
00165 } AudioProperty;
00166 #define kAudioPropertyBits 6
00167 #define kAudioPropertyOffset 0
00168 #define kAudioPropertyMask (0x3f<<kAudioPropertyOffset)
00169
00172 typedef enum VideoProps {
00173
00174 VID_UNKNOWN = 0x00,
00175 VID_HDTV = 0x01,
00176 VID_WIDESCREEN = 0x02,
00177 VID_AVC = 0x04,
00178 VID_720 = 0x08,
00179 VID_1080 = 0x10,
00180 VID_DAMAGED = 0x20,
00181 } VideoProperty;
00182 #define kVideoPropertyBits 6
00183 #define kVideoPropertyOffset kAudioPropertyBits
00184 #define kVideoPropertyMask (0x3f<<kVideoPropertyOffset)
00185
00188 typedef enum SubtitleTypes {
00189
00190 SUB_UNKNOWN = 0x00,
00191 SUB_HARDHEAR = 0x01,
00192 SUB_NORMAL = 0x02,
00193 SUB_ONSCREEN = 0x04,
00194 SUB_SIGNED = 0x08
00195 } SubtitleType;
00196 #define kSubtitlePropertyBits 4
00197 #define kSubtitlePropertyOffset (kAudioPropertyBits+kVideoPropertyBits)
00198 #define kSubtitlePropertyMask (0x0f<<kSubtitlePropertyOffset)
00199
00200 typedef enum RecStatusTypes {
00201 rsOtherRecording = -13,
00202 rsOtherTuning = -12,
00203 rsMissedFuture = -11,
00204 rsTuning = -10,
00205 rsFailed = -9,
00206 rsTunerBusy = -8,
00207 rsLowDiskSpace = -7,
00208 rsCancelled = -6,
00209 rsMissed = -5,
00210 rsAborted = -4,
00211 rsRecorded = -3,
00212 rsRecording = -2,
00213 rsWillRecord = -1,
00214 rsUnknown = 0,
00215 rsDontRecord = 1,
00216 rsPreviousRecording = 2,
00217 rsCurrentRecording = 3,
00218 rsEarlierShowing = 4,
00219 rsTooManyRecordings = 5,
00220 rsNotListed = 6,
00221 rsConflict = 7,
00222 rsLaterShowing = 8,
00223 rsRepeat = 9,
00224 rsInactive = 10,
00225 rsNeverRecord = 11,
00226 rsOffLine = 12,
00227 rsOtherShowing = 13
00228 } RecStatusType;
00229 MPUBLIC QString toUIState(RecStatusType);
00230 MPUBLIC QString toString(RecStatusType, uint id);
00231 MPUBLIC QString toString(RecStatusType, RecordingType);
00232 MPUBLIC QString toDescription(RecStatusType, RecordingType,
00233 const QDateTime &recstartts);
00234
00235 typedef enum AvailableStatusTypes {
00236 asAvailable = 0,
00237 asNotYetAvailable,
00238 asPendingDelete,
00239 asFileNotFound,
00240 asZeroByte,
00241 asDeleted
00242 } AvailableStatusType;
00243 MPUBLIC QString toString(AvailableStatusType);
00244
00245 enum WatchListStatus {
00246 wlDeleted = -4,
00247 wlEarlier = -3,
00248 wlWatched = -2,
00249 wlExpireOff = -1
00250 };
00251
00252 typedef enum AutoExpireTypes {
00253 kDisableAutoExpire = 0,
00254 kNormalAutoExpire = 1,
00255 kDeletedAutoExpire = 9999,
00256 kLiveTVAutoExpire = 10000
00257 } AutoExpireType;
00258
00259 typedef enum MythDateFormats {
00260 TextDate = Qt::TextDate,
00261 ISODate = Qt::ISODate,
00262 LocalDate = Qt::LocalDate,
00263 MythDate = 0x100,
00264 } MythDateFormat;
00265
00266 #endif // _PROGRAM_INFO_TYPES_H_