| 1 | Index: libs/libmythtv/datadirect.h |
|---|
| 2 | =================================================================== |
|---|
| 3 | --- libs/libmythtv/datadirect.h (revision 21445) |
|---|
| 4 | +++ libs/libmythtv/datadirect.h (working copy) |
|---|
| 5 | @@ -97,6 +97,7 @@ |
|---|
| 6 | QString stationid; // 12 |
|---|
| 7 | QDateTime time; |
|---|
| 8 | QTime duration; |
|---|
| 9 | + int sd_runtime; |
|---|
| 10 | bool repeat; |
|---|
| 11 | bool isnew; |
|---|
| 12 | bool stereo; |
|---|
| 13 | @@ -125,6 +126,7 @@ |
|---|
| 14 | QString mpaaRating; // 5 |
|---|
| 15 | QString starRating; // 5 |
|---|
| 16 | QTime duration; |
|---|
| 17 | + int sd_runtime; |
|---|
| 18 | QString year; // 4 |
|---|
| 19 | QString showtype; // 30 |
|---|
| 20 | QString colorcode; // 20 |
|---|
| 21 | Index: libs/libmythtv/datadirect.cpp |
|---|
| 22 | =================================================================== |
|---|
| 23 | --- libs/libmythtv/datadirect.cpp (revision 21445) |
|---|
| 24 | +++ libs/libmythtv/datadirect.cpp (working copy) |
|---|
| 25 | @@ -70,6 +70,7 @@ |
|---|
| 26 | DataDirectSchedule::DataDirectSchedule() : |
|---|
| 27 | programid(""), stationid(""), |
|---|
| 28 | time(QDateTime()), duration(QTime()), |
|---|
| 29 | + sd_runtime(0), |
|---|
| 30 | repeat(false), isnew(false), |
|---|
| 31 | stereo(false), dolby(false), |
|---|
| 32 | subtitled(false), |
|---|
| 33 | @@ -83,6 +84,7 @@ |
|---|
| 34 | programid(""), seriesid(""), title(""), |
|---|
| 35 | subtitle(""), description(""), mpaaRating(""), |
|---|
| 36 | starRating(""), duration(QTime()), year(""), |
|---|
| 37 | + sd_runtime(0), |
|---|
| 38 | showtype(""), colorcode(""), originalAirDate(QDate()), |
|---|
| 39 | syndicatedEpisodeNumber("") |
|---|
| 40 | { |
|---|
| 41 | @@ -340,13 +342,13 @@ |
|---|
| 42 | " ( programid, title, subtitle, " |
|---|
| 43 | " description, showtype, category_type, " |
|---|
| 44 | " mpaarating, starrating, stars, " |
|---|
| 45 | - " runtime, year, seriesid, " |
|---|
| 46 | + " runtime, sd_runtime, year, seriesid, " |
|---|
| 47 | " colorcode, syndicatedepisodenumber, originalairdate) " |
|---|
| 48 | "VALUES " |
|---|
| 49 | " (:PROGRAMID, :TITLE, :SUBTITLE, " |
|---|
| 50 | " :DESCRIPTION, :SHOWTYPE, :CATTYPE, " |
|---|
| 51 | " :MPAARATING, :STARRATING, :STARS, " |
|---|
| 52 | - " :RUNTIME, :YEAR, :SERIESID, " |
|---|
| 53 | + " :RUNTIME, :SD_RUNTIME, :YEAR, :SERIESID, " |
|---|
| 54 | " :COLORCODE, :SYNDNUM, :ORIGAIRDATE) "); |
|---|
| 55 | |
|---|
| 56 | query.bindValue(":PROGRAMID", curr_program.programid); |
|---|
| 57 | @@ -359,6 +361,7 @@ |
|---|
| 58 | query.bindValue(":STARRATING", curr_program.starRating); |
|---|
| 59 | query.bindValue(":STARS", staravg); |
|---|
| 60 | query.bindValue(":RUNTIME", curr_program.duration); |
|---|
| 61 | + query.bindValue(":SD_RUNTIME", curr_program.duration); |
|---|
| 62 | query.bindValue(":YEAR", curr_program.year); |
|---|
| 63 | query.bindValue(":SERIESID", curr_program.seriesid); |
|---|
| 64 | query.bindValue(":COLORCODE", curr_program.colorcode); |
|---|
| 65 | @@ -425,6 +428,7 @@ |
|---|
| 66 | |
|---|
| 67 | bool DDStructureParser::characters(const QString& pchars) |
|---|
| 68 | { |
|---|
| 69 | + int h, m; |
|---|
| 70 | // cerr << "Characters : " << pchars << "\n"; |
|---|
| 71 | if (pchars.trimmed().isEmpty()) |
|---|
| 72 | return true; |
|---|
| 73 | @@ -512,9 +516,10 @@ |
|---|
| 74 | else if (currtagname == "runTime") |
|---|
| 75 | { |
|---|
| 76 | QString runtimestr = pchars; |
|---|
| 77 | - QTime runtime = QTime(runtimestr.mid(2,2).toInt(), |
|---|
| 78 | - runtimestr.mid(5,2).toInt(), 0, 0); |
|---|
| 79 | + QTime runtime = QTime(h = runtimestr.mid(2,2).toInt(), |
|---|
| 80 | + m = runtimestr.mid(5,2).toInt(), 0, 0); |
|---|
| 81 | curr_program.duration = runtime; |
|---|
| 82 | + curr_program.sd_runtime = h * 60 + m; |
|---|
| 83 | } |
|---|
| 84 | else if (currtagname == "originalAirDate") |
|---|
| 85 | { |
|---|
| 86 | @@ -648,7 +653,7 @@ |
|---|
| 87 | " parttotal, seriesid, originalairdate, " |
|---|
| 88 | " showtype, category_type, colorcode, " |
|---|
| 89 | " syndicatedepisodenumber, tvrating, mpaarating, " |
|---|
| 90 | - " programid ) " |
|---|
| 91 | + " programid, sd_runtime ) " |
|---|
| 92 | "SELECT chanid, scheduletime, endtime, " |
|---|
| 93 | " title, subtitle, description, " |
|---|
| 94 | " year, stars, isrepeat, " |
|---|
| 95 | @@ -657,7 +662,7 @@ |
|---|
| 96 | " parttotal, seriesid, originalairdate, " |
|---|
| 97 | " showtype, category_type, colorcode, " |
|---|
| 98 | " syndicatedepisodenumber, tvrating, mpaarating, " |
|---|
| 99 | - " dd_program.programid " |
|---|
| 100 | + " dd_program.programid, sd_runtime " |
|---|
| 101 | "FROM channel, dd_schedule, dd_program " |
|---|
| 102 | "WHERE ((dd_schedule.programid = dd_program.programid) AND " |
|---|
| 103 | " (channel.xmltvid = dd_schedule.stationid) AND " |
|---|
| 104 | @@ -847,7 +852,7 @@ |
|---|
| 105 | " stereo, subtitled, subtitletypes, videoprop, " |
|---|
| 106 | " audioprop, hdtv, closecaptioned, partnumber, " |
|---|
| 107 | " parttotal, seriesid, originalairdate, colorcode, " |
|---|
| 108 | - " syndicatedepisodenumber, " |
|---|
| 109 | + " syndicatedepisodenumber, sd_runtime, " |
|---|
| 110 | " programid, listingsource) " |
|---|
| 111 | " SELECT " |
|---|
| 112 | " dd_v_program.chanid, " |
|---|
| 113 | @@ -861,7 +866,7 @@ |
|---|
| 114 | " (dolby << 3) | stereo, " |
|---|
| 115 | " hdtv, closecaptioned, partnumber, " |
|---|
| 116 | " parttotal, seriesid, originalairdate, colorcode, " |
|---|
| 117 | - " syndicatedepisodenumber, " |
|---|
| 118 | + " syndicatedepisodenumber, sd_runtime, " |
|---|
| 119 | " dd_v_program.programid, " |
|---|
| 120 | " :LSOURCE " |
|---|
| 121 | "FROM (dd_v_program, channel) " |
|---|
| 122 | @@ -1406,6 +1411,7 @@ |
|---|
| 123 | " title varchar(120), subtitle varchar(150), " |
|---|
| 124 | " description text, mpaarating char(5), " |
|---|
| 125 | " starrating char(5), runtime time, " |
|---|
| 126 | + " sd_runtime smallint unsigned, " |
|---|
| 127 | " year char(4), showtype char(30), " |
|---|
| 128 | " category_type char(64), colorcode char(20), " |
|---|
| 129 | " originalairdate date, syndicatedepisodenumber char(20), " |
|---|
| 130 | @@ -1416,7 +1422,8 @@ |
|---|
| 131 | "( chanid int unsigned NOT NULL, starttime datetime NOT NULL, " |
|---|
| 132 | " endtime datetime, title varchar(128), " |
|---|
| 133 | " subtitle varchar(128), description text, " |
|---|
| 134 | - " category varchar(64), category_type varchar(64), " |
|---|
| 135 | + " category varchar(64), sd_runtime smallint unsigned, " |
|---|
| 136 | + " category_type varchar(64), " |
|---|
| 137 | " airdate year, stars float unsigned, " |
|---|
| 138 | " previouslyshown tinyint, isrepeat bool, " |
|---|
| 139 | " stereo bool, dolby bool, " |
|---|
| 140 | Index: libs/libmythtv/programdata.cpp |
|---|
| 141 | =================================================================== |
|---|
| 142 | --- libs/libmythtv/programdata.cpp (revision 21445) |
|---|
| 143 | +++ libs/libmythtv/programdata.cpp (working copy) |
|---|
| 144 | @@ -168,6 +168,7 @@ |
|---|
| 145 | partnumber = other.partnumber; |
|---|
| 146 | parttotal = other.parttotal; |
|---|
| 147 | syndicatedepisodenumber = other.syndicatedepisodenumber; |
|---|
| 148 | + sd_runtime = other.sd_runtime; |
|---|
| 149 | subtitleType = other.subtitleType; |
|---|
| 150 | audioProps = other.audioProps; |
|---|
| 151 | videoProps = other.videoProps; |
|---|
| 152 | @@ -537,6 +538,8 @@ |
|---|
| 153 | !match.syndicatedepisodenumber.isEmpty()) |
|---|
| 154 | lsyndicatedepisodenumber = match.syndicatedepisodenumber; |
|---|
| 155 | |
|---|
| 156 | + QString lsd_runtime = sd_runtime; |
|---|
| 157 | + |
|---|
| 158 | query.prepare( |
|---|
| 159 | "UPDATE program " |
|---|
| 160 | "SET title = :TITLE, subtitle = :SUBTITLE, " |
|---|
| 161 | @@ -549,6 +552,7 @@ |
|---|
| 162 | " audioprop = :AUDIOPROP, videoprop = :VIDEOPROP, " |
|---|
| 163 | " partnumber = :PARTNO, parttotal = :PARTTOTAL, " |
|---|
| 164 | " syndicatedepisodenumber = :SYNDICATENO, " |
|---|
| 165 | + " sd_runtime = :SD_RUNTIME, " |
|---|
| 166 | " airdate = :AIRDATE, originalairdate=:ORIGAIRDATE, " |
|---|
| 167 | " listingsource = :LSOURCE, " |
|---|
| 168 | " seriesid = :SERIESID, programid = :PROGRAMID, " |
|---|
| 169 | @@ -575,6 +579,7 @@ |
|---|
| 170 | query.bindValue(":PARTNO", lpartnumber); |
|---|
| 171 | query.bindValue(":PARTTOTAL", lparttotal); |
|---|
| 172 | query.bindValue(":SYNDICATENO", lsyndicatedepisodenumber); |
|---|
| 173 | + query.bindVAlue(":SD_RUNTIME", lsd_runtime); |
|---|
| 174 | query.bindValue(":AIRDATE", lairdate?QString::number(lairdate):"0000"); |
|---|
| 175 | query.bindValue(":ORIGAIRDATE", loriginalairdate); |
|---|
| 176 | query.bindValue(":LSOURCE", llistingsource); |
|---|
| 177 | @@ -705,6 +710,7 @@ |
|---|
| 178 | " subtitletypes, audioprop, videoprop, " |
|---|
| 179 | " partnumber, parttotal, " |
|---|
| 180 | " syndicatedepisodenumber, " |
|---|
| 181 | + " sd_runtime, " |
|---|
| 182 | " airdate, originalairdate,listingsource, " |
|---|
| 183 | " seriesid, programid, previouslyshown ) " |
|---|
| 184 | "VALUES (" |
|---|
| 185 | @@ -715,6 +721,7 @@ |
|---|
| 186 | " :SUBTYPES, :AUDIOPROP, :VIDEOPROP, " |
|---|
| 187 | " :PARTNUMBER, :PARTTOTAL, " |
|---|
| 188 | " :SYNDICATENO, " |
|---|
| 189 | + " :SD_RUNTIME, " |
|---|
| 190 | " :AIRDATE, :ORIGAIRDATE, :LSOURCE, " |
|---|
| 191 | " :SERIESID, :PROGRAMID, :PREVSHOWN) "); |
|---|
| 192 | |
|---|
| 193 | @@ -738,6 +745,7 @@ |
|---|
| 194 | query.bindValue(":PARTNUMBER", partnumber); |
|---|
| 195 | query.bindValue(":PARTTOTAL", parttotal); |
|---|
| 196 | query.bindValue(":SYNDICATENO", syndicatedepisodenumber); |
|---|
| 197 | + query.bindValue(":SD_RUNTIME", sd_runtime); |
|---|
| 198 | query.bindValue(":AIRDATE", airdate ? QString::number(airdate):"0000"); |
|---|
| 199 | query.bindValue(":ORIGAIRDATE", originalairdate); |
|---|
| 200 | query.bindValue(":LSOURCE", listingsource); |
|---|
| 201 | @@ -832,6 +840,7 @@ |
|---|
| 202 | " subtitletypes, audioprop, videoprop, " |
|---|
| 203 | " partnumber, parttotal, " |
|---|
| 204 | " syndicatedepisodenumber, " |
|---|
| 205 | + " sd_runtime, " |
|---|
| 206 | " airdate, originalairdate,listingsource, " |
|---|
| 207 | " seriesid, programid, previouslyshown, " |
|---|
| 208 | " stars, showtype, title_pronounce, colorcode ) " |
|---|
| 209 | @@ -844,6 +853,7 @@ |
|---|
| 210 | " :SUBTYPES, :AUDIOPROP, :VIDEOPROP, " |
|---|
| 211 | " :PARTNUMBER, :PARTTOTAL, " |
|---|
| 212 | " :SYNDICATENO, " |
|---|
| 213 | + " :SD_RUNTIME, " |
|---|
| 214 | " :AIRDATE, :ORIGAIRDATE, :LSOURCE, " |
|---|
| 215 | " :SERIESID, :PROGRAMID, :PREVSHOWN, " |
|---|
| 216 | " :STARS, :SHOWTYPE, :TITLEPRON, :COLORCODE)"); |
|---|
| 217 | @@ -872,6 +882,7 @@ |
|---|
| 218 | query.bindValue(":PARTNUMBER", partnumber); |
|---|
| 219 | query.bindValue(":PARTTOTAL", parttotal); |
|---|
| 220 | query.bindValue(":SYNDICATENO", syndicatedepisodenumber); |
|---|
| 221 | + query.bindValue(":SD_RUNTIME", sd_runtime); |
|---|
| 222 | query.bindValue(":AIRDATE", airdate ? QString::number(airdate):"0000"); |
|---|
| 223 | query.bindValue(":ORIGAIRDATE", originalairdate); |
|---|
| 224 | query.bindValue(":LSOURCE", listingsource); |
|---|
| 225 | @@ -1236,6 +1247,7 @@ |
|---|
| 226 | " showtype = :SHOWTYPE AND " |
|---|
| 227 | " colorcode = :COLORCODE AND " |
|---|
| 228 | " syndicatedepisodenumber = :SYNDICATEDEPISODENUMBER AND " |
|---|
| 229 | + " sd_runtime = :SD_RUNTIME AND " |
|---|
| 230 | " programid = :PROGRAMID"); |
|---|
| 231 | |
|---|
| 232 | QString cattype = myth_category_type_to_string(pi.categoryType); |
|---|
| 233 | @@ -1262,6 +1274,7 @@ |
|---|
| 234 | query.bindValue(":SHOWTYPE", pi.showtype); |
|---|
| 235 | query.bindValue(":COLORCODE", pi.colorcode); |
|---|
| 236 | query.bindValue(":SYNDICATEDEPISODENUMBER", pi.syndicatedepisodenumber); |
|---|
| 237 | + query.bindValue(":SD_RUNTIME, pi.sd_runtime); |
|---|
| 238 | query.bindValue(":PROGRAMID", pi.programId); |
|---|
| 239 | |
|---|
| 240 | if (query.exec() && query.next()) |
|---|
| 241 | Index: libs/libmythtv/programdata.h |
|---|
| 242 | =================================================================== |
|---|
| 243 | --- libs/libmythtv/programdata.h (revision 21445) |
|---|
| 244 | +++ libs/libmythtv/programdata.h (working copy) |
|---|
| 245 | @@ -74,6 +74,7 @@ |
|---|
| 246 | partnumber(0), |
|---|
| 247 | parttotal(0), |
|---|
| 248 | syndicatedepisodenumber(QString::null), |
|---|
| 249 | + sd_runtime(0), |
|---|
| 250 | subtitleType(0), |
|---|
| 251 | audioProps(0), |
|---|
| 252 | videoProps(0), |
|---|
| 253 | @@ -100,6 +101,7 @@ |
|---|
| 254 | credits(NULL), |
|---|
| 255 | partnumber(0), parttotal(0), |
|---|
| 256 | syndicatedepisodenumber(QString("")), |
|---|
| 257 | + sd_runtime(0), |
|---|
| 258 | subtitleType(_subtitleType), |
|---|
| 259 | audioProps(_audioProps), videoProps(_videoProps), |
|---|
| 260 | categoryType(_category_type), |
|---|
| 261 | @@ -149,6 +151,7 @@ |
|---|
| 262 | uint16_t partnumber; |
|---|
| 263 | uint16_t parttotal; |
|---|
| 264 | QString syndicatedepisodenumber; |
|---|
| 265 | + unsigned int sd_runtime; |
|---|
| 266 | unsigned char subtitleType; |
|---|
| 267 | unsigned char audioProps; |
|---|
| 268 | unsigned char videoProps; |
|---|
| 269 | Index: libs/libmyth/programinfo.cpp |
|---|
| 270 | =================================================================== |
|---|
| 271 | --- libs/libmyth/programinfo.cpp (revision 21445) |
|---|
| 272 | +++ libs/libmyth/programinfo.cpp (working copy) |
|---|
| 273 | @@ -214,6 +214,7 @@ |
|---|
| 274 | |
|---|
| 275 | seriesid(other.seriesid), |
|---|
| 276 | programid(other.programid), |
|---|
| 277 | + sd_runtime(other.sd_runtime), |
|---|
| 278 | catType(other.catType), |
|---|
| 279 | |
|---|
| 280 | sortTitle(other.sortTitle), |
|---|