* Move database-specific DB creation bits to a separate file.
This commit is contained in:
parent
2383bd97fe
commit
2661cd8a0c
65
scanner.c
65
scanner.c
@ -62,6 +62,7 @@
|
|||||||
|
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
|
|
||||||
|
#include "scanner_sqlite.h"
|
||||||
#include "upnpglobalvars.h"
|
#include "upnpglobalvars.h"
|
||||||
#include "metadata.h"
|
#include "metadata.h"
|
||||||
#include "playlist.h"
|
#include "playlist.h"
|
||||||
@ -589,75 +590,25 @@ CreateDatabase(void)
|
|||||||
BROWSEDIR_ID, "0", _("Browse Folders"),
|
BROWSEDIR_ID, "0", _("Browse Folders"),
|
||||||
0 };
|
0 };
|
||||||
|
|
||||||
ret = sql_exec(db, "CREATE TABLE OBJECTS ( "
|
ret = sql_exec(db, create_objectTable_sqlite);
|
||||||
"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"
|
|
||||||
");");
|
|
||||||
if( ret != SQLITE_OK )
|
if( ret != SQLITE_OK )
|
||||||
goto sql_failed;
|
goto sql_failed;
|
||||||
ret = sql_exec(db, "CREATE TABLE DETAILS ( "
|
ret = sql_exec(db, create_detailTable_sqlite);
|
||||||
"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"
|
|
||||||
")");
|
|
||||||
if( ret != SQLITE_OK )
|
if( ret != SQLITE_OK )
|
||||||
goto sql_failed;
|
goto sql_failed;
|
||||||
ret = sql_exec(db, "CREATE TABLE ALBUM_ART ( "
|
ret = sql_exec(db, create_albumArtTable_sqlite);
|
||||||
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
|
|
||||||
"PATH TEXT NOT NULL"
|
|
||||||
")");
|
|
||||||
if( ret != SQLITE_OK )
|
if( ret != SQLITE_OK )
|
||||||
goto sql_failed;
|
goto sql_failed;
|
||||||
ret = sql_exec(db, "CREATE TABLE CAPTIONS ("
|
ret = sql_exec(db, create_captionTable_sqlite);
|
||||||
"ID INTEGER PRIMARY KEY, "
|
|
||||||
"PATH TEXT NOT NULL"
|
|
||||||
")");
|
|
||||||
if( ret != SQLITE_OK )
|
if( ret != SQLITE_OK )
|
||||||
goto sql_failed;
|
goto sql_failed;
|
||||||
ret = sql_exec(db, "CREATE TABLE BOOKMARKS ("
|
ret = sql_exec(db, create_bookmarkTable_sqlite);
|
||||||
"ID INTEGER PRIMARY KEY, "
|
|
||||||
"SEC INTEGER"
|
|
||||||
")");
|
|
||||||
if( ret != SQLITE_OK )
|
if( ret != SQLITE_OK )
|
||||||
goto sql_failed;
|
goto sql_failed;
|
||||||
ret = sql_exec(db, "CREATE TABLE PLAYLISTS ("
|
ret = sql_exec(db, create_playlistTable_sqlite);
|
||||||
"ID INTEGER PRIMARY KEY AUTOINCREMENT, "
|
|
||||||
"NAME TEXT NOT NULL, "
|
|
||||||
"PATH TEXT NOT NULL, "
|
|
||||||
"ITEMS INTEGER DEFAULT 0, "
|
|
||||||
"FOUND INTEGER DEFAULT 0"
|
|
||||||
")");
|
|
||||||
if( ret != SQLITE_OK )
|
if( ret != SQLITE_OK )
|
||||||
goto sql_failed;
|
goto sql_failed;
|
||||||
ret = sql_exec(db, "CREATE TABLE SETTINGS ("
|
ret = sql_exec(db, create_settingsTable_sqlite);
|
||||||
"UPDATE_ID INTEGER PRIMARY KEY DEFAULT 0, "
|
|
||||||
"FLAGS INTEGER DEFAULT 0"
|
|
||||||
")");
|
|
||||||
if( ret != SQLITE_OK )
|
if( ret != SQLITE_OK )
|
||||||
goto sql_failed;
|
goto sql_failed;
|
||||||
ret = sql_exec(db, "INSERT into SETTINGS values (0, 0)");
|
ret = sql_exec(db, "INSERT into SETTINGS values (0, 0)");
|
||||||
|
87
scanner_sqlite.h
Normal file
87
scanner_sqlite.h
Normal 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"
|
||||||
|
");";
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user