* Move database-specific DB creation bits to a separate file.

This commit is contained in:
Justin Maggard 2012-05-16 01:22:11 +00:00
parent 2383bd97fe
commit 2661cd8a0c
2 changed files with 95 additions and 57 deletions

View File

@ -62,6 +62,7 @@
#include <sqlite3.h>
#include "scanner_sqlite.h"
#include "upnpglobalvars.h"
#include "metadata.h"
#include "playlist.h"
@ -589,75 +590,25 @@ CreateDatabase(void)
BROWSEDIR_ID, "0", _("Browse Folders"),
0 };
ret = sql_exec(db, "CREATE TABLE OBJECTS ( "
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"OBJECT_ID TEXT UNIQUE NOT NULL, "
"PARENT_ID TEXT NOT NULL, "
"REF_ID TEXT DEFAULT NULL, "
"CLASS TEXT NOT NULL, "
"DETAIL_ID INTEGER DEFAULT NULL, "
"NAME TEXT DEFAULT NULL"
");");
ret = sql_exec(db, create_objectTable_sqlite);
if( ret != SQLITE_OK )
goto sql_failed;
ret = sql_exec(db, "CREATE TABLE DETAILS ( "
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"PATH TEXT DEFAULT NULL, "
"SIZE INTEGER, "
"TIMESTAMP INTEGER, "
"TITLE TEXT COLLATE NOCASE, "
"DURATION TEXT, "
"BITRATE INTEGER, "
"SAMPLERATE INTEGER, "
"CREATOR TEXT COLLATE NOCASE, "
"ARTIST TEXT COLLATE NOCASE, "
"ALBUM TEXT COLLATE NOCASE, "
"GENRE TEXT COLLATE NOCASE, "
"COMMENT TEXT, "
"CHANNELS INTEGER, "
"DISC INTEGER, "
"TRACK INTEGER, "
"DATE DATE, "
"RESOLUTION TEXT, "
"THUMBNAIL BOOL DEFAULT 0, "
"ALBUM_ART INTEGER DEFAULT 0, "
"ROTATION INTEGER, "
"DLNA_PN TEXT, "
"MIME TEXT"
")");
ret = sql_exec(db, create_detailTable_sqlite);
if( ret != SQLITE_OK )
goto sql_failed;
ret = sql_exec(db, "CREATE TABLE ALBUM_ART ( "
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"PATH TEXT NOT NULL"
")");
ret = sql_exec(db, create_albumArtTable_sqlite);
if( ret != SQLITE_OK )
goto sql_failed;
ret = sql_exec(db, "CREATE TABLE CAPTIONS ("
"ID INTEGER PRIMARY KEY, "
"PATH TEXT NOT NULL"
")");
ret = sql_exec(db, create_captionTable_sqlite);
if( ret != SQLITE_OK )
goto sql_failed;
ret = sql_exec(db, "CREATE TABLE BOOKMARKS ("
"ID INTEGER PRIMARY KEY, "
"SEC INTEGER"
")");
ret = sql_exec(db, create_bookmarkTable_sqlite);
if( ret != SQLITE_OK )
goto sql_failed;
ret = sql_exec(db, "CREATE TABLE PLAYLISTS ("
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"NAME TEXT NOT NULL, "
"PATH TEXT NOT NULL, "
"ITEMS INTEGER DEFAULT 0, "
"FOUND INTEGER DEFAULT 0"
")");
ret = sql_exec(db, create_playlistTable_sqlite);
if( ret != SQLITE_OK )
goto sql_failed;
ret = sql_exec(db, "CREATE TABLE SETTINGS ("
"UPDATE_ID INTEGER PRIMARY KEY DEFAULT 0, "
"FLAGS INTEGER DEFAULT 0"
")");
ret = sql_exec(db, create_settingsTable_sqlite);
if( ret != SQLITE_OK )
goto sql_failed;
ret = sql_exec(db, "INSERT into SETTINGS values (0, 0)");

87
scanner_sqlite.h Normal file
View File

@ -0,0 +1,87 @@
/* Media table definitions for SQLite database
*
* Project : minidlna
* Website : http://sourceforge.net/projects/minidlna/
* Author : Douglas Carmichael
*
* MiniDLNA media server
* Copyright (C) 2008-2009 Justin Maggard
*
* This file is part of MiniDLNA.
*
* MiniDLNA is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* MiniDLNA is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MiniDLNA. If not, see <http://www.gnu.org/licenses/>.
*/
char create_objectTable_sqlite[] = "CREATE TABLE OBJECTS ("
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"OBJECT_ID TEXT UNIQUE NOT NULL, "
"PARENT_ID TEXT NOT NULL, "
"REF_ID TEXT DEFAULT NULL, "
"CLASS TEXT NOT NULL, "
"DETAIL_ID INTEGER DEFAULT NULL, "
"NAME TEXT DEFAULT NULL);";
char create_detailTable_sqlite[] = "CREATE TABLE DETAILS ("
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"PATH TEXT DEFAULT NULL, "
"SIZE INTEGER, "
"TIMESTAMP INTEGER, "
"TITLE TEXT COLLATE NOCASE, "
"DURATION TEXT, "
"BITRATE INTEGER, "
"SAMPLERATE INTEGER, "
"CREATOR TEXT COLLATE NOCASE, "
"ARTIST TEXT COLLATE NOCASE, "
"ALBUM TEXT COLLATE NOCASE, "
"GENRE TEXT COLLATE NOCASE, "
"COMMENT TEXT, "
"CHANNELS INTEGER, "
"DISC INTEGER, "
"TRACK INTEGER, "
"DATE DATE, "
"RESOLUTION TEXT, "
"THUMBNAIL BOOL DEFAULT 0, "
"ALBUM_ART INTEGER DEFAULT 0, "
"ROTATION INTEGER, "
"DLNA_PN TEXT, "
"MIME TEXT);";
char create_albumArtTable_sqlite[] = "CREATE TABLE ALBUM_ART ("
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"PATH TEXT NOT NULL"
");";
char create_captionTable_sqlite[] = "CREATE TABLE CAPTIONS ("
"ID INTEGER PRIMARY KEY, "
"PATH TEXT NOT NULL"
");";
char create_bookmarkTable_sqlite[] = "CREATE TABLE BOOKMARKS ("
"ID INTEGER PRIMARY KEY, "
"SEC INTEGER"
");";
char create_playlistTable_sqlite[] = "CREATE TABLE PLAYLISTS ("
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
"NAME TEXT NOT NULL, "
"PATH TEXT NOT NULL, "
"ITEMS INTEGER DEFAULT 0, "
"FOUND INTEGER DEFAULT 0"
");";
char create_settingsTable_sqlite[] = "CREATE TABLE SETTINGS ("
"UPDATE_ID INTEGER PRIMARY KEY DEFAULT 0, "
"FLAGS INTEGER DEFAULT 0"
");";