@@ -21,49 +21,6 @@ static DBHandle __migrate_cache_handles[MIGRATE_DB_MAX_FILES];
2121static int __migrate_cache_count = 0 ;
2222
2323static sqlite3 * play_activity_db = NULL ;
24- void play_activity_db_open (void )
25- {
26- if (play_activity_db != NULL )
27- return ;
28-
29- bool play_activity_db_created = is_file (PLAY_ACTIVITY_DB_NEW_FILE );
30-
31- mkdir ("/mnt/SDCARD/Saves/CurrentProfile/play_activity/" , 0777 );
32-
33- if (sqlite3_open (PLAY_ACTIVITY_DB_NEW_FILE , & play_activity_db ) != SQLITE_OK ) {
34- printf ("%s\n" , sqlite3_errmsg (play_activity_db ));
35- sqlite3_close (play_activity_db );
36- play_activity_db = NULL ;
37- return ;
38- }
39-
40- if (!play_activity_db_created ) {
41- sqlite3_exec (play_activity_db ,
42- "DROP TABLE IF EXISTS rom;"
43- "CREATE TABLE rom(id INTEGER PRIMARY KEY, type TEXT, name TEXT, file_path TEXT, image_path TEXT, created_at INTEGER DEFAULT (strftime('%s', 'now')), updated_at INTEGER);"
44- "CREATE UNIQUE INDEX rom_id_index ON rom(id);" ,
45- NULL , NULL , NULL );
46- sqlite3_exec (play_activity_db ,
47- "DROP TABLE IF EXISTS play_activity;"
48- "CREATE TABLE play_activity(rom_id INTEGER, play_time INTEGER, created_at INTEGER DEFAULT (strftime('%s', 'now')), updated_at INTEGER);"
49- "CREATE INDEX play_activity_rom_id_index ON play_activity(rom_id);" ,
50- NULL , NULL , NULL );
51- }
52- }
53-
54- sqlite3_stmt * play_activity_db_prepare (char * sql )
55- {
56- printf_debug ("play_activity_db_prepare(%s)\n" , sql );
57- if (play_activity_db == NULL ) {
58- printf ("DB is not open" );
59- return NULL ;
60- }
61- sqlite3_stmt * stmt = NULL ;
62- if (sqlite3_prepare_v2 (play_activity_db , sql , -1 , & stmt , NULL ) != SQLITE_OK ) {
63- printf ("%s: %s\n" , sqlite3_errmsg (play_activity_db ), sqlite3_sql (stmt ));
64- }
65- return stmt ;
66- }
6724
6825int __db_insert_rom (const char * rom_type , const char * rom_name , const char * file_path , const char * image_path )
6926{
@@ -77,7 +34,15 @@ int __db_insert_rom(const char *rom_type, const char *rom_name, const char *file
7734 sqlite3_exec (play_activity_db , sql , NULL , NULL , NULL );
7835 sqlite3_free (sql );
7936
80- sqlite3_stmt * stmt = play_activity_db_prepare ("SELECT id FROM rom WHERE ROWID = last_insert_rowid()" );
37+ printf_debug ("play_activity_db_prepare(%s)\n" , sql );
38+ if (play_activity_db == NULL ) {
39+ printf ("DB is not open" );
40+ return NULL ;
41+ }
42+ sqlite3_stmt * stmt = NULL ;
43+ if (sqlite3_prepare_v2 (play_activity_db , sql , -1 , & stmt , NULL ) != SQLITE_OK ) {
44+ printf ("%s: %s\n" , sqlite3_errmsg (play_activity_db ), sqlite3_sql (stmt ));
45+ }
8146 if (sqlite3_step (stmt ) == SQLITE_ROW ) {
8247 rom_id = sqlite3_column_int (stmt , 0 );
8348 }
@@ -165,7 +130,32 @@ void migrateDB(void)
165130 int totalOrphan = 0 ;
166131
167132 printf ("\n%d games to migrate\n" , rom_list_len );
168- play_activity_db_open ();
133+ if (play_activity_db != NULL )
134+ return ;
135+
136+ bool play_activity_db_created = is_file (PLAY_ACTIVITY_DB_NEW_FILE );
137+
138+ mkdir ("/mnt/SDCARD/Saves/CurrentProfile/play_activity/" , 0777 );
139+
140+ if (sqlite3_open (PLAY_ACTIVITY_DB_NEW_FILE , & play_activity_db ) != SQLITE_OK ) {
141+ printf ("%s\n" , sqlite3_errmsg (play_activity_db ));
142+ sqlite3_close (play_activity_db );
143+ play_activity_db = NULL ;
144+ return ;
145+ }
146+
147+ if (!play_activity_db_created ) {
148+ sqlite3_exec (play_activity_db ,
149+ "DROP TABLE IF EXISTS rom;"
150+ "CREATE TABLE rom(id INTEGER PRIMARY KEY, type TEXT, name TEXT, file_path TEXT, image_path TEXT, created_at INTEGER DEFAULT (strftime('%s', 'now')), updated_at INTEGER);"
151+ "CREATE UNIQUE INDEX rom_id_index ON rom(id);" ,
152+ NULL , NULL , NULL );
153+ sqlite3_exec (play_activity_db ,
154+ "DROP TABLE IF EXISTS play_activity;"
155+ "CREATE TABLE play_activity(rom_id INTEGER, play_time INTEGER, created_at INTEGER DEFAULT (strftime('%s', 'now')), updated_at INTEGER);"
156+ "CREATE INDEX play_activity_rom_id_index ON play_activity(rom_id);" ,
157+ NULL , NULL , NULL );
158+ }
169159
170160 for (int i = 0 ; i < LEGACY_DB_MAX ; i ++ ) {
171161 if ((strlen (rom_list [i ].name ) == 0 ) || (rom_list [i ].playTime ) == 0 ) {
0 commit comments