00001 #include <qsqldatabase.h>
00002 #include <qstring.h>
00003
00004 #include <iostream>
00005 using namespace std;
00006
00007 #include "dbcheck.h"
00008
00009 #include "mythcontext.h"
00010 #include "mythdbcon.h"
00011 #include "datadirect.h"
00012 #include "dbutil.h"
00013 #include "videodisplayprofile.h"
00014
00015 #define MINIMUM_DBMS_VERSION 5
00016
00018 const QString currentDatabaseVersion = "1214";
00019
00020 static bool UpdateDBVersionNumber(const QString &newnumber);
00021 static bool performActualUpdate(const QString updates[], QString version,
00022 QString &dbver);
00023 static bool InitializeDatabase(void);
00024 static bool doUpgradeTVDatabaseSchema(void);
00025 bool convert_diseqc_db(void);
00026
00351 static bool UpdateDBVersionNumber(const QString &newnumber)
00352 {
00353
00354 MSqlQuery query(MSqlQuery::InitCon());
00355
00356 QString thequery = "DELETE FROM settings WHERE value='DBSchemaVer';";
00357 query.prepare(thequery);
00358 query.exec();
00359
00360 if (query.lastError().type() != QSqlError::None)
00361 {
00362 QString msg =
00363 QString("DB Error (Deleting old DB version number): \n"
00364 "Query was: %1 \nError was: %2 \nnew version: %3")
00365 .arg(thequery)
00366 .arg(MythContext::DBErrorMessage(query.lastError()))
00367 .arg(newnumber);
00368 VERBOSE(VB_IMPORTANT, msg);
00369 return false;
00370 }
00371
00372
00373 thequery = QString("INSERT INTO settings (value, data, hostname) "
00374 "VALUES ('DBSchemaVer', %1, NULL);").arg(newnumber);
00375 query.prepare(thequery);
00376 query.exec();
00377
00378 if (query.lastError().type() != QSqlError::None)
00379 {
00380 QString msg =
00381 QString("DB Error (Setting new DB version number): \n"
00382 "Query was: %1 \nError was: %2 \nnew version: %3")
00383 .arg(thequery)
00384 .arg(MythContext::DBErrorMessage(query.lastError()))
00385 .arg(newnumber);
00386 VERBOSE(VB_IMPORTANT, msg);
00387 return false;
00388 }
00389
00390 return true;
00391 }
00392
00402 static bool performActualUpdate(const QString updates[], QString version,
00403 QString &dbver)
00404 {
00405 MSqlQuery query(MSqlQuery::InitCon());
00406
00407 VERBOSE(VB_IMPORTANT, QString("Upgrading to schema version ") + version);
00408
00409 int counter = 0;
00410 QString thequery = updates[counter];
00411
00412 while (thequery != "")
00413 {
00414 query.prepare(thequery);
00415 query.exec();
00416
00417 if (query.lastError().type() != QSqlError::None)
00418 {
00419 QString msg =
00420 QString("DB Error (Performing database upgrade): \n"
00421 "Query was: %1 \nError was: %2 \nnew version: %3")
00422 .arg(thequery)
00423 .arg(MythContext::DBErrorMessage(query.lastError()))
00424 .arg(version);
00425 VERBOSE(VB_IMPORTANT, msg);
00426 return false;
00427 }
00428
00429 counter++;
00430 thequery = updates[counter];
00431 }
00432
00433 if (!UpdateDBVersionNumber(version))
00434 return false;
00435
00436 dbver = version;
00437 return true;
00438 }
00439
00444 bool lockSchema(MSqlQuery &query)
00445 {
00446 query.prepare("CREATE TABLE IF NOT EXISTS "
00447 "schemalock ( schemalock int(1));");
00448 if (!query.exec())
00449 {
00450 VERBOSE(VB_IMPORTANT,
00451 QString("ERROR: Unable to create schemalock table: %1")
00452 .arg(MythContext::DBErrorMessage(query.lastError())));
00453 return false;
00454 }
00455
00456 query.prepare("LOCK TABLE schemalock WRITE;");
00457 if (!query.exec())
00458 {
00459 VERBOSE(VB_IMPORTANT,
00460 QString("ERROR: Unable to acquire database upgrade lock")
00461 .arg(MythContext::DBErrorMessage(query.lastError())));
00462 return false;
00463 }
00464
00465 return true;
00466 }
00467
00472 void unlockSchema(MSqlQuery &query)
00473 {
00474 query.prepare("UNLOCK TABLES;");
00475 query.exec();
00476 }
00477
00494 int CompareTVDatabaseSchemaVersion(void)
00495 {
00496 MSqlQuery query(MSqlQuery::InitCon());
00497
00498 if (!lockSchema(query))
00499 return -1;
00500
00501 bool ok;
00502 int databaseVersion = gContext->GetNumSetting("DBSchemaVer");
00503 int expectedVersion = currentDatabaseVersion.toInt(&ok);
00504
00505 unlockSchema(query);
00506
00507 if (!ok)
00508 return -1;
00509
00510 return databaseVersion - expectedVersion;
00511 }
00512
00526 bool UpgradeTVDatabaseSchema(void)
00527 {
00528 QString dbver = gContext->GetSetting("DBSchemaVer");
00529
00530 VERBOSE(VB_IMPORTANT, "Current Schema Version: "
00531 + (dbver.length() ? dbver : QString("(none)")));
00532
00533
00534
00535 if (!gContext->GetNumSetting("MythFillFixProgramIDsHasRunOnce", 0))
00536 DataDirectProcessor::FixProgramIDs();
00537
00538 DBUtil dbutil;
00539 int dbmsVersionCheck = dbutil.CompareDBMSVersion(MINIMUM_DBMS_VERSION);
00540 if (dbmsVersionCheck == DBUtil::kUnknownVersionNumber)
00541 {
00542 VERBOSE(VB_IMPORTANT, "ERROR: Unable to determine MySQL version.");
00543 return false;
00544 }
00545
00546 if (dbmsVersionCheck < 0)
00547 {
00548 VERBOSE(VB_IMPORTANT, QString("ERROR: This version of MythTV requires "
00549 "MySQL %1.0 or later. You seem to be "
00550 "running MySQL version %2.")
00551 .arg(MINIMUM_DBMS_VERSION)
00552 .arg(dbutil.GetDBMSVersion()));
00553 VERBOSE(VB_IMPORTANT, "Your database has not been changed. Please "
00554 "upgrade your MySQL server or use an older "
00555 "version of MythTV.");
00556 return false;
00557 }
00558
00559 if (dbver == currentDatabaseVersion)
00560 return true;
00561
00562 QString backupResult = "";
00563 #ifndef USING_MINGW
00564 dbutil.BackupDB(backupResult);
00565 #endif
00566
00567 switch (gContext->PromptForSchemaUpgrade(dbver, currentDatabaseVersion,
00568 backupResult))
00569 {
00570 case MYTH_SCHEMA_USE_EXISTING: return true;
00571 case MYTH_SCHEMA_ERROR:
00572 case MYTH_SCHEMA_EXIT: return false;
00573 case MYTH_SCHEMA_UPGRADE: break;
00574 }
00575
00576 MSqlQuery query(MSqlQuery::InitCon());
00577 query.prepare("ALTER DATABASE mythconverg DEFAULT CHARACTER SET latin1;");
00578 query.exec();
00579
00580 VERBOSE(VB_IMPORTANT, QString("Newest Schema Version : %1")
00581 .arg(currentDatabaseVersion));
00582
00583 if (!lockSchema(query))
00584 return false;
00585
00586 bool ret = doUpgradeTVDatabaseSchema();
00587
00588 if (ret)
00589 VERBOSE(VB_IMPORTANT, "Database Schema upgrade complete, unlocking.");
00590 else
00591 VERBOSE(VB_IMPORTANT, "Database Schema upgrade FAILED, unlocking.");
00592
00593 unlockSchema(query);
00594
00595 return ret;
00596 }
00597
00611 static bool doUpgradeTVDatabaseSchema(void)
00612 {
00613 QString dbver = gContext->GetSetting("DBSchemaVer");
00614
00615 if (dbver == currentDatabaseVersion)
00616 return true;
00617
00618 if (dbver == "")
00619 {
00620 if (!InitializeDatabase())
00621 return false;
00622 dbver = "1112";
00623 }
00624
00625 if (dbver == "1027")
00626 {
00627 const QString updates[] = {
00628 "CREATE TABLE IF NOT EXISTS dvb_signal_quality ("
00629 " id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,"
00630 " sampletime TIMESTAMP NOT NULL,"
00631 " cardid INT UNSIGNED NOT NULL,"
00632 " fe_snr INT UNSIGNED NOT NULL,"
00633 " fe_ss INT UNSIGNED NOT NULL,"
00634 " fe_ber INT UNSIGNED NOT NULL,"
00635 " fe_unc INT UNSIGNED NOT NULL,"
00636 " myth_cont INT UNSIGNED NOT NULL,"
00637 " myth_over INT UNSIGNED NOT NULL,"
00638 " myth_pkts INT UNSIGNED NOT NULL,"
00639 " FOREIGN KEY(cardid) REFERENCES capturecard(id),"
00640 " INDEX (sampletime,cardid)"
00641 ");",
00642 "ALTER TABLE capturecard ADD skipbtaudio TINYINT(1) DEFAULT 0;",
00643 ""
00644 };
00645 if (!performActualUpdate(updates, "1028", dbver))
00646 return false;
00647 }
00648
00649 if (dbver == "1028") {
00650 const QString updates[] = {
00651 "ALTER TABLE channel ADD COLUMN commfree TINYINT NOT NULL default '0';",
00652 "ALTER TABLE record ADD COLUMN recgroup VARCHAR(32) default 'Default';",
00653 "ALTER TABLE record ADD COLUMN dupmethod INT NOT NULL DEFAULT 6;",
00654 "ALTER TABLE record ADD COLUMN dupin INT NOT NULL DEFAULT 15;",
00655 "UPDATE record SET dupmethod = 1 WHERE recorddups = 2;",
00656 "UPDATE record SET dupin = 2 WHERE recorddups = 1;",
00657 "ALTER TABLE record DROP COLUMN recorddups;",
00658 "ALTER TABLE recorded ADD COLUMN recgroup VARCHAR(32) default 'Default';",
00659 "ALTER TABLE recorded ADD COLUMN recordid INT DEFAULT NULL;",
00660 "CREATE TABLE recgrouppassword ("
00661 " recgroup VARCHAR(32) NOT NULL PRIMARY KEY, "
00662 " password VARCHAR(10) NOT NULL, "
00663 " UNIQUE(recgroup)"
00664 ");",
00665 ""
00666 };
00667 if (!performActualUpdate(updates, "1029", dbver))
00668 return false;
00669 }
00670
00671 if (dbver == "1029")
00672 {
00673 const QString updates[] = {
00674 "ALTER TABLE record CHANGE preroll startoffset INT DEFAULT 0 NOT NULL;",
00675 "ALTER TABLE record CHANGE postroll endoffset INT DEFAULT 0 NOT NULL;",
00676 ""
00677 };
00678 if (!performActualUpdate(updates, "1030", dbver))
00679 return false;
00680 }
00681
00682 if (dbver == "1030")
00683 {
00684 const QString updates[] = {
00685 "ALTER TABLE channel ADD COLUMN visible TINYINT(1) NOT NULL default '1';",
00686 "UPDATE channel SET visible = 1;",
00687 ""
00688 };
00689 if (!performActualUpdate(updates, "1031", dbver))
00690 return false;
00691 }
00692
00693 if (dbver == "1031") {
00694 const QString updates[] = {
00695 "ALTER TABLE capturecard ADD dvb_on_demand TINYINT NOT NULL DEFAULT 0;",
00696 ""
00697 };
00698 if (!performActualUpdate(updates, "1032", dbver))
00699 return false;
00700 }
00701
00702 if (dbver == "1032")
00703 {
00704 const QString updates[] = {
00705 "UPDATE record SET dupmethod = 6 WHERE dupmethod = 22;",
00706 ""
00707 };
00708 if (!performActualUpdate(updates, "1033", dbver))
00709 return false;
00710 }
00711
00712 if (dbver == "1033")
00713 {
00714 const QString updates[] = {
00715 "ALTER TABLE program ADD title_pronounce VARCHAR(128) NULL;",
00716 "ALTER TABLE program ADD INDEX (title_pronounce);",
00717 ""
00718 };
00719 if (!performActualUpdate(updates, "1034", dbver))
00720 return false;
00721 }
00722
00723 if (dbver == "1034")
00724 {
00725 const QString updates[] = {
00726 "CREATE TABLE mythlog ("
00727 " logid int(10) unsigned PRIMARY KEY NOT NULL auto_increment,"
00728 " module char(32) NOT NULL,"
00729 " priority int(11) NOT NULL,"
00730 " acknowledged bool default 0,"
00731 " logdate datetime,"
00732 " host varchar(128),"
00733 " message varchar(255) NOT NULL,"
00734 " details text"
00735 ");",
00736 "CREATE TABLE housekeeping ("
00737 " tag varchar(64) PRIMARY KEY NOT NULL,"
00738 " lastrun datetime"
00739 ");",
00740 ""
00741 };
00742 if (!performActualUpdate(updates, "1035", dbver))
00743 return false;
00744 }
00745
00746 if (dbver == "1035")
00747 {
00748 const QString updates[] = {
00749 "ALTER TABLE dvb_sat CHANGE pos pos FLOAT;",
00750 "ALTER TABLE dvb_sat ADD diseqc_pos SMALLINT DEFAULT 0 AFTER diseqc_port;",
00751 ""
00752 };
00753 if (!performActualUpdate(updates,"1036", dbver))
00754 return false;
00755 }
00756
00757 if (dbver == "1036")
00758 {
00759 const QString updates[] = {
00760 "UPDATE channel SET callsign=chanid WHERE callsign IS NULL OR callsign='';",
00761 "ALTER TABLE record ADD COLUMN station VARCHAR(20) NOT NULL DEFAULT '';",
00762 "ALTER TABLE recordoverride ADD COLUMN station VARCHAR(20) NOT NULL DEFAULT '';",
00763 ""
00764 };
00765 if (!performActualUpdate(updates, "1037", dbver))
00766 return false;
00767 }
00768
00769 if (dbver == "1037")
00770 {
00771 const QString updates[] = {
00772 "ALTER TABLE videosource ADD lineupid VARCHAR(64) NULL;",
00773 "ALTER TABLE videosource ADD password VARCHAR(64) NULL;",
00774 "ALTER TABLE program ADD ( "
00775 " stereo bool, "
00776 " subtitled bool, "
00777 " hdtv bool, "
00778 " closecaptioned bool, "
00779 " partnumber int, "
00780 " parttotal int, "
00781 " seriesid char(12), "
00782 " originalairdate date, "
00783 " showtype varchar(30), "
00784 " colorcode varchar(20), "
00785 " syndicatedepisodenumber varchar(20), "
00786 " programid char(12) "
00787 ");",
00788 "DELETE FROM credits;",
00789 "ALTER TABLE credits DROP INDEX chanid;",
00790 "ALTER TABLE credits ADD UNIQUE chanid (chanid, starttime, person, role);",
00791 "DELETE FROM people;",
00792 "ALTER TABLE people DROP INDEX name;",
00793 "ALTER TABLE people ADD UNIQUE name (name(41));",
00794 "CREATE TABLE programgenres ( "
00795 " chanid int unsigned NOT NULL, "
00796 " starttime timestamp NOT NULL, "
00797 " relevance char(1) NOT NULL, "
00798 " genre char(30), "
00799 " PRIMARY KEY (chanid, starttime, relevance) "
00800 ");",
00801 ""
00802 };
00803 if (!performActualUpdate(updates, "1038", dbver))
00804 return false;
00805 }
00806
00807 if (dbver == "1038")
00808 {
00809 const QString updates[] = {
00810 "CREATE TABLE IF NOT EXISTS programgenres ( "
00811 " chanid int unsigned NOT NULL, "
00812 " starttime timestamp NOT NULL, "
00813 " relevance char(1) NOT NULL, "
00814 " genre char(30), "
00815 " PRIMARY KEY (chanid, starttime, relevance) "
00816 ");",
00817 ""
00818 };
00819 if (!performActualUpdate(updates, "1039", dbver))
00820 return false;
00821 }
00822
00823 if (dbver == "1039")
00824 {
00825 const QString updates[] = {
00826 "ALTER TABLE channel CHANGE name name VARCHAR(64);",
00827 ""
00828 };
00829 if (!performActualUpdate(updates, "1040", dbver))
00830 return false;
00831 }
00832
00833 if (dbver == "1040")
00834 {
00835 const QString updates[] = {
00836 "ALTER TABLE channel ADD outputfilters VARCHAR(255) NULL",
00837 ""
00838 };
00839 if (!performActualUpdate(updates, "1041", dbver))
00840 return false;
00841 }
00842
00843 if (dbver == "1041")
00844 {
00845 const QString updates[] = {
00846 "ALTER TABLE record ADD seriesid varchar(12) NULL;",
00847 "ALTER TABLE record ADD programid varchar(12) NULL;",
00848 "ALTER TABLE recorded ADD seriesid varchar(12) NULL;",
00849 "ALTER TABLE recorded ADD programid varchar(12) NULL;",
00850 "ALTER TABLE oldrecorded ADD seriesid varchar(12) NULL;",
00851 "ALTER TABLE oldrecorded ADD programid varchar(12) NULL;",
00852 "ALTER TABLE program ADD INDEX (seriesid);",
00853 "ALTER TABLE program ADD INDEX (programid);",
00854 "ALTER TABLE record ADD INDEX (seriesid);",
00855 "ALTER TABLE record ADD INDEX (programid);",
00856 "ALTER TABLE recorded ADD INDEX (seriesid);",
00857 "ALTER TABLE recorded ADD INDEX (programid);",
00858 "ALTER TABLE oldrecorded ADD INDEX (seriesid);",
00859 "ALTER TABLE oldrecorded ADD INDEX (programid);",
00860 ""
00861 };
00862 if (!performActualUpdate(updates, "1042", dbver))
00863 return false;
00864 }
00865
00866 if (dbver == "1042")
00867 {
00868 const QString updates[] = {
00869 "INSERT INTO settings SET value=\"DataDirectMessage\";",
00870 ""
00871 };
00872 if (!performActualUpdate(updates, "1043", dbver))
00873 return false;
00874 }
00875
00876 if (dbver == "1043")
00877 {
00878 const QString updates[] = {
00879 "ALTER TABLE program CHANGE title title VARCHAR(128) NOT NULL DEFAULT '';",
00880 "ALTER TABLE program CHANGE subtitle subtitle VARCHAR(128) NOT NULL DEFAULT '';",
00881 "ALTER TABLE program CHANGE description description TEXT NOT NULL DEFAULT '';",
00882 "ALTER TABLE program CHANGE category category VARCHAR(64) NOT NULL DEFAULT '';",
00883 "ALTER TABLE program CHANGE category_type category_type VARCHAR(64) NOT NULL DEFAULT '';",
00884 "ALTER TABLE program CHANGE title_pronounce title_pronounce VARCHAR(128) NOT NULL DEFAULT '';",
00885 "ALTER TABLE program CHANGE seriesid seriesid VARCHAR(12) NOT NULL DEFAULT '';",
00886 "ALTER TABLE program CHANGE showtype showtype VARCHAR(30) NOT NULL DEFAULT '';",
00887 "ALTER TABLE program CHANGE colorcode colorcode VARCHAR(20) NOT NULL DEFAULT '';",
00888 "ALTER TABLE program CHANGE syndicatedepisodenumber syndicatedepisodenumber VARCHAR(20) NOT NULL DEFAULT '';",
00889 "ALTER TABLE program CHANGE programid programid VARCHAR(12) NOT NULL DEFAULT '';",
00890
00891 "ALTER TABLE channel CHANGE channum channum VARCHAR(5) NOT NULL DEFAULT '';",
00892 "ALTER TABLE channel CHANGE callsign callsign VARCHAR(20) NOT NULL DEFAULT '';",
00893 "ALTER TABLE channel CHANGE name name VARCHAR(64) NOT NULL DEFAULT '';",
00894 "ALTER TABLE channel CHANGE icon icon VARCHAR(255) NOT NULL DEFAULT 'none';",
00895 "ALTER TABLE channel CHANGE videofilters videofilters VARCHAR(255) NOT NULL DEFAULT '';",
00896 "ALTER TABLE channel CHANGE xmltvid xmltvid VARCHAR(64) NOT NULL DEFAULT '';",
00897 "ALTER TABLE channel CHANGE outputfilters outputfilters VARCHAR(255) NOT NULL DEFAULT '';",
00898
00899 "ALTER TABLE record CHANGE title title VARCHAR(128) NOT NULL DEFAULT '';",
00900 "ALTER TABLE record CHANGE subtitle subtitle VARCHAR(128) NOT NULL DEFAULT '';",
00901 "ALTER TABLE record CHANGE description description TEXT NOT NULL DEFAULT '';",
00902 "ALTER TABLE record CHANGE profile profile VARCHAR(128) NOT NULL DEFAULT 'Default';",
00903 "ALTER TABLE record CHANGE category category VARCHAR(64) NOT NULL DEFAULT '';",
00904 "ALTER TABLE record CHANGE recgroup recgroup VARCHAR(32) NOT NULL DEFAULT 'Default';",
00905 "ALTER TABLE record CHANGE station station VARCHAR(20) NOT NULL DEFAULT '';",
00906 "ALTER TABLE record CHANGE seriesid seriesid VARCHAR(12) NOT NULL DEFAULT '';",
00907 "ALTER TABLE record CHANGE programid programid VARCHAR(12) NOT NULL DEFAULT '';",
00908
00909 "ALTER TABLE recorded CHANGE title title VARCHAR(128) NOT NULL DEFAULT '';",
00910 "ALTER TABLE recorded CHANGE subtitle subtitle VARCHAR(128) NOT NULL DEFAULT '';",
00911 "ALTER TABLE recorded CHANGE description description TEXT NOT NULL DEFAULT '';",
00912 "ALTER TABLE recorded CHANGE hostname hostname VARCHAR(255) NOT NULL DEFAULT '';",
00913 "ALTER TABLE recorded CHANGE category category VARCHAR(64) NOT NULL DEFAULT '';",
00914 "ALTER TABLE recorded CHANGE recgroup recgroup VARCHAR(32) NOT NULL DEFAULT 'Default';",
00915 "ALTER TABLE recorded CHANGE seriesid seriesid VARCHAR(12) NOT NULL DEFAULT '';",
00916 "ALTER TABLE recorded CHANGE programid programid VARCHAR(12) NOT NULL DEFAULT '';",
00917
00918 "ALTER TABLE oldrecorded CHANGE title title VARCHAR(128) NOT NULL DEFAULT '';",
00919 "ALTER TABLE oldrecorded CHANGE subtitle subtitle VARCHAR(128) NOT NULL DEFAULT '';",
00920 "ALTER TABLE oldrecorded CHANGE description description TEXT NOT NULL DEFAULT '';",
00921 "ALTER TABLE oldrecorded CHANGE category category VARCHAR(64) NOT NULL DEFAULT '';",
00922 "ALTER TABLE oldrecorded CHANGE seriesid seriesid VARCHAR(12) NOT NULL DEFAULT '';",
00923 "ALTER TABLE oldrecorded CHANGE programid programid VARCHAR(12) NOT NULL DEFAULT '';",
00924 ""
00925 };
00926 if (!performActualUpdate(updates, "1044", dbver))
00927 return false;
00928 }
00929
00930 if (dbver == "1044")
00931 {
00932 const QString updates[] = {
00933 "UPDATE channel SET icon = 'none' WHERE icon = '';",
00934 "UPDATE record SET profile = 'Default' WHERE profile = '';",
00935 "UPDATE record SET recgroup = 'Default' WHERE recgroup = '';",
00936 "UPDATE recorded SET recgroup = 'Default', starttime = starttime WHERE recgroup = '';",
00937 ""
00938 };
00939 if (!performActualUpdate(updates, "1045", dbver))
00940 return false;
00941 }
00942
00943 if (dbver == "1045")
00944 {
00945 const QString updates[] = {
00946 "UPDATE recorded SET recgroup = 'Default', starttime = starttime WHERE recgroup = '';",
00947 ""
00948 };
00949 if (!performActualUpdate(updates, "1046", dbver))
00950 return false;
00951 }
00952
00953 if (dbver == "1046")
00954 {
00955 const QString updates[] = {
00956 "ALTER TABLE record ADD COLUMN search INT UNSIGNED NOT NULL DEFAULT 0;",
00957 "UPDATE record SET search = 0 WHERE search IS NULL;",
00958 ""
00959 };
00960 if (!performActualUpdate(updates, "1047", dbver))
00961 return false;
00962 }
00963
00964 if (dbver == "1047")
00965 {
00966 const QString updates[] = {
00967 "CREATE TABLE networkiconmap ("
00968 " id INTEGER NOT NULL AUTO_INCREMENT,"
00969 " network VARCHAR(20) NOT NULL UNIQUE,"
00970 " url VARCHAR(255) NOT NULL,"
00971 " PRIMARY KEY(id)"
00972 ");",
00973 "CREATE TABLE callsignnetworkmap ("
00974 " id INTEGER NOT NULL AUTO_INCREMENT,"
00975 " callsign VARCHAR(20) NOT NULL UNIQUE,"
00976 " network VARCHAR(20) NOT NULL,"
00977 " PRIMARY KEY(id)"
00978 ");",
00979 ""
00980 };
00981 if (!performActualUpdate(updates, "1048", dbver))
00982 return false;
00983 }
00984
00985 if (dbver == "1048")
00986 {
00987 const QString updates[] = {
00988 "ALTER TABLE cardinput CHANGE preference preference INT NOT NULL DEFAULT 0;",
00989 "UPDATE cardinput SET preference = 0 WHERE preference IS NULL;",
00990 ""
00991 };
00992 if (!performActualUpdate(updates, "1049", dbver))
00993 return false;
00994 }
00995
00996 if (dbver == "1049")
00997 {
00998 const QString updates[] = {
00999 "ALTER TABLE keyword ADD COLUMN searchtype INT UNSIGNED NOT NULL DEFAULT 3;",
01000 "ALTER TABLE keyword DROP INDEX phrase;",
01001 "ALTER TABLE keyword DROP PRIMARY KEY;",
01002 "ALTER TABLE keyword ADD UNIQUE(phrase,searchtype);",
01003 ""
01004 };
01005 if (!performActualUpdate(updates, "1050", dbver))
01006 return false;
01007 }
01008
01009
01010 if (dbver == "1050")
01011 {
01012 const QString updates[] = {
01013 "ALTER TABLE recorded CHANGE starttime starttime DATETIME NOT NULL;",
01014 "ALTER TABLE recorded CHANGE endtime endtime DATETIME NOT NULL;",
01015 "ALTER TABLE recorded ADD COLUMN lastmodified TIMESTAMP NOT NULL;",
01016 "ALTER TABLE recorded ADD COLUMN filesize BIGINT(20) DEFAULT 0 NOT NULL;",
01017 "ALTER TABLE credits CHANGE starttime starttime DATETIME NOT NULL;",
01018 "ALTER TABLE oldprogram CHANGE airdate airdate DATETIME NOT NULL;",
01019 "ALTER TABLE oldrecorded CHANGE starttime starttime DATETIME NOT NULL;",
01020 "ALTER TABLE oldrecorded CHANGE endtime endtime DATETIME NOT NULL;",
01021 "ALTER TABLE program CHANGE starttime starttime DATETIME NOT NULL;",
01022 "ALTER TABLE program CHANGE endtime endtime DATETIME NOT NULL;",
01023 "ALTER TABLE programgenres CHANGE starttime starttime DATETIME NOT NULL;",
01024 "ALTER TABLE programrating CHANGE starttime starttime DATETIME NOT NULL;",
01025 "ALTER TABLE recordedmarkup CHANGE starttime starttime DATETIME NOT NULL;",
01026 "ALTER TABLE recordoverride CHANGE starttime starttime DATETIME NOT NULL;",
01027 "ALTER TABLE recordoverride CHANGE endtime endtime DATETIME NOT NULL;",
01028 "ALTER TABLE transcoding CHANGE starttime starttime DATETIME NOT NULL;",
01029 ""
01030 };
01031 if (!performActualUpdate(updates, "1051", dbver))
01032 return false;
01033 }
01034
01035 if (dbver == "1051")
01036 {
01037 const QString updates[] = {
01038 "update record set dupmethod = 6 where dupmethod = 0;",
01039 "update record set dupin = 15 where dupin = 0;",
01040 ""
01041 };
01042 if (!performActualUpdate(updates, "1052", dbver))
01043 return false;
01044 }
01045
01046 if (dbver == "1052")
01047 {
01048 const QString updates[] = {
01049 "ALTER TABLE recorded ADD COLUMN stars FLOAT NOT NULL DEFAULT 0;",
01050 "ALTER TABLE recorded ADD COLUMN previouslyshown TINYINT(1) DEFAULT 0;",
01051 "ALTER TABLE recorded ADD COLUMN originalairdate DATE;",
01052 "INSERT INTO settings VALUES ('HaveRepeats', '0', NULL);",
01053 ""
01054 };
01055 if (!performActualUpdate(updates, "1053", dbver))
01056 return false;
01057 }
01058
01059 if (dbver == "1053")
01060 {
01061 const QString updates[] = {
01062 "ALTER TABLE channel CHANGE freqid freqid VARCHAR(10);",
01063 ""
01064 };
01065 if (!performActualUpdate(updates, "1054", dbver))
01066 return false;
01067 }
01068
01069 if (dbver == "1054")
01070 {
01071 const QString updates[] = {
01072 "ALTER TABLE program ADD INDEX id_start_end (chanid,starttime,endtime);",
01073 "ALTER TABLE channel ADD INDEX channel_src (channum,sourceid);",
01074 ""
01075 };
01076 if (!performActualUpdate(updates, "1055", dbver))
01077 return false;
01078 }
01079
01080 if (dbver == "1055")
01081 {
01082 const QString updates[] = {
01083 "UPDATE record SET dupmethod=6, dupin=4 WHERE dupmethod=8;",
01084 ""
01085 };
01086 if (!performActualUpdate(updates, "1056", dbver))
01087 return false;
01088 }
01089
01090 if (dbver == "1056")
01091 {
01092 const QString updates[] = {
01093 "CREATE TABLE jobqueue ("
01094 " id INTEGER NOT NULL AUTO_INCREMENT,"
01095 " chanid INTEGER(10) NOT NULL,"
01096 " starttime DATETIME NOT NULL,"
01097 " inserttime DATETIME NOT NULL,"
01098 " type INTEGER NOT NULL,"
01099 " cmds INTEGER NOT NULL DEFAULT 0,"
01100 " flags INTEGER NOT NULL DEFAULT 0,"
01101 " status INTEGER NOT NULL DEFAULT 0,"
01102 " statustime TIMESTAMP NOT NULL,"
01103 " hostname VARCHAR(255) NOT NULL DEFAULT '',"
01104 " args BLOB NOT NULL DEFAULT '',"
01105 " comment VARCHAR(128) NOT NULL DEFAULT '',"
01106 " PRIMARY KEY(id),"
01107 " UNIQUE(chanid, starttime, type, inserttime)"
01108 ");",
01109 "ALTER TABLE record ADD COLUMN autotranscode TINYINT(1) NOT NULL DEFAULT 0;",
01110 "ALTER TABLE record ADD COLUMN autocommflag TINYINT(1) NOT NULL DEFAULT 0;",
01111 "ALTER TABLE record ADD COLUMN autouserjob1 TINYINT(1) NOT NULL DEFAULT 0;",
01112 "ALTER TABLE record ADD COLUMN autouserjob2 TINYINT(1) NOT NULL DEFAULT 0;",
01113 "ALTER TABLE record ADD COLUMN autouserjob3 TINYINT(1) NOT NULL DEFAULT 0;",
01114 "ALTER TABLE record ADD COLUMN autouserjob4 TINYINT(1) NOT NULL DEFAULT 0;",
01115 ""
01116 };
01117 if (!performActualUpdate(updates, "1057", dbver))
01118 return false;
01119
01120 if (gContext->GetNumSetting("AutoCommercialFlag", 1))
01121 {
01122 MSqlQuery query(MSqlQuery::InitCon());
01123 query.prepare("UPDATE record SET autocommflag = 1;");
01124 query.exec();
01125 }
01126 }
01127 if (dbver == "1057")
01128 {
01129 const QString updates[] = {
01130 "DROP TABLE IF EXISTS transcoding;",
01131 ""
01132 };
01133 if (!performActualUpdate(updates, "1058", dbver))
01134 return false;
01135 }
01136
01137 if (dbver == "1058")
01138 {
01139 const QString updates[] = {
01140 "UPDATE program SET category_type='series' WHERE showtype LIKE '%series%';",
01141 ""
01142 };
01143 if (!performActualUpdate(updates, "1059", dbver))
01144 return false;
01145 }
01146
01147 if (dbver == "1059")
01148 {
01149 const QString updates[] = {
01150 "ALTER TABLE recorded ADD COLUMN preserve TINYINT(1) NOT NULL DEFAULT 0;",
01151 ""
01152 };
01153 if (!performActualUpdate(updates, "1060", dbver))
01154 return false;
01155 }
01156
01157 if (dbver == "1060")
01158 {
01159 const QString updates[] = {
01160
01161 "ALTER TABLE record ADD COLUMN record.findday TINYINT NOT NULL DEFAULT 0;",
01162 "ALTER TABLE record ADD COLUMN record.findtime TIME NOT NULL DEFAULT '00:00:00';",
01163 "ALTER TABLE record ADD COLUMN record.findid INT NOT NULL DEFAULT 0;",
01164 "ALTER TABLE recorded ADD COLUMN recorded.findid INT NOT NULL DEFAULT 0;",
01165 "ALTER TABLE oldrecorded ADD COLUMN oldrecorded.findid INT NOT NULL DEFAULT 0;",
01166 ""
01167 };
01168 if (!performActualUpdate(updates, "1061", dbver))
01169 return false;
01170 }
01171
01172 if (dbver == "1061")
01173 {
01174 const QString updates[] = {
01175 "ALTER TABLE record ADD COLUMN inactive TINYINT(1) NOT NULL DEFAULT 0;",
01176 ""
01177 };
01178 if (!performActualUpdate(updates, "1062", dbver))
01179 return false;
01180 }
01181
01182 if (dbver == "1062")
01183 {
01184 const QString updates[] = {
01185 "ALTER TABLE cardinput ADD COLUMN freetoaironly TINYINT(1) DEFAULT 1;",
01186 "ALTER TABLE channel ADD COLUMN useonairguide TINYINT(1) DEFAULT 0;",
01187 "ALTER TABLE capturecard ADD COLUMN dvb_diseqc_type SMALLINT(6);",
01188 "ALTER TABLE cardinput ADD COLUMN diseqc_port SMALLINT(6);",
01189 "ALTER TABLE cardinput ADD COLUMN diseqc_pos FLOAT;",
01190 "ALTER TABLE cardinput ADD COLUMN lnb_lof_switch INT(11) DEFAULT 11700000;",
01191 "ALTER TABLE cardinput ADD COLUMN lnb_lof_hi INT(11) DEFAULT 10600000;",
01192 "ALTER TABLE cardinput ADD COLUMN lnb_lof_lo INT(11) DEFAULT 9750000;",
01193 "ALTER TABLE channel ADD COLUMN mplexid SMALLINT(6);",
01194 "ALTER TABLE channel ADD COLUMN serviceid SMALLINT(6);",
01195 "ALTER TABLE channel ADD COLUMN atscsrcid INT(11) DEFAULT NULL;",
01196 "CREATE TABLE dtv_multiplex ("
01197 " mplexid smallint(6) NOT NULL auto_increment, "
01198 " sourceid smallint(6) default NULL,"
01199 " transportid int(11) default NULL,"
01200 " networkid int(11) default NULL,"
01201 " frequency int(11) default NULL,"
01202 " inversion char(1) default 'a',"
01203 " symbolrate int(11) default NULL,"
01204 " fec varchar(10) default 'auto',"
01205 " polarity char(1) default NULL,"
01206 " modulation varchar(10) default 'auto',"
01207 " bandwidth char(1) default 'a',"
01208 " lp_code_rate varchar(10) default 'auto',"
01209 " transmission_mode char(1) default 'a',"
01210 " guard_interval varchar(10) default 'auto',"
01211 " visible smallint(1) NOT NULL default '0',"
01212 " constellation varchar(10) default 'auto',"
01213 " hierarchy varchar(10) default 'auto',"
01214 " hp_code_rate varchar(10) default 'auto',"
01215 " sistandard varchar(10) default 'dvb',"
01216 " serviceversion smallint(6) default 33,"
01217 " updatetimestamp timestamp(14) NOT NULL,"
01218 " PRIMARY KEY (mplexid)"
01219 ") TYPE=MyISAM;",
01220
01221
01222
01223
01224 "CREATE TABLE dtv_privatetypes ("
01225 " sitype varchar(4) NOT NULL, "
01226 " networkid int(11) NOT NULL, "
01227 " private_type varchar(20) NOT NULL, "
01228 " private_value varchar(100) NOT NULL "
01229 ");",
01230
01231 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',9018,'channel_numbers','131');",
01232 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',9018,'guide_fixup','2');",
01233
01234 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',256,'guide_fixup','1');",
01235 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',257,'guide_fixup','1');",
01236 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',256,'tv_types','1,150,134,133');",
01237 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',257,'tv_types','1,150,134,133');",
01238
01239 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4100,'sdt_mapping','1');",
01240 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4101,'sdt_mapping','1');",
01241 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4102,'sdt_mapping','1');",
01242 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4103,'sdt_mapping','1');",
01243 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4104,'sdt_mapping','1');",
01244 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4105,'sdt_mapping','1');",
01245 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4106,'sdt_mapping','1');",
01246 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4107,'sdt_mapping','1');",
01247 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4097,'sdt_mapping','1');",
01248 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4098,'sdt_mapping','1');",
01249
01250 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4100,'tv_types','1,145,154');",
01251 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4101,'tv_types','1,145,154');",
01252 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4102,'tv_types','1,145,154');",
01253 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4103,'tv_types','1,145,154');",
01254 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4104,'tv_types','1,145,154');",
01255 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4105,'tv_types','1,145,154');",
01256 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4106,'tv_types','1,145,154');",
01257 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4107,'tv_types','1,145,154');",
01258 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4097,'tv_types','1,145,154');",
01259 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4098,'tv_types','1,145,154');",
01260
01261 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4100,'guide_fixup','1');",
01262 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4101,'guide_fixup','1');",
01263 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4102,'guide_fixup','1');",
01264 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4103,'guide_fixup','1');",
01265 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4104,'guide_fixup','1');",
01266 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4105,'guide_fixup','1');",
01267 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4106,'guide_fixup','1');",
01268 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4107,'guide_fixup','1');",
01269 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4097,'guide_fixup','1');",
01270 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4098,'guide_fixup','1');",
01271
01272
01273 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',94,'tv_types','1,128');",
01274
01275 "INSERT into dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('atsc',1793,'guide_fixup','3');",
01276 ""
01277 };
01278 if (!performActualUpdate(updates, "1063", dbver))
01279 return false;
01280 }
01281
01282 if (dbver == "1063")
01283 {
01284 const QString updates[] = {
01285 "CREATE TABLE IF NOT EXISTS recordmatch (recordid int unsigned, "
01286 "chanid int unsigned, starttime datetime, INDEX (recordid));",
01287 ""
01288 };
01289 if (!performActualUpdate(updates, "1064", dbver))
01290 return false;
01291 }
01292
01293 if (dbver == "1064")
01294 {
01295 const QString updates[] = {
01296 "ALTER TABLE program CHANGE stereo stereo TINYINT( 1 ) DEFAULT '0' NOT NULL;",
01297 "ALTER TABLE program CHANGE subtitled subtitled TINYINT( 1 ) DEFAULT '0' NOT NULL;",
01298 "ALTER TABLE program CHANGE hdtv hdtv TINYINT( 1 ) DEFAULT '0' NOT NULL;",
01299 "ALTER TABLE program CHANGE closecaptioned closecaptioned TINYINT( 1 ) DEFAULT '0' NOT NULL;",
01300 "ALTER TABLE program CHANGE partnumber partnumber INT( 11 ) DEFAULT '0' NOT NULL;",
01301 "ALTER TABLE program CHANGE parttotal parttotal INT( 11 ) DEFAULT '0' NOT NULL;",
01302 "ALTER TABLE program CHANGE programid programid VARCHAR( 20 ) NOT NULL;",
01303 "ALTER TABLE oldrecorded CHANGE programid programid VARCHAR( 20 ) NOT NULL;",
01304 "ALTER TABLE recorded CHANGE programid programid VARCHAR( 20 ) NOT NULL;",
01305 "ALTER TABLE record CHANGE programid programid VARCHAR( 20 ) NOT NULL;",
01306 ""
01307 };
01308 if (!performActualUpdate(updates, "1065", dbver))
01309 return false;
01310 }
01311
01312 if (dbver == "1065")
01313 {
01314 const QString updates[] = {
01315 "INSERT INTO profilegroups SET name = 'FireWire Input', cardtype = 'FIREWIRE', is_default = 1;",
01316 "ALTER TABLE capturecard ADD COLUMN firewire_port INT UNSIGNED NOT NULL DEFAULT 0;",
01317 "ALTER TABLE capturecard ADD COLUMN firewire_node INT UNSIGNED NOT NULL DEFAULT 2;",
01318 "ALTER TABLE capturecard ADD COLUMN firewire_speed INT UNSIGNED NOT NULL DEFAULT 0;",
01319 "ALTER TABLE capturecard ADD COLUMN firewire_model varchar(32) NULL;",
01320 ""
01321 };
01322 if (!performActualUpdate(updates, "1066", dbver))
01323 return false;
01324 }
01325
01326 if (dbver == "1066")
01327 {
01328 const QString updates[] = {
01329 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES('dvb', '40999', 'guide_fixup', '4');",
01330 ""
01331 };
01332 if (!performActualUpdate(updates, "1067", dbver))
01333 return false;
01334 }
01335
01336 if (dbver == "1067")
01337 {
01338 const QString updates[] = {
01339 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',70,'force_guide_present','yes');",
01340 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',70,'guide_ranges','80,80,96,96');",
01341 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4112,'channel_numbers','131');",
01342 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4115,'channel_numbers','131');",
01343 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',4116,'channel_numbers','131');",
01344 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',12802,'channel_numbers','131');",
01345 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',12803,'channel_numbers','131');",
01346 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',12829,'channel_numbers','131');",
01347 ""
01348 };
01349 if (!performActualUpdate(updates, "1068", dbver))
01350 return false;
01351 }
01352
01353 if (dbver == "1068")
01354 {
01355 const QString updates[] = {
01356 "ALTER TABLE recorded ADD COLUMN deletepending TINYINT(1) NOT NULL DEFAULT 0;",
01357 ""
01358 };
01359 if (!performActualUpdate(updates, "1069", dbver))
01360 return false;
01361 }
01362
01363 if (dbver == "1069")
01364 {
01365 const QString updates[] = {
01366 "UPDATE jumppoints SET description = 'Weather forecasts' "
01367 "WHERE description = 'Weather forcasts';",
01368 ""
01369 };
01370 if (!performActualUpdate(updates, "1070", dbver))
01371 return false;
01372 }
01373
01374 if (dbver == "1070")
01375 {
01376 const QString updates[] = {
01377 "UPDATE recorded SET bookmark = NULL WHERE bookmark = 'NULL';",
01378 ""
01379 };
01380 if (!performActualUpdate(updates, "1071", dbver))
01381 return false;
01382 }
01383
01384 if (dbver == "1071")
01385 {
01386 const QString updates[] = {
01387 "ALTER TABLE program ADD COLUMN manualid INT UNSIGNED NOT NULL DEFAULT 0;",
01388 "ALTER TABLE program DROP PRIMARY KEY;",
01389 "ALTER TABLE program ADD PRIMARY KEY (chanid, starttime, manualid);",
01390 "ALTER TABLE recordmatch ADD COLUMN manualid INT UNSIGNED;",
01391 ""
01392 };
01393 if (!performActualUpdate(updates, "1072", dbver))
01394 return false;
01395 }
01396
01397 if (dbver == "1072")
01398 {
01399 const QString updates[] = {
01400 "ALTER TABLE recorded ADD INDEX (title);",
01401 ""
01402 };
01403 if (!performActualUpdate(updates, "1073", dbver))
01404 return false;
01405 }
01406
01407 if (dbver == "1073")
01408 {
01409 const QString updates[] = {
01410 "ALTER TABLE capturecard ADD COLUMN firewire_connection INT UNSIGNED NOT NULL DEFAULT 0;",
01411 ""
01412 };
01413 if (!performActualUpdate(updates, "1074", dbver))
01414 return false;
01415 }
01416
01417 if (dbver == "1074")
01418 {
01419 const QString updates[] = {
01420 "INSERT INTO profilegroups SET name = \"USB Mpeg-4 Encoder (Plextor ConvertX, etc)\", cardtype = 'GO7007', is_default = 1;",
01421 "INSERT INTO recordingprofiles SET name = \"Default\", profilegroup = 8;",
01422 "INSERT INTO recordingprofiles SET name = \"Live TV\", profilegroup = 8;",
01423 "INSERT INTO recordingprofiles SET name = \"High Quality\", profilegroup = 8;",
01424 "INSERT INTO recordingprofiles SET name = \"Low Quality\", profilegroup = 8;",
01425 ""
01426 };
01427 if (!performActualUpdate(updates, "1075", dbver))
01428 return false;
01429 }
01430
01431 if (dbver == "1075")
01432 {
01433 const QString updates[] = {
01434 "CREATE TABLE IF NOT EXISTS recordedprogram ("
01435 " chanid int(10) unsigned NOT NULL default '0',"
01436 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
01437 " endtime datetime NOT NULL default '0000-00-00 00:00:00',"
01438 " title varchar(128) NOT NULL default '',"
01439 " subtitle varchar(128) NOT NULL default '',"
01440 " description text NOT NULL,"
01441 " category varchar(64) NOT NULL default '',"
01442 " category_type varchar(64) NOT NULL default '',"
01443 " airdate year(4) NOT NULL default '0000',"
01444 " stars float unsigned NOT NULL default '0',"
01445 " previouslyshown tinyint(4) NOT NULL default '0',"
01446 " title_pronounce varchar(128) NOT NULL default '',"
01447 " stereo tinyint(1) NOT NULL default '0',"
01448 " subtitled tinyint(1) NOT NULL default '0',"
01449 " hdtv tinyint(1) NOT NULL default '0',"
01450 " closecaptioned tinyint(1) NOT NULL default '0',"
01451 " partnumber int(11) NOT NULL default '0',"
01452 " parttotal int(11) NOT NULL default '0',"
01453 " seriesid varchar(12) NOT NULL default '',"
01454 " originalairdate date default NULL,"
01455 " showtype varchar(30) NOT NULL default '',"
01456 " colorcode varchar(20) NOT NULL default '',"
01457 " syndicatedepisodenumber varchar(20) NOT NULL default '',"
01458 " programid varchar(20) NOT NULL default '',"
01459 " manualid int(10) unsigned NOT NULL default '0',"
01460 " PRIMARY KEY (chanid,starttime,manualid),"
01461 " KEY endtime (endtime),"
01462 " KEY title (title),"
01463 " KEY title_pronounce (title_pronounce),"
01464 " KEY seriesid (seriesid),"
01465 " KEY programid (programid),"
01466 " KEY id_start_end (chanid,starttime,endtime)"
01467 ");",
01468 "CREATE TABLE IF NOT EXISTS recordedcredits ("
01469 " person mediumint(8) unsigned NOT NULL default '0',"
01470 " chanid int(10) unsigned NOT NULL default '0',"
01471 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
01472 " role set('actor','director','producer','executive_producer','writer','guest_star','host','adapter','presenter','commentator','guest') NOT NULL default '',"
01473 " UNIQUE KEY chanid (chanid,starttime,person,role),"
01474 " KEY person (person,role)"
01475 ");",
01476 "CREATE TABLE IF NOT EXISTS recordedrating ("
01477 " chanid int(10) unsigned NOT NULL default '0',"
01478 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
01479 " system char(8) NOT NULL default '',"
01480 " rating char(8) NOT NULL default '',"
01481 " UNIQUE KEY chanid (chanid,starttime,system,rating),"
01482 " KEY starttime (starttime,system)"
01483 ");",
01484 ""
01485 };
01486
01487 if (!performActualUpdate(updates, "1076", dbver))
01488 return false;
01489 }
01490
01491 if (dbver == "1076")
01492 {
01493 const QString updates[] = {
01494 "ALTER TABLE channel MODIFY COLUMN serviceid mediumint unsigned;",
01495 ""
01496 };
01497 if (!performActualUpdate(updates, "1077", dbver))
01498 return false;
01499 }
01500
01501 if (dbver == "1077")
01502 {
01503 const QString updates[] = {
01504 "INSERT INTO dtv_privatetypes "
01505 "(sitype,networkid,private_type,private_value) VALUES "
01506 "('dvb',40999,'parse_subtitle_list',"
01507 "'1070,1049,1041,1039,1038,1030,1016,1131,1068,1069');",
01508 ""
01509 };
01510 if (!performActualUpdate(updates, "1078", dbver))
01511 return false;
01512 }
01513
01514 if (dbver == "1078")
01515 {
01516 const QString updates[] = {
01517 "ALTER TABLE capturecard ADD COLUMN dvb_hw_decoder INT DEFAULT '0';",
01518 ""
01519 };
01520 if (!performActualUpdate(updates, "1079", dbver))
01521 return false;
01522 }
01523
01524 if (dbver == "1079")
01525 {
01526 const QString updates[] = {
01527 "ALTER TABLE oldrecorded ADD COLUMN recordid INT NOT NULL DEFAULT 0;",
01528 ""
01529 };
01530 if (!performActualUpdate(updates, "1080", dbver))
01531 return false;
01532 }
01533
01534 if (dbver == "1080")
01535 {
01536 const QString updates[] = {
01537 "ALTER table recorded ADD INDEX (recordid);",
01538 "ALTER table oldrecorded ADD INDEX (recordid);",
01539 ""
01540 };
01541 if (!performActualUpdate(updates, "1081", dbver))
01542 return false;
01543 }
01544
01545 if (dbver == "1081")
01546 {
01547 const QString updates[] = {
01548 "CREATE TABLE IF NOT EXISTS oldfind ("
01549 "recordid INT NOT NULL DEFAULT 0,"
01550 "findid INT NOT NULL DEFAULT 0,"
01551 "PRIMARY KEY (recordid, findid)"
01552 ");",
01553 "ALTER TABLE record ADD COLUMN parentid INT NOT NULL DEFAULT 0;",
01554 ""
01555 };
01556 if (!performActualUpdate(updates, "1082", dbver))
01557 return false;
01558 }
01559
01560 if (dbver == "1082")
01561 {
01562 const QString updates[] = {
01563 "CREATE TABLE IF NOT EXISTS videobookmarks ("
01564 " filename varchar(255) NOT NULL,"
01565 " bookmark varchar(128) default NULL,"
01566 " PRIMARY KEY (filename)"
01567 ");",
01568 ""
01569 };
01570 if (!performActualUpdate(updates, "1083", dbver))
01571 return false;
01572 }
01573
01574 if (dbver == "1083")
01575 {
01576 const QString updates[] = {
01577 "DELETE FROM settings where value = 'UseCategoriesAsRecGroups';",
01578 ""
01579 };
01580 if (!performActualUpdate(updates, "1084", dbver))
01581 return false;
01582 }
01583
01584 if (dbver == "1084")
01585 {
01586 const QString updates[] = {
01587 "INSERT INTO recordingprofiles SET name = 'High Quality', profilegroup = 6;",
01588 "INSERT INTO recordingprofiles SET name = 'Medium Quality', profilegroup = 6;",
01589 "INSERT INTO recordingprofiles SET name = 'Low Quality', profilegroup = 6;",
01590 "REPLACE INTO settings SET value = 'DefaultTranscoder', data = '0';",
01591 "ALTER TABLE record ADD COLUMN transcoder INT NOT NULL DEFAULT 0;",
01592 "ALTER TABLE recorded ADD COLUMN transcoder INT NOT NULL DEFAULT 0;",
01593 ""
01594 };
01595 if (!performActualUpdate(updates, "1085", dbver))
01596 return false;
01597
01598 MSqlQuery recordids(MSqlQuery::InitCon());
01599 recordids.prepare(
01600 "SELECT r.recordid"
01601 " FROM record r, recordingprofiles p, codecparams c"
01602 " WHERE c.name = 'autotranscode'"
01603 " AND c.value = 1"
01604 " AND c.profile = p.id"
01605 " AND r.profile = p.name"
01606 ";");
01607 if (recordids.exec() && recordids.isActive() && recordids.size() > 0)
01608 {
01609 MSqlQuery update(MSqlQuery::InitCon());
01610 while (recordids.next())
01611 {
01612 update.prepare(QString(
01613 "UPDATE record SET autotranscode = 1 WHERE recordid = %1;")
01614 .arg(recordids.value(0).toInt()));
01615 update.exec();
01616 }
01617 }
01618 }
01619
01620 if (dbver == "1085")
01621 {
01622 const QString updates[] = {
01623 "DROP TABLE IF EXISTS pidcache;",
01624 "CREATE TABLE IF NOT EXISTS pidcache ("
01625 " chanid smallint(6) NOT NULL default '0',"
01626 " pid int(11) NOT NULL default '-1',"
01627 " tableid int(11) NOT NULL default '-1',"
01628 " INDEX(chanid)"
01629 ");",
01630 ""
01631 };
01632 if (!performActualUpdate(updates, "1086", dbver))
01633 return false;
01634 }
01635
01636 if (dbver == "1086")
01637 {
01638 const QString updates[] = {
01639 "CREATE TABLE IF NOT EXISTS xvmc_buffer_settings ( "
01640 " id int(11) NOT NULL auto_increment, "
01641 " description varchar(255) NOT NULL default '',"
01642 " osd_num int(11) NOT NULL default '0',"
01643 " osd_res_num int(11) NOT NULL default '0',"
01644 " min_surf int(11) NOT NULL default '0',"
01645 " max_surf int(11) NOT NULL default '0',"
01646 " decode_num int(11) NOT NULL default '0',"
01647 " agressive int(11) NOT NULL default '1',"
01648 " PRIMARY KEY (id) );",
01649 "INSERT INTO xvmc_buffer_settings VALUES (1,'Default / nVidia',2,2,8,16,8,1);",
01650 "INSERT INTO xvmc_buffer_settings VALUES (2,'VLD (More decode buffers)',2,2,8,16,16,1);",
01651 ""
01652 };
01653
01654 if (!performActualUpdate(updates, "1087", dbver))
01655 return false;
01656 }
01657
01658 if (dbver == "1087")
01659 {
01660 const QString updates[] = {
01661 "ALTER TABLE record ADD COLUMN tsdefault FLOAT NOT NULL DEFAULT 1.0;",
01662 "ALTER TABLE recorded ADD COLUMN timestretch FLOAT NOT NULL DEFAULT 1.0;",
01663 "UPDATE record SET tsdefault = 1.0;",
01664 "UPDATE recorded SET timestretch = 1.0;",
01665 ""
01666 };
01667 performActualUpdate(updates, "1088", dbver);
01668 }
01669
01670 if (dbver == "1088")
01671 {
01672 const QString updates[] = {
01673 "ALTER TABLE oldrecorded ADD COLUMN station VARCHAR(20) NOT NULL DEFAULT '';",
01674 "UPDATE oldrecorded SET station=chanid;",
01675 "ALTER TABLE oldrecorded ADD rectype INT(10) UNSIGNED NOT NULL DEFAULT 0;",
01676 "UPDATE oldrecorded SET rectype=1;",
01677 "ALTER TABLE oldrecorded ADD duplicate TINYINT(1) NOT NULL DEFAULT 0;",
01678 "UPDATE oldrecorded SET duplicate=1;",
01679 "ALTER TABLE oldrecorded ADD recstatus INT NOT NULL DEFAULT 0;",
01680 "UPDATE oldrecorded SET recstatus=-3;",
01681 "ALTER TABLE oldrecorded DROP PRIMARY KEY;",
01682 "ALTER TABLE oldrecorded ADD PRIMARY KEY (station,starttime,title);",
01683 ""
01684 };
01685
01686 if (!performActualUpdate(updates, "1089", dbver))
01687 return false;
01688 }
01689
01690 if (dbver == "1089")
01691 {
01692 const QString updates[] = {
01693 "INSERT INTO profilegroups SET name = 'DBOX2 Input', cardtype = 'DBOX2', is_default = 1;",
01694 "ALTER TABLE capturecard ADD COLUMN dbox2_port INT UNSIGNED NOT NULL DEFAULT 31338;",
01695 "ALTER TABLE capturecard ADD COLUMN dbox2_httpport INT UNSIGNED NOT NULL DEFAULT 80;",
01696 "ALTER TABLE capturecard ADD COLUMN dbox2_host varchar(32) NULL;",
01697 ""
01698 };
01699
01700 if (!performActualUpdate(updates, "1090", dbver))
01701 return false;
01702 }
01703
01704 if (dbver == "1090")
01705 {
01706 const QString updates[] = {
01707 "DELETE FROM dtv_privatetypes WHERE sitype='dvb' AND networkid=40999 AND private_type='parse_subtitle_list';",
01708 "INSERT INTO dtv_privatetypes (sitype,networkid,private_type,private_value) VALUES ('dvb',40999,'parse_subtitle_list','1070,1308,1041,1306,1307,1030,1016,1131,1068,1069');",
01709 ""
01710 };
01711
01712 if (!performActualUpdate(updates, "1091", dbver))
01713 return false;
01714 }
01715
01716 if (dbver == "1091")
01717 {
01718 const QString updates[] = {
01719 "ALTER TABLE capturecard CHANGE dvb_recordts dvb_recordts INT DEFAULT '1';",
01720 "UPDATE capturecard SET dvb_recordts=1;",
01721 ""
01722 };
01723
01724 if (!performActualUpdate(updates, "1092", dbver))
01725 return false;
01726 }
01727
01728 if (dbver == "1092")
01729 {
01730 const QString updates[] = {
01731 "ALTER TABLE recorded ADD COLUMN recpriority INT NOT NULL DEFAULT 0;",
01732 ""
01733 };
01734
01735 if (!performActualUpdate(updates, "1093", dbver))
01736 return false;
01737 }
01738
01739 if (dbver == "1093")
01740 {
01741 MSqlQuery recordids(MSqlQuery::InitCon());
01742 recordids.prepare("SELECT recordid,recpriority FROM record;");
01743 if (!recordids.exec())
01744 return false;
01745
01746 if (recordids.isActive() && recordids.size() > 0)
01747 {
01748 MSqlQuery update(MSqlQuery::InitCon());
01749 while (recordids.next())
01750 {
01751 update.prepare(QString(
01752 "UPDATE recorded SET recpriority = %1 WHERE recordid = %2;")
01753 .arg(recordids.value(1).toInt())
01754 .arg(recordids.value(0).toInt()));
01755 if (!update.exec())
01756 return false;
01757 }
01758 }
01759
01760 if (!UpdateDBVersionNumber("1094"))
01761 return false;
01762
01763 dbver = "1094";
01764 }
01765
01766 if (dbver == "1094")
01767 {
01768 const QString updates[] = {
01769 "ALTER TABLE recorded ADD COLUMN basename varchar(128) NOT NULL DEFAULT '';",
01770 "UPDATE recorded SET basename = CONCAT(chanid, '_', DATE_FORMAT(starttime, '%Y%m%d%H%i00'), '_', DATE_FORMAT(endtime, '%Y%m%d%H%i00'), '.nuv');",
01771 ""
01772 };
01773
01774 if (!performActualUpdate(updates, "1095", dbver))
01775 return false;
01776 }
01777
01778 if (dbver == "1095")
01779 {
01780 const QString updates[] = {
01781 "ALTER TABLE recorded ADD COLUMN progstart DATETIME NOT NULL;",
01782 "UPDATE recorded SET progstart = starttime;",
01783 "ALTER TABLE recorded ADD COLUMN progend DATETIME NOT NULL;",
01784 "UPDATE recorded SET progend = endtime;",
01785 ""
01786 };
01787
01788 if (!performActualUpdate(updates, "1096", dbver))
01789 return false;
01790 }
01791
01792 if (dbver == "1096")
01793 {
01794 const QString updates[] = {
01795 "ALTER TABLE capturecard ADD COLUMN signal_timeout int NOT NULL default '1000';",
01796 "ALTER TABLE capturecard ADD COLUMN channel_timeout int NOT NULL default '3000';",
01797 "DROP TABLE IF EXISTS dvb_signal_quality;",
01798 "DROP TABLE IF EXISTS dvb_transport;",
01799 "DROP TABLE IF EXISTS dvb_channel;",
01800 "DROP TABLE IF EXISTS dvb_pids;",
01801 "DROP TABLE IF EXISTS dvb_sat;",
01802 ""
01803 };
01804
01805 if (!performActualUpdate(updates, "1097", dbver))
01806 return false;
01807 }
01808
01809 if (dbver == "1097")
01810 {
01811 const QString updates[] = {
01812 "ALTER TABLE oldrecorded ADD COLUMN reactivate SMALLINT NOT NULL DEFAULT 0;",
01813 ""
01814 };
01815
01816 if (!performActualUpdate(updates, "1098", dbver))
01817 return false;
01818 }
01819
01820 if (dbver == "1098")
01821 {
01822 const QString updates[] = {
01823 "UPDATE record SET findid=TO_DAYS(startdate) WHERE type=6;",
01824 ""
01825 };
01826
01827 if (!performActualUpdate(updates, "1099", dbver))
01828 return false;
01829 }
01830
01831 if (dbver == "1099")
01832 {
01833 const QString updates[] = {
01834 "ALTER TABLE videosource ADD COLUMN useeit SMALLINT NOT NULL DEFAULT 0;",
01835 ""
01836 };
01837
01838 if (!performActualUpdate(updates, "1100", dbver))
01839 return false;
01840 }
01841
01842 if (dbver == "1100")
01843 {
01844 const QString updates[] = {
01845 "CREATE TABLE IF NOT EXISTS tvchain ("
01846 " chanid int(10) unsigned NOT NULL default '0',"
01847 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
01848 " chainid varchar(128) NOT NULL default '',"
01849 " chainpos int(10) NOT NULL default '0',"
01850 " discontinuity tinyint(1) NOT NULL default '0',"
01851 " watching int(10) NOT NULL default '0',"
01852 " PRIMARY KEY (chanid,starttime)"
01853 ");",
01854 ""
01855 };
01856
01857 if (!performActualUpdate(updates, "1101", dbver))
01858 return false;
01859 }
01860
01861 if (dbver == "1101")
01862 {
01863 const QString updates[] = {
01864 "ALTER TABLE tvchain ADD COLUMN hostprefix VARCHAR(128) NOT NULL DEFAULT '';",
01865 ""
01866 };
01867
01868 if (!performActualUpdate(updates, "1102", dbver))
01869 return false;
01870 }
01871
01872 if (dbver == "1102")
01873 {
01874 const QString updates[] = {
01875 "ALTER TABLE tvchain ADD COLUMN cardtype VARCHAR(32) NOT NULL DEFAULT 'V4L';",
01876 ""
01877 };
01878 if (!performActualUpdate(updates, "1103", dbver))
01879 return false;
01880 }
01881
01882 if (dbver == "1103")
01883 {
01884 const QString updates[] = {
01885 "CREATE TABLE IF NOT EXISTS inuseprograms ("
01886 " chanid int(10) unsigned NOT NULL default '0',"
01887 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
01888 " playid varchar(128) NOT NULL default '',"
01889 " lastupdatetime datetime NOT NULL default '0000-00-00 00:00:00',"
01890 " INDEX (chanid,starttime)"
01891 ");",
01892 ""
01893 };
01894
01895 if (!performActualUpdate(updates, "1104", dbver))
01896 return false;
01897 }
01898
01899 if (dbver == "1104")
01900 {
01901 const QString updates[] = {
01902 "ALTER TABLE tvchain ADD COLUMN input VARCHAR(32) NOT NULL DEFAULT '';",
01903 "ALTER TABLE tvchain ADD COLUMN channame VARCHAR(32) NOT NULL DEFAULT '';",
01904 ""
01905 };
01906 if (!performActualUpdate(updates, "1105", dbver))
01907 return false;
01908 }
01909
01910 if (dbver == "1105")
01911 {
01912 const QString updates[] = {
01913 "UPDATE settings SET data = '1' WHERE value = 'AutoExpireMethod' "
01914 " AND data = '0';",
01915 ""
01916 };
01917 if (!performActualUpdate(updates, "1106", dbver))
01918 return false;
01919 }
01920
01921 if (dbver == "1106")
01922 {
01923 const QString updates[] = {
01924 "ALTER TABLE inuseprograms ADD COLUMN hostname VARCHAR(255) NOT NULL DEFAULT '';",
01925 "ALTER TABLE inuseprograms CHANGE playid recusage VARCHAR(128) NOT NULL DEFAULT '';",
01926 ""
01927 };
01928 if (!performActualUpdate(updates, "1107", dbver))
01929 return false;
01930 }
01931
01932 if (dbver == "1107")
01933 {
01934 const QString updates[] = {
01935 "ALTER TABLE record ADD COLUMN playgroup VARCHAR(32) NOT NULL DEFAULT 'Default'; ",
01936 "UPDATE record SET playgroup = 'Default'; ",
01937 "ALTER TABLE recorded ADD COLUMN playgroup VARCHAR(32) NOT NULL DEFAULT 'Default'; ",
01938 "UPDATE recorded SET playgroup = 'Default'; ",
01939 "CREATE TABLE playgroup ("
01940 " name VARCHAR(32) NOT NULL PRIMARY KEY, "
01941 " titlematch VARCHAR(255) NOT NULL DEFAULT '', "
01942 " skipahead INT NOT NULL DEFAULT 0, "
01943 " skipback INT NOT NULL DEFAULT 0, "
01944 " timestretch INT NOT NULL DEFAULT 0 "
01945 ");",
01946 "INSERT INTO playgroup (name,skipahead,skipback,timestretch) "
01947 " VALUES ('Default',30,5,100);",
01948 ""
01949 };
01950
01951 if (!performActualUpdate(updates, "1108", dbver))
01952 return false;
01953 }
01954
01955 if (dbver == "1108")
01956 {
01957 const QString updates[] = {
01958 "ALTER TABLE oldrecorded ADD COLUMN generic TINYINT(1) DEFAULT 0;",
01959 "ALTER TABLE program ADD COLUMN generic TINYINT(1) DEFAULT 0;",
01960 "UPDATE program SET generic = 1 WHERE "
01961 " ((programid = '' AND subtitle = '' AND description = '') OR "
01962 " (programid <> '' AND category_type = 'series' AND "
01963 " program.programid LIKE '%0000'));",
01964 ""
01965 };
01966
01967 if (!performActualUpdate(updates, "1109", dbver))
01968 return false;
01969 }
01970
01971 if (dbver == "1109")
01972 {
01973 const QString updates[] = {
01974 "ALTER TABLE recordedprogram ADD COLUMN generic TINYINT(1) DEFAULT 0;",
01975 ""
01976 };
01977
01978 if (!performActualUpdate(updates, "1110", dbver))
01979 return false;
01980 }
01981
01982 if (dbver == "1110")
01983 {
01984 const QString updates[] = {
01985 "ALTER TABLE recorded ADD COLUMN profile VARCHAR(32) NOT NULL DEFAULT '';",
01986 ""
01987 };
01988 if (!performActualUpdate(updates, "1111", dbver))
01989 return false;
01990 }
01991
01992 if (dbver == "1111")
01993 {
01994 const QString updates[] = {
01995 "DROP TABLE IF EXISTS conflictresolutionany;",
01996 "DROP TABLE IF EXISTS conflictresolutionoverride;",
01997 "DROP TABLE IF EXISTS conflictresolutionsingle;",
01998 "DROP TABLE IF EXISTS recordoverride;",
01999 ""
02000 };
02001 if (!performActualUpdate(updates, "1112", dbver))
02002 return false;
02003 }
02004
02005 if (dbver == "1112")
02006 {
02007 const QString updates[] = {
02008 "DELETE from settings WHERE value LIKE 'DailyWakeup%';",
02009 ""
02010 };
02011
02012 if (!performActualUpdate(updates, "1113", dbver))
02013 return false;
02014 }
02015
02016 if (dbver == "1113")
02017 {
02018 const QString updates[] = {
02019 "INSERT INTO settings VALUES ('NextSuggestedMythfilldatabaseRun',NULL,NULL);",
02020 "INSERT INTO settings VALUES ('HonorGrabberNextSuggestedMythfilldatabaseRunTime','1',NULL);",
02021 ""
02022 };
02023
02024 if (!performActualUpdate(updates, "1114", dbver))
02025 return false;
02026 }
02027
02028 if (dbver == "1114")
02029 {
02030 const QString updates[] = {
02031 "ALTER TABLE tvchain ADD COLUMN endtime DATETIME NOT NULL default '0000-00-00 00:00:00';",
02032 ""
02033 };
02034 if (!performActualUpdate(updates, "1115", dbver))
02035 return false;
02036 }
02037
02038 if (dbver == "1115")
02039 {
02040 const QString updates[] = {
02041 "DELETE FROM keybindings WHERE context = 'Music' AND action LIKE 'JUMP%';",
02042 "DELETE FROM keybindings WHERE context = 'Game' AND action LIKE 'JUMP%';",
02043 ""
02044 };
02045
02046 if (!performActualUpdate(updates, "1116", dbver))
02047 return false;
02048 }
02049
02050 if (dbver == "1116")
02051 {
02052 const QString updates[] = {
02053 "ALTER TABLE capturecard ADD COLUMN displayname VARCHAR(32) NOT NULL DEFAULT '';",
02054 ""
02055 };
02056 if (!performActualUpdate(updates, "1117", dbver))
02057 return false;
02058 }
02059
02060 if (dbver == "1117")
02061 {
02062 const QString updates[] = {
02063 "ALTER TABLE capturecard DROP COLUMN displayname;",
02064 "ALTER TABLE cardinput ADD COLUMN displayname VARCHAR(64) NOT NULL DEFAULT '';",
02065 ""
02066 };
02067 if (!performActualUpdate(updates, "1118", dbver))
02068 return false;
02069 }
02070
02071 if (dbver == "1118")
02072 {
02073 const QString updates[] = {
02074 "UPDATE settings SET value = 'MythFillGrabberSuggestsTime' "
02075 "WHERE value = 'HonorGrabberNextSuggestedMythfilldatabaseRunTime';",
02076 "UPDATE settings SET value = 'MythFillSuggestedRunTime', "
02077 " data = '1970-01-01T00:00:00' "
02078 "WHERE value = 'NextSuggestedMythfilldatabaseRun';",
02079 ""
02080 };
02081 if (!performActualUpdate(updates, "1119", dbver))
02082 return false;
02083 }
02084
02085 if (dbver == "1119")
02086 {
02087 const QString updates[] = {
02088
02089
02090
02091
02092 "ALTER TABLE playgroup ADD COLUMN jump INT NOT NULL DEFAULT 0;",
02093
02094
02095 ""
02096 };
02097 if (!performActualUpdate(updates, "1120", dbver))
02098 return false;
02099 }
02100
02101 if (dbver == "1120")
02102 {
02103 const QString updates[] = {
02104 "UPDATE keybindings SET action = 'ADJUSTSTRETCH' "
02105 " WHERE action = 'TOGGLESTRETCH';",
02106 ""
02107 };
02108 if (!performActualUpdate(updates, "1121", dbver))
02109 return false;
02110 }
02111
02112 if (dbver == "1121")
02113 {
02114 const QString updates[] = {
02115 "ALTER TABLE channel CHANGE channum channum VARCHAR(10) NOT NULL DEFAULT '';",
02116 ""
02117 };
02118 if (!performActualUpdate(updates, "1122", dbver))
02119 return false;
02120 }
02121
02122 if (dbver == "1122")
02123 {
02124 const QString updates[] = {
02125 "ALTER TABLE recorded ADD duplicate TINYINT(1) NOT NULL DEFAULT 0;",
02126 "UPDATE recorded SET duplicate=1;",
02127 ""
02128 };
02129
02130 if (!performActualUpdate(updates, "1123", dbver))
02131 return false;
02132 }
02133
02134 if (dbver == "1123")
02135 {
02136 const QString updates[] = {
02137 "ALTER TABLE cardinput ADD COLUMN radioservices TINYINT(1) DEFAULT 1;",
02138 ""
02139 };
02140 if (!performActualUpdate(updates, "1124", dbver))
02141 return false;
02142 }
02143
02144 if (dbver == "1124")
02145 {
02146 const QString updates[] = {
02147 "ALTER TABLE capturecard ADD parentid int(10) NOT NULL DEFAULT 0;",
02148 "ALTER TABLE cardinput ADD childcardid int(10) NOT NULL DEFAULT 0;",
02149 ""
02150 };
02151 if (!performActualUpdate(updates, "1125", dbver))
02152 return false;
02153 }
02154
02155 if (dbver == "1125")
02156 {
02157 const QString updates[] = {
02158 "ALTER TABLE recorded ADD COLUMN transcoded TINYINT(1) NOT NULL DEFAULT 0;",
02159 ""
02160 };
02161 if (!performActualUpdate(updates, "1126", dbver))
02162 return false;
02163 }
02164
02165 if (dbver == "1126")
02166 {
02167 const QString updates[] = {
02168 "DROP TABLE IF EXISTS xvmc_buffer_settings;",
02169 "ALTER TABLE capturecard DROP COLUMN dvb_dmx_buf_size;",
02170 "ALTER TABLE capturecard DROP COLUMN dvb_pkt_buf_size;",
02171 ""
02172 };
02173 if (!performActualUpdate(updates, "1127", dbver))
02174 return false;
02175 }
02176
02177 if(dbver == "1127")
02178 {
02179 const QString updates[] = {
02180 "ALTER TABLE cardinput ADD COLUMN dishnet_eit TINYINT(1) NOT NULL DEFAULT 0;",
02181 ""
02182 };
02183 if (!performActualUpdate(updates, "1128", dbver))
02184 return false;
02185 }
02186
02187 if (dbver == "1128")
02188 {
02189
02190 MSqlQuery query(MSqlQuery::InitCon());
02191 query.prepare("SELECT chanid, starttime, cutlist FROM recorded"
02192 " WHERE LENGTH(cutlist) > 1;");
02193 if (query.exec() && query.isActive() && query.size() > 0)
02194 {
02195 MSqlQuery insert(MSqlQuery::InitCon());
02196 while (query.next())
02197 {
02198 QString cutlist = query.value(2).toString();
02199
02200 QStringList strlist = QStringList::split("\n", cutlist);
02201 QStringList::Iterator i;
02202 for (i = strlist.begin(); i != strlist.end(); ++i)
02203 {
02204 long long start = 0, end = 0;
02205 if (sscanf((*i).ascii(), "%lld - %lld", &start, &end) == 2)
02206 {
02207 insert.prepare(
02208 "INSERT INTO recordedmarkup (chanid, starttime,"
02209 " type, mark) "
02210 "VALUES (:CHANID, :STARTTIME, :TYPE, :MARK);");
02211 insert.bindValue(":CHANID", query.value(0).toString());
02212 insert.bindValue(":STARTTIME",
02213 query.value(1).toDateTime());
02214
02215 insert.bindValue(":TYPE", 1);
02216 insert.bindValue(":MARK", start);
02217 insert.exec();
02218
02219 insert.bindValue(":TYPE", 0);
02220 insert.bindValue(":MARK", end);
02221 insert.exec();
02222 }
02223 }
02224 }
02225 }
02226
02227 const QString updates[] = {
02228 "UPDATE recorded SET bookmark='0' WHERE bookmark IS NULL",
02229 "INSERT INTO recordedmarkup (chanid, starttime, type, mark) SELECT"
02230 " chanid, starttime, '2', bookmark FROM recorded WHERE bookmark <> 0;",
02231 "ALTER TABLE recorded CHANGE cutlist cutlist TINYINT(1) NOT NULL DEFAULT 0",
02232 "UPDATE recorded SET bookmark='1' WHERE bookmark > 0",
02233 "ALTER TABLE recorded CHANGE bookmark bookmark TINYINT(1) NOT NULL DEFAULT 0",
02234 ""
02235 };
02236 if (!performActualUpdate(updates, "1129", dbver))
02237 return false;
02238 }
02239
02240 if (dbver == "1129")
02241 {
02242 const QString updates[] = {
02243 "INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value) "
02244 " VALUES ('dvb', 4096, 'guide_fixup', '5');",
02245 ""
02246 };
02247 if (!performActualUpdate(updates, "1130", dbver))
02248 return false;
02249 }
02250
02251 if (dbver == "1130")
02252 {
02253 const QString updates[] = {
02254 "ALTER TABLE cardinput ADD COLUMN recpriority INT NOT NULL DEFAULT 0;",
02255 "UPDATE cardinput SET recpriority = preference;",
02256 ""
02257 };
02258 if (!performActualUpdate(updates, "1131", dbver))
02259 return false;
02260 }
02261
02262 if (dbver == "1131")
02263 {
02264 const QString updates[] = {
02265 "ALTER TABLE capturecard ADD COLUMN dvb_tuning_delay INT UNSIGNED NOT NULL DEFAULT 0;",
02266 ""
02267 };
02268 if (!performActualUpdate(updates, "1132", dbver))
02269 return false;
02270 }
02271
02272 if (dbver == "1132")
02273 {
02274 const QString updates[] = {
02275 "ALTER TABLE channel ADD COLUMN tmoffset INT NOT NULL default '0';",
02276 ""
02277 };
02278
02279 if (!performActualUpdate(updates, "1133", dbver))
02280 return false;
02281 }
02282
02283 if (dbver == "1133")
02284 {
02285 const QString updates[] = {
02286 "UPDATE capturecard SET defaultinput='DVBInput' WHERE defaultinput='Television' AND cardtype = 'DVB';",
02287 ""
02288 };
02289
02290 if (!performActualUpdate(updates, "1134", dbver))
02291 return false;
02292 }
02293
02294 if (dbver == "1134")
02295 {
02296 const QString updates[] = {
02297 "ALTER TABLE jumppoints CHANGE keylist keylist VARCHAR(128);",
02298 "ALTER TABLE keybindings CHANGE keylist keylist VARCHAR(128);",
02299 ""
02300 };
02301
02302 if (!performActualUpdate(updates, "1135", dbver))
02303 return false;
02304 }
02305
02306 if (dbver == "1135")
02307 {
02308 const QString updates[] = {
02309 "ALTER TABLE program ADD listingsource INT NOT NULL default '0';",
02310 "",
02311 };
02312
02313 if (!performActualUpdate(updates, "1136", dbver))
02314 return false;
02315 }
02316
02317 if (dbver == "1136")
02318 {
02319 const QString updates[] = {
02320 "ALTER TABLE recordedprogram ADD listingsource INT NOT NULL default '0';",
02321 "",
02322 };
02323
02324 if (!performActualUpdate(updates, "1137", dbver))
02325 return false;
02326 }
02327
02328 if (dbver == "1137")
02329 {
02330 const QString updates[] = {
02331 "UPDATE dtv_multiplex SET networkid='0' WHERE sistandard='atsc';",
02332 "",
02333 };
02334
02335 if (!performActualUpdate(updates, "1138", dbver))
02336 return false;
02337 }
02338
02339 if (dbver == "1138")
02340 {
02341 const QString updates[] = {
02342 "ALTER TABLE capturecard ADD contrast INT NOT NULL default '0';",
02343 "ALTER TABLE capturecard ADD brightness INT NOT NULL default '0';",
02344 "ALTER TABLE capturecard ADD colour INT NOT NULL default '0';",
02345 "ALTER TABLE capturecard ADD hue INT NOT NULL default '0';",
02346 "",
02347 };
02348
02349 if (!performActualUpdate(updates, "1139", dbver))
02350 return false;
02351 }
02352
02353 if (dbver == "1139")
02354 {
02355 const QString updates[] = {
02356 "UPDATE dtv_multiplex set modulation = '8psk' WHERE modulation = 'qpsk_8';",
02357 "",
02358 };
02359
02360 if (!performActualUpdate(updates, "1140", dbver))
02361 return false;
02362 }
02363
02364 if (dbver == "1140")
02365 {
02366 const QString updates[] = {
02367 "ALTER TABLE oldrecorded ADD INDEX (recstatus,programid,seriesid);",
02368 "ALTER TABLE oldrecorded ADD INDEX (recstatus,title,subtitle);",
02369 "",
02370 };
02371
02372 if (!performActualUpdate(updates, "1141", dbver))
02373 return false;
02374 }
02375
02376 if (dbver == "1141")
02377 {
02378 const QString updates[] = {
02379 "CREATE TABLE IF NOT EXISTS customexample ("
02380 " rulename VARCHAR(64) NOT NULL PRIMARY KEY, "
02381 " fromclause text NOT NULL, "
02382 " whereclause text NOT NULL "
02383 ");",
02384 ""
02385 };
02386 if (!performActualUpdate(updates, "1142", dbver))
02387 return false;
02388 }
02389
02390 if (dbver == "1142")
02391 {
02392 const QString updates[] = {
02393 "ALTER TABLE record ADD COLUMN prefinput int(10) NOT NULL DEFAULT 0;",
02394 "",
02395 };
02396
02397 if (!performActualUpdate(updates, "1143", dbver))
02398 return false;
02399 }
02400
02401 if (dbver == "1143")
02402 {
02403 const QString updates[] = {
02404 "UPDATE settings SET data=0 WHERE value='PlaybackHue' AND (data >= 45 AND data <= 55);",
02405 ""
02406 };
02407
02408 if (!performActualUpdate(updates, "1144", dbver))
02409 return false;
02410 }
02411
02412 if (dbver == "1144")
02413 {
02414 const QString updates[] = {
02415 "CREATE TABLE IF NOT EXISTS eit_cache ("
02416 " chanid INT(10) NOT NULL, "
02417 " eventid SMALLINT UNSIGNED NOT NULL, "
02418 " tableid TINYINT UNSIGNED NOT NULL, "
02419 " version TINYINT UNSIGNED NOT NULL, "
02420 " endtime INT UNSIGNED NOT NULL, "
02421 " PRIMARY KEY (chanid, eventid) "
02422 ");",
02423 "",
02424 };
02425
02426 if (!performActualUpdate(updates, "1145", dbver))
02427 return false;
02428 }
02429
02430 if (dbver == "1145")
02431 {
02432 const QString updates[] = {
02433 "INSERT INTO profilegroups SET name = 'Freebox Input', cardtype = 'Freebox', is_default = 1;",
02434 ""
02435 };
02436
02437 if (!performActualUpdate(updates, "1146", dbver))
02438 return false;
02439 }
02440
02441 if (dbver == "1146")
02442 {
02443 const QString updates[] = {
02444 "ALTER TABLE program ADD first TINYINT(1) NOT NULL DEFAULT 0;",
02445 "ALTER TABLE program ADD last TINYINT(1) NOT NULL DEFAULT 0;",
02446 ""
02447 };
02448
02449 if (!performActualUpdate(updates, "1147", dbver))
02450 return false;
02451 }
02452
02453 if (dbver == "1147")
02454 {
02455 const QString updates[] = {
02456 "ALTER TABLE recordedprogram ADD first TINYINT(1) NOT NULL DEFAULT 0;",
02457 "ALTER TABLE recordedprogram ADD last TINYINT(1) NOT NULL DEFAULT 0;",
02458 ""
02459 };
02460
02461 if (!performActualUpdate(updates, "1148", dbver))
02462 return false;
02463 }
02464
02465 if (dbver == "1148")
02466 {
02467 const QString updates[] = {
02468 "INSERT INTO recordingprofiles SET name = 'Default', profilegroup = 10;",
02469 "INSERT INTO recordingprofiles SET name = 'Live TV', profilegroup = 10;",
02470 "INSERT INTO recordingprofiles SET name = 'High Quality', profilegroup = 10;",
02471 "INSERT INTO recordingprofiles SET name = 'Low Quality', profilegroup = 10;",
02472
02473 "INSERT INTO profilegroups SET name = 'HDHomeRun Recorders', "
02474 " cardtype = 'HDHOMERUN', is_default = 1;",
02475 "INSERT INTO recordingprofiles SET name = 'Default', profilegroup = 11;",
02476 "INSERT INTO recordingprofiles SET name = 'Live TV', profilegroup = 11;",
02477 "INSERT INTO recordingprofiles SET name = 'High Quality', profilegroup = 11;",
02478 "INSERT INTO recordingprofiles SET name = 'Low Quality', profilegroup = 11;",
02479
02480 "INSERT INTO profilegroups SET name = 'CRC IP Recorders', "
02481 " cardtype = 'CRC_IP', is_default = 1;",
02482 "INSERT INTO recordingprofiles SET name = 'Default', profilegroup = 12;",
02483 "INSERT INTO recordingprofiles SET name = 'Live TV', profilegroup = 12;",
02484 "INSERT INTO recordingprofiles SET name = 'High Quality', profilegroup = 12;",
02485 "INSERT INTO recordingprofiles SET name = 'Low Quality', profilegroup = 12;",
02486 ""
02487 };
02488
02489 if (!performActualUpdate(updates, "1149", dbver))
02490 return false;
02491 }
02492
02493 if (dbver == "1149")
02494 {
02495 const QString updates[] = {
02496 "UPDATE settings SET data='channum' WHERE value='ChannelOrdering' AND data!='callsign';",
02497 ""
02498 };
02499
02500 if (!performActualUpdate(updates, "1150", dbver))
02501 return false;
02502 }
02503
02504 if (dbver == "1150")
02505 {
02506 const QString updates[] = {
02507 "ALTER TABLE channel ADD atsc_major_chan INT UNSIGNED NOT NULL default '0';",
02508 "ALTER TABLE channel ADD atsc_minor_chan INT UNSIGNED NOT NULL default '0';",
02509
02510 "UPDATE channel SET atsc_major_chan = atscsrcid;",
02511 "UPDATE channel SET atsc_major_chan = atsc_major_chan / 256;",
02512 "UPDATE channel SET atsc_minor_chan = atscsrcid;",
02513 "UPDATE channel SET atsc_minor_chan = atsc_minor_chan % 256;",
02514 ""
02515 };
02516
02517 if (!performActualUpdate(updates, "1151", dbver))
02518 return false;
02519 }
02520
02521 if (dbver == "1151")
02522 {
02523 const QString updates[] = {
02524 "ALTER TABLE programgenres ADD INDEX (genre);",
02525 ""
02526 };
02527
02528 if (!performActualUpdate(updates, "1152", dbver))
02529 return false;
02530 }
02531
02532 if (dbver == "1152")
02533 {
02534 const QString updates[] = {
02535 "ALTER TABLE recordedmarkup DROP PRIMARY KEY, ADD PRIMARY KEY (chanid,starttime,type,mark);",
02536 "CREATE TABLE IF NOT EXISTS recordedseek ("
02537 " chanid int(10) unsigned NOT NULL default '0',"
02538 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
02539 " mark bigint(20) NOT NULL default '0',"
02540 " offset varchar(32) default NULL,"
02541 " type int(11) NOT NULL default '0',"
02542 " PRIMARY KEY (chanid,starttime,type,mark));",
02543 "INSERT IGNORE INTO recordedseek (chanid, starttime, mark, offset, type) SELECT"
02544 " chanid, starttime, mark, offset, type FROM recordedmarkup WHERE type in (6, 7, 9);",
02545 "DELETE FROM recordedmarkup WHERE type in (6, 7, 9);",
02546 "",
02547 };
02548
02549 if (!performActualUpdate(updates, "1153", dbver))
02550 return false;
02551 }
02552
02553 if (dbver == "1153")
02554 {
02555 const QString updates[] = {
02556 "CREATE TABLE IF NOT EXISTS diseqc_config "
02557 " ( cardinputid INT(10) UNSIGNED NOT NULL, "
02558 " diseqcid INT(10) UNSIGNED NOT NULL, "
02559 " value VARCHAR(16) NOT NULL default '', "
02560 " KEY id (cardinputid) );",
02561 "CREATE TABLE IF NOT EXISTS diseqc_tree "
02562 " ( diseqcid INT(10) UNSIGNED NOT NULL auto_increment, "
02563 " parentid INT(10) UNSIGNED default NULL, "
02564 " ordinal TINYINT(3) UNSIGNED NOT NULL, "
02565 " type VARCHAR(16) NOT NULL default '', "
02566 " subtype VARCHAR(16) NOT NULL default '', "
02567 " description VARCHAR(32) NOT NULL default '', "
02568 " switch_ports TINYINT(3) UNSIGNED NOT NULL default 0, "
02569 " rotor_hi_speed FLOAT NOT NULL default 0.0, "
02570 " rotor_lo_speed FLOAT NOT NULL default 0.0, "
02571 " rotor_positions VARCHAR(255) NOT NULL default '', "
02572 " lnb_lof_switch INT(10) NOT NULL default 0, "
02573 " lnb_lof_hi INT(10) NOT NULL default 0, "
02574 " lnb_lof_lo INT(10) NOT NULL default 0, "
02575 " PRIMARY KEY (diseqcid), KEY parentid (parentid) );",
02576 "ALTER TABLE capturecard ADD diseqcid INT(10) UNSIGNED default NULL;",
02577 ""
02578 };
02579
02580 if (!performActualUpdate(updates, "1154", dbver))
02581 return false;
02582
02583 convert_diseqc_db();
02584 }
02585
02586 if (dbver == "1154")
02587 {
02588 const QString updates[] = {
02589 "ALTER TABLE cardinput CHANGE startchan startchan VARCHAR(10);",
02590 "ALTER TABLE cardinput CHANGE tunechan tunechan VARCHAR(10);",
02591 ""
02592 };
02593
02594 if (!performActualUpdate(updates, "1155", dbver))
02595 return false;
02596 }
02597
02598 if (dbver == "1155")
02599 {
02600 const QString updates[] = {
02601 "ALTER TABLE `diseqc_tree` ADD `cmd_repeat` INT NOT NULL DEFAULT '1';",
02602 ""
02603 };
02604
02605 if (!performActualUpdate(updates, "1156", dbver))
02606 return false;
02607 }
02608
02609 if (dbver == "1156")
02610 {
02611 const QString updates[] = {
02612 "UPDATE codecparams SET value='0' WHERE name='mpeg4optionidct' OR name='mpeg4optionime';",
02613 ""
02614 };
02615
02616 if (!performActualUpdate(updates, "1157", dbver))
02617 return false;
02618 }
02619
02620 if (dbver == "1157")
02621 {
02622 const QString updates[] = {
02623 "ALTER TABLE record ADD COLUMN next_record DATETIME NOT NULL;",
02624 "ALTER TABLE record ADD COLUMN last_record DATETIME NOT NULL;",
02625 "ALTER TABLE record ADD COLUMN last_delete DATETIME NOT NULL;",
02626 ""
02627 };
02628
02629 if (!performActualUpdate(updates, "1158", dbver))
02630 return false;
02631 }
02632
02633 if (dbver == "1158")
02634 {
02635 const QString updates[] = {
02636 "ALTER TABLE recorded ADD COLUMN watched TINYINT NOT NULL DEFAULT '0';",
02637 ""
02638 };
02639
02640 if (!performActualUpdate(updates, "1159", dbver))
02641 return false;
02642 }
02643
02644 if (dbver == "1159")
02645 {
02646 MSqlQuery query(MSqlQuery::InitCon());
02647 query.prepare("SELECT DISTINCT chanid, starttime FROM recordedmarkup "
02648 "WHERE type = 1;");
02649 if (query.exec() && query.isActive() && query.size() > 0)
02650 {
02651 MSqlQuery fixup(MSqlQuery::InitCon());
02652 while (query.next())
02653 {
02654 fixup.prepare(
02655 "UPDATE recorded SET cutlist = 1 "
02656 "WHERE chanid = :CHANID AND starttime = :STARTTIME;");
02657 fixup.bindValue(":CHANID", query.value(0).toString());
02658 fixup.bindValue(":STARTTIME", query.value(1).toDateTime());
02659
02660 fixup.exec();
02661 }
02662 }
02663
02664 const QString updates[] = { "" };
02665 if (!performActualUpdate(updates, "1160", dbver))
02666 return false;
02667 }
02668
02669 if (dbver == "1160")
02670 {
02671 const QString updates[] = {
02672 "ALTER TABLE diseqc_tree ADD COLUMN lnb_pol_inv TINYINT NOT NULL DEFAULT '0';",
02673 ""
02674 };
02675
02676 if (!performActualUpdate(updates, "1161", dbver))
02677 return false;
02678 }
02679
02680 if (dbver == "1161")
02681 {
02682 const QString updates[] = {
02683 "UPDATE settings SET data='Auto' WHERE value='EITTimeOffset';",
02684 ""
02685 };
02686
02687 if (!performActualUpdate(updates, "1162", dbver))
02688 return false;
02689 }
02690
02691 if (dbver == "1162")
02692 {
02693 MSqlQuery query(MSqlQuery::InitCon());
02694 QMap<int,int> fixupMap;
02695
02696
02697 fixupMap[0] = 0x01;
02698 fixupMap[1] = 0x03;
02699 fixupMap[2] = 0x07;
02700 fixupMap[3] = 0x05;
02701 fixupMap[4] = 0x02;
02702 fixupMap[5] = 0x06;
02703 fixupMap[6] = 0x04;
02704
02705 query.prepare("SELECT data, hostname FROM settings "
02706 "WHERE value = 'DisplayGroupDefaultView'");
02707 if (query.exec() && query.isActive() && query.size() > 0)
02708 {
02709 MSqlQuery fixup(MSqlQuery::InitCon());
02710
02711 fixup.prepare("INSERT settings ( value, data, hostname ) "
02712 "VALUES ( :VALUE, :DATA, :HOSTNAME )");
02713 fixup.bindValue(":VALUE", "DisplayGroupDefaultViewMask");
02714
02715 while (query.next())
02716 {
02717 fixup.bindValue(":DATA", fixupMap[query.value(0).toInt()]);
02718 fixup.bindValue(":HOSTNAME", query.value(1).toString());
02719 fixup.exec();
02720 }
02721 }
02722
02723 const QString updates[] = { "" };
02724 if (!performActualUpdate(updates, "1163", dbver))
02725 return false;
02726 }
02727
02728 if (dbver == "1163")
02729 {
02730 const QString updates[] = {
02731 "ALTER TABLE capturecard DROP COLUMN dvb_recordts;",
02732 "ALTER TABLE capturecard DROP COLUMN dvb_hw_decoder;",
02733 ""
02734 };
02735
02736 if (!performActualUpdate(updates, "1164", dbver))
02737 return false;
02738 }
02739
02740 if (dbver == "1164")
02741 {
02742 const QString updates[] = {
02743 "CREATE INDEX program_manualid ON program (manualid);",
02744 ""
02745 };
02746
02747 if (!performActualUpdate(updates, "1165", dbver))
02748 return false;
02749 }
02750
02751 if (dbver == "1165")
02752 {
02753 const QString updates[] = {
02754 "ALTER TABLE recordedrating CHANGE rating rating CHAR(16);",
02755 "ALTER TABLE programrating CHANGE rating rating CHAR(16);",
02756 ""
02757 };
02758
02759 if (!performActualUpdate(updates, "1166", dbver))
02760 return false;
02761 }
02762
02763 if (dbver == "1166")
02764 {
02765 const QString updates[] = {
02766 "DELETE FROM keybindings where action = 'VIEWVIDEOSOURCE';",
02767 ""
02768 };
02769
02770 if (!performActualUpdate(updates, "1167", dbver))
02771 return false;
02772 }
02773
02774 if (dbver == "1167")
02775 {
02776 const QString updates[] = {
02777 "CREATE TABLE IF NOT EXISTS dvdbookmark ("
02778 " serialid varchar(16) NOT NULL default '',"
02779 " name varchar(32) default NULL,"
02780 " title smallint(6) NOT NULL default 0,"
02781 " audionum tinyint(4) NOT NULL default -1,"
02782 " subtitlenum tinyint(4) NOT NULL default -1,"
02783 " framenum bigint(20) NOT NULL default 0,"
02784 " timestamp timestamp NOT NULL, "
02785 " PRIMARY KEY (serialid));",
02786 "",
02787 };
02788
02789 if (!performActualUpdate(updates, "1168", dbver))
02790 return false;
02791 }
02792
02793 if (dbver == "1168")
02794 {
02795 const QString updates[] = {
02796 "UPDATE dtv_multiplex SET sistandard='mpeg', networkid=NULL, transportid=NULL "
02797 "WHERE sistandard = 'dvb' AND networkid IS NULL OR networkid < 1;",
02798 ""
02799 };
02800
02801 if (!performActualUpdate(updates, "1169", dbver))
02802 return false;
02803 }
02804
02805 if (dbver == "1169")
02806 {
02807 QString thequery =
02808 "SELECT mplexid "
02809 "FROM channel "
02810 "WHERE mplexid != 0 AND "
02811 " mplexid != 32767 AND "
02812 " atsc_minor_chan > 0 "
02813 "GROUP BY mplexid";
02814
02815 MSqlQuery query(MSqlQuery::InitCon());
02816 query.prepare(thequery);
02817 if (!query.exec())
02818 {
02819 QString msg =
02820 QString("DB Error (Performing database upgrade): \n"
02821 "Query was: %1 \nError was: %2 \nnew version: %3")
02822 .arg(thequery)
02823 .arg(MythContext::DBErrorMessage(query.lastError()))
02824 .arg("1170");
02825 VERBOSE(VB_IMPORTANT, msg);
02826 return false;
02827 }
02828
02829 QString in = "(";
02830
02831 while (query.next())
02832 in += query.value(0).toString() + ",";
02833
02834 thequery = "";
02835 if (in.length() > 2)
02836 {
02837 in.truncate(in.length() - 1);
02838 thequery =
02839 "UPDATE dtv_multiplex "
02840 "SET sistandard='atsc' "
02841 "WHERE mplexid IN " + in + ")";
02842 }
02843
02844 const QString updates[] = {
02845 thequery,
02846 ""};
02847
02848 if (!performActualUpdate(updates, "1170", dbver))
02849 return false;
02850 }
02851
02852 if (dbver == "1170")
02853 {
02854 const QString updates[] = {
02855 "CREATE TABLE IF NOT EXISTS storagegroup ( "
02856 " id INT(11) NOT NULL auto_increment, "
02857 " groupname VARCHAR(32) NOT NULL, "
02858 " hostname VARCHAR(64) NOT NULL DEFAULT '', "
02859 " dirname VARCHAR(255) NOT NULL DEFAULT '', "
02860 " PRIMARY KEY (id), "
02861 " UNIQUE KEY grouphostdir (groupname, hostname, dirname)"
02862 " );",
02863 "INSERT storagegroup (groupname, hostname, dirname) "
02864 " SELECT DISTINCT 'Default', hostname, data "
02865 " FROM settings "
02866 " WHERE value = 'RecordFilePrefix' "
02867 " AND hostname IS NOT NULL "
02868 " AND hostname <> '';",
02869 "ALTER TABLE recorded ADD storagegroup VARCHAR(32) NOT NULL DEFAULT 'Default';",
02870 "ALTER TABLE record ADD storagegroup VARCHAR(32) NOT NULL DEFAULT 'Default';",
02871 "ALTER TABLE inuseprograms ADD rechost VARCHAR(64) NOT NULL;",
02872 "ALTER TABLE inuseprograms ADD recdir VARCHAR(255) NOT NULL DEFAULT '';",
02873 ""
02874 };
02875 if (!performActualUpdate(updates, "1171", dbver))
02876 return false;
02877 }
02878
02879 if (dbver == "1171")
02880 {
02881
02882 const QString updates[] = {
02883 "INSERT INTO recordingprofiles SET name = \"Default\", profilegroup = 7;",
02884 "INSERT INTO recordingprofiles SET name = \"Live TV\", profilegroup = 7;",
02885 "INSERT INTO recordingprofiles SET name = \"High Quality\", profilegroup = 7;",
02886 "INSERT INTO recordingprofiles SET name = \"Low Quality\", profilegroup = 7;",
02887 "INSERT INTO recordingprofiles SET name = \"Default\", profilegroup = 9;",
02888 "INSERT INTO recordingprofiles SET name = \"Live TV\", profilegroup = 9;",
02889 "INSERT INTO recordingprofiles SET name = \"High Quality\", profilegroup = 9;",
02890 "INSERT INTO recordingprofiles SET name = \"Low Quality\", profilegroup = 9;",
02891 ""
02892 };
02893 if (!performActualUpdate(updates, "1172", dbver))
02894 return false;
02895 }
02896
02897 if (dbver == "1172")
02898 {
02899 const QString updates[] = {
02900 "ALTER TABLE channel ADD COLUMN last_record DATETIME NOT NULL;",
02901 ""
02902 };
02903 if (!performActualUpdate(updates, "1173", dbver))
02904 return false;
02905 }
02906
02907 if (dbver == "1173")
02908 {
02909 const QString updates[] = {
02910 "UPDATE settings SET data = CONCAT(data, \" --settime $time\") "
02911 "WHERE value = \"MythShutdownNvramCmd\";",
02912 ""
02913 };
02914 if (!performActualUpdate(updates, "1174", dbver))
02915 return false;
02916 }
02917
02918 if (dbver == "1174")
02919 {
02920 const QString updates[] = {
02921 "UPDATE record SET dupin = 31 WHERE dupin = 4;",
02922 ""
02923 };
02924 if (!performActualUpdate(updates, "1175", dbver))
02925 return false;
02926 }
02927
02928 if (dbver == "1175")
02929 {
02930 QString thequery =
02931 "SELECT cardid "
02932 "FROM capturecard "
02933 "WHERE cardtype='FIREWIRE'";
02934
02935 MSqlQuery query(MSqlQuery::InitCon());
02936 query.prepare(thequery);
02937 if (!query.exec())
02938 {
02939 QString msg =
02940 QString("DB Error (Performing database upgrade): \n"
02941 "Query was: %1 \nError was: %2 \nnew version: %3")
02942 .arg(thequery)
02943 .arg(MythContext::DBErrorMessage(query.lastError()))
02944 .arg("1176");
02945 VERBOSE(VB_IMPORTANT, msg);
02946 return false;
02947 }
02948
02949 QString in = "(";
02950
02951 while (query.next())
02952 in += query.value(0).toString() + ",";
02953
02954 thequery = "";
02955 if (in.length() > 2)
02956 {
02957 in.truncate(in.length() - 1);
02958 thequery =
02959 "DELETE FROM cardinput "
02960 "WHERE cardid IN " + in + ")";
02961 }
02962
02963 const QString updates[] = {
02964 "DELETE FROM capturecard WHERE cardtype = 'FIREWIRE';",
02965 thequery,
02966 ""
02967 };
02968 if (!performActualUpdate(updates, "1176", dbver))
02969 return false;
02970 }
02971
02972 if (dbver == "1176")
02973 {
02974 const QString updates[] = {
02975 "ALTER TABLE cardinput ADD COLUMN quicktune TINYINT NOT NULL default '0';",
02976 ""
02977 };
02978 if (!performActualUpdate(updates, "1177", dbver))
02979 return false;
02980 }
02981
02982 if (dbver == "1177")
02983 {
02984 const QString updates[] = {
02985 "ALTER TABLE channel ADD INDEX (sourceid, xmltvid, chanid);",
02986 "ALTER TABLE channel ADD INDEX (visible);",
02987 "ALTER TABLE inuseprograms ADD INDEX (recusage, lastupdatetime);",
02988 "ALTER TABLE mythlog ADD INDEX (module);",
02989 "ALTER TABLE profilegroups ADD INDEX (cardtype);",
02990 "ALTER TABLE program DROP INDEX programid;",
02991 "ALTER TABLE program ADD INDEX (previouslyshown);",
02992 "ALTER TABLE program ADD INDEX (programid,starttime);",
02993 "ALTER TABLE program ADD INDEX (starttime);",
02994 "ALTER TABLE record ADD INDEX (maxepisodes);",
02995 "ALTER TABLE record ADD INDEX (search);",
02996 "ALTER TABLE record ADD INDEX (type);",
02997 "ALTER TABLE recorded ADD INDEX (deletepending, lastmodified);",
02998 "ALTER TABLE recorded ADD INDEX (recgroup, endtime);",
02999 "ALTER TABLE recordingprofiles ADD INDEX (profilegroup);",
03000 "ALTER TABLE storagegroup ADD INDEX (hostname);",
03001 ""
03002 };
03003 if (!performActualUpdate(updates, "1178", dbver))
03004 return false;
03005 }
03006
03007 if (dbver == "1178")
03008 {
03009 const QString updates[] = {
03010 "ALTER TABLE program CHANGE seriesid seriesid VARCHAR(40) NOT NULL DEFAULT '';",
03011 "ALTER TABLE program CHANGE programid programid VARCHAR(40) NOT NULL DEFAULT '';",
03012 "ALTER TABLE record CHANGE seriesid seriesid VARCHAR(40) NOT NULL DEFAULT '';",
03013 "ALTER TABLE record CHANGE programid programid VARCHAR(40) NOT NULL DEFAULT '';",
03014 "ALTER TABLE recorded CHANGE seriesid seriesid VARCHAR(40) NOT NULL DEFAULT '';",
03015 "ALTER TABLE recorded CHANGE programid programid VARCHAR(40) NOT NULL DEFAULT '';",
03016 "ALTER TABLE recordedprogram CHANGE seriesid seriesid VARCHAR(40) NOT NULL DEFAULT '';",
03017 "ALTER TABLE recordedprogram CHANGE programid programid VARCHAR(40) NOT NULL DEFAULT '';",
03018 "ALTER TABLE oldrecorded CHANGE seriesid seriesid VARCHAR(40) NOT NULL DEFAULT '';",
03019 "ALTER TABLE oldrecorded CHANGE programid programid VARCHAR(40) NOT NULL DEFAULT '';",
03020 "ALTER TABLE channel ADD COLUMN default_authority VARCHAR(32) NOT NULL DEFAULT '';",
03021 ""
03022 };
03023 if (!performActualUpdate(updates, "1179", dbver))
03024 return false;
03025 }
03026
03027 if (dbver == "1179")
03028 {
03029 const QString updates[] = {
03030 "ALTER TABLE eit_cache ADD COLUMN status TINYINT NOT NULL default '0';",
03031 "ALTER TABLE eit_cache DROP PRIMARY KEY, ADD PRIMARY KEY (chanid,eventid,status);",
03032 ""
03033 };
03034 if (!performActualUpdate(updates, "1180", dbver))
03035 return false;
03036 }
03037
03038 if (dbver == "1180")
03039 {
03040 const QString updates[] = {
03041 "ALTER TABLE recordedmarkup MODIFY mark MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, "
03042 "MODIFY type TINYINT NOT NULL DEFAULT 0;",
03043 "ALTER TABLE recordedseek MODIFY mark MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,"
03044 "MODIFY offset BIGINT UNSIGNED NOT NULL,"
03045 "MODIFY type TINYINT NOT NULL DEFAULT 0;",
03046 ""
03047 };
03048 if (!performActualUpdate(updates, "1181", dbver))
03049 return false;
03050 }
03051
03052 if (dbver == "1181")
03053 {
03054 VERBOSE(VB_IMPORTANT, "Upgrading to schema version 1182");
03055
03056 MSqlQuery airdates(MSqlQuery::InitCon());
03057 airdates.prepare("SELECT chanid, starttime FROM recordedprogram "
03058 "WHERE originalairdate = '0000-00-00';");
03059 if (!airdates.exec())
03060 return false;
03061
03062 if (airdates.isActive() && airdates.size() > 0)
03063 {
03064 MSqlQuery update(MSqlQuery::InitCon());
03065 while (airdates.next())
03066 {
03067 update.prepare("UPDATE recorded "
03068 "SET originalairdate = '0000-00-00' "
03069 "WHERE chanid = :CHANID "
03070 "AND starttime = :STARTTIME;");
03071
03072 update.bindValue(":CHANID", airdates.value(0).toString());
03073 update.bindValue(":STARTTIME", airdates.value(1).toDateTime());
03074 update.exec();
03075 }
03076 }
03077
03078 if (!UpdateDBVersionNumber("1182"))
03079 return false;
03080
03081 dbver = "1182";
03082 }
03083
03084 if (dbver == "1182")
03085 {
03086 const QString updates[] = {
03087 "ALTER TABLE jobqueue ADD schedruntime datetime NOT NULL default '2007-01-01 00:00:00';",
03088 ""
03089 };
03090 if (!performActualUpdate(updates, "1183", dbver))
03091 return false;
03092 }
03093
03094 if (dbver == "1183")
03095 {
03096 const QString updates[] = {
03097 "ALTER TABLE channel ADD COLUMN commmethod INT NOT NULL default '-1';",
03098 "UPDATE channel SET commmethod = -2 WHERE commfree = 1;",
03099 ""
03100 };
03101 if (!performActualUpdate(updates, "1184", dbver))
03102 return false;
03103 }
03104
03105 if (dbver == "1184")
03106 {
03107 const QString updates[] = {
03108 "CREATE TABLE IF NOT EXISTS powerpriority ("
03109 " priorityname VARCHAR(64) NOT NULL PRIMARY KEY, "
03110 " recpriority int(10) NOT NULL default '0',"
03111 " selectclause text NOT NULL "
03112 ");",
03113 ""
03114 };
03115 if (!performActualUpdate(updates, "1185", dbver))
03116 return false;
03117 }
03118
03119 if (dbver == "1185")
03120 {
03121 VERBOSE(VB_IMPORTANT, "Upgrading to schema version 1186");
03122
03123 MSqlQuery ppuq(MSqlQuery::InitCon());
03124
03125 int oncepriority = gContext->GetNumSetting("OnceRecPriority", 0);
03126 int ccpriority = gContext->GetNumSetting("CCRecPriority", 0);
03127
03128 if (oncepriority)
03129 {
03130 ppuq.prepare("INSERT INTO powerpriority "
03131 "(priorityname, recpriority, selectclause) "
03132 "VALUES('Priority When Shown Once', :VALUE, "
03133 "'program.first > 0 AND program.last > 0');");
03134 ppuq.bindValue(":VALUE", oncepriority);
03135 ppuq.exec();
03136 }
03137
03138 if (ccpriority)
03139 {
03140 ppuq.prepare("INSERT INTO powerpriority "
03141 "(priorityname, recpriority, selectclause) "
03142 "VALUES('Close Captioned Priority', :VALUE, "
03143 "'program.closecaptioned > 0');");
03144 ppuq.bindValue(":VALUE", ccpriority);
03145 ppuq.exec();
03146 }
03147
03148 if (!UpdateDBVersionNumber("1186"))
03149 return false;
03150
03151 dbver = "1186";
03152 }
03153
03154 if (dbver == "1186")
03155 {
03156 const QString updates[] = {
03157 "ALTER TABLE eit_cache MODIFY eventid INT UNSIGNED NOT NULL default 0;",
03158 ""
03159 };
03160 if (!performActualUpdate(updates, "1187", dbver))
03161 return false;
03162 }
03163
03164 if (dbver == "1187")
03165 {
03166 const QString updates[] = {
03167 "UPDATE keybindings SET keylist=REPLACE(keylist, '\\\\\\\\', '\\\\');",
03168 "UPDATE keybindings SET keylist=REPLACE(keylist, '\\\\\\\"', '\"');",
03169 "UPDATE jumppoints SET keylist=REPLACE(keylist, '\\\\\\\\', '\\\\');",
03170 "UPDATE jumppoints SET keylist=REPLACE(keylist, '\\\\\\\"', '\"');",
03171 ""
03172 };
03173 if (!performActualUpdate(updates, "1188", dbver))
03174 return false;
03175 }
03176
03177 if (dbver == "1188")
03178 {
03179 const QString updates[] = {
03180 "ALTER TABLE customexample ADD COLUMN search TINYINT NOT NULL default '0';",
03181 "REPLACE INTO customexample VALUES('New Flix', '', "
03182 "'program.category_type = ''movie'' AND program.airdate >= \n"
03183 " YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) \n"
03184 "AND program.stars > 0.5 ', 1);",
03185 ""
03186 };
03187 if (!performActualUpdate(updates, "1189", dbver))
03188 return false;
03189 }
03190
03191 if (dbver == "1189")
03192 {
03193 const QString updates[] = {
03194 "CREATE TEMPORARY TABLE tmpcodecparams AS "
03195 "SELECT * FROM codecparams WHERE name = 'mpeg4scalebitrate';",
03196 "UPDATE tmpcodecparams SET name = 'scalebitrate';",
03197 "INSERT codecparams SELECT * FROM tmpcodecparams;",
03198 "DROP TABLE tmpcodecparams;",
03199 ""
03200 };
03201 if (!performActualUpdate(updates, "1190", dbver))
03202 return false;
03203 }
03204
03205 if (dbver == "1190")
03206 {
03207 const QString updates[] = {
03208 "DROP TABLE IF EXISTS recordedfile;",
03209 "CREATE TABLE recordedfile ("
03210 " chanid INT(10) UNSIGNED NOT NULL DEFAULT 0,"
03211 " starttime DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',"
03212 " basename VARCHAR(128) NOT NULL DEFAULT '',"
03213 " filesize BIGINT(20) NOT NULL DEFAULT 0,"
03214 " width SMALLINT UNSIGNED NOT NULL DEFAULT 0,"
03215 " height SMALLINT UNSIGNED NOT NULL DEFAULT 0,"
03216 " fps FLOAT(6,3) NOT NULL DEFAULT 0,"
03217 " aspect FLOAT(8,6) NOT NULL DEFAULT 0,"
03218 " audio_sample_rate SMALLINT UNSIGNED NOT NULL DEFAULT 0,"
03219 " audio_bits_per_sample SMALLINT UNSIGNED NOT NULL DEFAULT 0,"
03220 " audio_channels TINYINT UNSIGNED NOT NULL DEFAULT 0,"
03221 " audio_type VARCHAR(255) NOT NULL DEFAULT '',"
03222 " video_type VARCHAR(255) NOT NULL DEFAULT '',"
03223 " comment VARCHAR(255) NOT NULL DEFAULT '',"
03224 " PRIMARY KEY (chanid, starttime),"
03225 " INDEX (basename)"
03226 ");",
03227 ""
03228 };
03229 if (!performActualUpdate(updates, "1191", dbver))
03230 return false;
03231 }
03232
03233 if (dbver == "1191")
03234 {
03235 const QString updates[] = {
03236 "DROP TABLE IF EXISTS displayprofilegroups;",
03237 "DROP TABLE IF EXISTS displayprofiles;",
03238 "CREATE TABLE IF NOT EXISTS displayprofilegroups ("
03239 " name varchar(128) NOT NULL,"
03240 " hostname varchar(255) NOT NULL,"
03241 " profilegroupid int(10) unsigned NOT NULL auto_increment,"
03242 " PRIMARY KEY nameid (name,hostname),"
03243 " UNIQUE KEY (profilegroupid)"
03244 ");",
03245 "CREATE TABLE IF NOT EXISTS displayprofiles ("
03246 " profilegroupid int(10) unsigned NOT NULL,"
03247 " profileid int(10) unsigned NOT NULL auto_increment,"
03248 " value varchar(128) NOT NULL,"
03249 " data varchar(255) NOT NULL default '',"
03250 " FOREIGN KEY (profilegroupid) "
03251 " REFERENCES displayprofilegroups(profilegroupid),"
03252 " KEY (profileid,value),"
03253 " INDEX (profileid)"
03254 ");",
03255 "",
03256 };
03257 if (!performActualUpdate(updates, "1192", dbver))
03258 return false;
03259 }
03260
03261 if (dbver == "1192")
03262 {
03263 const QString updates[] = {
03264 "ALTER TABLE record ADD COLUMN avg_delay INT NOT NULL default 100;",
03265 ""
03266 };
03267 if (!performActualUpdate(updates, "1193", dbver))
03268 return false;
03269 }
03270
03271 if (dbver == "1193")
03272 {
03273 const QString updates[] = {
03274 "CREATE TABLE IF NOT EXISTS inputgroup ("
03275 " cardinputid int(10) unsigned NOT NULL, "
03276 " inputgroupid int(10) unsigned NOT NULL, "
03277 " inputgroupname varchar(32) NOT NULL "
03278 ");",
03279 ""
03280 };
03281 if (!performActualUpdate(updates, "1194", dbver))
03282 return false;
03283 }
03284
03285 if (dbver == "1194")
03286 {
03287 const QString updates[] = {
03288 "UPDATE settings SET data='G.A.N.T' WHERE value='Theme' AND data='G.A.N.T.';",
03289 ""
03290 };
03291 if (!performActualUpdate(updates, "1195", dbver))
03292 return false;
03293 }
03294
03295 if (dbver == "1195")
03296 {
03297 const QString updates[] = {
03298 "UPDATE settings SET data=REPLACE(data, '--no-delete', '')"
03299 " WHERE value='MythFillDatabaseArgs';",
03300 ""
03301 };
03302 if (!performActualUpdate(updates, "1196", dbver))
03303 return false;
03304 }
03305
03306 if (dbver == "1196")
03307 {
03308 const QString updates[] = {
03309 "UPDATE videosource "
03310 "SET xmltvgrabber='schedulesdirect1', userid='', password=NULL "
03311 "WHERE xmltvgrabber='datadirect' OR xmltvgrabber='technovera';",
03312 ""
03313 };
03314 if (!performActualUpdate(updates, "1197", dbver))
03315 return false;
03316 }
03317
03318 if (dbver == "1197")
03319 {
03320 QString thequery =
03321 "SELECT cardid "
03322 "FROM capturecard "
03323 "WHERE cardtype='HDTV'";
03324
03325 MSqlQuery query(MSqlQuery::InitCon());
03326 query.prepare(thequery);
03327 if (!query.exec())
03328 {
03329 QString msg =
03330 QString("DB Error (Performing database upgrade): \n"
03331 "Query was: %1 \nError was: %2 \nnew version: %3")
03332 .arg(thequery)
03333 .arg(MythContext::DBErrorMessage(query.lastError()))
03334 .arg("1198");
03335 VERBOSE(VB_IMPORTANT, msg);
03336 return false;
03337 }
03338
03339 QString in = "(";
03340
03341 while (query.next())
03342 in += query.value(0).toString() + ",";
03343
03344 thequery = "";
03345 if (in.length() > 2)
03346 {
03347 in.truncate(in.length() - 1);
03348 thequery =
03349 "DELETE FROM cardinput "
03350 "WHERE cardid IN " + in + ")";
03351 }
03352
03353 const QString updates[] = {
03354 "DELETE FROM capturecard WHERE cardtype = 'HDTV';",
03355 thequery,
03356 ""
03357 };
03358 if (!performActualUpdate(updates, "1198", dbver))
03359 return false;
03360 }
03361
03362 if (dbver == "1198")
03363 {
03364 const QString updates[] = {
03365 "DELETE FROM keybindings "
03366 "WHERE context = 'TV PLAYBACK' AND action = 'TOGGLEASPECT';",
03367 ""
03368 };
03369 if (!performActualUpdate(updates, "1199", dbver))
03370 return false;
03371 }
03372
03373 if (dbver == "1199")
03374 {
03375 const QString updates[] = {
03376 "UPDATE codecparams SET value = 1 "
03377 "WHERE name='mpeg4maxquality' AND value = 0;",
03378 ""
03379 };
03380 if (!performActualUpdate(updates, "1200", dbver))
03381 return false;
03382 }
03383
03384 if (dbver == "1200")
03385 {
03386 MSqlQuery query(MSqlQuery::InitCon());
03387 query.prepare("SELECT id "
03388 "FROM recordingprofiles "
03389 "WHERE audiocodec='MPEG-2 Hardware Encoder'");
03390 QString in = "";
03391 if (query.exec())
03392 {
03393 while (query.next())
03394 in += "'" + query.value(0).toString() + "',";
03395 }
03396 in = (in.isEmpty()) ? "'5','6','7','8'" : in.left(in.length()-1);
03397 const QString updates[] = {
03398 QString("UPDATE codecparams "
03399 "SET value=48000 "
03400 "WHERE name='samplerate' AND profile IN (%1);").arg(in),
03401 ""
03402 };
03403
03404 if (!performActualUpdate(updates, "1201", dbver))
03405 return false;
03406 }
03407
03408 if (dbver == "1201")
03409 {
03410 const QString updates[] = {
03411 "ALTER TABLE recordmatch ADD oldrecduplicate TINYINT(1); ",
03412 "ALTER TABLE recordmatch ADD recduplicate TINYINT(1); ",
03413 "ALTER TABLE recordmatch ADD findduplicate TINYINT(1); ",
03414 "ALTER TABLE recordmatch ADD oldrecstatus INT(11); ",
03415 ""
03416 };
03417 if (!performActualUpdate(updates, "1202", dbver))
03418 return false;
03419 }
03420
03421 if (dbver == "1202")
03422 {
03423 const QString updates[] = {
03424 "CREATE TABLE upnpmedia ("
03425 "intid int(10) unsigned NOT NULL default '0',"
03426 "class varchar(64) NOT NULL default '',"
03427 "itemtype varchar(128) NOT NULL default '',"
03428 "parentid int(10) unsigned NOT NULL default '0',"
03429 "itemproperties varchar(255) NOT NULL default '',"
03430 "filepath varchar(512) NOT NULL default '',"
03431 "title varchar(255) NOT NULL default '',"
03432 "filename varchar(512) NOT NULL default '',"
03433 "PRIMARY KEY (intid),"
03434 "KEY class (class),"
03435 "KEY filepath (filepath),"
03436 "KEY parentid (parentid)"
03437 ");",
03438 ""
03439 };
03440 if (!performActualUpdate(updates, "1203", dbver))
03441 return false;
03442 }
03443
03444 if (dbver == "1203")
03445 {
03446 const QString updates[] = {
03447 "UPDATE keybindings SET keylist = '[,{,F10,Volume Down' "
03448 "WHERE action = 'VOLUMEDOWN' AND keylist = '[,{,F10';",
03449 "UPDATE keybindings SET keylist = '],},F11,Volume Up' "
03450 "WHERE action = 'VOLUMEUP' AND keylist = '],},F11';",
03451 "UPDATE keybindings SET keylist = '|,\\\\,F9,Volume Mute' "
03452 "WHERE action = 'MUTE' AND keylist = '|,\\\\,F9';",
03453 ""
03454 };
03455 if (!performActualUpdate(updates, "1204", dbver))
03456 return false;
03457 }
03458
03459 if (dbver == "1204")
03460 {
03461 const QString updates[] = {
03462 "ALTER TABLE upnpmedia ADD coverart varchar(512) NOT NULL default ''; ",
03463 ""
03464 };
03465 if (!performActualUpdate(updates, "1205", dbver))
03466 return false;
03467 }
03468
03469
03470 if (dbver == "1205")
03471 {
03472 const QString updates[] = {
03473 "DELETE FROM keybindings "
03474 "WHERE context = 'TV PLAYBACK' AND "
03475 " (action = 'TOGGLEINPUTS' OR action = 'SWITCHCARDS');",
03476 ""
03477 };
03478 if (!performActualUpdate(updates, "1206", dbver))
03479 return false;
03480 }
03481
03482 if (dbver == "1206")
03483 {
03484 const QString updates[] = {
03485 "ALTER TABLE capturecard DROP parentid;",
03486 "ALTER TABLE cardinput DROP childcardid;",
03487 ""
03488 };
03489 if (!performActualUpdate(updates, "1207", dbver))
03490 return false;
03491 }
03492
03493 if (dbver == "1207")
03494 {
03495 const QString updates[] = {
03496 "ALTER TABLE recorded MODIFY basename VARCHAR(255) NOT NULL;",
03497 ""
03498 };
03499 if (!performActualUpdate(updates, "1208", dbver))
03500 return false;
03501 }
03502
03503 if (dbver == "1208")
03504 {
03505 const QString updates[] = {
03506 "ALTER TABLE capturecard ADD dvb_eitscan tinyint(1) NOT NULL default '1'; ",
03507 ""
03508 };
03509 if (!performActualUpdate(updates, "1209", dbver))
03510 return false;
03511 }
03512
03513 if (dbver == "1209")
03514 {
03515 const QString updates[] = {
03516 "ALTER TABLE program ADD audioprop tinyint(3) unsigned NOT NULL; ",
03517 "ALTER TABLE program ADD subtitletypes tinyint(3) unsigned NOT NULL; ",
03518 "ALTER TABLE program ADD videoprop tinyint(3) unsigned NOT NULL; ",
03519 "ALTER TABLE recordedprogram ADD audioprop tinyint(3) unsigned NOT NULL; ",
03520 "ALTER TABLE recordedprogram ADD subtitletypes tinyint(3) unsigned NOT NULL; ",
03521 "ALTER TABLE recordedprogram ADD videoprop tinyint(3) unsigned NOT NULL; ",
03522 "UPDATE program SET audioprop = stereo;",
03523 "UPDATE program SET subtitletypes = closecaptioned | (subtitled << 1);",
03524 "UPDATE program SET videoprop = hdtv;",
03525 "UPDATE recordedprogram SET audioprop = stereo;",
03526 "UPDATE recordedprogram SET subtitletypes = closecaptioned | (subtitled << 1);",
03527 "UPDATE recordedprogram SET videoprop = hdtv;",
03528 ""
03529 };
03530 if (!performActualUpdate(updates, "1210", dbver))
03531 return false;
03532 }
03533
03534 if (dbver == "1210")
03535 {
03536 const QString updates[] = {
03537 "ALTER TABLE program CHANGE COLUMN audioprop audioprop "
03538 " SET('STEREO', 'MONO', 'SURROUND', 'DOLBY', 'HARDHEAR', 'VISUALIMPAIR') NOT NULL; ",
03539 "ALTER TABLE program CHANGE COLUMN videoprop videoprop "
03540 " SET('HDTV', 'WIDESCREEN', 'AVC') NOT NULL; ",
03541 "ALTER TABLE program CHANGE COLUMN subtitletypes subtitletypes "
03542 " SET('HARDHEAR', 'NORMAL', 'ONSCREEN', 'SIGNED') NOT NULL; ",
03543
03544 "ALTER TABLE recordedprogram CHANGE COLUMN audioprop audioprop "
03545 " SET('STEREO', 'MONO', 'SURROUND', 'DOLBY', 'HARDHEAR', 'VISUALIMPAIR') NOT NULL; ",
03546 "ALTER TABLE recordedprogram CHANGE COLUMN videoprop videoprop "
03547 " SET('HDTV', 'WIDESCREEN', 'AVC') NOT NULL; ",
03548 "ALTER TABLE recordedprogram CHANGE COLUMN subtitletypes subtitletypes "
03549 " SET('HARDHEAR', 'NORMAL', 'ONSCREEN', 'SIGNED') NOT NULL; ",
03550 ""
03551 };
03552 if (!performActualUpdate(updates, "1211", dbver))
03553 return false;
03554 }
03555
03556 if (dbver == "1211")
03557 {
03558 const QString updates[] = {
03559 "CREATE TEMPORARY TABLE tmpdisplayprofiles AS "
03560 " SELECT * FROM displayprofiles WHERE value = 'pref_osdfade';",
03561 "UPDATE tmpdisplayprofiles SET value = 'pref_max_cpus', data = '1';",
03562 "DELETE FROM tmpdisplayprofiles WHERE profileid IN "
03563 " (SELECT profileid FROM displayprofiles WHERE value = 'pref_max_cpus');",
03564 "INSERT displayprofiles SELECT * FROM tmpdisplayprofiles;",
03565 "DROP TABLE tmpdisplayprofiles;",
03566 ""
03567 };
03568
03569 if (!performActualUpdate(updates, "1212", dbver))
03570 return false;
03571 }
03572
03573 if (dbver == "1212")
03574 {
03575 const QString updates[] = {
03576 "DELETE FROM keybindings WHERE action LIKE 'MENU%' AND context='TV Playback';",
03577 "DELETE FROM keybindings WHERE action='TEXTEXIT' AND context='TV Playback';",
03578 "DELETE FROM keybindings WHERE action='SIGNALMON' AND context='TV Playback' "
03579 " AND keylist='F7';",
03580 "UPDATE keybindings SET context='TV Playback' WHERE context='ITV Menu';",
03581 ""
03582 };
03583
03584 if (!performActualUpdate(updates, "1213", dbver))
03585 return false;
03586 }
03587
03588 if (dbver == "1213")
03589 {
03590 VERBOSE(VB_IMPORTANT, "In 1213 upg");
03591 MSqlQuery query(MSqlQuery::InitCon());
03592 query.prepare("SELECT hostname "
03593 "FROM displayprofilegroups "
03594 "GROUP BY hostname");
03595 bool ok = query.exec();
03596 while (ok && query.next())
03597 {
03598 QString host = query.value(0).toString();
03599 QStringList profiles = VideoDisplayProfile::GetProfiles(host);
03600 if (profiles.contains("High Quality") &&
03601 profiles.contains("Normal") &&
03602 profiles.contains("Slim"))
03603 {
03604 continue;
03605 }
03606
03607 VideoDisplayProfile::CreateNewProfiles(host);
03608 profiles = VideoDisplayProfile::GetProfiles(host);
03609 QString profile = VideoDisplayProfile::GetDefaultProfileName(host);
03610
03611 VERBOSE(VB_IMPORTANT, QString("In 1213 upg(%1): p %2")
03612 .arg(host).arg(profile));
03613
03614 if (profiles.contains("Normal") &&
03615 (profile=="CPU++" || profile=="CPU+" || profile=="CPU--"))
03616 {
03617 VideoDisplayProfile::SetDefaultProfileName("Normal", host);
03618 }
03619 }
03620
03621 const QString updates[] = { "" };
03622 if (!performActualUpdate(updates, "1214", dbver))
03623 return false;
03624 }
03625
03626
03627
03628
03629
03630
03631
03632
03633
03634
03635
03636
03637
03638
03639
03640 return true;
03641 }
03642
03643
03644
03645 bool InitializeDatabase(void)
03646 {
03647 MSqlQuery query(MSqlQuery::InitCon());
03648 query.prepare("SHOW TABLES;");
03649
03650
03651 if (query.exec() && query.isActive() && query.size() > 1)
03652 {
03653 QString msg = QString(
03654 "Told to create a NEW database schema, but the database\n"
03655 "already has %1 tables.\n"
03656 "If you are sure this is a good mythtv database, verify\n"
03657 "that the settings table has the DBSchemaVer variable.\n")
03658 .arg(query.size() - 1);
03659 VERBOSE(VB_IMPORTANT, msg);
03660 return false;
03661 }
03662
03663 VERBOSE(VB_IMPORTANT, "Inserting MythTV initial database information.");
03664
03665 const QString updates[] = {
03666 "CREATE TABLE IF NOT EXISTS callsignnetworkmap ("
03667 " id int(11) NOT NULL auto_increment,"
03668 " callsign varchar(20) NOT NULL default '',"
03669 " network varchar(20) NOT NULL default '',"
03670 " PRIMARY KEY (id),"
03671 " UNIQUE KEY callsign (callsign)"
03672 ");",
03673 "CREATE TABLE IF NOT EXISTS capturecard ("
03674 " cardid int(10) unsigned NOT NULL auto_increment,"
03675 " videodevice varchar(128) default NULL,"
03676 " audiodevice varchar(128) default NULL,"
03677 " vbidevice varchar(128) default NULL,"
03678 " cardtype varchar(32) default 'V4L',"
03679 " defaultinput varchar(32) default 'Television',"
03680 " audioratelimit int(11) default NULL,"
03681 " hostname varchar(255) default NULL,"
03682 " dvb_swfilter int(11) default '0',"
03683 " dvb_recordts int(11) default '1',"
03684 " dvb_sat_type int(11) NOT NULL default '0',"
03685 " dvb_wait_for_seqstart int(11) NOT NULL default '1',"
03686 " dvb_dmx_buf_size int(11) NOT NULL default '8192',"
03687 " dvb_pkt_buf_size int(11) NOT NULL default '8192',"
03688 " skipbtaudio tinyint(1) default '0',"
03689 " dvb_on_demand tinyint(4) NOT NULL default '0',"
03690 " dvb_diseqc_type smallint(6) default NULL,"
03691 " firewire_port int(10) unsigned NOT NULL default '0',"
03692 " firewire_node int(10) unsigned NOT NULL default '2',"
03693 " firewire_speed int(10) unsigned NOT NULL default '0',"
03694 " firewire_model varchar(32) default NULL,"
03695 " firewire_connection int(10) unsigned NOT NULL default '0',"
03696 " dvb_hw_decoder int(11) default '0',"
03697 " dbox2_port int(10) unsigned NOT NULL default '31338',"
03698 " dbox2_httpport int(10) unsigned NOT NULL default '80',"
03699 " dbox2_host varchar(32) default NULL,"
03700 " signal_timeout int(11) NOT NULL default '1000',"
03701 " channel_timeout int(11) NOT NULL default '3000',"
03702 " PRIMARY KEY (cardid)"
03703 ");",
03704 "CREATE TABLE IF NOT EXISTS cardinput ("
03705 " cardinputid int(10) unsigned NOT NULL auto_increment,"
03706 " cardid int(10) unsigned NOT NULL default '0',"
03707 " sourceid int(10) unsigned NOT NULL default '0',"
03708 " inputname varchar(32) NOT NULL default '',"
03709 " externalcommand varchar(128) default NULL,"
03710 " preference int(11) NOT NULL default '0',"
03711 " shareable char(1) default 'N',"
03712 " tunechan varchar(5) NOT NULL default '',"
03713 " startchan varchar(5) NOT NULL default '',"
03714 " freetoaironly tinyint(1) default '1',"
03715 " diseqc_port smallint(6) default NULL,"
03716 " diseqc_pos float default NULL,"
03717 " lnb_lof_switch int(11) default '11700000',"
03718 " lnb_lof_hi int(11) default '10600000',"
03719 " lnb_lof_lo int(11) default '9750000',"
03720 " PRIMARY KEY (cardinputid)"
03721 ");",
03722 "CREATE TABLE IF NOT EXISTS channel ("
03723 " chanid int(10) unsigned NOT NULL default '0',"
03724 " channum varchar(5) NOT NULL default '',"
03725 " freqid varchar(10) default NULL,"
03726 " sourceid int(10) unsigned default NULL,"
03727 " callsign varchar(20) NOT NULL default '',"
03728 " name varchar(64) NOT NULL default '',"
03729 " icon varchar(255) NOT NULL default 'none',"
03730 " finetune int(11) default NULL,"
03731 " videofilters varchar(255) NOT NULL default '',"
03732 " xmltvid varchar(64) NOT NULL default '',"
03733 " recpriority int(10) NOT NULL default '0',"
03734 " contrast int(11) default '32768',"
03735 " brightness int(11) default '32768',"
03736 " colour int(11) default '32768',"
03737 " hue int(11) default '32768',"
03738 " tvformat varchar(10) NOT NULL default 'Default',"
03739 " commfree tinyint(4) NOT NULL default '0',"
03740 " visible tinyint(1) NOT NULL default '1',"
03741 " outputfilters varchar(255) NOT NULL default '',"
03742 " useonairguide tinyint(1) default '0',"
03743 " mplexid smallint(6) default NULL,"
03744 " serviceid mediumint(8) unsigned default NULL,"
03745 " atscsrcid int(11) default NULL,"
03746 " PRIMARY KEY (chanid),"
03747 " KEY channel_src (channum,sourceid)"
03748 ");",
03749 "CREATE TABLE IF NOT EXISTS codecparams ("
03750 " profile int(10) unsigned NOT NULL default '0',"
03751 " name varchar(128) NOT NULL default '',"
03752 " value varchar(128) default NULL,"
03753 " PRIMARY KEY (profile,name)"
03754 ");",
03755 "CREATE TABLE IF NOT EXISTS credits ("
03756 " person mediumint(8) unsigned NOT NULL default '0',"
03757 " chanid int(10) unsigned NOT NULL default '0',"
03758 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
03759 " role set('actor','director','producer','executive_producer','writer',"
03760 " 'guest_star','host','adapter','presenter','commentator','guest')"
03761 " NOT NULL default '',"
03762 " UNIQUE KEY chanid (chanid,starttime,person,role),"
03763 " KEY person (person,role)"
03764 ");",
03765 "CREATE TABLE IF NOT EXISTS dtv_multiplex ("
03766 " mplexid smallint(6) NOT NULL auto_increment,"
03767 " sourceid smallint(6) default NULL,"
03768 " transportid int(11) default NULL,"
03769 " networkid int(11) default NULL,"
03770 " frequency int(11) default NULL,"
03771 " inversion char(1) default 'a',"
03772 " symbolrate int(11) default NULL,"
03773 " fec varchar(10) default 'auto',"
03774 " polarity char(1) default NULL,"
03775 " modulation varchar(10) default 'auto',"
03776 " bandwidth char(1) default 'a',"
03777 " lp_code_rate varchar(10) default 'auto',"
03778 " transmission_mode char(1) default 'a',"
03779 " guard_interval varchar(10) default 'auto',"
03780 " visible smallint(1) NOT NULL default '0',"
03781 " constellation varchar(10) default 'auto',"
03782 " hierarchy varchar(10) default 'auto',"
03783 " hp_code_rate varchar(10) default 'auto',"
03784 " sistandard varchar(10) default 'dvb',"
03785 " serviceversion smallint(6) default '33',"
03786 " updatetimestamp timestamp(14) NOT NULL,"
03787 " PRIMARY KEY (mplexid)"
03788 ");",
03789 "CREATE TABLE IF NOT EXISTS dtv_privatetypes ("
03790 " sitype varchar(4) NOT NULL default '',"
03791 " networkid int(11) NOT NULL default '0',"
03792 " private_type varchar(20) NOT NULL default '',"
03793 " private_value varchar(100) NOT NULL default ''"
03794 ");",
03795 "CREATE TABLE IF NOT EXISTS favorites ("
03796 " favid int(11) unsigned NOT NULL auto_increment,"
03797 " userid int(11) unsigned NOT NULL default '0',"
03798 " chanid int(11) unsigned NOT NULL default '0',"
03799 " PRIMARY KEY (favid)"
03800 ");",
03801 "CREATE TABLE IF NOT EXISTS housekeeping ("
03802 " tag varchar(64) NOT NULL default '',"
03803 " lastrun datetime default NULL,"
03804 " PRIMARY KEY (tag)"
03805 ");",
03806 "CREATE TABLE IF NOT EXISTS inuseprograms ("
03807 " chanid int(10) unsigned NOT NULL default '0',"
03808 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
03809 " recusage varchar(128) NOT NULL default '',"
03810 " lastupdatetime datetime NOT NULL default '0000-00-00 00:00:00',"
03811 " hostname varchar(255) NOT NULL default '',"
03812 " KEY chanid (chanid,starttime)"
03813 ");",
03814 "CREATE TABLE IF NOT EXISTS jobqueue ("
03815 " id int(11) NOT NULL auto_increment,"
03816 " chanid int(10) NOT NULL default '0',"
03817 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
03818 " inserttime datetime NOT NULL default '0000-00-00 00:00:00',"
03819 " type int(11) NOT NULL default '0',"
03820 " cmds int(11) NOT NULL default '0',"
03821 " flags int(11) NOT NULL default '0',"
03822 " status int(11) NOT NULL default '0',"
03823 " statustime timestamp NOT NULL,"
03824 " hostname varchar(255) NOT NULL default '',"
03825 " args blob NOT NULL,"
03826 " comment varchar(128) NOT NULL default '',"
03827 " PRIMARY KEY (id),"
03828 " UNIQUE KEY chanid (chanid,starttime,type,inserttime)"
03829 ");",
03830 "CREATE TABLE IF NOT EXISTS jumppoints ("
03831 " destination varchar(128) NOT NULL default '',"
03832 " description varchar(255) default NULL,"
03833 " keylist varchar(32) default NULL,"
03834 " hostname varchar(255) NOT NULL default '',"
03835 " PRIMARY KEY (destination,hostname)"
03836 ");",
03837 "CREATE TABLE IF NOT EXISTS keybindings ("
03838 " context varchar(32) NOT NULL default '',"
03839 " action varchar(32) NOT NULL default '',"
03840 " description varchar(255) default NULL,"
03841 " keylist varchar(32) default NULL,"
03842 " hostname varchar(255) NOT NULL default '',"
03843 " PRIMARY KEY (context,action,hostname)"
03844 ");",
03845 "CREATE TABLE IF NOT EXISTS keyword ("
03846 " phrase varchar(128) NOT NULL default '',"
03847 " searchtype int(10) unsigned NOT NULL default '3',"
03848 " UNIQUE KEY phrase (phrase,searchtype)"
03849 ");",
03850 "CREATE TABLE IF NOT EXISTS mythlog ("
03851 " logid int(10) unsigned NOT NULL auto_increment,"
03852 " module varchar(32) NOT NULL default '',"
03853 " priority int(11) NOT NULL default '0',"
03854 " acknowledged tinyint(1) default '0',"
03855 " logdate datetime default NULL,"
03856 " host varchar(128) default NULL,"
03857 " message varchar(255) NOT NULL default '',"
03858 " details text,"
03859 " PRIMARY KEY (logid)"
03860 ");",
03861 "CREATE TABLE IF NOT EXISTS networkiconmap ("
03862 " id int(11) NOT NULL auto_increment,"
03863 " network varchar(20) NOT NULL default '',"
03864 " url varchar(255) NOT NULL default '',"
03865 " PRIMARY KEY (id),"
03866 " UNIQUE KEY network (network)"
03867 ");",
03868 "CREATE TABLE IF NOT EXISTS oldfind ("
03869 " recordid int(11) NOT NULL default '0',"
03870 " findid int(11) NOT NULL default '0',"
03871 " PRIMARY KEY (recordid,findid)"
03872 ");",
03873 "CREATE TABLE IF NOT EXISTS oldprogram ("
03874 " oldtitle varchar(128) NOT NULL default '',"
03875 " airdate datetime NOT NULL default '0000-00-00 00:00:00',"
03876 " PRIMARY KEY (oldtitle)"
03877 ");",
03878 "CREATE TABLE IF NOT EXISTS oldrecorded ("
03879 " chanid int(10) unsigned NOT NULL default '0',"
03880 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
03881 " endtime datetime NOT NULL default '0000-00-00 00:00:00',"
03882 " title varchar(128) NOT NULL default '',"
03883 " subtitle varchar(128) NOT NULL default '',"
03884 " description text NOT NULL,"
03885 " category varchar(64) NOT NULL default '',"
03886 " seriesid varchar(12) NOT NULL default '',"
03887 " programid varchar(20) NOT NULL default '',"
03888 " findid int(11) NOT NULL default '0',"
03889 " recordid int(11) NOT NULL default '0',"
03890 " station varchar(20) NOT NULL default '',"
03891 " rectype int(10) unsigned NOT NULL default '0',"
03892 " duplicate tinyint(1) NOT NULL default '0',"
03893 " recstatus int(11) NOT NULL default '0',"
03894 " reactivate smallint(6) NOT NULL default '0',"
03895 " generic tinyint(1) default '0',"
03896 " PRIMARY KEY (station,starttime,title),"
03897 " KEY endtime (endtime),"
03898 " KEY title (title),"
03899 " KEY seriesid (seriesid),"
03900 " KEY programid (programid),"
03901 " KEY recordid (recordid)"
03902 ");",
03903 "CREATE TABLE IF NOT EXISTS people ("
03904 " person mediumint(8) unsigned NOT NULL auto_increment,"
03905 " name char(128) NOT NULL default '',"
03906 " PRIMARY KEY (person),"
03907 " UNIQUE KEY name (name(41))"
03908 ");",
03909 "CREATE TABLE IF NOT EXISTS pidcache ("
03910 " chanid smallint(6) NOT NULL default '0',"
03911 " pid int(11) NOT NULL default '-1',"
03912 " tableid int(11) NOT NULL default '-1',"
03913 " KEY chanid (chanid)"
03914 ");",
03915 "CREATE TABLE IF NOT EXISTS playgroup ("
03916 " name varchar(32) NOT NULL default '',"
03917 " titlematch varchar(255) NOT NULL default '',"
03918 " skipahead int(11) NOT NULL default '0',"
03919 " skipback int(11) NOT NULL default '0',"
03920 " timestretch int(11) NOT NULL default '0',"
03921 " PRIMARY KEY (name)"
03922 ");",
03923 "CREATE TABLE IF NOT EXISTS profilegroups ("
03924 " id int(10) unsigned NOT NULL auto_increment,"
03925 " name varchar(128) default NULL,"
03926 " cardtype varchar(32) NOT NULL default 'V4L',"
03927 " is_default int(1) default '0',"
03928 " hostname varchar(255) default NULL,"
03929 " PRIMARY KEY (id),"
03930 " UNIQUE KEY name (name,hostname)"
03931 ");",
03932 "CREATE TABLE IF NOT EXISTS program ("
03933 " chanid int(10) unsigned NOT NULL default '0',"
03934 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
03935 " endtime datetime NOT NULL default '0000-00-00 00:00:00',"
03936 " title varchar(128) NOT NULL default '',"
03937 " subtitle varchar(128) NOT NULL default '',"
03938 " description text NOT NULL,"
03939 " category varchar(64) NOT NULL default '',"
03940 " category_type varchar(64) NOT NULL default '',"
03941 " airdate year(4) NOT NULL default '0000',"
03942 " stars float NOT NULL default '0',"
03943 " previouslyshown tinyint(4) NOT NULL default '0',"
03944 " title_pronounce varchar(128) NOT NULL default '',"
03945 " stereo tinyint(1) NOT NULL default '0',"
03946 " subtitled tinyint(1) NOT NULL default '0',"
03947 " hdtv tinyint(1) NOT NULL default '0',"
03948 " closecaptioned tinyint(1) NOT NULL default '0',"
03949 " partnumber int(11) NOT NULL default '0',"
03950 " parttotal int(11) NOT NULL default '0',"
03951 " seriesid varchar(12) NOT NULL default '',"
03952 " originalairdate date default NULL,"
03953 " showtype varchar(30) NOT NULL default '',"
03954 " colorcode varchar(20) NOT NULL default '',"
03955 " syndicatedepisodenumber varchar(20) NOT NULL default '',"
03956 " programid varchar(20) NOT NULL default '',"
03957 " manualid int(10) unsigned NOT NULL default '0',"
03958 " generic tinyint(1) default '0',"
03959 " PRIMARY KEY (chanid,starttime,manualid),"
03960 " KEY endtime (endtime),"
03961 " KEY title (title),"
03962 " KEY title_pronounce (title_pronounce),"
03963 " KEY seriesid (seriesid),"
03964 " KEY programid (programid),"
03965 " KEY id_start_end (chanid,starttime,endtime)"
03966 ");",
03967 "CREATE TABLE IF NOT EXISTS programgenres ("
03968 " chanid int(10) unsigned NOT NULL default '0',"
03969 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
03970 " relevance char(1) NOT NULL default '',"
03971 " genre char(30) default NULL,"
03972 " PRIMARY KEY (chanid,starttime,relevance)"
03973 ");",
03974 "CREATE TABLE IF NOT EXISTS programrating ("
03975 " chanid int(10) unsigned NOT NULL default '0',"
03976 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
03977 " system char(8) NOT NULL default '',"
03978 " rating char(8) NOT NULL default '',"
03979 " UNIQUE KEY chanid (chanid,starttime,system,rating),"
03980 " KEY starttime (starttime,system)"
03981 ");",
03982 "CREATE TABLE IF NOT EXISTS recgrouppassword ("
03983 " recgroup varchar(32) NOT NULL default '',"
03984 " password varchar(10) NOT NULL default '',"
03985 " PRIMARY KEY (recgroup),"
03986 " UNIQUE KEY recgroup (recgroup)"
03987 ");",
03988 "CREATE TABLE IF NOT EXISTS record ("
03989 " recordid int(10) unsigned NOT NULL auto_increment,"
03990 " type int(10) unsigned NOT NULL default '0',"
03991 " chanid int(10) unsigned default NULL,"
03992 " starttime time NOT NULL default '00:00:00',"
03993 " startdate date NOT NULL default '0000-00-00',"
03994 " endtime time NOT NULL default '00:00:00',"
03995 " enddate date NOT NULL default '0000-00-00',"
03996 " title varchar(128) NOT NULL default '',"
03997 " subtitle varchar(128) NOT NULL default '',"
03998 " description text NOT NULL,"
03999 " category varchar(64) NOT NULL default '',"
04000 " profile varchar(128) NOT NULL default 'Default',"
04001 " recpriority int(10) NOT NULL default '0',"
04002 " autoexpire int(11) NOT NULL default '0',"
04003 " maxepisodes int(11) NOT NULL default '0',"
04004 " maxnewest int(11) NOT NULL default '0',"
04005 " startoffset int(11) NOT NULL default '0',"
04006 " endoffset int(11) NOT NULL default '0',"
04007 " recgroup varchar(32) NOT NULL default 'Default',"
04008 " dupmethod int(11) NOT NULL default '6',"
04009 " dupin int(11) NOT NULL default '15',"
04010 " station varchar(20) NOT NULL default '',"
04011 " seriesid varchar(12) NOT NULL default '',"
04012 " programid varchar(20) NOT NULL default '',"
04013 " search int(10) unsigned NOT NULL default '0',"
04014 " autotranscode tinyint(1) NOT NULL default '0',"
04015 " autocommflag tinyint(1) NOT NULL default '0',"
04016 " autouserjob1 tinyint(1) NOT NULL default '0',"
04017 " autouserjob2 tinyint(1) NOT NULL default '0',"
04018 " autouserjob3 tinyint(1) NOT NULL default '0',"
04019 " autouserjob4 tinyint(1) NOT NULL default '0',"
04020 " findday tinyint(4) NOT NULL default '0',"
04021 " findtime time NOT NULL default '00:00:00',"
04022 " findid int(11) NOT NULL default '0',"
04023 " inactive tinyint(1) NOT NULL default '0',"
04024 " parentid int(11) NOT NULL default '0',"
04025 " transcoder int(11) NOT NULL default '0',"
04026 " tsdefault float NOT NULL default '1',"
04027 " playgroup varchar(32) NOT NULL default 'Default',"
04028 " PRIMARY KEY (recordid),"
04029 " KEY chanid (chanid,starttime),"
04030 " KEY title (title),"
04031 " KEY seriesid (seriesid),"
04032 " KEY programid (programid)"
04033 ");",
04034 "CREATE TABLE IF NOT EXISTS recorded ("
04035 " chanid int(10) unsigned NOT NULL default '0',"
04036 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
04037 " endtime datetime NOT NULL default '0000-00-00 00:00:00',"
04038 " title varchar(128) NOT NULL default '',"
04039 " subtitle varchar(128) NOT NULL default '',"
04040 " description text NOT NULL,"
04041 " category varchar(64) NOT NULL default '',"
04042 " hostname varchar(255) NOT NULL default '',"
04043 " bookmark varchar(128) default NULL,"
04044 " editing int(10) unsigned NOT NULL default '0',"
04045 " cutlist text,"
04046 " autoexpire int(11) NOT NULL default '0',"
04047 " commflagged int(10) unsigned NOT NULL default '0',"
04048 " recgroup varchar(32) NOT NULL default 'Default',"
04049 " recordid int(11) default NULL,"
04050 " seriesid varchar(12) NOT NULL default '',"
04051 " programid varchar(20) NOT NULL default '',"
04052 " lastmodified timestamp(14) NOT NULL,"
04053 " filesize bigint(20) NOT NULL default '0',"
04054 " stars float NOT NULL default '0',"
04055 " previouslyshown tinyint(1) default '0',"
04056 " originalairdate date default NULL,"
04057 " preserve tinyint(1) NOT NULL default '0',"
04058 " findid int(11) NOT NULL default '0',"
04059 " deletepending tinyint(1) NOT NULL default '0',"
04060 " transcoder int(11) NOT NULL default '0',"
04061 " timestretch float NOT NULL default '1',"
04062 " recpriority int(11) NOT NULL default '0',"
04063 " basename varchar(128) NOT NULL default '',"
04064 " progstart datetime NOT NULL default '0000-00-00 00:00:00',"
04065 " progend datetime NOT NULL default '0000-00-00 00:00:00',"
04066 " playgroup varchar(32) NOT NULL default 'Default',"
04067 " profile varchar(32) NOT NULL default '',"
04068 " PRIMARY KEY (chanid,starttime),"
04069 " KEY endtime (endtime),"
04070 " KEY seriesid (seriesid),"
04071 " KEY programid (programid),"
04072 " KEY title (title),"
04073 " KEY recordid (recordid)"
04074 ");",
04075 "CREATE TABLE IF NOT EXISTS recordedcredits ("
04076 " person mediumint(8) unsigned NOT NULL default '0',"
04077 " chanid int(10) unsigned NOT NULL default '0',"
04078 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
04079 " role set('actor','director','producer','executive_producer','writer',"
04080 " 'guest_star','host','adapter','presenter','commentator','guest')"
04081 " NOT NULL default '',"
04082 " UNIQUE KEY chanid (chanid,starttime,person,role),"
04083 " KEY person (person,role)"
04084 ");",
04085 "CREATE TABLE IF NOT EXISTS recordedmarkup ("
04086 " chanid int(10) unsigned NOT NULL default '0',"
04087 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
04088 " mark bigint(20) NOT NULL default '0',"
04089 " offset varchar(32) default NULL,"
04090 " type int(11) NOT NULL default '0',"
04091 " PRIMARY KEY (chanid,starttime,mark,type)"
04092 ");",
04093 "CREATE TABLE IF NOT EXISTS recordedprogram ("
04094 " chanid int(10) unsigned NOT NULL default '0',"
04095 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
04096 " endtime datetime NOT NULL default '0000-00-00 00:00:00',"
04097 " title varchar(128) NOT NULL default '',"
04098 " subtitle varchar(128) NOT NULL default '',"
04099 " description text NOT NULL,"
04100 " category varchar(64) NOT NULL default '',"
04101 " category_type varchar(64) NOT NULL default '',"
04102 " airdate year(4) NOT NULL default '0000',"
04103 " stars float unsigned NOT NULL default '0',"
04104 " previouslyshown tinyint(4) NOT NULL default '0',"
04105 " title_pronounce varchar(128) NOT NULL default '',"
04106 " stereo tinyint(1) NOT NULL default '0',"
04107 " subtitled tinyint(1) NOT NULL default '0',"
04108 " hdtv tinyint(1) NOT NULL default '0',"
04109 " closecaptioned tinyint(1) NOT NULL default '0',"
04110 " partnumber int(11) NOT NULL default '0',"
04111 " parttotal int(11) NOT NULL default '0',"
04112 " seriesid varchar(12) NOT NULL default '',"
04113 " originalairdate date default NULL,"
04114 " showtype varchar(30) NOT NULL default '',"
04115 " colorcode varchar(20) NOT NULL default '',"
04116 " syndicatedepisodenumber varchar(20) NOT NULL default '',"
04117 " programid varchar(20) NOT NULL default '',"
04118 " manualid int(10) unsigned NOT NULL default '0',"
04119 " generic tinyint(1) default '0',"
04120 " PRIMARY KEY (chanid,starttime,manualid),"
04121 " KEY endtime (endtime),"
04122 " KEY title (title),"
04123 " KEY title_pronounce (title_pronounce),"
04124 " KEY seriesid (seriesid),"
04125 " KEY programid (programid),"
04126 " KEY id_start_end (chanid,starttime,endtime)"
04127 ");",
04128 "CREATE TABLE IF NOT EXISTS recordedrating ("
04129 " chanid int(10) unsigned NOT NULL default '0',"
04130 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
04131 " system char(8) NOT NULL default '',"
04132 " rating char(8) NOT NULL default '',"
04133 " UNIQUE KEY chanid (chanid,starttime,system,rating),"
04134 " KEY starttime (starttime,system)"
04135 ");",
04136 "CREATE TABLE IF NOT EXISTS recordingprofiles ("
04137 " id int(10) unsigned NOT NULL auto_increment,"
04138 " name varchar(128) default NULL,"
04139 " videocodec varchar(128) default NULL,"
04140 " audiocodec varchar(128) default NULL,"
04141 " profilegroup int(10) unsigned NOT NULL default '0',"
04142 " PRIMARY KEY (id)"
04143 ");",
04144 "CREATE TABLE IF NOT EXISTS recordmatch ("
04145 " recordid int(10) unsigned default NULL,"
04146 " chanid int(10) unsigned default NULL,"
04147 " starttime datetime default NULL,"
04148 " manualid int(10) unsigned default NULL,"
04149 " KEY recordid (recordid)"
04150 ");",
04151 "CREATE TABLE IF NOT EXISTS settings ("
04152 " value varchar(128) NOT NULL default '',"
04153 " data text,"
04154 " hostname varchar(255) default NULL,"
04155 " KEY value (value,hostname)"
04156 ");",
04157 "CREATE TABLE IF NOT EXISTS tvchain ("
04158 " chanid int(10) unsigned NOT NULL default '0',"
04159 " starttime datetime NOT NULL default '0000-00-00 00:00:00',"
04160 " chainid varchar(128) NOT NULL default '',"
04161 " chainpos int(10) NOT NULL default '0',"
04162 " discontinuity tinyint(1) NOT NULL default '0',"
04163 " watching int(10) NOT NULL default '0',"
04164 " hostprefix varchar(128) NOT NULL default '',"
04165 " cardtype varchar(32) NOT NULL default 'V4L',"
04166 " input varchar(32) NOT NULL default '',"
04167 " channame varchar(32) NOT NULL default '',"
04168 " PRIMARY KEY (chanid,starttime)"
04169 ");",
04170 "CREATE TABLE IF NOT EXISTS videobookmarks ("
04171 " filename varchar(255) NOT NULL default '',"
04172 " bookmark varchar(128) default NULL,"
04173 " PRIMARY KEY (filename)"
04174 ");",
04175 "CREATE TABLE IF NOT EXISTS videosource ("
04176 " sourceid int(10) unsigned NOT NULL auto_increment,"
04177 " name varchar(128) NOT NULL default '',"
04178 " xmltvgrabber varchar(128) default NULL,"
04179 " userid varchar(128) NOT NULL default '',"
04180 " freqtable varchar(16) NOT NULL default 'default',"
04181 " lineupid varchar(64) default NULL,"
04182 " password varchar(64) default NULL,"
04183 " useeit smallint(6) NOT NULL default '0',"
04184 " PRIMARY KEY (sourceid),"
04185 " UNIQUE KEY name (name)"
04186 ");",
04187 "CREATE TABLE IF NOT EXISTS xvmc_buffer_settings ("
04188 " id int(11) NOT NULL auto_increment,"
04189 " description varchar(255) NOT NULL default '',"
04190 " osd_num int(11) NOT NULL default '0',"
04191 " osd_res_num int(11) NOT NULL default '0',"
04192 " min_surf int(11) NOT NULL default '0',"
04193 " max_surf int(11) NOT NULL default '0',"
04194 " decode_num int(11) NOT NULL default '0',"
04195 " agressive int(11) NOT NULL default '1',"
04196 " PRIMARY KEY (id)"
04197 ");",
04198 "INSERT INTO dtv_privatetypes VALUES ('dvb',9018,'channel_numbers','131');",
04199 "INSERT INTO dtv_privatetypes VALUES ('dvb',9018,'guide_fixup','2');",
04200 "INSERT INTO dtv_privatetypes VALUES ('dvb',256,'guide_fixup','1');",
04201 "INSERT INTO dtv_privatetypes VALUES ('dvb',257,'guide_fixup','1');",
04202 "INSERT INTO dtv_privatetypes VALUES ('dvb',256,'tv_types',"
04203 " '1,150,134,133');",
04204 "INSERT INTO dtv_privatetypes VALUES ('dvb',257,'tv_types',"
04205 " '1,150,134,133');",
04206 "INSERT INTO dtv_privatetypes VALUES ('dvb',4100,'sdt_mapping','1');",
04207 "INSERT INTO dtv_privatetypes VALUES ('dvb',4101,'sdt_mapping','1');",
04208 "INSERT INTO dtv_privatetypes VALUES ('dvb',4102,'sdt_mapping','1');",
04209 "INSERT INTO dtv_privatetypes VALUES ('dvb',4103,'sdt_mapping','1');",
04210 "INSERT INTO dtv_privatetypes VALUES ('dvb',4104,'sdt_mapping','1');",
04211 "INSERT INTO dtv_privatetypes VALUES ('dvb',4105,'sdt_mapping','1');",
04212 "INSERT INTO dtv_privatetypes VALUES ('dvb',4106,'sdt_mapping','1');",
04213 "INSERT INTO dtv_privatetypes VALUES ('dvb',4107,'sdt_mapping','1');",
04214 "INSERT INTO dtv_privatetypes VALUES ('dvb',4097,'sdt_mapping','1');",
04215 "INSERT INTO dtv_privatetypes VALUES ('dvb',4098,'sdt_mapping','1');",
04216 "INSERT INTO dtv_privatetypes VALUES ('dvb',4100,'tv_types','1,145,154');",
04217 "INSERT INTO dtv_privatetypes VALUES ('dvb',4101,'tv_types','1,145,154');",
04218 "INSERT INTO dtv_privatetypes VALUES ('dvb',4102,'tv_types','1,145,154');",
04219 "INSERT INTO dtv_privatetypes VALUES ('dvb',4103,'tv_types','1,145,154');",
04220 "INSERT INTO dtv_privatetypes VALUES ('dvb',4104,'tv_types','1,145,154');",
04221 "INSERT INTO dtv_privatetypes VALUES ('dvb',4105,'tv_types','1,145,154');",
04222 "INSERT INTO dtv_privatetypes VALUES ('dvb',4106,'tv_types','1,145,154');",
04223 "INSERT INTO dtv_privatetypes VALUES ('dvb',4107,'tv_types','1,145,154');",
04224 "INSERT INTO dtv_privatetypes VALUES ('dvb',4097,'tv_types','1,145,154');",
04225 "INSERT INTO dtv_privatetypes VALUES ('dvb',4098,'tv_types','1,145,154');",
04226 "INSERT INTO dtv_privatetypes VALUES ('dvb',4100,'guide_fixup','1');",
04227 "INSERT INTO dtv_privatetypes VALUES ('dvb',4101,'guide_fixup','1');",
04228 "INSERT INTO dtv_privatetypes VALUES ('dvb',4102,'guide_fixup','1');",
04229 "INSERT INTO dtv_privatetypes VALUES ('dvb',4103,'guide_fixup','1');",
04230 "INSERT INTO dtv_privatetypes VALUES ('dvb',4104,'guide_fixup','1');",
04231 "INSERT INTO dtv_privatetypes VALUES ('dvb',4105,'guide_fixup','1');",
04232 "INSERT INTO dtv_privatetypes VALUES ('dvb',4106,'guide_fixup','1');",
04233 "INSERT INTO dtv_privatetypes VALUES ('dvb',4107,'guide_fixup','1');",
04234 "INSERT INTO dtv_privatetypes VALUES ('dvb',4096,'guide_fixup','5');",
04235 "INSERT INTO dtv_privatetypes VALUES ('dvb',4097,'guide_fixup','1');",
04236 "INSERT INTO dtv_privatetypes VALUES ('dvb',4098,'guide_fixup','1');",
04237 "INSERT INTO dtv_privatetypes VALUES ('dvb',94,'tv_types','1,128');",
04238 "INSERT INTO dtv_privatetypes VALUES ('atsc',1793,'guide_fixup','3');",
04239 "INSERT INTO dtv_privatetypes VALUES ('dvb',40999,'guide_fixup','4');",
04240 "INSERT INTO dtv_privatetypes VALUES ('dvb',70,'force_guide_present',"
04241 " 'yes');",
04242 "INSERT INTO dtv_privatetypes VALUES ('dvb',70,'guide_ranges',"
04243 " '80,80,96,96');",
04244 "INSERT INTO dtv_privatetypes VALUES ('dvb',4112,'channel_numbers','131');",
04245 "INSERT INTO dtv_privatetypes VALUES ('dvb',4115,'channel_numbers','131');",
04246 "INSERT INTO dtv_privatetypes VALUES ('dvb',4116,'channel_numbers','131');",
04247 "INSERT INTO dtv_privatetypes VALUES ('dvb',12802,'channel_numbers','131');",
04248 "INSERT INTO dtv_privatetypes VALUES ('dvb',12803,'channel_numbers','131');",
04249 "INSERT INTO dtv_privatetypes VALUES ('dvb',12829,'channel_numbers','131');",
04250 "INSERT INTO dtv_privatetypes VALUES ('dvb',40999,'parse_subtitle_list',"
04251 " '1070,1308,1041,1306,1307,1030,1016,1131,1068,1069');",
04252 "INSERT INTO playgroup VALUES ('Default','',30,5,100);",
04253 "INSERT INTO profilegroups VALUES (1,'Software Encoders (v4l based)','V4L',"
04254 " 1,NULL);",
04255 "INSERT INTO profilegroups VALUES (2,'IVTV MPEG-2 Encoders','MPEG',1,NULL);",
04256 "INSERT INTO profilegroups VALUES (3,"
04257 " 'Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)','MJPEG',1,NULL);",
04258 "INSERT INTO profilegroups VALUES (4,'Hardware HDTV','HDTV',1,NULL);",
04259 "INSERT INTO profilegroups VALUES (5,'Hardware DVB Encoders','DVB',1,NULL);",
04260 "INSERT INTO profilegroups VALUES (6,'Transcoders','TRANSCODE',1,NULL);",
04261 "INSERT INTO profilegroups VALUES (7,'FireWire Input','FIREWIRE',1,NULL);",
04262 "INSERT INTO profilegroups VALUES (8,"
04263 " 'USB Mpeg-4 Encoder (Plextor ConvertX, etc)','GO7007',1,NULL);",
04264 "INSERT INTO profilegroups VALUES (9,'DBOX2 Input','DBOX2',1,NULL);",
04265 "INSERT INTO recordingprofiles VALUES (1,'Default',NULL,NULL,1);",
04266 "INSERT INTO recordingprofiles VALUES (2,'Live TV',NULL,NULL,1);",
04267 "INSERT INTO recordingprofiles VALUES (3,'High Quality',NULL,NULL,1);",
04268 "INSERT INTO recordingprofiles VALUES (4,'Low Quality',NULL,NULL,1);",
04269 "INSERT INTO recordingprofiles VALUES (5,'Default',NULL,NULL,2);",
04270 "INSERT INTO recordingprofiles VALUES (6,'Live TV',NULL,NULL,2);",
04271 "INSERT INTO recordingprofiles VALUES (7,'High Quality',NULL,NULL,2);",
04272 "INSERT INTO recordingprofiles VALUES (8,'Low Quality',NULL,NULL,2);",
04273 "INSERT INTO recordingprofiles VALUES (9,'Default',NULL,NULL,3);",
04274 "INSERT INTO recordingprofiles VALUES (10,'Live TV',NULL,NULL,3);",
04275 "INSERT INTO recordingprofiles VALUES (11,'High Quality',NULL,NULL,3);",
04276 "INSERT INTO recordingprofiles VALUES (12,'Low Quality',NULL,NULL,3);",
04277 "INSERT INTO recordingprofiles VALUES (13,'Default',NULL,NULL,4);",
04278 "INSERT INTO recordingprofiles VALUES (14,'Live TV',NULL,NULL,4);",
04279 "INSERT INTO recordingprofiles VALUES (15,'High Quality',NULL,NULL,4);",
04280 "INSERT INTO recordingprofiles VALUES (16,'Low Quality',NULL,NULL,4);",
04281 "INSERT INTO recordingprofiles VALUES (17,'Default',NULL,NULL,5);",
04282 "INSERT INTO recordingprofiles VALUES (18,'Live TV',NULL,NULL,5);",
04283 "INSERT INTO recordingprofiles VALUES (19,'High Quality',NULL,NULL,5);",
04284 "INSERT INTO recordingprofiles VALUES (20,'Low Quality',NULL,NULL,5);",
04285 "INSERT INTO recordingprofiles VALUES (21,'RTjpeg/MPEG4',NULL,NULL,6);",
04286 "INSERT INTO recordingprofiles VALUES (22,'MPEG2',NULL,NULL,6);",
04287 "INSERT INTO recordingprofiles VALUES (23,'Default',NULL,NULL,8);",
04288 "INSERT INTO recordingprofiles VALUES (24,'Live TV',NULL,NULL,8);",
04289 "INSERT INTO recordingprofiles VALUES (25,'High Quality',NULL,NULL,8);",
04290 "INSERT INTO recordingprofiles VALUES (26,'Low Quality',NULL,NULL,8);",
04291 "INSERT INTO recordingprofiles VALUES (27,'High Quality',NULL,NULL,6);",
04292 "INSERT INTO recordingprofiles VALUES (28,'Medium Quality',NULL,NULL,6);",
04293 "INSERT INTO recordingprofiles VALUES (29,'Low Quality',NULL,NULL,6);",
04294 "INSERT INTO settings VALUES ('mythfilldatabaseLastRunStart',NULL,NULL);",
04295 "INSERT INTO settings VALUES ('mythfilldatabaseLastRunEnd',NULL,NULL);",
04296 "INSERT INTO settings VALUES ('mythfilldatabaseLastRunStatus',NULL,NULL);",
04297 "INSERT INTO settings VALUES ('DataDirectMessage',NULL,NULL);",
04298 "INSERT INTO settings VALUES ('HaveRepeats','0',NULL);",
04299 "INSERT INTO settings VALUES ('DBSchemaVer','1112',NULL);",
04300 "INSERT INTO settings VALUES ('DefaultTranscoder','0',NULL);",
04301 "INSERT INTO xvmc_buffer_settings VALUES (1,'Default / nVidia',"
04302 " 2,2,8,16,8,1);",
04303 "INSERT INTO xvmc_buffer_settings VALUES (2,'VLD (More decode buffers)',"
04304 " 2,2,8,16,16,1);",
04305 ""
04306 };
04307
04308 QString dbver = "";
04309 if (!performActualUpdate(updates, "1112", dbver))
04310 return false;
04311 return true;
04312 }
04313
04314