|
MythTV
0.26-pre
|
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" // for convert_diseqc_db() 00016 #include "videodbcheck.h" // for 1267 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 // delete old schema version 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 // set new schema version 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 // Suppress DB messages and turn of the settings cache, 00452 // These are likely to confuse the users and the code, respectively. 00453 GetMythDB()->SetSuppressDBMessages(true); 00454 gCoreContext->ActivateSettingsCache(false); 00455 00456 // Get the schema upgrade lock 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 // Determine if an upgrade is needed 00473 schema_wizard = SchemaUpgradeWizard::Get( 00474 "DBSchemaVer", "MythTV", currentDatabaseVersion); 00475 if (schema_wizard->Compare() == 0) // DB schema is what we need it to be.. 00476 goto upgrade_ok_exit; 00477 00478 if (!upgradeAllowed) 00479 LOG(VB_GENERAL, LOG_WARNING, "Not allowed to upgrade the database."); 00480 00481 // Pop up messages, questions, warnings, etc. 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 // Upgrade the schema 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 // On any exit we want to re-enable the DB messages so errors 00507 // are reported and we want to make sure the setting cache is 00508 // enabled for good performance and we must unlock the schema 00509 // lock. We use gotos with labels so it's impossible to miss 00510 // these steps. 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 // Don't rely on this, please specify these when creating the database. 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 // Only remap the keys if they're currently set to defaults 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 // Only remap the keys if they're currently set to defaults 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 // User has previously applied patch from ticket #7486. 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 // New DBs/hosts will not have a NoPromptOnExit, so they'll get defaults 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 // Yes, enabled NoPromptOnExit meant to prompt on exit 01494 QString prompt_on_exit = select.value(1).toString(); 01495 // Default EXITPROMPT is wrong for all upgrades 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 // EXIT is already mapped appropriately, so just create a 01508 // no-keylist mapping for EXITPROMPT to prevent conflict 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 // EXIT must be changed to EXITPROMPT 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; // already in new format, skip it.. 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 // DeletedMaxAge setting only exists if the user ever triggered the 01948 // DeletedExpireOptions TriggeredConfigurationGroup (enabled 01949 // AutoExpireInsteadOfDelete) and changed DeletedMaxAge from its 01950 // default of zero, so "reset" it to ensure it's in the database before 01951 // the update 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 // Create the Default recording rule template 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 // check for > 1 table here since the schemalock table should exist 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 /* vim: set expandtab tabstop=4 shiftwidth=4: */
1.7.6.1