00001 #include <iostream>
00002 #include <stdio.h>
00003 using namespace std;
00004
00005 #include <QString>
00006 #include <QSqlError>
00007 #include "dbcheck.h"
00008
00009 #include "mythversion.h"
00010 #include "dbutil.h"
00011 #include "mythcorecontext.h"
00012 #include "schemawizard.h"
00013 #include "mythdb.h"
00014 #include "mythlogging.h"
00015 #include "diseqcsettings.h"
00016 #include "videodbcheck.h"
00017 #include "compat.h"
00018 #include "recordingrule.h"
00019
00020 #define MINIMUM_DBMS_VERSION 5,0,15
00021
00022 const QString currentDatabaseVersion = MYTH_DATABASE_VERSION;
00023
00024 static bool UpdateDBVersionNumber(const QString &newnumber, QString &dbver);
00025 static bool performActualUpdate(
00026 const char **updates, const char *version, QString &dbver);
00027 static bool doUpgradeTVDatabaseSchema(void);
00028
00343 static bool UpdateDBVersionNumber(const QString &newnumber, QString &dbver)
00344 {
00345
00346 MSqlQuery query(MSqlQuery::InitCon());
00347
00348 QString thequery = "DELETE FROM settings WHERE value='DBSchemaVer';";
00349 query.prepare(thequery);
00350
00351 if (!query.exec())
00352 {
00353 QString msg =
00354 QString("DB Error (Deleting old DB version number): \n"
00355 "Query was: %1 \nError was: %2 \nnew version: %3")
00356 .arg(thequery)
00357 .arg(MythDB::DBErrorMessage(query.lastError()))
00358 .arg(newnumber);
00359 LOG(VB_GENERAL, LOG_ERR, msg);
00360 return false;
00361 }
00362
00363
00364 thequery = QString("INSERT INTO settings (value, data, hostname) "
00365 "VALUES ('DBSchemaVer', %1, NULL);").arg(newnumber);
00366 query.prepare(thequery);
00367
00368 if (!query.exec())
00369 {
00370 QString msg =
00371 QString("DB Error (Setting new DB version number): \n"
00372 "Query was: %1 \nError was: %2 \nnew version: %3")
00373 .arg(thequery)
00374 .arg(MythDB::DBErrorMessage(query.lastError()))
00375 .arg(newnumber);
00376 LOG(VB_GENERAL, LOG_ERR, msg);
00377 return false;
00378 }
00379
00380 dbver = newnumber;
00381
00382 return true;
00383 }
00384
00394 static bool performActualUpdate(
00395 const char **updates, const char *version, QString &dbver)
00396 {
00397 MSqlQuery query(MSqlQuery::InitCon());
00398
00399 LOG(VB_GENERAL, LOG_CRIT, QString("Upgrading to MythTV schema version ") +
00400 version);
00401
00402 int counter = 0;
00403 const char *thequery = updates[counter];
00404
00405 while (thequery != NULL)
00406 {
00407 if (strlen(thequery) && !query.exec(thequery))
00408 {
00409 QString msg =
00410 QString("DB Error (Performing database upgrade): \n"
00411 "Query was: %1 \nError was: %2 \nnew version: %3")
00412 .arg(thequery)
00413 .arg(MythDB::DBErrorMessage(query.lastError()))
00414 .arg(version);
00415 LOG(VB_GENERAL, LOG_ERR, msg);
00416 return false;
00417 }
00418
00419 counter++;
00420 thequery = updates[counter];
00421 }
00422
00423 if (!UpdateDBVersionNumber(version, dbver))
00424 return false;
00425
00426 return true;
00427 }
00428
00443 bool UpgradeTVDatabaseSchema(const bool upgradeAllowed,
00444 const bool upgradeIfNoUI)
00445 {
00446 #ifdef IGNORE_SCHEMA_VER_MISMATCH
00447 return true;
00448 #endif
00449 SchemaUpgradeWizard *schema_wizard = NULL;
00450
00451
00452
00453 GetMythDB()->SetSuppressDBMessages(true);
00454 gCoreContext->ActivateSettingsCache(false);
00455
00456
00457 MSqlQuery query(MSqlQuery::InitCon());
00458 bool locked = DBUtil::TryLockSchema(query, 1);
00459 for (uint i = 0; i < 2*60 && !locked; i++)
00460 {
00461 LOG(VB_GENERAL, LOG_INFO, "Waiting for database schema upgrade lock");
00462 locked = DBUtil::TryLockSchema(query, 1);
00463 if (locked)
00464 LOG(VB_GENERAL, LOG_INFO, "Got schema upgrade lock");
00465 }
00466 if (!locked)
00467 {
00468 LOG(VB_GENERAL, LOG_INFO, "Failed to get schema upgrade lock");
00469 goto upgrade_error_exit;
00470 }
00471
00472
00473 schema_wizard = SchemaUpgradeWizard::Get(
00474 "DBSchemaVer", "MythTV", currentDatabaseVersion);
00475 if (schema_wizard->Compare() == 0)
00476 goto upgrade_ok_exit;
00477
00478 if (!upgradeAllowed)
00479 LOG(VB_GENERAL, LOG_WARNING, "Not allowed to upgrade the database.");
00480
00481
00482 switch (schema_wizard->PromptForUpgrade(
00483 "TV", upgradeAllowed, upgradeIfNoUI, MINIMUM_DBMS_VERSION))
00484 {
00485 case MYTH_SCHEMA_USE_EXISTING:
00486 goto upgrade_ok_exit;
00487 case MYTH_SCHEMA_ERROR:
00488 case MYTH_SCHEMA_EXIT:
00489 goto upgrade_error_exit;
00490 case MYTH_SCHEMA_UPGRADE:
00491 break;
00492 }
00493
00494 LOG(VB_GENERAL, LOG_DEBUG, QString("Newest MythTV Schema Version : %1")
00495 .arg(currentDatabaseVersion));
00496
00497
00498 if (!doUpgradeTVDatabaseSchema())
00499 {
00500 LOG(VB_GENERAL, LOG_ERR, "Database schema upgrade failed.");
00501 goto upgrade_error_exit;
00502 }
00503
00504 LOG(VB_GENERAL, LOG_INFO, "Database schema upgrade complete.");
00505
00506
00507
00508
00509
00510
00511 upgrade_ok_exit:
00512 GetMythDB()->SetSuppressDBMessages(false);
00513 gCoreContext->ActivateSettingsCache(true);
00514 if (locked)
00515 DBUtil::UnlockSchema(query);
00516 return true;
00517
00518 upgrade_error_exit:
00519 GetMythDB()->SetSuppressDBMessages(false);
00520 gCoreContext->ActivateSettingsCache(true);
00521 if (locked)
00522 DBUtil::UnlockSchema(query);
00523 return false;
00524 }
00525
00539 static bool doUpgradeTVDatabaseSchema(void)
00540 {
00541 QString dbver = gCoreContext->GetSetting("DBSchemaVer");
00542
00543 if (dbver == currentDatabaseVersion)
00544 {
00545 return true;
00546 }
00547
00548
00549 {
00550 MSqlQuery query(MSqlQuery::InitCon());
00551 if (!query.exec(QString("ALTER DATABASE %1 DEFAULT "
00552 "CHARACTER SET utf8 COLLATE utf8_general_ci;")
00553 .arg(gCoreContext->GetDatabaseParams().dbName)))
00554 {
00555 MythDB::DBError("UpgradeTVDatabaseSchema -- alter charset", query);
00556 }
00557 }
00558
00559 if (DBUtil::IsNewDatabase())
00560 {
00561 if (!InitializeMythSchema())
00562 return false;
00563 dbver = gCoreContext->GetSetting("DBSchemaVer");
00564 }
00565
00566 if (dbver.isEmpty() || dbver.toInt() < 1027)
00567 {
00568 LOG(VB_GENERAL, LOG_ERR, "Unrecognized database schema version. "
00569 "Unable to upgrade database.");
00570 return false;
00571 }
00572 else if (dbver.toInt() < 1244)
00573 {
00574 LOG(VB_GENERAL, LOG_ERR, "Your database version is too old to upgrade "
00575 "with this version of MythTV. You will need "
00576 "to use mythtv-setup from MythTV 0.22, 0.23, "
00577 "or 0.24 to upgrade your database before "
00578 "upgrading to this version of MythTV.");
00579 return false;
00580 }
00581
00582 if (dbver == "1244")
00583 {
00584 const char *updates[] = {
00585 "ALTER TABLE cardinput DROP COLUMN freetoaironly;",
00586 "ALTER TABLE cardinput DROP COLUMN radioservices;",
00587 NULL
00588 };
00589 if (!performActualUpdate(updates, "1245", dbver))
00590 return false;
00591 }
00592
00593 if (dbver == "1245")
00594 {
00595 const char *updates[] = {
00596 "DELETE FROM capturecard WHERE cardtype = 'DBOX2';",
00597 "DELETE FROM profilegroups WHERE cardtype = 'DBOX2';",
00598 "ALTER TABLE capturecard DROP COLUMN dbox2_port;",
00599 "ALTER TABLE capturecard DROP COLUMN dbox2_httpport;",
00600 "ALTER TABLE capturecard DROP COLUMN dbox2_host;",
00601 NULL
00602 };
00603 if (!performActualUpdate(updates, "1246", dbver))
00604 return false;
00605 }
00606
00607 if (dbver == "1246")
00608 {
00609 const char *updates[] = {
00610 "ALTER TABLE recorded ADD COLUMN bookmarkupdate timestamp default 0 NOT NULL",
00611 "UPDATE recorded SET bookmarkupdate = lastmodified+1 WHERE bookmark = 1",
00612 "UPDATE recorded SET bookmarkupdate = lastmodified WHERE bookmark = 0",
00613 NULL
00614 };
00615 if (!performActualUpdate(updates, "1247", dbver))
00616 return false;
00617 }
00618
00619 if (dbver == "1247")
00620 {
00621 const char *updates[] = {
00622 "INSERT INTO profilegroups SET name = \"Import Recorder\", cardtype = 'IMPORT', is_default = 1;",
00623 "INSERT INTO recordingprofiles SET name = \"Default\", profilegroup = 14;",
00624 "INSERT INTO recordingprofiles SET name = \"Live TV\", profilegroup = 14;",
00625 "INSERT INTO recordingprofiles SET name = \"High Quality\", profilegroup = 14;",
00626 "INSERT INTO recordingprofiles SET name = \"Low Quality\", profilegroup = 14;",
00627 NULL
00628 };
00629 if (!performActualUpdate(updates, "1248", dbver))
00630 return false;
00631 }
00632
00633 if (dbver == "1248")
00634 {
00635 const char *updates[] = {
00636 "DELETE FROM keybindings WHERE action = 'CUSTOMEDIT' "
00637 "AND context = 'TV Frontend' AND keylist = 'E';",
00638 NULL
00639 };
00640 if (!performActualUpdate(updates, "1249", dbver))
00641 return false;
00642 }
00643
00644 if (dbver == "1249")
00645 {
00646 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1250");
00647
00648 MSqlQuery select(MSqlQuery::InitCon());
00649 select.prepare("SELECT hostname, data FROM settings "
00650 " WHERE value = 'StickyKeys'");
00651
00652 if (!select.exec())
00653 {
00654 MythDB::DBError("Unable to retrieve StickyKeys values.", select);
00655 }
00656 else
00657 {
00658 MSqlQuery update(MSqlQuery::InitCon());
00659 while (select.next())
00660 {
00661 QString hostname = select.value(0).toString();
00662 QString sticky_keys = select.value(1).toString();
00663
00664 if ("1" == sticky_keys)
00665 {
00666
00667 update.prepare("UPDATE keybindings "
00668 " SET keylist = :KEYS "
00669 " WHERE context = 'TV Playback' AND "
00670 " action = :ACTION AND "
00671 " hostname = :HOSTNAME AND "
00672 " keylist = :DEFAULT_KEYS");
00673
00674 QString keylist = "";
00675 QString action = "SEEKFFWD";
00676 QString default_keys = "Right";
00677
00678 update.bindValue(":KEYS", keylist);
00679 update.bindValue(":ACTION", action);
00680 update.bindValue(":HOSTNAME", hostname);
00681 update.bindValue(":DEFAULT_KEYS", default_keys);
00682 if (!update.exec())
00683 MythDB::DBError("Unable to update keybindings",
00684 update);
00685
00686 keylist = "";
00687 action = "SEEKRWND";
00688 default_keys = "Left";
00689
00690 update.bindValue(":KEYS", keylist);
00691 update.bindValue(":ACTION", action);
00692 update.bindValue(":HOSTNAME", hostname);
00693 update.bindValue(":DEFAULT_KEYS", default_keys);
00694 if (!update.exec())
00695 MythDB::DBError("Unable to update keybindings",
00696 update);
00697
00698 keylist = ">,.,Right";
00699 action = "FFWDSTICKY";
00700 default_keys = ">,.";
00701
00702 update.bindValue(":KEYS", keylist);
00703 update.bindValue(":ACTION", action);
00704 update.bindValue(":HOSTNAME", hostname);
00705 update.bindValue(":DEFAULT_KEYS", default_keys);
00706 if (!update.exec())
00707 MythDB::DBError("Unable to update keybindings",
00708 update);
00709
00710 keylist = ",,<,Left";
00711 action = "RWNDSTICKY";
00712 default_keys = ",,<";
00713
00714 update.bindValue(":KEYS", keylist);
00715 update.bindValue(":ACTION", action);
00716 update.bindValue(":HOSTNAME", hostname);
00717 update.bindValue(":DEFAULT_KEYS", default_keys);
00718 if (!update.exec())
00719 MythDB::DBError("Unable to update keybindings",
00720 update);
00721 }
00722 }
00723 }
00724
00725 if (!UpdateDBVersionNumber("1250", dbver))
00726 return false;
00727 }
00728
00729 if (dbver == "1250")
00730 {
00731 const char *updates[] = {
00732 "UPDATE recorded SET bookmark = 1 WHERE bookmark != 0;",
00733 NULL
00734 };
00735 if (!performActualUpdate(updates, "1251", dbver))
00736 return false;
00737 }
00738
00739 if (dbver == "1251")
00740 {
00741 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1252");
00742
00743 MSqlQuery query(MSqlQuery::InitCon());
00744 query.prepare("SHOW INDEX FROM recgrouppassword");
00745
00746 if (!query.exec())
00747 {
00748 MythDB::DBError("Unable to retrieve current indices on "
00749 "recgrouppassword.", query);
00750 }
00751 else
00752 {
00753 while (query.next())
00754 {
00755 QString index_name = query.value(2).toString();
00756
00757 if ("recgroup" == index_name)
00758 {
00759 MSqlQuery update(MSqlQuery::InitCon());
00760 update.prepare("ALTER TABLE recgrouppassword "
00761 " DROP INDEX recgroup");
00762
00763 if (!update.exec())
00764 MythDB::DBError("Unable to drop duplicate index on "
00765 "recgrouppassword. Ignoring.",
00766 update);
00767 break;
00768 }
00769 }
00770 }
00771
00772 if (!UpdateDBVersionNumber("1252", dbver))
00773 return false;
00774 }
00775
00776 if (dbver == "1252")
00777 {
00778 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1253");
00779
00780 MSqlQuery select(MSqlQuery::InitCon());
00781 select.prepare("SELECT hostname, data FROM settings "
00782 " WHERE value = 'StickyKeys'");
00783
00784 if (!select.exec())
00785 {
00786 MythDB::DBError("Unable to retrieve StickyKeys values.", select);
00787 }
00788 else
00789 {
00790 MSqlQuery update(MSqlQuery::InitCon());
00791 while (select.next())
00792 {
00793 QString hostname = select.value(0).toString();
00794 QString sticky_keys = select.value(1).toString();
00795
00796 if ("1" == sticky_keys)
00797 {
00798
00799 update.prepare("UPDATE keybindings "
00800 " SET keylist = :KEYS "
00801 " WHERE context = 'TV Playback' AND "
00802 " action = :ACTION AND "
00803 " hostname = :HOSTNAME AND "
00804 " keylist = :DEFAULT_KEYS");
00805
00806 QString keylist = ">,.";
00807 QString action = "FFWDSTICKY";
00808 QString default_keys = ">,.,Right";
00809
00810 update.bindValue(":KEYS", keylist);
00811 update.bindValue(":ACTION", action);
00812 update.bindValue(":HOSTNAME", hostname);
00813 update.bindValue(":DEFAULT_KEYS", default_keys);
00814 if (!update.exec())
00815 MythDB::DBError("Unable to update keybindings",
00816 update);
00817
00818 keylist = ",,<";
00819 action = "RWNDSTICKY";
00820 default_keys = ",,<,Left";
00821
00822 update.bindValue(":KEYS", keylist);
00823 update.bindValue(":ACTION", action);
00824 update.bindValue(":HOSTNAME", hostname);
00825 update.bindValue(":DEFAULT_KEYS", default_keys);
00826 if (!update.exec())
00827 MythDB::DBError("Unable to update keybindings",
00828 update);
00829 }
00830 }
00831 }
00832
00833 if (!UpdateDBVersionNumber("1253", dbver))
00834 return false;
00835 }
00836
00837 if (dbver == "1253")
00838 {
00839 if (gCoreContext->GetNumSetting("have-nit-fix") == 1)
00840 {
00841
00842 LOG(VB_GENERAL, LOG_CRIT,
00843 "Upgrading to MythTV schema version 1254");
00844 if (!UpdateDBVersionNumber("1254", dbver))
00845 return false;
00846 }
00847 else
00848 {
00849 const char *updates[] = {
00850 "ALTER TABLE videosource ADD dvb_nit_id INT(6) DEFAULT -1;",
00851 NULL
00852 };
00853 if (!performActualUpdate(updates, "1254", dbver))
00854 return false;
00855 }
00856 }
00857
00858 if (dbver == "1254")
00859 {
00860 const char *updates[] = {
00861 "ALTER TABLE cardinput DROP COLUMN shareable;",
00862 NULL
00863 };
00864 if (!performActualUpdate(updates, "1255", dbver))
00865 return false;
00866 }
00867
00868 if (dbver == "1255")
00869 {
00870 const char *updates[] = {
00871 "INSERT INTO keybindings (SELECT 'Main Menu', 'EXIT', 'System Exit', "
00872 "(CASE data WHEN '1' THEN 'Ctrl+Esc' WHEN '2' THEN 'Meta+Esc' "
00873 "WHEN '3' THEN 'Alt+Esc' WHEN '4' THEN 'Esc' ELSE '' END), hostname "
00874 "FROM settings WHERE value = 'AllowQuitShutdown' GROUP BY hostname) "
00875 "ON DUPLICATE KEY UPDATE keylist = VALUES(keylist);",
00876 NULL
00877 };
00878 if (!performActualUpdate(updates, "1256", dbver))
00879 return false;
00880 }
00881
00882 if (dbver == "1256")
00883 {
00884 const char *updates[] = {
00885 "ALTER TABLE record DROP COLUMN tsdefault;",
00886 NULL
00887 };
00888 if (!performActualUpdate(updates, "1257", dbver))
00889 return false;
00890 }
00891
00892 if (dbver == "1257")
00893 {
00894 const char *updates[] = {
00895 "CREATE TABLE internetcontent "
00896 "( name VARCHAR(255) NOT NULL,"
00897 " thumbnail VARCHAR(255),"
00898 " type SMALLINT(3) NOT NULL,"
00899 " author VARCHAR(128) NOT NULL,"
00900 " description TEXT NOT NULL,"
00901 " commandline TEXT NOT NULL,"
00902 " version DOUBLE NOT NULL,"
00903 " updated DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',"
00904 " search BOOL NOT NULL,"
00905 " tree BOOL NOT NULL,"
00906 " podcast BOOL NOT NULL,"
00907 " download BOOL NOT NULL,"
00908 " host VARCHAR(128)) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
00909 "CREATE TABLE internetcontentarticles "
00910 "( feedtitle VARCHAR(255) NOT NULL,"
00911 " path TEXT NOT NULL,"
00912 " paththumb TEXT NOT NULL,"
00913 " title VARCHAR(255) NOT NULL,"
00914 " subtitle VARCHAR(255) NOT NULL,"
00915 " season SMALLINT(5) NOT NULL DEFAULT '0',"
00916 " episode SMALLINT(5) NOT NULL DEFAULT '0',"
00917 " description TEXT NOT NULL,"
00918 " url TEXT NOT NULL,"
00919 " type SMALLINT(3) NOT NULL,"
00920 " thumbnail TEXT NOT NULL,"
00921 " mediaURL TEXT NOT NULL,"
00922 " author VARCHAR(255) NOT NULL,"
00923 " date DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',"
00924 " time INT NOT NULL,"
00925 " rating VARCHAR(255) NOT NULL,"
00926 " filesize BIGINT NOT NULL,"
00927 " player VARCHAR(255) NOT NULL,"
00928 " playerargs TEXT NOT NULL,"
00929 " download VARCHAR(255) NOT NULL,"
00930 " downloadargs TEXT NOT NULL,"
00931 " width SMALLINT NOT NULL,"
00932 " height SMALLINT NOT NULL,"
00933 " language VARCHAR(128) NOT NULL,"
00934 " podcast BOOL NOT NULL,"
00935 " downloadable BOOL NOT NULL,"
00936 " customhtml BOOL NOT NULL,"
00937 " countries VARCHAR(255) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
00938 NULL
00939 };
00940 if (!performActualUpdate(updates, "1258", dbver))
00941 return false;
00942 }
00943
00944 if (dbver == "1258")
00945 {
00946 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1259");
00947
00948 MSqlQuery select(MSqlQuery::InitCon());
00949 select.prepare("SELECT hostname, data FROM settings "
00950 " WHERE value = 'IndividualMuteControl'");
00951
00952 if (!select.exec())
00953 {
00954 MythDB::DBError("Unable to retrieve IndividualMuteControl values.",
00955 select);
00956 }
00957 else
00958 {
00959 MSqlQuery update(MSqlQuery::InitCon());
00960 while (select.next())
00961 {
00962 QString hostname = select.value(0).toString();
00963 QString individual_mute = select.value(1).toString();
00964
00965 if ("1" == individual_mute)
00966 {
00967 update.prepare("DELETE FROM keybindings "
00968 " WHERE action = 'CYCLEAUDIOCHAN' AND "
00969 " hostname = :HOSTNAME AND "
00970 " context IN ('TV Frontend', "
00971 " 'TV Playback')");
00972
00973 update.bindValue(":HOSTNAME", hostname);
00974
00975 if (!update.exec())
00976 {
00977 MythDB::DBError("Unable to update keybindings",
00978 update);
00979 continue;
00980 }
00981
00982 update.prepare("UPDATE keybindings "
00983 " SET action = 'CYCLEAUDIOCHAN', "
00984 " description = 'Cycle audio channels'"
00985 " WHERE action = 'MUTE' AND "
00986 " hostname = :HOSTNAME AND "
00987 " context IN ('TV Frontend', "
00988 " 'TV Playback')");
00989
00990 update.bindValue(":HOSTNAME", hostname);
00991
00992 if (!update.exec())
00993 {
00994 MythDB::DBError("Unable to update keybindings",
00995 update);
00996 continue;
00997 }
00998
00999 update.prepare("REPLACE INTO keybindings "
01000 " VALUES (:CONTEXT, 'MUTE', 'Mute', "
01001 " '', :HOSTNAME)");
01002
01003 update.bindValue(":CONTEXT", "TV Playback");
01004 update.bindValue(":HOSTNAME", hostname);
01005 if (!update.exec())
01006 {
01007 MythDB::DBError("Unable to update keybindings",
01008 update);
01009 continue;
01010 }
01011 update.bindValue(":CONTEXT", "TV Frontend");
01012 update.bindValue(":HOSTNAME", hostname);
01013 if (!update.exec())
01014 {
01015 MythDB::DBError("Unable to update keybindings",
01016 update);
01017 continue;
01018 }
01019
01020 }
01021 }
01022 }
01023
01024 if (!UpdateDBVersionNumber("1259", dbver))
01025 return false;
01026 }
01027
01028 if (dbver == "1259")
01029 {
01030 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1260");
01031
01032 MSqlQuery query(MSqlQuery::InitCon());
01033 query.prepare("DELETE FROM keybindings WHERE "
01034 "action IN ('PAGEUP','PAGEDOWN') AND "
01035 "context = 'TV FRONTEND'");
01036 query.exec();
01037
01038 query.prepare("SELECT data FROM settings "
01039 " WHERE value = 'EPGEnableJumpToChannel'");
01040
01041 if (!query.exec())
01042 {
01043 MythDB::DBError("Unable to retrieve EPGEnableJumpToChannel values.",
01044 query);
01045 }
01046 else
01047 {
01048 MSqlQuery bindings(MSqlQuery::InitCon());
01049 while (query.next())
01050 {
01051 QString EPGEnableJumpToChannel = query.value(0).toString();
01052
01053 if ("1" == EPGEnableJumpToChannel)
01054 {
01055 bindings.prepare("SELECT action, context, hostname, keylist "
01056 " FROM keybindings "
01057 " WHERE action IN ('DAYLEFT', "
01058 " 'DAYRIGHT', 'TOGGLEEPGORDER') AND "
01059 " context IN ('TV Frontend', "
01060 " 'TV Playback')");
01061
01062 if (!bindings.exec())
01063 {
01064 MythDB::DBError("Unable to update keybindings",
01065 bindings);
01066 continue;
01067 }
01068 else
01069 {
01070 while (bindings.next())
01071 {
01072 QString action = bindings.value(0).toString();
01073 QString context = bindings.value(1).toString();
01074 QString hostname = bindings.value(2).toString();
01075 QStringList oldKeylist = bindings.value(3).toString().split(',');
01076 QStringList newKeyList;
01077
01078 QStringList::iterator it;
01079 for (it = oldKeylist.begin(); it != oldKeylist.end();++it)
01080 {
01081 bool ok = false;
01082 int num = (*it).toInt(&ok);
01083 if (!ok && num >= 0 && num <= 9)
01084 newKeyList << (*it);
01085 }
01086 QString keyList = newKeyList.join(",");
01087
01088 MSqlQuery update(MSqlQuery::InitCon());
01089 update.prepare("UPDATE keybindings "
01090 " SET keylist = :KEYLIST "
01091 " WHERE action = :ACTION "
01092 " AND context = :CONTEXT "
01093 " AND hostname = :HOSTNAME");
01094
01095 update.bindValue(":KEYLIST", keyList);
01096 update.bindValue(":ACTION", action);
01097 update.bindValue(":CONTEXT", context);
01098 update.bindValue(":HOSTNAME", hostname);
01099
01100 if (!update.exec())
01101 {
01102 MythDB::DBError("Unable to update keybindings",
01103 update);
01104 continue;
01105 }
01106 }
01107 }
01108
01109 }
01110 }
01111 }
01112
01113 if (!UpdateDBVersionNumber("1260", dbver))
01114 return false;
01115 }
01116
01117 if (dbver == "1260")
01118 {
01119 if (gCoreContext->GetNumSetting("MythFillFixProgramIDsHasRunOnce", 0))
01120 {
01121 LOG(VB_GENERAL, LOG_CRIT,
01122 "Upgrading to MythTV schema version 1261");
01123 if (!UpdateDBVersionNumber("1261", dbver))
01124 return false;
01125 }
01126 else
01127 {
01128
01129 const char *updates[] = {
01130 "UPDATE recorded SET programid=CONCAT(SUBSTRING(programid, 1, 2), '00', "
01131 " SUBSTRING(programid, 3)) WHERE length(programid) = 12;",
01132 "UPDATE oldrecorded SET programid=CONCAT(SUBSTRING(programid, 1, 2), '00', "
01133 " SUBSTRING(programid, 3)) WHERE length(programid) = 12;",
01134 "UPDATE program SET programid=CONCAT(SUBSTRING(programid, 1, 2), '00', "
01135 " SUBSTRING(programid, 3)) WHERE length(programid) = 12;",
01136 NULL
01137 };
01138 if (!performActualUpdate(updates, "1261", dbver))
01139 return false;
01140 }
01141 }
01142
01143 if (dbver == "1261")
01144 {
01145 const char *updates[] = {
01146 "UPDATE program SET description = '' WHERE description IS NULL;",
01147 "UPDATE record SET description = '' WHERE description IS NULL;",
01148 "UPDATE recorded SET description = '' WHERE description IS NULL;",
01149 "UPDATE recordedprogram SET description = '' WHERE description IS NULL;",
01150 "UPDATE oldrecorded SET description = '' WHERE description IS NULL;",
01151 "UPDATE mythlog SET details = '' WHERE details IS NULL;",
01152 "UPDATE settings SET data = '' WHERE data IS NULL;",
01153 "UPDATE powerpriority SET selectclause = '' WHERE selectclause IS NULL;",
01154 "UPDATE customexample SET fromclause = '' WHERE fromclause IS NULL;",
01155 "UPDATE customexample SET whereclause = '' WHERE whereclause IS NULL;",
01156 "ALTER TABLE program MODIFY COLUMN description VARCHAR(16000) "
01157 " NOT NULL default '';",
01158 "ALTER TABLE record MODIFY COLUMN description VARCHAR(16000) "
01159 " NOT NULL default '';",
01160 "ALTER TABLE recorded MODIFY COLUMN description VARCHAR(16000) "
01161 " NOT NULL default '';",
01162 "ALTER TABLE recordedprogram MODIFY COLUMN description VARCHAR(16000) "
01163 " NOT NULL default '';",
01164 "ALTER TABLE oldrecorded MODIFY COLUMN description VARCHAR(16000) "
01165 " NOT NULL default '';",
01166 "ALTER TABLE mythlog MODIFY COLUMN details VARCHAR(16000) "
01167 " NOT NULL default '';",
01168 "ALTER TABLE settings MODIFY COLUMN data VARCHAR(16000) "
01169 " NOT NULL default '';",
01170 "ALTER TABLE powerpriority MODIFY COLUMN selectclause VARCHAR(16000) "
01171 " NOT NULL default '';",
01172 "ALTER TABLE customexample MODIFY COLUMN fromclause VARCHAR(10000) "
01173 " NOT NULL default '';",
01174 "ALTER TABLE customexample MODIFY COLUMN whereclause VARCHAR(10000) "
01175 " NOT NULL default '';",
01176 NULL
01177 };
01178 if (!performActualUpdate(updates, "1262", dbver))
01179 return false;
01180 }
01181
01182 if (dbver == "1262")
01183 {
01184 const char *updates[] = {
01185 "INSERT INTO recgrouppassword (recgroup, password) SELECT 'All Programs',data FROM settings WHERE value='AllRecGroupPassword' LIMIT 1;",
01186 "DELETE FROM settings WHERE value='AllRecGroupPassword';",
01187 NULL
01188 };
01189 if (!performActualUpdate(updates, "1263", dbver))
01190 return false;
01191 }
01192
01193 if (dbver == "1263")
01194 {
01195 const char *updates[] = {
01196 "UPDATE settings SET hostname = NULL WHERE value='ISO639Language0' AND data != 'aar' AND hostname IS NOT NULL LIMIT 1;",
01197 "UPDATE settings SET hostname = NULL WHERE value='ISO639Language1' AND data != 'aar' AND hostname IS NOT NULL LIMIT 1;",
01198 "DELETE FROM settings WHERE value='ISO639Language0' AND hostname IS NOT NULL;",
01199 "DELETE FROM settings WHERE value='ISO639Language1' AND hostname IS NOT NULL;",
01200 NULL
01201 };
01202 if (!performActualUpdate(updates, "1264", dbver))
01203 return false;
01204 }
01205
01206 if (dbver == "1264")
01207 {
01208 const char *updates[] = {
01209 "DELETE FROM displayprofiles WHERE profilegroupid IN "
01210 " (SELECT profilegroupid FROM displayprofilegroups "
01211 " WHERE name IN ('CPU++', 'CPU+', 'CPU--'))",
01212 "DELETE FROM displayprofilegroups WHERE name IN ('CPU++', 'CPU+', 'CPU--')",
01213 "DELETE FROM settings WHERE value = 'DefaultVideoPlaybackProfile' "
01214 " AND data IN ('CPU++', 'CPU+', 'CPU--')",
01215 "UPDATE displayprofiles SET data = 'ffmpeg' WHERE data = 'libmpeg2'",
01216 "UPDATE displayprofiles SET data = 'ffmpeg' WHERE data = 'xvmc'",
01217 "UPDATE displayprofiles SET data = 'xv-blit' WHERE data = 'xvmc-blit'",
01218 "UPDATE displayprofiles SET data = 'softblend' WHERE data = 'ia44blend'",
01219 NULL
01220 };
01221 if (!performActualUpdate(updates, "1265", dbver))
01222 return false;
01223 }
01224
01225 if (dbver == "1265")
01226 {
01227 const char *updates[] = {
01228 "ALTER TABLE dtv_multiplex MODIFY COLUMN updatetimestamp "
01229 " TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;",
01230 "ALTER TABLE dvdbookmark MODIFY COLUMN `timestamp` "
01231 " TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;",
01232 "ALTER TABLE jobqueue MODIFY COLUMN statustime "
01233 " TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;",
01234 "ALTER TABLE recorded MODIFY COLUMN lastmodified "
01235 " TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;",
01236 NULL
01237 };
01238 if (!performActualUpdate(updates, "1266", dbver))
01239 return false;
01240 }
01241
01242 if (dbver == "1266")
01243 {
01244 if (!doUpgradeVideoDatabaseSchema())
01245 return false;
01246
01247 const char *updates[] = {
01248 "DELETE FROM settings WHERE value = 'mythvideo.DBSchemaVer'",
01249 NULL
01250 };
01251 if (!performActualUpdate(updates, "1267", dbver))
01252 return false;
01253 }
01254
01255 if (dbver == "1267")
01256 {
01257 const char *updates[] = {
01258 "ALTER TABLE channel MODIFY xmltvid VARCHAR(255) NOT NULL DEFAULT '';",
01259 NULL
01260 };
01261 if (!performActualUpdate(updates, "1268", dbver))
01262 return false;
01263 }
01264
01265 if (dbver == "1268")
01266 {
01267
01268 const char *updates[] = {
01269 "DELETE FROM keybindings WHERE action='PREVSOURCE' AND keylist='Ctrl+Y';",
01270 NULL
01271 };
01272 if (!performActualUpdate(updates, "1269", dbver))
01273 return false;
01274 }
01275
01276 if (dbver == "1269")
01277 {
01278 const char *updates[] = {
01279 "DELETE FROM profilegroups WHERE id >= 15;",
01280 "DELETE FROM recordingprofiles WHERE profilegroup >= 15;",
01281 "INSERT INTO profilegroups SET id = '15', name = 'ASI Recorder (DVEO)',"
01282 " cardtype = 'ASI', is_default = 1;",
01283 "INSERT INTO recordingprofiles SET name = \"Default\", profilegroup = 15;",
01284 "INSERT INTO recordingprofiles SET name = \"Live TV\", profilegroup = 15;",
01285 "INSERT INTO recordingprofiles SET name = \"High Quality\", profilegroup = 15;",
01286 "INSERT INTO recordingprofiles SET name = \"Low Quality\", profilegroup = 15;",
01287 "INSERT INTO profilegroups SET id = '16', name = 'OCUR Recorder (CableLabs)',"
01288 " cardtype = 'OCUR', is_default = 1;",
01289 "INSERT INTO recordingprofiles SET name = \"Default\", profilegroup = 16;",
01290 "INSERT INTO recordingprofiles SET name = \"Live TV\", profilegroup = 16;",
01291 "INSERT INTO recordingprofiles SET name = \"High Quality\", profilegroup = 16;",
01292 "INSERT INTO recordingprofiles SET name = \"Low Quality\", profilegroup = 16;",
01293 NULL
01294 };
01295 if (!performActualUpdate(updates, "1270", dbver))
01296 return false;
01297 }
01298
01299 if (dbver == "1270")
01300 {
01301 const char *updates[] = {
01302 "ALTER TABLE oldrecorded ADD future TINYINT(1) NOT NULL DEFAULT 0;",
01303 "UPDATE oldrecorded SET future=0;",
01304 NULL
01305 };
01306 if (!performActualUpdate(updates, "1271", dbver))
01307 return false;
01308 }
01309
01310 if (dbver == "1271")
01311 {
01312 const char *updates[] = {
01313 "ALTER TABLE recordmatch MODIFY recordid INT UNSIGNED NOT NULL;",
01314 "ALTER TABLE recordmatch MODIFY chanid INT UNSIGNED NOT NULL;",
01315 "ALTER TABLE recordmatch MODIFY starttime DATETIME NOT NULL;",
01316 "ALTER TABLE recordmatch MODIFY manualid INT UNSIGNED NOT NULL;",
01317 "ALTER TABLE recordmatch ADD INDEX (starttime, chanid);",
01318 "ALTER TABLE oldrecorded MODIFY generic TINYINT(1) NOT NULL;",
01319 "ALTER TABLE oldrecorded ADD INDEX (future);",
01320 "ALTER TABLE oldrecorded ADD INDEX (starttime, chanid);",
01321 NULL
01322 };
01323 if (!performActualUpdate(updates, "1272", dbver))
01324 return false;
01325 }
01326
01327 if (dbver == "1272")
01328 {
01329 const char *updates[] = {
01330 "DROP INDEX starttime ON recordmatch;",
01331 "DROP INDEX starttime ON oldrecorded;",
01332 "ALTER TABLE recordmatch ADD INDEX (chanid, starttime, manualid);",
01333 "ALTER TABLE oldrecorded ADD INDEX (chanid, starttime);",
01334 NULL
01335 };
01336 if (!performActualUpdate(updates, "1273", dbver))
01337 return false;
01338 }
01339
01340 if (dbver == "1273")
01341 {
01342 const char *updates[] = {
01343 "ALTER TABLE internetcontent MODIFY COLUMN updated "
01344 " DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';",
01345 "ALTER TABLE internetcontentarticles MODIFY COLUMN `date` "
01346 " DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';",
01347 NULL
01348 };
01349
01350 if (!performActualUpdate(updates, "1274", dbver))
01351 return false;
01352 }
01353
01354 if (dbver == "1274")
01355 {
01356 const char *updates[] = {
01357 "UPDATE cardinput SET tunechan=NULL"
01358 " WHERE inputname='DVBInput' OR inputname='MPEG2TS';"
01359 "UPDATE dtv_multiplex SET symbolrate = NULL"
01360 " WHERE modulation LIKE 't%' OR modulation LIKE '%t';",
01361 "UPDATE dtv_multiplex"
01362 " SET bandwidth=SUBSTR(modulation,2,1)"
01363 " WHERE SUBSTR(modulation,3,3)='qam' OR"
01364 " SUBSTR(modulation,3,4)='qpsk';",
01365 "UPDATE dtv_multiplex"
01366 " SET bandwidth=SUBSTR(modulation,5,1)"
01367 " WHERE SUBSTR(modulation,1,4)='auto' AND"
01368 " LENGTH(modulation)=6;",
01369 "UPDATE dtv_multiplex SET modulation='auto'"
01370 " WHERE modulation LIKE 'auto%';",
01371 "UPDATE dtv_multiplex SET modulation='qam_16'"
01372 " WHERE modulation LIKE '%qam16%';",
01373 "UPDATE dtv_multiplex SET modulation='qam_32'"
01374 " WHERE modulation LIKE '%qam32%';",
01375 "UPDATE dtv_multiplex SET modulation='qam_64'"
01376 " WHERE modulation LIKE '%qam64%';",
01377 "UPDATE dtv_multiplex SET modulation='qam_128'"
01378 " WHERE modulation LIKE '%qam128%';",
01379 "UPDATE dtv_multiplex SET modulation='qam_256'"
01380 " WHERE modulation LIKE '%qam256%';",
01381 NULL
01382 };
01383 if (!performActualUpdate(updates, "1275", dbver))
01384 return false;
01385 }
01386
01387 if (dbver == "1275")
01388 {
01389 const char *updates[] = {
01390 "DROP TABLE IF EXISTS `logging`;",
01391 "CREATE TABLE `logging` ( "
01392 " `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, "
01393 " `host` varchar(64) NOT NULL, "
01394 " `application` varchar(64) NOT NULL, "
01395 " `pid` int(11) NOT NULL, "
01396 " `thread` varchar(64) NOT NULL, "
01397 " `msgtime` datetime NOT NULL, "
01398 " `level` int(11) NOT NULL, "
01399 " `message` varchar(2048) NOT NULL, "
01400 " PRIMARY KEY (`id`), "
01401 " KEY `host` (`host`,`application`,`pid`,`msgtime`), "
01402 " KEY `msgtime` (`msgtime`), "
01403 " KEY `level` (`level`) "
01404 ") ENGINE=MyISAM DEFAULT CHARSET=utf8; ",
01405 NULL
01406 };
01407 if (!performActualUpdate(updates, "1276", dbver))
01408 return false;
01409 }
01410
01411 if (dbver == "1276")
01412 {
01413 const char *updates[] = {
01414 "ALTER TABLE record ADD COLUMN filter INT UNSIGNED NOT NULL DEFAULT 0;",
01415 "CREATE TABLE IF NOT EXISTS recordfilter ("
01416 " filterid INT UNSIGNED NOT NULL PRIMARY KEY,"
01417 " description VARCHAR(64) DEFAULT NULL,"
01418 " clause VARCHAR(256) DEFAULT NULL,"
01419 " newruledefault TINYINT(1) DEFAULT 0) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
01420 "INSERT INTO recordfilter (filterid, description, clause, newruledefault) "
01421 " VALUES (0, 'New episode', 'program.previouslyshown = 0', 0);",
01422 "INSERT INTO recordfilter (filterid, description, clause, newruledefault) "
01423 " VALUES (1, 'Identifiable episode', 'program.generic = 0', 0);",
01424 "INSERT INTO recordfilter (filterid, description, clause, newruledefault) "
01425 " VALUES (2, 'First showing', 'program.first > 0', 0);",
01426 "INSERT INTO recordfilter (filterid, description, clause, newruledefault) "
01427 " VALUES (3, 'Primetime', 'HOUR(program.starttime) >= 19 AND HOUR(program.starttime) < 23', 0);",
01428 "INSERT INTO recordfilter (filterid, description, clause, newruledefault) "
01429 " VALUES (4, 'Commercial free', 'channel.commmethod = -2', 0);",
01430 "INSERT INTO recordfilter (filterid, description, clause, newruledefault) "
01431 " VALUES (5, 'High definition', 'program.hdtv > 0', 0);",
01432 NULL
01433 };
01434
01435 if (!performActualUpdate(updates, "1277", dbver))
01436 return false;
01437 }
01438
01439 if (dbver == "1277")
01440 {
01441 const char *updates[] = {
01442 "ALTER TABLE record ADD autometadata TINYINT(1) NOT NULL DEFAULT "
01443 " 0 AFTER autouserjob4;",
01444 "ALTER TABLE record ADD inetref VARCHAR(40) NOT NULL AFTER programid;",
01445 "ALTER TABLE record ADD season SMALLINT(5) NOT NULL AFTER description;",
01446 "ALTER TABLE record ADD episode SMALLINT(5) NOT NULL AFTER season;",
01447 "ALTER TABLE recorded ADD inetref VARCHAR(40) NOT NULL AFTER programid;",
01448 "ALTER TABLE recorded ADD season SMALLINT(5) NOT NULL AFTER description;",
01449 "ALTER TABLE recorded ADD episode SMALLINT(5) NOT NULL AFTER season;",
01450 "ALTER TABLE oldrecorded ADD inetref VARCHAR(40) NOT NULL AFTER programid;",
01451 "ALTER TABLE oldrecorded ADD season SMALLINT(5) NOT NULL AFTER description;",
01452 "ALTER TABLE oldrecorded ADD episode SMALLINT(5) NOT NULL AFTER season;",
01453 NULL
01454 };
01455 if (!performActualUpdate(updates, "1278", dbver))
01456 return false;
01457 }
01458
01459 if (dbver == "1278")
01460 {
01461 const char *updates[] = {
01462 "CREATE TABLE recordedartwork ( "
01463 " inetref VARCHAR(255) NOT NULL, "
01464 " season SMALLINT(5) NOT NULL, "
01465 " host TEXT NOT NULL, "
01466 " coverart TEXT NOT NULL, "
01467 " fanart TEXT NOT NULL, "
01468 " banner TEXT NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
01469 NULL
01470 };
01471 if (!performActualUpdate(updates, "1279", dbver))
01472 return false;
01473 }
01474
01475 if (dbver == "1279")
01476 {
01477 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1280");
01478
01479 MSqlQuery select(MSqlQuery::InitCon());
01480
01481 select.prepare("SELECT hostname, data FROM settings "
01482 " WHERE value = 'NoPromptOnExit'");
01483 if (!select.exec())
01484 {
01485 MythDB::DBError("Unable to retrieve confirm exit values.", select);
01486 }
01487 else
01488 {
01489 MSqlQuery update(MSqlQuery::InitCon());
01490 while (select.next())
01491 {
01492 QString hostname = select.value(0).toString();
01493
01494 QString prompt_on_exit = select.value(1).toString();
01495
01496 update.prepare("DELETE FROM keybindings "
01497 " WHERE action = 'EXITPROMPT' "
01498 " AND context = 'Main Menu' "
01499 " AND hostname = :HOSTNAME ;");
01500 update.bindValue(":HOSTNAME", hostname);
01501 if (!update.exec())
01502 MythDB::DBError("Unable to delete EXITPROMPT binding",
01503 update);
01504
01505 if ("0" == prompt_on_exit)
01506 {
01507
01508
01509 update.prepare("INSERT INTO keybindings (context, action, "
01510 " description, keylist, hostname) "
01511 "VALUES ('Main Menu', 'EXITPROMPT', '', "
01512 " '', :HOSTNAME );");
01513 update.bindValue(":HOSTNAME", hostname);
01514 if (!update.exec())
01515 MythDB::DBError("Unable to create EXITPROMPT binding",
01516 update);
01517 }
01518 else
01519 {
01520
01521 update.prepare("UPDATE keybindings "
01522 " SET action = 'EXITPROMPT' "
01523 " WHERE action = 'EXIT' "
01524 " AND context = 'Main Menu' "
01525 " AND hostname = :HOSTNAME ;");
01526 update.bindValue(":HOSTNAME", hostname);
01527 if (!update.exec())
01528 MythDB::DBError("Unable to update EXITPROMPT binding",
01529 update);
01530 }
01531 }
01532 }
01533
01534 if (!UpdateDBVersionNumber("1280", dbver))
01535 return false;
01536 }
01537
01538 if (dbver == "1280")
01539 {
01540 const char *updates[] = {
01541 "ALTER TABLE program ADD INDEX (subtitle);",
01542 "ALTER TABLE program ADD INDEX (description(255));",
01543 "ALTER TABLE oldrecorded ADD INDEX (subtitle);",
01544 "ALTER TABLE oldrecorded ADD INDEX (description(255));",
01545 NULL
01546 };
01547 if (!performActualUpdate(updates, "1281", dbver))
01548 return false;
01549 }
01550
01551 if (dbver == "1281")
01552 {
01553 const char *updates[] = {
01554 "ALTER TABLE cardinput ADD changer_device VARCHAR(128) "
01555 "AFTER externalcommand;",
01556 "ALTER TABLE cardinput ADD changer_model VARCHAR(128) "
01557 "AFTER changer_device;",
01558 NULL
01559 };
01560 if (!performActualUpdate(updates, "1282", dbver))
01561 return false;
01562 }
01563
01564 if (dbver == "1282")
01565 {
01566 const char *updates[] = {
01567 "UPDATE settings"
01568 " SET data = SUBSTR(data, INSTR(data, 'share/mythtv/metadata')+13)"
01569 " WHERE value "
01570 " IN ('TelevisionGrabber', "
01571 " 'MovieGrabber', "
01572 " 'mythgame.MetadataGrabber');",
01573 NULL
01574 };
01575
01576 if (!performActualUpdate(updates, "1283", dbver))
01577 return false;
01578 }
01579
01580 if (dbver == "1283")
01581 {
01582 const char *updates[] = {
01583 "UPDATE record SET filter = filter | 1 WHERE record.dupin & 0x20",
01584 "UPDATE record SET filter = filter | 2 WHERE record.dupin & 0x40",
01585 "UPDATE record SET filter = filter | 5 WHERE record.dupin & 0x80",
01586 "UPDATE record SET dupin = dupin & ~0xe0",
01587 "INSERT INTO recordfilter (filterid, description, clause, newruledefault) "
01588 " VALUES (6, 'This Episode', '(program.programid <> '''' AND program.programid = RECTABLE.programid) OR (program.programid = '''' AND program.subtitle = RECTABLE.subtitle AND program.description = RECTABLE.description)', 0);",
01589 NULL
01590 };
01591
01592 if (!performActualUpdate(updates, "1284", dbver))
01593 return false;
01594 }
01595
01596 if (dbver == "1284")
01597 {
01598 const char *updates[] = {
01599 "REPLACE INTO recordfilter (filterid, description, clause, newruledefault) "
01600 " VALUES (6, 'This Episode', '(RECTABLE.programid <> '''' AND program.programid = RECTABLE.programid) OR (RECTABLE.programid = '''' AND program.subtitle = RECTABLE.subtitle AND program.description = RECTABLE.description)', 0);",
01601 NULL
01602 };
01603
01604 if (!performActualUpdate(updates, "1285", dbver))
01605 return false;
01606 }
01607
01608 if (dbver == "1285")
01609 {
01610 const char *updates[] = {
01611 "DELETE FROM profilegroups WHERE id >= 17;",
01612 "DELETE FROM recordingprofiles WHERE profilegroup >= 17;",
01613 "INSERT INTO profilegroups SET id = '17', name = 'Ceton Recorder',"
01614 " cardtype = 'CETON', is_default = 1;",
01615 "INSERT INTO recordingprofiles SET name = \"Default\", profilegroup = 17;",
01616 "INSERT INTO recordingprofiles SET name = \"Live TV\", profilegroup = 17;",
01617 "INSERT INTO recordingprofiles SET name = \"High Quality\", profilegroup = 17;",
01618 "INSERT INTO recordingprofiles SET name = \"Low Quality\", profilegroup = 17;",
01619 NULL
01620 };
01621 if (!performActualUpdate(updates, "1286", dbver))
01622 return false;
01623 }
01624
01625 if (dbver == "1286")
01626 {
01627 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1287");
01628 MSqlQuery query(MSqlQuery::InitCon());
01629 query.prepare("SELECT cardid, videodevice "
01630 "FROM capturecard "
01631 "WHERE cardtype='CETON'");
01632 if (!query.exec())
01633 {
01634 LOG(VB_GENERAL, LOG_ERR,
01635 "Unable to query capturecard table for upgrade to 1287.");
01636 return false;
01637 }
01638
01639 MSqlQuery update(MSqlQuery::InitCon());
01640 update.prepare("UPDATE capturecard SET videodevice=:VIDDEV "
01641 "WHERE cardid=:CARDID");
01642 while (query.next())
01643 {
01644 uint cardid = query.value(0).toUInt();
01645 QString videodevice = query.value(1).toString();
01646 QStringList parts = videodevice.split("-");
01647 if (parts.size() != 2)
01648 {
01649 LOG(VB_GENERAL, LOG_ERR,
01650 "Unable to parse videodevice in upgrade to 1287.");
01651 return false;
01652 }
01653 if (parts[1].contains("."))
01654 continue;
01655
01656 int input = max(parts[1].toInt() - 1, 0);
01657 videodevice = parts[0] + QString("-0.%1").arg(input);
01658 update.bindValue(":CARDID", cardid);
01659 update.bindValue(":VIDDEV", videodevice);
01660 if (!update.exec())
01661 {
01662 LOG(VB_GENERAL, LOG_ERR,
01663 "Failed to update videodevice in upgrade to 1287.");
01664 return false;
01665 }
01666 }
01667
01668 if (!UpdateDBVersionNumber("1287", dbver))
01669 return false;
01670 }
01671
01672 if (dbver == "1287")
01673 {
01674 const char *updates[] = {
01675 "CREATE TABLE IF NOT EXISTS livestream ( "
01676 " id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, "
01677 " width INT UNSIGNED NOT NULL, "
01678 " height INT UNSIGNED NOT NULL, "
01679 " bitrate INT UNSIGNED NOT NULL, "
01680 " audiobitrate INT UNSIGNED NOT NULL, "
01681 " samplerate INT UNSIGNED NOT NULL, "
01682 " audioonlybitrate INT UNSIGNED NOT NULL, "
01683 " segmentsize INT UNSIGNED NOT NULL DEFAULT 10, "
01684 " maxsegments INT UNSIGNED NOT NULL DEFAULT 0, "
01685 " startsegment INT UNSIGNED NOT NULL DEFAULT 0, "
01686 " currentsegment INT UNSIGNED NOT NULL DEFAULT 0, "
01687 " segmentcount INT UNSIGNED NOT NULL DEFAULT 0, "
01688 " percentcomplete INT UNSIGNED NOT NULL DEFAULT 0, "
01689 " created DATETIME NOT NULL, "
01690 " lastmodified DATETIME NOT NULL, "
01691 " relativeurl VARCHAR(512) NOT NULL, "
01692 " fullurl VARCHAR(1024) NOT NULL, "
01693 " status INT UNSIGNED NOT NULL DEFAULT 0, "
01694 " statusmessage VARCHAR(256) NOT NULL, "
01695 " sourcefile VARCHAR(512) NOT NULL, "
01696 " sourcehost VARCHAR(64) NOT NULL, "
01697 " sourcewidth INT UNSIGNED NOT NULL DEFAULT 0, "
01698 " sourceheight INT UNSIGNED NOT NULL DEFAULT 0, "
01699 " outdir VARCHAR(256) NOT NULL, "
01700 " outbase VARCHAR(128) NOT NULL "
01701 ") ENGINE=MyISAM DEFAULT CHARSET=utf8; ",
01702 NULL
01703 };
01704
01705 if (!performActualUpdate(updates, "1288", dbver))
01706 return false;
01707 }
01708
01709 if (dbver == "1288")
01710 {
01711 const char *updates[] = {
01712 "ALTER TABLE recordedprogram CHANGE COLUMN videoprop videoprop "
01713 " SET('HDTV', 'WIDESCREEN', 'AVC', '720', '1080', 'DAMAGED') NOT NULL; ",
01714 NULL
01715 };
01716 if (!performActualUpdate(updates, "1289", dbver))
01717 return false;
01718 }
01719
01720 if (dbver == "1289")
01721 {
01722 const char *updates[] = {
01723 "DROP TABLE IF EXISTS netvisionrssitems;",
01724 "DROP TABLE IF EXISTS netvisionsearchgrabbers;",
01725 "DROP TABLE IF EXISTS netvisionsites;",
01726 "DROP TABLE IF EXISTS netvisiontreegrabbers;",
01727 "DROP TABLE IF EXISTS netvisiontreeitems;",
01728 NULL
01729 };
01730
01731 if (!performActualUpdate(updates, "1290", dbver))
01732 return false;
01733 }
01734
01735 if (dbver == "1290")
01736 {
01737 const char *updates[] = {
01738 "ALTER TABLE logging "
01739 " ALTER COLUMN host SET DEFAULT '', "
01740 " ALTER COLUMN application SET DEFAULT '', "
01741 " ALTER COLUMN pid SET DEFAULT '0', "
01742 " ALTER COLUMN thread SET DEFAULT '', "
01743 " ALTER COLUMN level SET DEFAULT '0';",
01744 "ALTER TABLE logging "
01745 " ADD COLUMN tid INT(11) NOT NULL DEFAULT '0' AFTER pid, "
01746 " ADD COLUMN filename VARCHAR(255) NOT NULL DEFAULT '' AFTER thread, "
01747 " ADD COLUMN line INT(11) NOT NULL DEFAULT '0' AFTER filename, "
01748 " ADD COLUMN function VARCHAR(255) NOT NULL DEFAULT '' AFTER line;",
01749 NULL
01750 };
01751
01752 if (!performActualUpdate(updates, "1291", dbver))
01753 return false;
01754 }
01755
01756 if (dbver == "1291")
01757 {
01758 const char *updates[] = {
01759 "UPDATE recorded r, recordedprogram rp SET r.duplicate=0 "
01760 " WHERE r.chanid=rp.chanid AND r.progstart=rp.starttime AND "
01761 " FIND_IN_SET('DAMAGED', rp.videoprop);",
01762 NULL
01763 };
01764
01765 if (!performActualUpdate(updates, "1292", dbver))
01766 return false;
01767 }
01768
01769 if (dbver == "1292")
01770 {
01771 const char *updates[] = {
01772 "ALTER TABLE cardinput "
01773 " ADD COLUMN schedorder INT(10) UNSIGNED NOT NULL DEFAULT '0', "
01774 " ADD COLUMN livetvorder INT(10) UNSIGNED NOT NULL DEFAULT '0';",
01775 "UPDATE cardinput SET schedorder = cardinputid;",
01776 "UPDATE cardinput SET livetvorder = cardid;",
01777 NULL
01778 };
01779
01780 if (gCoreContext->GetNumSetting("LastFreeCard", 0))
01781 {
01782 updates[2] =
01783 "UPDATE cardinput SET livetvorder = "
01784 " (SELECT MAX(cardid) FROM capturecard) - cardid + 1;";
01785 }
01786
01787 if (!performActualUpdate(updates, "1293", dbver))
01788 return false;
01789 }
01790
01791 if (dbver == "1293")
01792 {
01793 const char *updates[] = {
01794 "TRUNCATE TABLE recordmatch",
01795 "ALTER TABLE recordmatch DROP INDEX recordid",
01796 "ALTER TABLE recordmatch ADD UNIQUE INDEX (recordid, chanid, starttime)",
01797 "UPDATE recordfilter SET description='Prime time' WHERE filterid=3",
01798 "UPDATE recordfilter SET description='This episode' WHERE filterid=6",
01799 "REPLACE INTO recordfilter (filterid, description, clause, newruledefault) "
01800 " VALUES (7, 'This series', '(RECTABLE.seriesid <> '''' AND program.seriesid = RECTABLE.seriesid)', 0);",
01801 NULL
01802 };
01803
01804 if (!performActualUpdate(updates, "1294", dbver))
01805 return false;
01806 }
01807
01808 if (dbver == "1294")
01809 {
01810 const char *updates[] = {
01811 "CREATE TABLE videocollection ("
01812 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
01813 " title varchar(256) NOT NULL,"
01814 " contenttype set('MOVIE', 'TELEVISION', 'ADULT', 'MUSICVIDEO', 'HOMEVIDEO') NOT NULL default '',"
01815 " plot text,"
01816 " network varchar(128) DEFAULT NULL,"
01817 " inetref varchar(128) NOT NULL,"
01818 " certification varchar(128) DEFAULT NULL,"
01819 " genre int(10) unsigned DEFAULT '0',"
01820 " releasedate date DEFAULT NULL,"
01821 " language varchar(10) DEFAULT NULL,"
01822 " status varchar(64) DEFAULT NULL,"
01823 " rating float DEFAULT 0,"
01824 " ratingcount int(10) DEFAULT 0,"
01825 " runtime smallint(5) unsigned DEFAULT '0',"
01826 " banner text,"
01827 " fanart text,"
01828 " coverart text,"
01829 " PRIMARY KEY (intid),"
01830 " KEY title (title)"
01831 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
01832 "CREATE TABLE videopathinfo ("
01833 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
01834 " path text,"
01835 " contenttype set('MOVIE', 'TELEVISION', 'ADULT', 'MUSICVIDEO', 'HOMEVIDEO') NOT NULL default '',"
01836 " collectionref int(10) default '0',"
01837 " recurse tinyint(1) default '0',"
01838 " PRIMARY KEY (intid)"
01839 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
01840 "ALTER TABLE videometadata ADD collectionref int(10) NOT NULL DEFAULT '0' AFTER inetref;",
01841 "ALTER TABLE videometadata ADD playcount int(10) NOT NULL DEFAULT '0' AFTER length;",
01842 "ALTER TABLE videometadata ADD contenttype set('MOVIE', 'TELEVISION', 'ADULT', 'MUSICVIDEO', 'HOMEVIDEO') NOT NULL default ''",
01843 "UPDATE videometadata SET contenttype = 'MOVIE';",
01844 "UPDATE videometadata SET contenttype = 'TELEVISION' WHERE season > 0 OR episode > 0;",
01845 NULL
01846 };
01847
01848 if (!performActualUpdate(updates, "1295", dbver))
01849 return false;
01850 }
01851
01852 if (dbver == "1295")
01853 {
01854 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1296");
01855 MSqlQuery query(MSqlQuery::InitCon());
01856 query.prepare("SELECT data, hostname "
01857 "FROM settings "
01858 "WHERE value='BackendServerIP'");
01859 if (!query.exec())
01860 {
01861 LOG(VB_GENERAL, LOG_ERR,
01862 "Unable to repair IP addresses for IPv4/IPv6 split.");
01863 return false;
01864 }
01865
01866 MSqlQuery update(MSqlQuery::InitCon()), insert(MSqlQuery::InitCon());
01867 update.prepare("UPDATE settings "
01868 "SET data=:IP4ADDY "
01869 "WHERE value='BackendServerIP' "
01870 "AND hostname=:HOSTNAME");
01871 insert.prepare("INSERT INTO settings "
01872 "SET value='BackendServerIP6',"
01873 "data=:IP6ADDY,"
01874 "hostname=:HOSTNAME");
01875 while (query.next())
01876 {
01877 QHostAddress oldaddr(query.value(0).toString());
01878 QString hostname = query.value(1).toString();
01879
01880 update.bindValue(":HOSTNAME", hostname);
01881 insert.bindValue(":HOSTNAME", hostname);
01882
01883 if (oldaddr.protocol() == QAbstractSocket::IPv6Protocol)
01884 {
01885 update.bindValue(":IP4ADDY", "127.0.0.1");
01886 insert.bindValue(":IP6ADDY", query.value(0).toString());
01887 }
01888 else if (oldaddr.protocol() == QAbstractSocket::IPv4Protocol)
01889 {
01890 update.bindValue(":IP4ADDY", query.value(0).toString());
01891 insert.bindValue(":IP6ADDY", "::1");
01892 }
01893 else
01894 {
01895 update.bindValue(":IP4ADDY", "127.0.0.1");
01896 insert.bindValue(":IP6ADDY", "::1");
01897 LOG(VB_GENERAL, LOG_CRIT,
01898 QString("Invalid address string '%1' found on %2. "
01899 "Reverting to localhost defaults.")
01900 .arg(query.value(0).toString()).arg(hostname));
01901 }
01902
01903 if (!update.exec() || !insert.exec())
01904 {
01905 LOG(VB_GENERAL, LOG_ERR, QString("Failed to separate IPv4 "
01906 "and IPv6 addresses for %1").arg(hostname));
01907 return false;
01908 }
01909
01910 }
01911
01912 if (!UpdateDBVersionNumber("1296", dbver))
01913 return false;
01914 }
01915
01916 if (dbver == "1296")
01917 {
01918 const char *updates[] = {
01919 "ALTER TABLE videocollection CHANGE inetref collectionref "
01920 "VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_general_ci "
01921 "NOT NULL",
01922 "ALTER TABLE videocollection CHANGE genre genre VARCHAR(128) NULL DEFAULT ''",
01923 NULL
01924 };
01925
01926 if (!performActualUpdate(updates, "1297", dbver))
01927 return false;
01928 }
01929
01930 if (dbver == "1297")
01931 {
01932 const char *updates[] = {
01933 "ALTER TABLE videometadata CHANGE collectionref collectionref INT(10) "
01934 "NOT NULL DEFAULT -1",
01935 "UPDATE videometadata SET collectionref = '-1'",
01936 NULL
01937 };
01938
01939 if (!performActualUpdate(updates, "1298", dbver))
01940 return false;
01941 }
01942
01943 if (dbver == "1298")
01944 {
01945 LOG(VB_GENERAL, LOG_CRIT, "Upgrading to MythTV schema version 1299");
01946
01947
01948
01949
01950
01951
01952 QString deletedMaxAge = gCoreContext->GetSetting("DeletedMaxAge", "0");
01953 gCoreContext->SaveSettingOnHost("DeletedMaxAge", deletedMaxAge, NULL);
01954
01955 QString queryStr;
01956 if (gCoreContext->GetNumSetting("AutoExpireInsteadOfDelete", 0))
01957 {
01958 queryStr = "UPDATE settings SET data='-1' WHERE "
01959 "value='DeletedMaxAge' AND data='0'";
01960 }
01961 else
01962 {
01963 queryStr = "UPDATE settings SET data='0' WHERE "
01964 "value='DeletedMaxAge'";
01965 }
01966
01967 MSqlQuery query(MSqlQuery::InitCon());
01968 query.prepare(queryStr);
01969 if (!query.exec())
01970 {
01971 MythDB::DBError("Could not perform update for '1299'", query);
01972 return false;
01973 }
01974
01975 if (!UpdateDBVersionNumber("1299", dbver))
01976 return false;
01977 }
01978
01979 if (dbver == "1299")
01980 {
01981 const char *updates[] = {
01982 "ALTER TABLE recordmatch ADD COLUMN findid INT NOT NULL DEFAULT 0",
01983 "ALTER TABLE recordmatch ADD INDEX (recordid, findid)",
01984 NULL
01985 };
01986
01987 if (!performActualUpdate(updates, "1300", dbver))
01988 return false;
01989 }
01990
01991 if (dbver == "1300")
01992 {
01993 const char *updates[] = {
01994 "ALTER TABLE channel ADD COLUMN iptvid SMALLINT(6) UNSIGNED;",
01995 "CREATE TABLE iptv_channel ("
01996 " iptvid SMALLINT(6) UNSIGNED NOT NULL auto_increment,"
01997 " chanid INT(10) UNSIGNED NOT NULL,"
01998 " url TEXT NOT NULL,"
01999 " type set('data', "
02000 " 'rfc2733-1','rfc2733-2', "
02001 " 'rfc5109-1','rfc5109-2', "
02002 " 'smpte2022-1','smpte2022-2'),"
02003 " bitrate INT(10) UNSIGNED NOT NULL,"
02004 " PRIMARY KEY (iptvid)"
02005 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02006 NULL
02007 };
02008
02009 if (!performActualUpdate(updates, "1301", dbver))
02010 return false;
02011 }
02012
02013 if (dbver == "1301")
02014 {
02015
02016 RecordingRule record;
02017 record.MakeTemplate("Default");
02018 record.m_type = kTemplateRecord;
02019 record.Save(false);
02020
02021 if (!UpdateDBVersionNumber("1302", dbver))
02022 return false;
02023 }
02024
02025 return true;
02026 }
02027
02044 bool InitializeMythSchema(void)
02045 {
02046 MSqlQuery query(MSqlQuery::InitCon());
02047 query.prepare("SHOW TABLES;");
02048
02049
02050 if (query.exec() && query.isActive() && query.size() > 1)
02051 {
02052 QString msg = QString(
02053 "Told to create a NEW database schema, but the database\n"
02054 "already has %1 tables.\n"
02055 "If you are sure this is a good MythTV database, verify\n"
02056 "that the settings table has the DBSchemaVer variable.\n")
02057 .arg(query.size() - 1);
02058 LOG(VB_GENERAL, LOG_ERR, msg);
02059 return false;
02060 }
02061
02062 LOG(VB_GENERAL, LOG_NOTICE,
02063 "Inserting MythTV initial database information.");
02064
02065 const char *updates[] = {
02066 "CREATE TABLE callsignnetworkmap ("
02067 " id int(11) NOT NULL AUTO_INCREMENT,"
02068 " callsign varchar(20) NOT NULL DEFAULT '',"
02069 " network varchar(20) NOT NULL DEFAULT '',"
02070 " PRIMARY KEY (id),"
02071 " UNIQUE KEY callsign (callsign)"
02072 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02073 "CREATE TABLE capturecard ("
02074 " cardid int(10) unsigned NOT NULL AUTO_INCREMENT,"
02075 " videodevice varchar(128) DEFAULT NULL,"
02076 " audiodevice varchar(128) DEFAULT NULL,"
02077 " vbidevice varchar(128) DEFAULT NULL,"
02078 " cardtype varchar(32) DEFAULT 'V4L',"
02079 " defaultinput varchar(32) DEFAULT 'Television',"
02080 " audioratelimit int(11) DEFAULT NULL,"
02081 " hostname varchar(64) DEFAULT NULL,"
02082 " dvb_swfilter int(11) DEFAULT '0',"
02083 " dvb_sat_type int(11) NOT NULL DEFAULT '0',"
02084 " dvb_wait_for_seqstart int(11) NOT NULL DEFAULT '1',"
02085 " skipbtaudio tinyint(1) DEFAULT '0',"
02086 " dvb_on_demand tinyint(4) NOT NULL DEFAULT '0',"
02087 " dvb_diseqc_type smallint(6) DEFAULT NULL,"
02088 " firewire_speed int(10) unsigned NOT NULL DEFAULT '0',"
02089 " firewire_model varchar(32) DEFAULT NULL,"
02090 " firewire_connection int(10) unsigned NOT NULL DEFAULT '0',"
02091 " signal_timeout int(11) NOT NULL DEFAULT '1000',"
02092 " channel_timeout int(11) NOT NULL DEFAULT '3000',"
02093 " dvb_tuning_delay int(10) unsigned NOT NULL DEFAULT '0',"
02094 " contrast int(11) NOT NULL DEFAULT '0',"
02095 " brightness int(11) NOT NULL DEFAULT '0',"
02096 " colour int(11) NOT NULL DEFAULT '0',"
02097 " hue int(11) NOT NULL DEFAULT '0',"
02098 " diseqcid int(10) unsigned DEFAULT NULL,"
02099 " dvb_eitscan tinyint(1) NOT NULL DEFAULT '1',"
02100 " PRIMARY KEY (cardid)"
02101 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02102 "CREATE TABLE cardinput ("
02103 " cardinputid int(10) unsigned NOT NULL AUTO_INCREMENT,"
02104 " cardid int(10) unsigned NOT NULL DEFAULT '0',"
02105 " sourceid int(10) unsigned NOT NULL DEFAULT '0',"
02106 " inputname varchar(32) NOT NULL DEFAULT '',"
02107 " externalcommand varchar(128) DEFAULT NULL,"
02108 " changer_device varchar(128) DEFAULT NULL,"
02109 " changer_model varchar(128) DEFAULT NULL,"
02110 " tunechan varchar(10) DEFAULT NULL,"
02111 " startchan varchar(10) DEFAULT NULL,"
02112 " displayname varchar(64) NOT NULL DEFAULT '',"
02113 " dishnet_eit tinyint(1) NOT NULL DEFAULT '0',"
02114 " recpriority int(11) NOT NULL DEFAULT '0',"
02115 " quicktune tinyint(4) NOT NULL DEFAULT '0',"
02116 " schedorder int(10) unsigned NOT NULL DEFAULT '0',"
02117 " livetvorder int(10) unsigned NOT NULL DEFAULT '0',"
02118 " PRIMARY KEY (cardinputid)"
02119 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02120 "CREATE TABLE channel ("
02121 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02122 " channum varchar(10) NOT NULL DEFAULT '',"
02123 " freqid varchar(10) DEFAULT NULL,"
02124 " sourceid int(10) unsigned DEFAULT NULL,"
02125 " callsign varchar(20) NOT NULL DEFAULT '',"
02126 " `name` varchar(64) NOT NULL DEFAULT '',"
02127 " icon varchar(255) NOT NULL DEFAULT 'none',"
02128 " finetune int(11) DEFAULT NULL,"
02129 " videofilters varchar(255) NOT NULL DEFAULT '',"
02130 " xmltvid varchar(255) NOT NULL DEFAULT '',"
02131 " recpriority int(10) NOT NULL DEFAULT '0',"
02132 " contrast int(11) DEFAULT '32768',"
02133 " brightness int(11) DEFAULT '32768',"
02134 " colour int(11) DEFAULT '32768',"
02135 " hue int(11) DEFAULT '32768',"
02136 " tvformat varchar(10) NOT NULL DEFAULT 'Default',"
02137 " visible tinyint(1) NOT NULL DEFAULT '1',"
02138 " outputfilters varchar(255) NOT NULL DEFAULT '',"
02139 " useonairguide tinyint(1) DEFAULT '0',"
02140 " mplexid smallint(6) DEFAULT NULL,"
02141 " serviceid mediumint(8) unsigned DEFAULT NULL,"
02142 " tmoffset int(11) NOT NULL DEFAULT '0',"
02143 " atsc_major_chan int(10) unsigned NOT NULL DEFAULT '0',"
02144 " atsc_minor_chan int(10) unsigned NOT NULL DEFAULT '0',"
02145 " last_record datetime NOT NULL,"
02146 " default_authority varchar(32) NOT NULL DEFAULT '',"
02147 " commmethod int(11) NOT NULL DEFAULT '-1',"
02148 " PRIMARY KEY (chanid),"
02149 " KEY channel_src (channum,sourceid),"
02150 " KEY sourceid (sourceid,xmltvid,chanid),"
02151 " KEY visible (visible)"
02152 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02153 "CREATE TABLE channelgroup ("
02154 " id int(10) unsigned NOT NULL AUTO_INCREMENT,"
02155 " chanid int(11) unsigned NOT NULL DEFAULT '0',"
02156 " grpid int(11) NOT NULL DEFAULT '1',"
02157 " PRIMARY KEY (id)"
02158 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02159 "CREATE TABLE channelgroupnames ("
02160 " grpid int(10) unsigned NOT NULL AUTO_INCREMENT,"
02161 " `name` varchar(64) NOT NULL DEFAULT '0',"
02162 " PRIMARY KEY (grpid)"
02163 ") ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;",
02164 "CREATE TABLE channelscan ("
02165 " scanid int(3) unsigned NOT NULL AUTO_INCREMENT,"
02166 " cardid int(3) unsigned NOT NULL,"
02167 " sourceid int(3) unsigned NOT NULL,"
02168 " processed tinyint(1) unsigned NOT NULL,"
02169 " scandate datetime NOT NULL,"
02170 " PRIMARY KEY (scanid)"
02171 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02172 "CREATE TABLE channelscan_channel ("
02173 " transportid int(6) unsigned NOT NULL,"
02174 " scanid int(3) unsigned NOT NULL,"
02175 " mplex_id smallint(6) NOT NULL,"
02176 " source_id int(3) unsigned NOT NULL,"
02177 " channel_id int(3) unsigned NOT NULL DEFAULT '0',"
02178 " callsign varchar(20) NOT NULL DEFAULT '',"
02179 " service_name varchar(64) NOT NULL DEFAULT '',"
02180 " chan_num varchar(10) NOT NULL DEFAULT '',"
02181 " service_id mediumint(8) unsigned NOT NULL DEFAULT '0',"
02182 " atsc_major_channel int(4) unsigned NOT NULL DEFAULT '0',"
02183 " atsc_minor_channel int(4) unsigned NOT NULL DEFAULT '0',"
02184 " use_on_air_guide tinyint(1) NOT NULL DEFAULT '0',"
02185 " hidden tinyint(1) NOT NULL DEFAULT '0',"
02186 " hidden_in_guide tinyint(1) NOT NULL DEFAULT '0',"
02187 " freqid varchar(10) NOT NULL DEFAULT '',"
02188 " icon varchar(255) NOT NULL DEFAULT '',"
02189 " tvformat varchar(10) NOT NULL DEFAULT 'Default',"
02190 " xmltvid varchar(64) NOT NULL DEFAULT '',"
02191 " pat_tsid int(5) unsigned NOT NULL DEFAULT '0',"
02192 " vct_tsid int(5) unsigned NOT NULL DEFAULT '0',"
02193 " vct_chan_tsid int(5) unsigned NOT NULL DEFAULT '0',"
02194 " sdt_tsid int(5) unsigned NOT NULL DEFAULT '0',"
02195 " orig_netid int(5) unsigned NOT NULL DEFAULT '0',"
02196 " netid int(5) unsigned NOT NULL DEFAULT '0',"
02197 " si_standard varchar(10) NOT NULL,"
02198 " in_channels_conf tinyint(1) unsigned NOT NULL DEFAULT '0',"
02199 " in_pat tinyint(1) unsigned NOT NULL DEFAULT '0',"
02200 " in_pmt tinyint(1) unsigned NOT NULL DEFAULT '0',"
02201 " in_vct tinyint(1) unsigned NOT NULL DEFAULT '0',"
02202 " in_nit tinyint(1) unsigned NOT NULL DEFAULT '0',"
02203 " in_sdt tinyint(1) unsigned NOT NULL DEFAULT '0',"
02204 " is_encrypted tinyint(1) unsigned NOT NULL DEFAULT '0',"
02205 " is_data_service tinyint(1) unsigned NOT NULL DEFAULT '0',"
02206 " is_audio_service tinyint(1) unsigned NOT NULL DEFAULT '0',"
02207 " is_opencable tinyint(1) unsigned NOT NULL DEFAULT '0',"
02208 " could_be_opencable tinyint(1) unsigned NOT NULL DEFAULT '0',"
02209 " decryption_status smallint(2) unsigned NOT NULL DEFAULT '0',"
02210 " default_authority varchar(32) NOT NULL DEFAULT ''"
02211 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02212 "CREATE TABLE channelscan_dtv_multiplex ("
02213 " transportid int(6) unsigned NOT NULL AUTO_INCREMENT,"
02214 " scanid int(3) unsigned NOT NULL,"
02215 " mplexid smallint(6) unsigned NOT NULL,"
02216 " frequency bigint(12) unsigned NOT NULL,"
02217 " inversion char(1) NOT NULL DEFAULT 'a',"
02218 " symbolrate bigint(12) unsigned NOT NULL DEFAULT '0',"
02219 " fec varchar(10) NOT NULL DEFAULT 'auto',"
02220 " polarity char(1) NOT NULL DEFAULT '',"
02221 " hp_code_rate varchar(10) NOT NULL DEFAULT 'auto',"
02222 " mod_sys varchar(10) DEFAULT NULL,"
02223 " rolloff varchar(4) DEFAULT NULL,"
02224 " lp_code_rate varchar(10) NOT NULL DEFAULT 'auto',"
02225 " modulation varchar(10) NOT NULL DEFAULT 'auto',"
02226 " transmission_mode char(1) NOT NULL DEFAULT 'a',"
02227 " guard_interval varchar(10) NOT NULL DEFAULT 'auto',"
02228 " hierarchy varchar(10) NOT NULL DEFAULT 'auto',"
02229 " bandwidth char(1) NOT NULL DEFAULT 'a',"
02230 " sistandard varchar(10) NOT NULL,"
02231 " tuner_type smallint(2) unsigned NOT NULL,"
02232 " default_authority varchar(32) NOT NULL DEFAULT '',"
02233 " PRIMARY KEY (transportid)"
02234 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02235 "CREATE TABLE codecparams ("
02236 " `profile` int(10) unsigned NOT NULL DEFAULT '0',"
02237 " `name` varchar(128) NOT NULL DEFAULT '',"
02238 " `value` varchar(128) DEFAULT NULL,"
02239 " PRIMARY KEY (`profile`,`name`)"
02240 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02241 "CREATE TABLE credits ("
02242 " person mediumint(8) unsigned NOT NULL DEFAULT '0',"
02243 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02244 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02245 " role set('actor','director','producer','executive_producer','writer','guest_star','host','adapter','presenter','commentator','guest') NOT NULL DEFAULT '',"
02246 " UNIQUE KEY chanid (chanid,starttime,person,role),"
02247 " KEY person (person,role)"
02248 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02249 "CREATE TABLE customexample ("
02250 " rulename varchar(64) NOT NULL,"
02251 " fromclause varchar(10000) NOT NULL DEFAULT '',"
02252 " whereclause varchar(10000) NOT NULL DEFAULT '',"
02253 " search tinyint(4) NOT NULL DEFAULT '0',"
02254 " PRIMARY KEY (rulename)"
02255 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02256 "CREATE TABLE diseqc_config ("
02257 " cardinputid int(10) unsigned NOT NULL,"
02258 " diseqcid int(10) unsigned NOT NULL,"
02259 " `value` varchar(16) NOT NULL DEFAULT '',"
02260 " KEY id (cardinputid)"
02261 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02262 "CREATE TABLE diseqc_tree ("
02263 " diseqcid int(10) unsigned NOT NULL AUTO_INCREMENT,"
02264 " parentid int(10) unsigned DEFAULT NULL,"
02265 " ordinal tinyint(3) unsigned NOT NULL,"
02266 " `type` varchar(16) NOT NULL DEFAULT '',"
02267 " subtype varchar(16) NOT NULL DEFAULT '',"
02268 " description varchar(32) NOT NULL DEFAULT '',"
02269 " switch_ports tinyint(3) unsigned NOT NULL DEFAULT '0',"
02270 " rotor_hi_speed float NOT NULL DEFAULT '0',"
02271 " rotor_lo_speed float NOT NULL DEFAULT '0',"
02272 " rotor_positions varchar(255) NOT NULL DEFAULT '',"
02273 " lnb_lof_switch int(10) NOT NULL DEFAULT '0',"
02274 " lnb_lof_hi int(10) NOT NULL DEFAULT '0',"
02275 " lnb_lof_lo int(10) NOT NULL DEFAULT '0',"
02276 " cmd_repeat int(11) NOT NULL DEFAULT '1',"
02277 " lnb_pol_inv tinyint(4) NOT NULL DEFAULT '0',"
02278 " address tinyint(3) unsigned NOT NULL DEFAULT '0',"
02279 " PRIMARY KEY (diseqcid),"
02280 " KEY parentid (parentid)"
02281 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02282 "CREATE TABLE displayprofilegroups ("
02283 " `name` varchar(128) NOT NULL,"
02284 " hostname varchar(64) NOT NULL,"
02285 " profilegroupid int(10) unsigned NOT NULL AUTO_INCREMENT,"
02286 " PRIMARY KEY (`name`,hostname),"
02287 " UNIQUE KEY profilegroupid (profilegroupid)"
02288 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02289 "CREATE TABLE displayprofiles ("
02290 " profilegroupid int(10) unsigned NOT NULL,"
02291 " profileid int(10) unsigned NOT NULL AUTO_INCREMENT,"
02292 " `value` varchar(128) NOT NULL,"
02293 " `data` varchar(255) NOT NULL DEFAULT '',"
02294 " KEY profilegroupid (profilegroupid),"
02295 " KEY profileid (profileid,`value`),"
02296 " KEY profileid_2 (profileid)"
02297 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02298 "CREATE TABLE dtv_multiplex ("
02299 " mplexid smallint(6) NOT NULL AUTO_INCREMENT,"
02300 " sourceid smallint(6) DEFAULT NULL,"
02301 " transportid int(11) DEFAULT NULL,"
02302 " networkid int(11) DEFAULT NULL,"
02303 " frequency int(11) DEFAULT NULL,"
02304 " inversion char(1) DEFAULT 'a',"
02305 " symbolrate int(11) DEFAULT NULL,"
02306 " fec varchar(10) DEFAULT 'auto',"
02307 " polarity char(1) DEFAULT NULL,"
02308 " modulation varchar(10) DEFAULT 'auto',"
02309 " bandwidth char(1) DEFAULT 'a',"
02310 " lp_code_rate varchar(10) DEFAULT 'auto',"
02311 " transmission_mode char(1) DEFAULT 'a',"
02312 " guard_interval varchar(10) DEFAULT 'auto',"
02313 " visible smallint(1) NOT NULL DEFAULT '0',"
02314 " constellation varchar(10) DEFAULT 'auto',"
02315 " hierarchy varchar(10) DEFAULT 'auto',"
02316 " hp_code_rate varchar(10) DEFAULT 'auto',"
02317 " mod_sys varchar(10) DEFAULT NULL,"
02318 " rolloff varchar(4) DEFAULT NULL,"
02319 " sistandard varchar(10) DEFAULT 'dvb',"
02320 " serviceversion smallint(6) DEFAULT '33',"
02321 " updatetimestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
02322 " default_authority varchar(32) NOT NULL DEFAULT '',"
02323 " PRIMARY KEY (mplexid)"
02324 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02325 "CREATE TABLE dtv_privatetypes ("
02326 " sitype varchar(4) NOT NULL DEFAULT '',"
02327 " networkid int(11) NOT NULL DEFAULT '0',"
02328 " private_type varchar(20) NOT NULL DEFAULT '',"
02329 " private_value varchar(100) NOT NULL DEFAULT ''"
02330 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02331 "CREATE TABLE dvdbookmark ("
02332 " serialid varchar(16) NOT NULL DEFAULT '',"
02333 " `name` varchar(32) DEFAULT NULL,"
02334 " title smallint(6) NOT NULL DEFAULT '0',"
02335 " audionum tinyint(4) NOT NULL DEFAULT '-1',"
02336 " subtitlenum tinyint(4) NOT NULL DEFAULT '-1',"
02337 " framenum bigint(20) NOT NULL DEFAULT '0',"
02338 " `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
02339 " PRIMARY KEY (serialid)"
02340 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02341 "CREATE TABLE dvdinput ("
02342 " intid int(10) unsigned NOT NULL,"
02343 " hsize int(10) unsigned DEFAULT NULL,"
02344 " vsize int(10) unsigned DEFAULT NULL,"
02345 " ar_num int(10) unsigned DEFAULT NULL,"
02346 " ar_denom int(10) unsigned DEFAULT NULL,"
02347 " fr_code int(10) unsigned DEFAULT NULL,"
02348 " letterbox tinyint(1) DEFAULT NULL,"
02349 " v_format varchar(16) DEFAULT NULL,"
02350 " PRIMARY KEY (intid)"
02351 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02352 "CREATE TABLE dvdtranscode ("
02353 " intid int(11) NOT NULL AUTO_INCREMENT,"
02354 " input int(10) unsigned DEFAULT NULL,"
02355 " `name` varchar(128) NOT NULL,"
02356 " sync_mode int(10) unsigned DEFAULT NULL,"
02357 " use_yv12 tinyint(1) DEFAULT NULL,"
02358 " cliptop int(11) DEFAULT NULL,"
02359 " clipbottom int(11) DEFAULT NULL,"
02360 " clipleft int(11) DEFAULT NULL,"
02361 " clipright int(11) DEFAULT NULL,"
02362 " f_resize_h int(11) DEFAULT NULL,"
02363 " f_resize_w int(11) DEFAULT NULL,"
02364 " hq_resize_h int(11) DEFAULT NULL,"
02365 " hq_resize_w int(11) DEFAULT NULL,"
02366 " grow_h int(11) DEFAULT NULL,"
02367 " grow_w int(11) DEFAULT NULL,"
02368 " clip2top int(11) DEFAULT NULL,"
02369 " clip2bottom int(11) DEFAULT NULL,"
02370 " clip2left int(11) DEFAULT NULL,"
02371 " clip2right int(11) DEFAULT NULL,"
02372 " codec varchar(128) NOT NULL,"
02373 " codec_param varchar(128) DEFAULT NULL,"
02374 " bitrate int(11) DEFAULT NULL,"
02375 " a_sample_r int(11) DEFAULT NULL,"
02376 " a_bitrate int(11) DEFAULT NULL,"
02377 " two_pass tinyint(1) DEFAULT NULL,"
02378 " tc_param varchar(128) DEFAULT NULL,"
02379 " PRIMARY KEY (intid)"
02380 ") ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;",
02381 "CREATE TABLE eit_cache ("
02382 " chanid int(10) NOT NULL,"
02383 " eventid int(10) unsigned NOT NULL DEFAULT '0',"
02384 " tableid tinyint(3) unsigned NOT NULL,"
02385 " version tinyint(3) unsigned NOT NULL,"
02386 " endtime int(10) unsigned NOT NULL,"
02387 " `status` tinyint(4) NOT NULL DEFAULT '0',"
02388 " PRIMARY KEY (chanid,eventid,`status`)"
02389 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02390 "CREATE TABLE filemarkup ("
02391 " filename text NOT NULL,"
02392 " mark mediumint(8) unsigned NOT NULL DEFAULT '0',"
02393 " `offset` bigint(20) unsigned DEFAULT NULL,"
02394 " `type` tinyint(4) NOT NULL DEFAULT '0',"
02395 " KEY filename (filename(255))"
02396 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02397 "CREATE TABLE housekeeping ("
02398 " tag varchar(64) NOT NULL DEFAULT '',"
02399 " lastrun datetime DEFAULT NULL,"
02400 " PRIMARY KEY (tag)"
02401 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02402 "CREATE TABLE inputgroup ("
02403 " cardinputid int(10) unsigned NOT NULL,"
02404 " inputgroupid int(10) unsigned NOT NULL,"
02405 " inputgroupname varchar(32) NOT NULL"
02406 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02407 "CREATE TABLE internetcontent ("
02408 " `name` varchar(255) NOT NULL,"
02409 " thumbnail varchar(255) DEFAULT NULL,"
02410 " `type` smallint(3) NOT NULL,"
02411 " author varchar(128) NOT NULL,"
02412 " description text NOT NULL,"
02413 " commandline text NOT NULL,"
02414 " version double NOT NULL,"
02415 " updated datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02416 " search tinyint(1) NOT NULL,"
02417 " tree tinyint(1) NOT NULL,"
02418 " podcast tinyint(1) NOT NULL,"
02419 " download tinyint(1) NOT NULL,"
02420 " `host` varchar(128) DEFAULT NULL"
02421 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02422 "CREATE TABLE internetcontentarticles ("
02423 " feedtitle varchar(255) NOT NULL,"
02424 " path text NOT NULL,"
02425 " paththumb text NOT NULL,"
02426 " title varchar(255) NOT NULL,"
02427 " subtitle varchar(255) NOT NULL,"
02428 " season smallint(5) NOT NULL DEFAULT '0',"
02429 " episode smallint(5) NOT NULL DEFAULT '0',"
02430 " description text NOT NULL,"
02431 " url text NOT NULL,"
02432 " `type` smallint(3) NOT NULL,"
02433 " thumbnail text NOT NULL,"
02434 " mediaURL text NOT NULL,"
02435 " author varchar(255) NOT NULL,"
02436 " `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02437 " `time` int(11) NOT NULL,"
02438 " rating varchar(255) NOT NULL,"
02439 " filesize bigint(20) NOT NULL,"
02440 " player varchar(255) NOT NULL,"
02441 " playerargs text NOT NULL,"
02442 " download varchar(255) NOT NULL,"
02443 " downloadargs text NOT NULL,"
02444 " width smallint(6) NOT NULL,"
02445 " height smallint(6) NOT NULL,"
02446 " `language` varchar(128) NOT NULL,"
02447 " podcast tinyint(1) NOT NULL,"
02448 " downloadable tinyint(1) NOT NULL,"
02449 " customhtml tinyint(1) NOT NULL,"
02450 " countries varchar(255) NOT NULL"
02451 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02452 "CREATE TABLE inuseprograms ("
02453 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02454 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02455 " recusage varchar(128) NOT NULL DEFAULT '',"
02456 " lastupdatetime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02457 " hostname varchar(64) NOT NULL DEFAULT '',"
02458 " rechost varchar(64) NOT NULL,"
02459 " recdir varchar(255) NOT NULL DEFAULT '',"
02460 " KEY chanid (chanid,starttime),"
02461 " KEY recusage (recusage,lastupdatetime)"
02462 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02463 "CREATE TABLE jobqueue ("
02464 " id int(11) NOT NULL AUTO_INCREMENT,"
02465 " chanid int(10) NOT NULL DEFAULT '0',"
02466 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02467 " inserttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02468 " `type` int(11) NOT NULL DEFAULT '0',"
02469 " cmds int(11) NOT NULL DEFAULT '0',"
02470 " flags int(11) NOT NULL DEFAULT '0',"
02471 " `status` int(11) NOT NULL DEFAULT '0',"
02472 " statustime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
02473 " hostname varchar(64) NOT NULL DEFAULT '',"
02474 " args blob NOT NULL,"
02475 " `comment` varchar(128) NOT NULL DEFAULT '',"
02476 " schedruntime datetime NOT NULL DEFAULT '2007-01-01 00:00:00',"
02477 " PRIMARY KEY (id),"
02478 " UNIQUE KEY chanid (chanid,starttime,`type`,inserttime)"
02479 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02480 "CREATE TABLE jumppoints ("
02481 " destination varchar(128) NOT NULL DEFAULT '',"
02482 " description varchar(255) DEFAULT NULL,"
02483 " keylist varchar(128) DEFAULT NULL,"
02484 " hostname varchar(64) NOT NULL DEFAULT '',"
02485 " PRIMARY KEY (destination,hostname)"
02486 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02487 "CREATE TABLE keybindings ("
02488 " `context` varchar(32) NOT NULL DEFAULT '',"
02489 " `action` varchar(32) NOT NULL DEFAULT '',"
02490 " description varchar(255) DEFAULT NULL,"
02491 " keylist varchar(128) DEFAULT NULL,"
02492 " hostname varchar(64) NOT NULL DEFAULT '',"
02493 " PRIMARY KEY (`context`,`action`,hostname)"
02494 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02495 "CREATE TABLE keyword ("
02496 " phrase varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
02497 " searchtype int(10) unsigned NOT NULL DEFAULT '3',"
02498 " UNIQUE KEY phrase (phrase,searchtype)"
02499 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02500 "CREATE TABLE livestream ("
02501 " id int(10) unsigned NOT NULL AUTO_INCREMENT,"
02502 " width int(10) unsigned NOT NULL,"
02503 " height int(10) unsigned NOT NULL,"
02504 " bitrate int(10) unsigned NOT NULL,"
02505 " audiobitrate int(10) unsigned NOT NULL,"
02506 " samplerate int(10) unsigned NOT NULL,"
02507 " audioonlybitrate int(10) unsigned NOT NULL,"
02508 " segmentsize int(10) unsigned NOT NULL DEFAULT '10',"
02509 " maxsegments int(10) unsigned NOT NULL DEFAULT '0',"
02510 " startsegment int(10) unsigned NOT NULL DEFAULT '0',"
02511 " currentsegment int(10) unsigned NOT NULL DEFAULT '0',"
02512 " segmentcount int(10) unsigned NOT NULL DEFAULT '0',"
02513 " percentcomplete int(10) unsigned NOT NULL DEFAULT '0',"
02514 " created datetime NOT NULL,"
02515 " lastmodified datetime NOT NULL,"
02516 " relativeurl varchar(512) NOT NULL,"
02517 " fullurl varchar(1024) NOT NULL,"
02518 " `status` int(10) unsigned NOT NULL DEFAULT '0',"
02519 " statusmessage varchar(256) NOT NULL,"
02520 " sourcefile varchar(512) NOT NULL,"
02521 " sourcehost varchar(64) NOT NULL,"
02522 " sourcewidth int(10) unsigned NOT NULL DEFAULT '0',"
02523 " sourceheight int(10) unsigned NOT NULL DEFAULT '0',"
02524 " outdir varchar(256) NOT NULL,"
02525 " outbase varchar(128) NOT NULL,"
02526 " PRIMARY KEY (id)"
02527 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02528 "CREATE TABLE logging ("
02529 " id bigint(20) unsigned NOT NULL AUTO_INCREMENT,"
02530 " `host` varchar(64) NOT NULL DEFAULT '',"
02531 " application varchar(64) NOT NULL DEFAULT '',"
02532 " pid int(11) NOT NULL DEFAULT '0',"
02533 " tid int(11) NOT NULL DEFAULT '0',"
02534 " thread varchar(64) NOT NULL DEFAULT '',"
02535 " filename varchar(255) NOT NULL DEFAULT '',"
02536 " line int(11) NOT NULL DEFAULT '0',"
02537 " `function` varchar(255) NOT NULL DEFAULT '',"
02538 " msgtime datetime NOT NULL,"
02539 " `level` int(11) NOT NULL DEFAULT '0',"
02540 " message varchar(2048) NOT NULL,"
02541 " PRIMARY KEY (id),"
02542 " KEY `host` (`host`,application,pid,msgtime),"
02543 " KEY msgtime (msgtime),"
02544 " KEY `level` (`level`)"
02545 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02546 "CREATE TABLE mythlog ("
02547 " logid int(10) unsigned NOT NULL AUTO_INCREMENT,"
02548 " module varchar(32) NOT NULL DEFAULT '',"
02549 " priority int(11) NOT NULL DEFAULT '0',"
02550 " acknowledged tinyint(1) DEFAULT '0',"
02551 " logdate datetime DEFAULT NULL,"
02552 " `host` varchar(128) DEFAULT NULL,"
02553 " message varchar(255) NOT NULL DEFAULT '',"
02554 " details varchar(16000) NOT NULL DEFAULT '',"
02555 " PRIMARY KEY (logid),"
02556 " KEY module (module)"
02557 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02558 "CREATE TABLE networkiconmap ("
02559 " id int(11) NOT NULL AUTO_INCREMENT,"
02560 " network varchar(20) NOT NULL DEFAULT '',"
02561 " url varchar(255) NOT NULL DEFAULT '',"
02562 " PRIMARY KEY (id),"
02563 " UNIQUE KEY network (network)"
02564 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02565 "CREATE TABLE oldfind ("
02566 " recordid int(11) NOT NULL DEFAULT '0',"
02567 " findid int(11) NOT NULL DEFAULT '0',"
02568 " PRIMARY KEY (recordid,findid)"
02569 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02570 "CREATE TABLE oldprogram ("
02571 " oldtitle varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
02572 " airdate datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02573 " PRIMARY KEY (oldtitle)"
02574 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02575 "CREATE TABLE oldrecorded ("
02576 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02577 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02578 " endtime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02579 " title varchar(128) NOT NULL DEFAULT '',"
02580 " subtitle varchar(128) NOT NULL DEFAULT '',"
02581 " description varchar(16000) NOT NULL DEFAULT '',"
02582 " season smallint(5) NOT NULL,"
02583 " episode smallint(5) NOT NULL,"
02584 " category varchar(64) NOT NULL DEFAULT '',"
02585 " seriesid varchar(40) NOT NULL DEFAULT '',"
02586 " programid varchar(40) NOT NULL DEFAULT '',"
02587 " inetref varchar(40) NOT NULL,"
02588 " findid int(11) NOT NULL DEFAULT '0',"
02589 " recordid int(11) NOT NULL DEFAULT '0',"
02590 " station varchar(20) NOT NULL DEFAULT '',"
02591 " rectype int(10) unsigned NOT NULL DEFAULT '0',"
02592 " `duplicate` tinyint(1) NOT NULL DEFAULT '0',"
02593 " recstatus int(11) NOT NULL DEFAULT '0',"
02594 " reactivate smallint(6) NOT NULL DEFAULT '0',"
02595 " generic tinyint(1) NOT NULL,"
02596 " future tinyint(1) NOT NULL DEFAULT '0',"
02597 " PRIMARY KEY (station,starttime,title),"
02598 " KEY endtime (endtime),"
02599 " KEY title (title),"
02600 " KEY seriesid (seriesid),"
02601 " KEY programid (programid),"
02602 " KEY recordid (recordid),"
02603 " KEY recstatus (recstatus,programid,seriesid),"
02604 " KEY recstatus_2 (recstatus,title,subtitle),"
02605 " KEY future (future),"
02606 " KEY chanid (chanid,starttime),"
02607 " KEY subtitle (subtitle),"
02608 " KEY description (description(255))"
02609 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02610 "CREATE TABLE people ("
02611 " person mediumint(8) unsigned NOT NULL AUTO_INCREMENT,"
02612 " `name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
02613 " PRIMARY KEY (person),"
02614 " UNIQUE KEY `name` (`name`(41))"
02615 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02616 "CREATE TABLE pidcache ("
02617 " chanid smallint(6) NOT NULL DEFAULT '0',"
02618 " pid int(11) NOT NULL DEFAULT '-1',"
02619 " tableid int(11) NOT NULL DEFAULT '-1',"
02620 " KEY chanid (chanid)"
02621 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02622 "CREATE TABLE playgroup ("
02623 " `name` varchar(32) NOT NULL DEFAULT '',"
02624 " titlematch varchar(255) NOT NULL DEFAULT '',"
02625 " skipahead int(11) NOT NULL DEFAULT '0',"
02626 " skipback int(11) NOT NULL DEFAULT '0',"
02627 " timestretch int(11) NOT NULL DEFAULT '0',"
02628 " jump int(11) NOT NULL DEFAULT '0',"
02629 " PRIMARY KEY (`name`)"
02630 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02631 "CREATE TABLE powerpriority ("
02632 " priorityname varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,"
02633 " recpriority int(10) NOT NULL DEFAULT '0',"
02634 " selectclause varchar(16000) NOT NULL DEFAULT '',"
02635 " PRIMARY KEY (priorityname)"
02636 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02637 "CREATE TABLE profilegroups ("
02638 " id int(10) unsigned NOT NULL AUTO_INCREMENT,"
02639 " `name` varchar(128) DEFAULT NULL,"
02640 " cardtype varchar(32) NOT NULL DEFAULT 'V4L',"
02641 " is_default int(1) DEFAULT '0',"
02642 " hostname varchar(64) DEFAULT NULL,"
02643 " PRIMARY KEY (id),"
02644 " UNIQUE KEY `name` (`name`,hostname),"
02645 " KEY cardtype (cardtype)"
02646 ") ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;",
02647 "CREATE TABLE program ("
02648 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02649 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02650 " endtime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02651 " title varchar(128) NOT NULL DEFAULT '',"
02652 " subtitle varchar(128) NOT NULL DEFAULT '',"
02653 " description varchar(16000) NOT NULL DEFAULT '',"
02654 " category varchar(64) NOT NULL DEFAULT '',"
02655 " category_type varchar(64) NOT NULL DEFAULT '',"
02656 " airdate year(4) NOT NULL DEFAULT '0000',"
02657 " stars float NOT NULL DEFAULT '0',"
02658 " previouslyshown tinyint(4) NOT NULL DEFAULT '0',"
02659 " title_pronounce varchar(128) NOT NULL DEFAULT '',"
02660 " stereo tinyint(1) NOT NULL DEFAULT '0',"
02661 " subtitled tinyint(1) NOT NULL DEFAULT '0',"
02662 " hdtv tinyint(1) NOT NULL DEFAULT '0',"
02663 " closecaptioned tinyint(1) NOT NULL DEFAULT '0',"
02664 " partnumber int(11) NOT NULL DEFAULT '0',"
02665 " parttotal int(11) NOT NULL DEFAULT '0',"
02666 " seriesid varchar(64) NOT NULL DEFAULT '',"
02667 " originalairdate date DEFAULT NULL,"
02668 " showtype varchar(30) NOT NULL DEFAULT '',"
02669 " colorcode varchar(20) NOT NULL DEFAULT '',"
02670 " syndicatedepisodenumber varchar(20) NOT NULL DEFAULT '',"
02671 " programid varchar(64) NOT NULL DEFAULT '',"
02672 " manualid int(10) unsigned NOT NULL DEFAULT '0',"
02673 " generic tinyint(1) DEFAULT '0',"
02674 " listingsource int(11) NOT NULL DEFAULT '0',"
02675 " `first` tinyint(1) NOT NULL DEFAULT '0',"
02676 " `last` tinyint(1) NOT NULL DEFAULT '0',"
02677 " audioprop set('STEREO','MONO','SURROUND','DOLBY','HARDHEAR','VISUALIMPAIR') NOT NULL,"
02678 " subtitletypes set('HARDHEAR','NORMAL','ONSCREEN','SIGNED') NOT NULL,"
02679 " videoprop set('HDTV','WIDESCREEN','AVC') NOT NULL,"
02680 " PRIMARY KEY (chanid,starttime,manualid),"
02681 " KEY endtime (endtime),"
02682 " KEY title (title),"
02683 " KEY title_pronounce (title_pronounce),"
02684 " KEY seriesid (seriesid),"
02685 " KEY id_start_end (chanid,starttime,endtime),"
02686 " KEY program_manualid (manualid),"
02687 " KEY previouslyshown (previouslyshown),"
02688 " KEY programid (programid,starttime),"
02689 " KEY starttime (starttime),"
02690 " KEY subtitle (subtitle),"
02691 " KEY description (description(255))"
02692 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02693 "CREATE TABLE programgenres ("
02694 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02695 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02696 " relevance char(1) NOT NULL DEFAULT '',"
02697 " genre varchar(30) DEFAULT NULL,"
02698 " PRIMARY KEY (chanid,starttime,relevance),"
02699 " KEY genre (genre)"
02700 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02701 "CREATE TABLE programrating ("
02702 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02703 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02704 " system varchar(8) DEFAULT NULL,"
02705 " rating varchar(16) DEFAULT NULL,"
02706 " UNIQUE KEY chanid (chanid,starttime,system,rating),"
02707 " KEY starttime (starttime,system)"
02708 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02709 "CREATE TABLE recgrouppassword ("
02710 " recgroup varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
02711 " `password` varchar(10) NOT NULL DEFAULT '',"
02712 " PRIMARY KEY (recgroup)"
02713 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02714 "CREATE TABLE record ("
02715 " recordid int(10) unsigned NOT NULL AUTO_INCREMENT,"
02716 " `type` int(10) unsigned NOT NULL DEFAULT '0',"
02717 " chanid int(10) unsigned DEFAULT NULL,"
02718 " starttime time NOT NULL DEFAULT '00:00:00',"
02719 " startdate date NOT NULL DEFAULT '0000-00-00',"
02720 " endtime time NOT NULL DEFAULT '00:00:00',"
02721 " enddate date NOT NULL DEFAULT '0000-00-00',"
02722 " title varchar(128) NOT NULL DEFAULT '',"
02723 " subtitle varchar(128) NOT NULL DEFAULT '',"
02724 " description varchar(16000) NOT NULL DEFAULT '',"
02725 " season smallint(5) NOT NULL,"
02726 " episode smallint(5) NOT NULL,"
02727 " category varchar(64) NOT NULL DEFAULT '',"
02728 " `profile` varchar(128) NOT NULL DEFAULT 'Default',"
02729 " recpriority int(10) NOT NULL DEFAULT '0',"
02730 " autoexpire int(11) NOT NULL DEFAULT '0',"
02731 " maxepisodes int(11) NOT NULL DEFAULT '0',"
02732 " maxnewest int(11) NOT NULL DEFAULT '0',"
02733 " startoffset int(11) NOT NULL DEFAULT '0',"
02734 " endoffset int(11) NOT NULL DEFAULT '0',"
02735 " recgroup varchar(32) NOT NULL DEFAULT 'Default',"
02736 " dupmethod int(11) NOT NULL DEFAULT '6',"
02737 " dupin int(11) NOT NULL DEFAULT '15',"
02738 " station varchar(20) NOT NULL DEFAULT '',"
02739 " seriesid varchar(40) NOT NULL DEFAULT '',"
02740 " programid varchar(40) NOT NULL DEFAULT '',"
02741 " inetref varchar(40) NOT NULL,"
02742 " search int(10) unsigned NOT NULL DEFAULT '0',"
02743 " autotranscode tinyint(1) NOT NULL DEFAULT '0',"
02744 " autocommflag tinyint(1) NOT NULL DEFAULT '0',"
02745 " autouserjob1 tinyint(1) NOT NULL DEFAULT '0',"
02746 " autouserjob2 tinyint(1) NOT NULL DEFAULT '0',"
02747 " autouserjob3 tinyint(1) NOT NULL DEFAULT '0',"
02748 " autouserjob4 tinyint(1) NOT NULL DEFAULT '0',"
02749 " autometadata tinyint(1) NOT NULL DEFAULT '0',"
02750 " findday tinyint(4) NOT NULL DEFAULT '0',"
02751 " findtime time NOT NULL DEFAULT '00:00:00',"
02752 " findid int(11) NOT NULL DEFAULT '0',"
02753 " inactive tinyint(1) NOT NULL DEFAULT '0',"
02754 " parentid int(11) NOT NULL DEFAULT '0',"
02755 " transcoder int(11) NOT NULL DEFAULT '0',"
02756 " playgroup varchar(32) NOT NULL DEFAULT 'Default',"
02757 " prefinput int(10) NOT NULL DEFAULT '0',"
02758 " next_record datetime NOT NULL,"
02759 " last_record datetime NOT NULL,"
02760 " last_delete datetime NOT NULL,"
02761 " storagegroup varchar(32) NOT NULL DEFAULT 'Default',"
02762 " avg_delay int(11) NOT NULL DEFAULT '100',"
02763 " filter int(10) unsigned NOT NULL DEFAULT '0',"
02764 " PRIMARY KEY (recordid),"
02765 " KEY chanid (chanid,starttime),"
02766 " KEY title (title),"
02767 " KEY seriesid (seriesid),"
02768 " KEY programid (programid),"
02769 " KEY maxepisodes (maxepisodes),"
02770 " KEY search (search),"
02771 " KEY `type` (`type`)"
02772 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02773 "CREATE TABLE recorded ("
02774 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02775 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02776 " endtime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02777 " title varchar(128) NOT NULL DEFAULT '',"
02778 " subtitle varchar(128) NOT NULL DEFAULT '',"
02779 " description varchar(16000) NOT NULL DEFAULT '',"
02780 " season smallint(5) NOT NULL,"
02781 " episode smallint(5) NOT NULL,"
02782 " category varchar(64) NOT NULL DEFAULT '',"
02783 " hostname varchar(64) NOT NULL DEFAULT '',"
02784 " bookmark tinyint(1) NOT NULL DEFAULT '0',"
02785 " editing int(10) unsigned NOT NULL DEFAULT '0',"
02786 " cutlist tinyint(1) NOT NULL DEFAULT '0',"
02787 " autoexpire int(11) NOT NULL DEFAULT '0',"
02788 " commflagged int(10) unsigned NOT NULL DEFAULT '0',"
02789 " recgroup varchar(32) NOT NULL DEFAULT 'Default',"
02790 " recordid int(11) DEFAULT NULL,"
02791 " seriesid varchar(40) NOT NULL DEFAULT '',"
02792 " programid varchar(40) NOT NULL DEFAULT '',"
02793 " inetref varchar(40) NOT NULL,"
02794 " lastmodified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
02795 " filesize bigint(20) NOT NULL DEFAULT '0',"
02796 " stars float NOT NULL DEFAULT '0',"
02797 " previouslyshown tinyint(1) DEFAULT '0',"
02798 " originalairdate date DEFAULT NULL,"
02799 " `preserve` tinyint(1) NOT NULL DEFAULT '0',"
02800 " findid int(11) NOT NULL DEFAULT '0',"
02801 " deletepending tinyint(1) NOT NULL DEFAULT '0',"
02802 " transcoder int(11) NOT NULL DEFAULT '0',"
02803 " timestretch float NOT NULL DEFAULT '1',"
02804 " recpriority int(11) NOT NULL DEFAULT '0',"
02805 " basename varchar(255) NOT NULL,"
02806 " progstart datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02807 " progend datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02808 " playgroup varchar(32) NOT NULL DEFAULT 'Default',"
02809 " `profile` varchar(32) NOT NULL DEFAULT '',"
02810 " `duplicate` tinyint(1) NOT NULL DEFAULT '0',"
02811 " transcoded tinyint(1) NOT NULL DEFAULT '0',"
02812 " watched tinyint(4) NOT NULL DEFAULT '0',"
02813 " storagegroup varchar(32) NOT NULL DEFAULT 'Default',"
02814 " bookmarkupdate timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',"
02815 " PRIMARY KEY (chanid,starttime),"
02816 " KEY endtime (endtime),"
02817 " KEY seriesid (seriesid),"
02818 " KEY programid (programid),"
02819 " KEY title (title),"
02820 " KEY recordid (recordid),"
02821 " KEY deletepending (deletepending,lastmodified),"
02822 " KEY recgroup (recgroup,endtime)"
02823 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02824 "CREATE TABLE recordedartwork ("
02825 " inetref varchar(255) NOT NULL,"
02826 " season smallint(5) NOT NULL,"
02827 " `host` text NOT NULL,"
02828 " coverart text NOT NULL,"
02829 " fanart text NOT NULL,"
02830 " banner text NOT NULL"
02831 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02832 "CREATE TABLE recordedcredits ("
02833 " person mediumint(8) unsigned NOT NULL DEFAULT '0',"
02834 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02835 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02836 " role set('actor','director','producer','executive_producer','writer','guest_star','host','adapter','presenter','commentator','guest') NOT NULL DEFAULT '',"
02837 " UNIQUE KEY chanid (chanid,starttime,person,role),"
02838 " KEY person (person,role)"
02839 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02840 "CREATE TABLE recordedfile ("
02841 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02842 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02843 " basename varchar(128) NOT NULL DEFAULT '',"
02844 " filesize bigint(20) NOT NULL DEFAULT '0',"
02845 " width smallint(5) unsigned NOT NULL DEFAULT '0',"
02846 " height smallint(5) unsigned NOT NULL DEFAULT '0',"
02847 " fps float(6,3) NOT NULL DEFAULT '0.000',"
02848 " aspect float(8,6) NOT NULL DEFAULT '0.000000',"
02849 " audio_sample_rate smallint(5) unsigned NOT NULL DEFAULT '0',"
02850 " audio_bits_per_sample smallint(5) unsigned NOT NULL DEFAULT '0',"
02851 " audio_channels tinyint(3) unsigned NOT NULL DEFAULT '0',"
02852 " audio_type varchar(255) NOT NULL DEFAULT '',"
02853 " video_type varchar(255) NOT NULL DEFAULT '',"
02854 " `comment` varchar(255) NOT NULL DEFAULT '',"
02855 " hostname varchar(64) NOT NULL,"
02856 " storagegroup varchar(32) NOT NULL,"
02857 " id int(11) NOT NULL AUTO_INCREMENT,"
02858 " PRIMARY KEY (id),"
02859 " UNIQUE KEY chanid (chanid,starttime,basename),"
02860 " KEY basename (basename)"
02861 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02862 "CREATE TABLE recordedmarkup ("
02863 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02864 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02865 " mark mediumint(8) unsigned NOT NULL DEFAULT '0',"
02866 " `type` tinyint(4) NOT NULL DEFAULT '0',"
02867 " `data` int(11) unsigned DEFAULT NULL,"
02868 " PRIMARY KEY (chanid,starttime,`type`,mark)"
02869 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02870 "CREATE TABLE recordedprogram ("
02871 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02872 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02873 " endtime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02874 " title varchar(128) NOT NULL DEFAULT '',"
02875 " subtitle varchar(128) NOT NULL DEFAULT '',"
02876 " description varchar(16000) NOT NULL DEFAULT '',"
02877 " category varchar(64) NOT NULL DEFAULT '',"
02878 " category_type varchar(64) NOT NULL DEFAULT '',"
02879 " airdate year(4) NOT NULL DEFAULT '0000',"
02880 " stars float unsigned NOT NULL DEFAULT '0',"
02881 " previouslyshown tinyint(4) NOT NULL DEFAULT '0',"
02882 " title_pronounce varchar(128) NOT NULL DEFAULT '',"
02883 " stereo tinyint(1) NOT NULL DEFAULT '0',"
02884 " subtitled tinyint(1) NOT NULL DEFAULT '0',"
02885 " hdtv tinyint(1) NOT NULL DEFAULT '0',"
02886 " closecaptioned tinyint(1) NOT NULL DEFAULT '0',"
02887 " partnumber int(11) NOT NULL DEFAULT '0',"
02888 " parttotal int(11) NOT NULL DEFAULT '0',"
02889 " seriesid varchar(40) NOT NULL DEFAULT '',"
02890 " originalairdate date DEFAULT NULL,"
02891 " showtype varchar(30) NOT NULL DEFAULT '',"
02892 " colorcode varchar(20) NOT NULL DEFAULT '',"
02893 " syndicatedepisodenumber varchar(20) NOT NULL DEFAULT '',"
02894 " programid varchar(40) NOT NULL DEFAULT '',"
02895 " manualid int(10) unsigned NOT NULL DEFAULT '0',"
02896 " generic tinyint(1) DEFAULT '0',"
02897 " listingsource int(11) NOT NULL DEFAULT '0',"
02898 " `first` tinyint(1) NOT NULL DEFAULT '0',"
02899 " `last` tinyint(1) NOT NULL DEFAULT '0',"
02900 " audioprop set('STEREO','MONO','SURROUND','DOLBY','HARDHEAR','VISUALIMPAIR') NOT NULL,"
02901 " subtitletypes set('HARDHEAR','NORMAL','ONSCREEN','SIGNED') NOT NULL,"
02902 " videoprop set('HDTV','WIDESCREEN','AVC','720','1080','DAMAGED') NOT NULL,"
02903 " PRIMARY KEY (chanid,starttime,manualid),"
02904 " KEY endtime (endtime),"
02905 " KEY title (title),"
02906 " KEY title_pronounce (title_pronounce),"
02907 " KEY seriesid (seriesid),"
02908 " KEY programid (programid),"
02909 " KEY id_start_end (chanid,starttime,endtime)"
02910 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02911 "CREATE TABLE recordedrating ("
02912 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02913 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02914 " system varchar(8) DEFAULT NULL,"
02915 " rating varchar(16) DEFAULT NULL,"
02916 " UNIQUE KEY chanid (chanid,starttime,system,rating),"
02917 " KEY starttime (starttime,system)"
02918 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02919 "CREATE TABLE recordedseek ("
02920 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02921 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02922 " mark mediumint(8) unsigned NOT NULL DEFAULT '0',"
02923 " `offset` bigint(20) unsigned NOT NULL,"
02924 " `type` tinyint(4) NOT NULL DEFAULT '0',"
02925 " PRIMARY KEY (chanid,starttime,`type`,mark)"
02926 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02927 "CREATE TABLE recordfilter ("
02928 " filterid int(10) unsigned NOT NULL,"
02929 " description varchar(64) DEFAULT NULL,"
02930 " clause varchar(256) DEFAULT NULL,"
02931 " newruledefault tinyint(1) DEFAULT '0',"
02932 " PRIMARY KEY (filterid)"
02933 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02934 "CREATE TABLE recordingprofiles ("
02935 " id int(10) unsigned NOT NULL AUTO_INCREMENT,"
02936 " `name` varchar(128) DEFAULT NULL,"
02937 " videocodec varchar(128) DEFAULT NULL,"
02938 " audiocodec varchar(128) DEFAULT NULL,"
02939 " profilegroup int(10) unsigned NOT NULL DEFAULT '0',"
02940 " PRIMARY KEY (id),"
02941 " KEY profilegroup (profilegroup)"
02942 ") ENGINE=MyISAM AUTO_INCREMENT=70 DEFAULT CHARSET=utf8;",
02943 "CREATE TABLE recordmatch ("
02944 " recordid int(10) unsigned NOT NULL,"
02945 " chanid int(10) unsigned NOT NULL,"
02946 " starttime datetime NOT NULL,"
02947 " manualid int(10) unsigned NOT NULL,"
02948 " oldrecduplicate tinyint(1) DEFAULT NULL,"
02949 " recduplicate tinyint(1) DEFAULT NULL,"
02950 " findduplicate tinyint(1) DEFAULT NULL,"
02951 " oldrecstatus int(11) DEFAULT NULL,"
02952 " UNIQUE KEY recordid (recordid,chanid,starttime),"
02953 " KEY chanid (chanid,starttime,manualid)"
02954 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02955 "CREATE TABLE settings ("
02956 " `value` varchar(128) NOT NULL DEFAULT '',"
02957 " `data` varchar(16000) NOT NULL DEFAULT '',"
02958 " hostname varchar(64) DEFAULT NULL,"
02959 " KEY `value` (`value`,hostname)"
02960 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02961 "CREATE TABLE storagegroup ("
02962 " id int(11) NOT NULL AUTO_INCREMENT,"
02963 " groupname varchar(32) NOT NULL,"
02964 " hostname varchar(64) NOT NULL DEFAULT '',"
02965 " dirname varchar(235) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
02966 " PRIMARY KEY (id),"
02967 " UNIQUE KEY grouphostdir (groupname,hostname,dirname),"
02968 " KEY hostname (hostname)"
02969 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02970 "CREATE TABLE tvchain ("
02971 " chanid int(10) unsigned NOT NULL DEFAULT '0',"
02972 " starttime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02973 " chainid varchar(128) NOT NULL DEFAULT '',"
02974 " chainpos int(10) NOT NULL DEFAULT '0',"
02975 " discontinuity tinyint(1) NOT NULL DEFAULT '0',"
02976 " watching int(10) NOT NULL DEFAULT '0',"
02977 " hostprefix varchar(128) NOT NULL DEFAULT '',"
02978 " cardtype varchar(32) NOT NULL DEFAULT 'V4L',"
02979 " input varchar(32) NOT NULL DEFAULT '',"
02980 " channame varchar(32) NOT NULL DEFAULT '',"
02981 " endtime datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
02982 " PRIMARY KEY (chanid,starttime)"
02983 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02984 "CREATE TABLE tvosdmenu ("
02985 " osdcategory varchar(32) NOT NULL,"
02986 " livetv tinyint(4) NOT NULL DEFAULT '0',"
02987 " recorded tinyint(4) NOT NULL DEFAULT '0',"
02988 " video tinyint(4) NOT NULL DEFAULT '0',"
02989 " dvd tinyint(4) NOT NULL DEFAULT '0',"
02990 " description varchar(32) NOT NULL,"
02991 " PRIMARY KEY (osdcategory)"
02992 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
02993 "CREATE TABLE upnpmedia ("
02994 " intid int(10) unsigned NOT NULL DEFAULT '0',"
02995 " class varchar(64) NOT NULL DEFAULT '',"
02996 " itemtype varchar(128) NOT NULL DEFAULT '',"
02997 " parentid int(10) unsigned NOT NULL DEFAULT '0',"
02998 " itemproperties varchar(255) NOT NULL DEFAULT '',"
02999 " filepath varchar(512) NOT NULL DEFAULT '',"
03000 " title varchar(255) NOT NULL DEFAULT '',"
03001 " filename varchar(512) NOT NULL DEFAULT '',"
03002 " coverart varchar(512) NOT NULL DEFAULT '',"
03003 " PRIMARY KEY (intid),"
03004 " KEY class (class),"
03005 " KEY filepath (filepath(333)),"
03006 " KEY parentid (parentid)"
03007 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03008 "CREATE TABLE videocast ("
03009 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03010 " cast varchar(128) NOT NULL,"
03011 " PRIMARY KEY (intid)"
03012 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03013 "CREATE TABLE videocategory ("
03014 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03015 " category varchar(128) NOT NULL,"
03016 " PRIMARY KEY (intid)"
03017 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03018 "CREATE TABLE videocollection ("
03019 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03020 " title varchar(256) NOT NULL,"
03021 " contenttype set('MOVIE','TELEVISION','ADULT','MUSICVIDEO','HOMEVIDEO') NOT NULL DEFAULT '',"
03022 " plot text,"
03023 " network varchar(128) DEFAULT NULL,"
03024 " collectionref varchar(128) NOT NULL,"
03025 " certification varchar(128) DEFAULT NULL,"
03026 " genre varchar(128) DEFAULT '',"
03027 " releasedate date DEFAULT NULL,"
03028 " `language` varchar(10) DEFAULT NULL,"
03029 " `status` varchar(64) DEFAULT NULL,"
03030 " rating float DEFAULT '0',"
03031 " ratingcount int(10) DEFAULT '0',"
03032 " runtime smallint(5) unsigned DEFAULT '0',"
03033 " banner text,"
03034 " fanart text,"
03035 " coverart text,"
03036 " PRIMARY KEY (intid),"
03037 " KEY title (title)"
03038 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03039 "CREATE TABLE videocountry ("
03040 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03041 " country varchar(128) NOT NULL,"
03042 " PRIMARY KEY (intid)"
03043 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03044 "CREATE TABLE videogenre ("
03045 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03046 " genre varchar(128) NOT NULL,"
03047 " PRIMARY KEY (intid)"
03048 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03049 "CREATE TABLE videometadata ("
03050 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03051 " title varchar(128) NOT NULL,"
03052 " subtitle text NOT NULL,"
03053 " tagline varchar(255) DEFAULT NULL,"
03054 " director varchar(128) NOT NULL,"
03055 " studio varchar(128) DEFAULT NULL,"
03056 " plot text,"
03057 " rating varchar(128) NOT NULL,"
03058 " inetref varchar(255) NOT NULL,"
03059 " collectionref int(10) NOT NULL DEFAULT '-1',"
03060 " homepage text NOT NULL,"
03061 " `year` int(10) unsigned NOT NULL,"
03062 " releasedate date NOT NULL,"
03063 " userrating float NOT NULL,"
03064 " length int(10) unsigned NOT NULL,"
03065 " playcount int(10) NOT NULL DEFAULT '0',"
03066 " season smallint(5) unsigned NOT NULL DEFAULT '0',"
03067 " episode smallint(5) unsigned NOT NULL DEFAULT '0',"
03068 " showlevel int(10) unsigned NOT NULL,"
03069 " filename text NOT NULL,"
03070 " `hash` varchar(128) NOT NULL,"
03071 " coverfile text NOT NULL,"
03072 " childid int(11) NOT NULL DEFAULT '-1',"
03073 " browse tinyint(1) NOT NULL DEFAULT '1',"
03074 " watched tinyint(1) NOT NULL DEFAULT '0',"
03075 " processed tinyint(1) NOT NULL DEFAULT '0',"
03076 " playcommand varchar(255) DEFAULT NULL,"
03077 " category int(10) unsigned NOT NULL DEFAULT '0',"
03078 " trailer text,"
03079 " `host` text NOT NULL,"
03080 " screenshot text,"
03081 " banner text,"
03082 " fanart text,"
03083 " insertdate timestamp NULL DEFAULT CURRENT_TIMESTAMP,"
03084 " contenttype set('MOVIE','TELEVISION','ADULT','MUSICVIDEO','HOMEVIDEO') NOT NULL DEFAULT '',"
03085 " PRIMARY KEY (intid),"
03086 " KEY director (director),"
03087 " KEY title (title)"
03088 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03089 "CREATE TABLE videometadatacast ("
03090 " idvideo int(10) unsigned NOT NULL,"
03091 " idcast int(10) unsigned NOT NULL,"
03092 " UNIQUE KEY idvideo (idvideo,idcast)"
03093 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03094 "CREATE TABLE videometadatacountry ("
03095 " idvideo int(10) unsigned NOT NULL,"
03096 " idcountry int(10) unsigned NOT NULL,"
03097 " UNIQUE KEY idvideo_2 (idvideo,idcountry),"
03098 " KEY idvideo (idvideo),"
03099 " KEY idcountry (idcountry)"
03100 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03101 "CREATE TABLE videometadatagenre ("
03102 " idvideo int(10) unsigned NOT NULL,"
03103 " idgenre int(10) unsigned NOT NULL,"
03104 " UNIQUE KEY idvideo_2 (idvideo,idgenre),"
03105 " KEY idvideo (idvideo),"
03106 " KEY idgenre (idgenre)"
03107 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03108 "CREATE TABLE videopathinfo ("
03109 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03110 " path text,"
03111 " contenttype set('MOVIE','TELEVISION','ADULT','MUSICVIDEO','HOMEVIDEO') NOT NULL DEFAULT '',"
03112 " collectionref int(10) DEFAULT '0',"
03113 " recurse tinyint(1) DEFAULT '0',"
03114 " PRIMARY KEY (intid)"
03115 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03116 "CREATE TABLE videosource ("
03117 " sourceid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03118 " `name` varchar(128) NOT NULL DEFAULT '',"
03119 " xmltvgrabber varchar(128) DEFAULT NULL,"
03120 " userid varchar(128) NOT NULL DEFAULT '',"
03121 " freqtable varchar(16) NOT NULL DEFAULT 'default',"
03122 " lineupid varchar(64) DEFAULT NULL,"
03123 " `password` varchar(64) DEFAULT NULL,"
03124 " useeit smallint(6) NOT NULL DEFAULT '0',"
03125 " configpath varchar(4096) DEFAULT NULL,"
03126 " dvb_nit_id int(6) DEFAULT '-1',"
03127 " PRIMARY KEY (sourceid),"
03128 " UNIQUE KEY `name` (`name`)"
03129 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
03130 "CREATE TABLE videotypes ("
03131 " intid int(10) unsigned NOT NULL AUTO_INCREMENT,"
03132 " extension varchar(128) NOT NULL,"
03133 " playcommand varchar(255) NOT NULL,"
03134 " f_ignore tinyint(1) DEFAULT NULL,"
03135 " use_default tinyint(1) DEFAULT NULL,"
03136 " PRIMARY KEY (intid)"
03137 ") ENGINE=MyISAM AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;",
03138
03139 "INSERT INTO channelgroupnames VALUES (1,'Favorites');",
03140 "INSERT INTO customexample VALUES ('New Flix','','program.category_type = \\'movie\\' AND program.airdate >= \\n YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) \\nAND program.stars > 0.5 ',1);",
03141 "INSERT INTO dtv_privatetypes VALUES ('dvb',9018,'channel_numbers','131');",
03142 "INSERT INTO dtv_privatetypes VALUES ('dvb',9018,'guide_fixup','2');",
03143 "INSERT INTO dtv_privatetypes VALUES ('dvb',256,'guide_fixup','1');",
03144 "INSERT INTO dtv_privatetypes VALUES ('dvb',257,'guide_fixup','1');",
03145 "INSERT INTO dtv_privatetypes VALUES ('dvb',256,'tv_types','1,150,134,133');",
03146 "INSERT INTO dtv_privatetypes VALUES ('dvb',257,'tv_types','1,150,134,133');",
03147 "INSERT INTO dtv_privatetypes VALUES ('dvb',4100,'sdt_mapping','1');",
03148 "INSERT INTO dtv_privatetypes VALUES ('dvb',4101,'sdt_mapping','1');",
03149 "INSERT INTO dtv_privatetypes VALUES ('dvb',4102,'sdt_mapping','1');",
03150 "INSERT INTO dtv_privatetypes VALUES ('dvb',4103,'sdt_mapping','1');",
03151 "INSERT INTO dtv_privatetypes VALUES ('dvb',4104,'sdt_mapping','1');",
03152 "INSERT INTO dtv_privatetypes VALUES ('dvb',4105,'sdt_mapping','1');",
03153 "INSERT INTO dtv_privatetypes VALUES ('dvb',4106,'sdt_mapping','1');",
03154 "INSERT INTO dtv_privatetypes VALUES ('dvb',4107,'sdt_mapping','1');",
03155 "INSERT INTO dtv_privatetypes VALUES ('dvb',4097,'sdt_mapping','1');",
03156 "INSERT INTO dtv_privatetypes VALUES ('dvb',4098,'sdt_mapping','1');",
03157 "INSERT INTO dtv_privatetypes VALUES ('dvb',4100,'tv_types','1,145,154');",
03158 "INSERT INTO dtv_privatetypes VALUES ('dvb',4101,'tv_types','1,145,154');",
03159 "INSERT INTO dtv_privatetypes VALUES ('dvb',4102,'tv_types','1,145,154');",
03160 "INSERT INTO dtv_privatetypes VALUES ('dvb',4103,'tv_types','1,145,154');",
03161 "INSERT INTO dtv_privatetypes VALUES ('dvb',4104,'tv_types','1,145,154');",
03162 "INSERT INTO dtv_privatetypes VALUES ('dvb',4105,'tv_types','1,145,154');",
03163 "INSERT INTO dtv_privatetypes VALUES ('dvb',4106,'tv_types','1,145,154');",
03164 "INSERT INTO dtv_privatetypes VALUES ('dvb',4107,'tv_types','1,145,154');",
03165 "INSERT INTO dtv_privatetypes VALUES ('dvb',4097,'tv_types','1,145,154');",
03166 "INSERT INTO dtv_privatetypes VALUES ('dvb',4098,'tv_types','1,145,154');",
03167 "INSERT INTO dtv_privatetypes VALUES ('dvb',4100,'guide_fixup','1');",
03168 "INSERT INTO dtv_privatetypes VALUES ('dvb',4101,'guide_fixup','1');",
03169 "INSERT INTO dtv_privatetypes VALUES ('dvb',4102,'guide_fixup','1');",
03170 "INSERT INTO dtv_privatetypes VALUES ('dvb',4103,'guide_fixup','1');",
03171 "INSERT INTO dtv_privatetypes VALUES ('dvb',4104,'guide_fixup','1');",
03172 "INSERT INTO dtv_privatetypes VALUES ('dvb',4105,'guide_fixup','1');",
03173 "INSERT INTO dtv_privatetypes VALUES ('dvb',4106,'guide_fixup','1');",
03174 "INSERT INTO dtv_privatetypes VALUES ('dvb',4107,'guide_fixup','1');",
03175 "INSERT INTO dtv_privatetypes VALUES ('dvb',4096,'guide_fixup','5');",
03176 "INSERT INTO dtv_privatetypes VALUES ('dvb',4097,'guide_fixup','1');",
03177 "INSERT INTO dtv_privatetypes VALUES ('dvb',4098,'guide_fixup','1');",
03178 "INSERT INTO dtv_privatetypes VALUES ('dvb',94,'tv_types','1,128');",
03179 "INSERT INTO dtv_privatetypes VALUES ('atsc',1793,'guide_fixup','3');",
03180 "INSERT INTO dtv_privatetypes VALUES ('dvb',40999,'guide_fixup','4');",
03181 "INSERT INTO dtv_privatetypes VALUES ('dvb',70,'force_guide_present','yes');",
03182 "INSERT INTO dtv_privatetypes VALUES ('dvb',70,'guide_ranges','80,80,96,96');",
03183 "INSERT INTO dtv_privatetypes VALUES ('dvb',4112,'channel_numbers','131');",
03184 "INSERT INTO dtv_privatetypes VALUES ('dvb',4115,'channel_numbers','131');",
03185 "INSERT INTO dtv_privatetypes VALUES ('dvb',4116,'channel_numbers','131');",
03186 "INSERT INTO dtv_privatetypes VALUES ('dvb',12802,'channel_numbers','131');",
03187 "INSERT INTO dtv_privatetypes VALUES ('dvb',12803,'channel_numbers','131');",
03188 "INSERT INTO dtv_privatetypes VALUES ('dvb',12829,'channel_numbers','131');",
03189 "INSERT INTO dtv_privatetypes VALUES ('dvb',40999,'parse_subtitle_list','1070,1308,1041,1306,1307,1030,1016,1131,1068,1069');",
03190 "INSERT INTO dtv_privatetypes VALUES ('dvb',4096,'guide_fixup','5');",
03191 "INSERT INTO dvdinput VALUES (1,720,480,16,9,1,1,'ntsc');",
03192 "INSERT INTO dvdinput VALUES (2,720,480,16,9,1,0,'ntsc');",
03193 "INSERT INTO dvdinput VALUES (3,720,480,4,3,1,1,'ntsc');",
03194 "INSERT INTO dvdinput VALUES (4,720,480,4,3,1,0,'ntsc');",
03195 "INSERT INTO dvdinput VALUES (5,720,576,16,9,3,1,'pal');",
03196 "INSERT INTO dvdinput VALUES (6,720,576,16,9,3,0,'pal');",
03197 "INSERT INTO dvdinput VALUES (7,720,576,4,3,3,1,'pal');",
03198 "INSERT INTO dvdinput VALUES (8,720,576,4,3,3,0,'pal');",
03199 "INSERT INTO dvdtranscode VALUES (1,1,'Good',2,1,16,16,0,0,2,0,0,0,0,0,32,32,8,8,'divx5',NULL,1618,NULL,NULL,0,NULL);",
03200 "INSERT INTO dvdtranscode VALUES (2,2,'Excellent',2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'divx5',NULL,0,NULL,NULL,1,NULL);",
03201 "INSERT INTO dvdtranscode VALUES (3,2,'Good',2,1,0,0,8,8,0,0,0,0,0,0,0,0,0,0,'divx5',NULL,1618,NULL,NULL,0,NULL);",
03202 "INSERT INTO dvdtranscode VALUES (4,2,'Medium',2,1,0,0,8,8,5,5,0,0,0,0,0,0,0,0,'divx5',NULL,1200,NULL,NULL,0,NULL);",
03203 "INSERT INTO dvdtranscode VALUES (5,3,'Good',2,1,0,0,0,0,0,0,0,0,2,0,80,80,8,8,'divx5',NULL,0,NULL,NULL,0,NULL);",
03204 "INSERT INTO dvdtranscode VALUES (6,4,'Excellent',2,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,'divx5',NULL,0,NULL,NULL,1,NULL);",
03205 "INSERT INTO dvdtranscode VALUES (7,4,'Good',2,1,0,0,8,8,0,2,0,0,0,0,0,0,0,0,'divx5',NULL,1618,NULL,NULL,0,NULL);",
03206 "INSERT INTO dvdtranscode VALUES (8,5,'Good',1,1,16,16,0,0,5,0,0,0,0,0,40,40,8,8,'divx5',NULL,1618,NULL,NULL,0,NULL);",
03207 "INSERT INTO dvdtranscode VALUES (9,6,'Good',1,1,0,0,16,16,5,0,0,0,0,0,0,0,0,0,'divx5',NULL,1618,NULL,NULL,0,NULL);",
03208 "INSERT INTO dvdtranscode VALUES (10,7,'Good',1,1,0,0,0,0,1,0,0,0,0,0,76,76,8,8,'divx5',NULL,1618,NULL,NULL,0,NULL);",
03209 "INSERT INTO dvdtranscode VALUES (11,8,'Good',1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,'divx5',NULL,1618,NULL,NULL,0,NULL);",
03210 "INSERT INTO playgroup VALUES ('Default','',30,5,100,0);",
03211 "INSERT INTO profilegroups VALUES (1,'Software Encoders (v4l based)','V4L',1,NULL);",
03212 "INSERT INTO profilegroups VALUES (2,'IVTV MPEG-2 Encoders','MPEG',1,NULL);",
03213 "INSERT INTO profilegroups VALUES (3,'Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)','MJPEG',1,NULL);",
03214 "INSERT INTO profilegroups VALUES (4,'Hardware HDTV','HDTV',1,NULL);",
03215 "INSERT INTO profilegroups VALUES (5,'Hardware DVB Encoders','DVB',1,NULL);",
03216 "INSERT INTO profilegroups VALUES (6,'Transcoders','TRANSCODE',1,NULL);",
03217 "INSERT INTO profilegroups VALUES (7,'FireWire Input','FIREWIRE',1,NULL);",
03218 "INSERT INTO profilegroups VALUES (8,'USB Mpeg-4 Encoder (Plextor ConvertX, etc)','GO7007',1,NULL);",
03219 "INSERT INTO profilegroups VALUES (14,'Import Recorder','IMPORT',1,NULL);",
03220 "INSERT INTO profilegroups VALUES (10,'Freebox Input','Freebox',1,NULL);",
03221 "INSERT INTO profilegroups VALUES (11,'HDHomeRun Recorders','HDHOMERUN',1,NULL);",
03222 "INSERT INTO profilegroups VALUES (12,'CRC IP Recorders','CRC_IP',1,NULL);",
03223 "INSERT INTO profilegroups VALUES (13,'HD-PVR Recorders','HDPVR',1,NULL);",
03224 "INSERT INTO profilegroups VALUES (15,'ASI Recorder (DVEO)','ASI',1,NULL);",
03225 "INSERT INTO profilegroups VALUES (16,'OCUR Recorder (CableLabs)','OCUR',1,NULL);",
03226 "INSERT INTO profilegroups VALUES (17,'Ceton Recorder','CETON',1,NULL);",
03227 "INSERT INTO recordfilter VALUES (0,'New episode','program.previouslyshown = 0',0);",
03228 "INSERT INTO recordfilter VALUES (1,'Identifiable episode','program.generic = 0',0);",
03229 "INSERT INTO recordfilter VALUES (2,'First showing','program.first > 0',0);",
03230 "INSERT INTO recordfilter VALUES (3,'Prime time','HOUR(program.starttime) >= 19 AND HOUR(program.starttime) < 23',0);",
03231 "INSERT INTO recordfilter VALUES (4,'Commercial free','channel.commmethod = -2',0);",
03232 "INSERT INTO recordfilter VALUES (5,'High definition','program.hdtv > 0',0);",
03233 "INSERT INTO recordfilter VALUES (6,'This episode','(RECTABLE.programid <> \\'\\' AND program.programid = RECTABLE.programid) OR (RECTABLE.programid = \\'\\' AND program.subtitle = RECTABLE.subtitle AND program.description = RECTABLE.description)',0);",
03234 "INSERT INTO recordfilter VALUES (7,'This series','(RECTABLE.seriesid <> \\'\\' AND program.seriesid = RECTABLE.seriesid)',0);",
03235 "INSERT INTO recordingprofiles VALUES (1,'Default',NULL,NULL,1);",
03236 "INSERT INTO recordingprofiles VALUES (2,'Live TV',NULL,NULL,1);",
03237 "INSERT INTO recordingprofiles VALUES (3,'High Quality',NULL,NULL,1);",
03238 "INSERT INTO recordingprofiles VALUES (4,'Low Quality',NULL,NULL,1);",
03239 "INSERT INTO recordingprofiles VALUES (5,'Default',NULL,NULL,2);",
03240 "INSERT INTO recordingprofiles VALUES (6,'Live TV',NULL,NULL,2);",
03241 "INSERT INTO recordingprofiles VALUES (7,'High Quality',NULL,NULL,2);",
03242 "INSERT INTO recordingprofiles VALUES (8,'Low Quality',NULL,NULL,2);",
03243 "INSERT INTO recordingprofiles VALUES (9,'Default',NULL,NULL,3);",
03244 "INSERT INTO recordingprofiles VALUES (10,'Live TV',NULL,NULL,3);",
03245 "INSERT INTO recordingprofiles VALUES (11,'High Quality',NULL,NULL,3);",
03246 "INSERT INTO recordingprofiles VALUES (12,'Low Quality',NULL,NULL,3);",
03247 "INSERT INTO recordingprofiles VALUES (13,'Default',NULL,NULL,4);",
03248 "INSERT INTO recordingprofiles VALUES (14,'Live TV',NULL,NULL,4);",
03249 "INSERT INTO recordingprofiles VALUES (15,'High Quality',NULL,NULL,4);",
03250 "INSERT INTO recordingprofiles VALUES (16,'Low Quality',NULL,NULL,4);",
03251 "INSERT INTO recordingprofiles VALUES (17,'Default',NULL,NULL,5);",
03252 "INSERT INTO recordingprofiles VALUES (18,'Live TV',NULL,NULL,5);",
03253 "INSERT INTO recordingprofiles VALUES (19,'High Quality',NULL,NULL,5);",
03254 "INSERT INTO recordingprofiles VALUES (20,'Low Quality',NULL,NULL,5);",
03255 "INSERT INTO recordingprofiles VALUES (21,'RTjpeg/MPEG4',NULL,NULL,6);",
03256 "INSERT INTO recordingprofiles VALUES (22,'MPEG2',NULL,NULL,6);",
03257 "INSERT INTO recordingprofiles VALUES (23,'Default',NULL,NULL,8);",
03258 "INSERT INTO recordingprofiles VALUES (24,'Live TV',NULL,NULL,8);",
03259 "INSERT INTO recordingprofiles VALUES (25,'High Quality',NULL,NULL,8);",
03260 "INSERT INTO recordingprofiles VALUES (26,'Low Quality',NULL,NULL,8);",
03261 "INSERT INTO recordingprofiles VALUES (27,'High Quality',NULL,NULL,6);",
03262 "INSERT INTO recordingprofiles VALUES (28,'Medium Quality',NULL,NULL,6);",
03263 "INSERT INTO recordingprofiles VALUES (29,'Low Quality',NULL,NULL,6);",
03264 "INSERT INTO recordingprofiles VALUES (30,'Default',NULL,NULL,10);",
03265 "INSERT INTO recordingprofiles VALUES (31,'Live TV',NULL,NULL,10);",
03266 "INSERT INTO recordingprofiles VALUES (32,'High Quality',NULL,NULL,10);",
03267 "INSERT INTO recordingprofiles VALUES (33,'Low Quality',NULL,NULL,10);",
03268 "INSERT INTO recordingprofiles VALUES (34,'Default',NULL,NULL,11);",
03269 "INSERT INTO recordingprofiles VALUES (35,'Live TV',NULL,NULL,11);",
03270 "INSERT INTO recordingprofiles VALUES (36,'High Quality',NULL,NULL,11);",
03271 "INSERT INTO recordingprofiles VALUES (37,'Low Quality',NULL,NULL,11);",
03272 "INSERT INTO recordingprofiles VALUES (38,'Default',NULL,NULL,12);",
03273 "INSERT INTO recordingprofiles VALUES (39,'Live TV',NULL,NULL,12);",
03274 "INSERT INTO recordingprofiles VALUES (40,'High Quality',NULL,NULL,12);",
03275 "INSERT INTO recordingprofiles VALUES (41,'Low Quality',NULL,NULL,12);",
03276 "INSERT INTO recordingprofiles VALUES (42,'Default',NULL,NULL,7);",
03277 "INSERT INTO recordingprofiles VALUES (43,'Live TV',NULL,NULL,7);",
03278 "INSERT INTO recordingprofiles VALUES (44,'High Quality',NULL,NULL,7);",
03279 "INSERT INTO recordingprofiles VALUES (45,'Low Quality',NULL,NULL,7);",
03280 "INSERT INTO recordingprofiles VALUES (46,'Default',NULL,NULL,9);",
03281 "INSERT INTO recordingprofiles VALUES (47,'Live TV',NULL,NULL,9);",
03282 "INSERT INTO recordingprofiles VALUES (48,'High Quality',NULL,NULL,9);",
03283 "INSERT INTO recordingprofiles VALUES (49,'Low Quality',NULL,NULL,9);",
03284 "INSERT INTO recordingprofiles VALUES (50,'Default',NULL,NULL,13);",
03285 "INSERT INTO recordingprofiles VALUES (51,'Live TV',NULL,NULL,13);",
03286 "INSERT INTO recordingprofiles VALUES (52,'High Quality',NULL,NULL,13);",
03287 "INSERT INTO recordingprofiles VALUES (53,'Low Quality',NULL,NULL,13);",
03288 "INSERT INTO recordingprofiles VALUES (54,'Default',NULL,NULL,14);",
03289 "INSERT INTO recordingprofiles VALUES (55,'Live TV',NULL,NULL,14);",
03290 "INSERT INTO recordingprofiles VALUES (56,'High Quality',NULL,NULL,14);",
03291 "INSERT INTO recordingprofiles VALUES (57,'Low Quality',NULL,NULL,14);",
03292 "INSERT INTO recordingprofiles VALUES (58,'Default',NULL,NULL,15);",
03293 "INSERT INTO recordingprofiles VALUES (59,'Live TV',NULL,NULL,15);",
03294 "INSERT INTO recordingprofiles VALUES (60,'High Quality',NULL,NULL,15);",
03295 "INSERT INTO recordingprofiles VALUES (61,'Low Quality',NULL,NULL,15);",
03296 "INSERT INTO recordingprofiles VALUES (62,'Default',NULL,NULL,16);",
03297 "INSERT INTO recordingprofiles VALUES (63,'Live TV',NULL,NULL,16);",
03298 "INSERT INTO recordingprofiles VALUES (64,'High Quality',NULL,NULL,16);",
03299 "INSERT INTO recordingprofiles VALUES (65,'Low Quality',NULL,NULL,16);",
03300 "INSERT INTO recordingprofiles VALUES (66,'Default',NULL,NULL,17);",
03301 "INSERT INTO recordingprofiles VALUES (67,'Live TV',NULL,NULL,17);",
03302 "INSERT INTO recordingprofiles VALUES (68,'High Quality',NULL,NULL,17);",
03303 "INSERT INTO recordingprofiles VALUES (69,'Low Quality',NULL,NULL,17);",
03304 "INSERT INTO settings VALUES ('mythfilldatabaseLastRunStart','',NULL);",
03305 "INSERT INTO settings VALUES ('mythfilldatabaseLastRunEnd','',NULL);",
03306 "INSERT INTO settings VALUES ('mythfilldatabaseLastRunStatus','',NULL);",
03307 "INSERT INTO settings VALUES ('DataDirectMessage','',NULL);",
03308 "INSERT INTO settings VALUES ('HaveRepeats','0',NULL);",
03309 "INSERT INTO settings VALUES ('DBSchemaVer','1299',NULL);",
03310 "INSERT INTO settings VALUES ('DefaultTranscoder','0',NULL);",
03311 "INSERT INTO videotypes VALUES (1,'txt','',1,0);",
03312 "INSERT INTO videotypes VALUES (2,'log','',1,0);",
03313 "INSERT INTO videotypes VALUES (3,'mpg','Internal',0,0);",
03314 "INSERT INTO videotypes VALUES (4,'avi','',0,1);",
03315 "INSERT INTO videotypes VALUES (5,'vob','Internal',0,0);",
03316 "INSERT INTO videotypes VALUES (6,'mpeg','Internal',0,0);",
03317 "INSERT INTO videotypes VALUES (8,'iso','Internal',0,0);",
03318 "INSERT INTO videotypes VALUES (9,'img','Internal',0,0);",
03319 "INSERT INTO videotypes VALUES (10,'mkv','Internal',0,0);",
03320 "INSERT INTO videotypes VALUES (11,'mp4','Internal',0,0);",
03321 "INSERT INTO videotypes VALUES (12,'m2ts','Internal',0,0);",
03322 "INSERT INTO videotypes VALUES (13,'evo','Internal',0,0);",
03323 "INSERT INTO videotypes VALUES (14,'divx','Internal',0,0);",
03324 "INSERT INTO videotypes VALUES (15,'mov','Internal',0,0);",
03325 "INSERT INTO videotypes VALUES (16,'qt','Internal',0,0);",
03326 "INSERT INTO videotypes VALUES (17,'wmv','Internal',0,0);",
03327 "INSERT INTO videotypes VALUES (18,'3gp','Internal',0,0);",
03328 "INSERT INTO videotypes VALUES (19,'asf','Internal',0,0);",
03329 "INSERT INTO videotypes VALUES (20,'ogg','Internal',0,0);",
03330 "INSERT INTO videotypes VALUES (21,'ogm','Internal',0,0);",
03331 "INSERT INTO videotypes VALUES (22,'flv','Internal',0,0);",
03332 "INSERT INTO videotypes VALUES (23,'ogv','Internal',0,0);",
03333 "INSERT INTO videotypes VALUES (25,'nut','Internal',0,0);",
03334 "INSERT INTO videotypes VALUES (26,'mxf','Internal',0,0);",
03335 "INSERT INTO videotypes VALUES (27,'m4v','Internal',0,0);",
03336 "INSERT INTO videotypes VALUES (28,'rm','Internal',0,0);",
03337 "INSERT INTO videotypes VALUES (29,'ts','Internal',0,0);",
03338 "INSERT INTO videotypes VALUES (30,'swf','Internal',0,0);",
03339 "INSERT INTO videotypes VALUES (31,'f4v','Internal',0,0);",
03340 "INSERT INTO videotypes VALUES (32,'nuv','Internal',0,0);",
03341 NULL
03342 };
03343
03344 QString dbver = "";
03345 if (!performActualUpdate(updates, "1299", dbver))
03346 return false;
03347 return true;
03348 }
03349
03350