commit 959928ee72bb1073982f72574e8bbe2fd3f1389f
Author: Joel Smith <>
Date:   Sun Mar 28 23:37:58 2010 +0200

    [sqlite] populate video info table
    
    This patch is a first try at populating the video_info table for TV Shows,
    Movies and Music Videos, though the only metadata of interest actually
    populated is only relevant to TV Shows (like season number, episode number,
    show title, etc.).

 src/itdb_sqlite.c |   70 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 0 deletions(-)
---
diff --git a/src/itdb_sqlite.c b/src/itdb_sqlite.c
index d7626bf..dc35f39 100644
--- a/src/itdb_sqlite.c
+++ b/src/itdb_sqlite.c
@@ -573,6 +573,7 @@ static int mk_Library(Itdb_iTunesDB *itdb,
     sqlite3_stmt *stmt_album = NULL;
     sqlite3_stmt *stmt_artist = NULL;
     sqlite3_stmt *stmt_composer = NULL;
+    sqlite3_stmt *stmt_video_info = NULL;
     char *errmsg = NULL;
     struct stat fst;
     GList *gl = NULL;
@@ -675,6 +676,10 @@ static int mk_Library(Itdb_iTunesDB *itdb,
        fprintf(stderr, "[%s] sqlite3_prepare error: %s\n", __func__, 
sqlite3_errmsg(db));
        goto leave;
     }
+    if (SQLITE_OK != sqlite3_prepare_v2(db, "INSERT INTO \"video_info\" 
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);", -1, &stmt_video_info, 
NULL)) {
+       fprintf(stderr, "[%s] sqlite3_prepare error: %s\n", __func__, 
sqlite3_errmsg(db));
+       goto leave;
+    }
 
     printf("[%s] - inserting into \"version_info\"\n", __func__);
     /* INSERT INTO "version_info" VALUES(1,2,40,0,0,0,2); */
@@ -1216,6 +1221,68 @@ static int mk_Library(Itdb_iTunesDB *itdb,
                fprintf(stderr, "[%s] 8 sqlite3_step returned %d\n", __func__, 
res);
            }
        }
+       /* if it's a movie, music video or tv show */
+       if ((track->mediatype & ITDB_MEDIATYPE_MOVIE)
+               || (track->mediatype & ITDB_MEDIATYPE_MUSICVIDEO)
+               || (track->mediatype & ITDB_MEDIATYPE_TVSHOW)) {
+           /* printf("[%s] -- inserting into \"video_info\"\n", __func__); */
+           res = sqlite3_reset(stmt_video_info);
+           if (res != SQLITE_OK) {
+               fprintf(stderr, "[%s] 1 sqlite3_reset returned %d\n", __func__, 
res);
+           }
+           idx = 0;
+           /* item_pid INTEGER NOT NULL */
+           sqlite3_bind_int64(stmt_video_info, ++idx, track->dbid);
+           /* has_alternate_audio INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* has_subtitles INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* characteristics_valid INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* has_closed_captions INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* is_self_contained INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* is_compressed INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* is_anamorphic INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* season_number INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, track->season_nr);
+           /* audio_language INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* audio_track_index INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* audio_track_id INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* subtitle_language INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* subtitle_track_index INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* subtitle_track_id INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, 0);
+           /* series_name TEXT */
+           sqlite3_bind_text(stmt_video_info, ++idx, track->tvshow, -1, 
SQLITE_STATIC);
+           /* sort_series_name TEXT */
+           sqlite3_bind_text(stmt_video_info, ++idx, track->sort_tvshow, -1, 
SQLITE_STATIC);
+           /* episode_id TEXT */
+           sqlite3_bind_text(stmt_video_info, ++idx, track->tvepisode, -1, 
SQLITE_STATIC);
+           /* episode_sort_id INTEGER */
+           sqlite3_bind_int(stmt_video_info, ++idx, track->episode_nr);
+           /* network_name TEXT */
+           sqlite3_bind_text(stmt_video_info, ++idx, track->tvnetwork, -1, 
SQLITE_STATIC);
+           /* extended_content_rating TEXT */
+           sqlite3_bind_null(stmt_video_info, ++idx);
+           /* movie_info TEXT */
+           sqlite3_bind_null(stmt_video_info, ++idx);
+
+           res = sqlite3_step(stmt_video_info);
+           if (res == SQLITE_DONE) {
+               /* expected result */
+           } else {
+               fprintf(stderr, "[%s] 8 sqlite3_step returned %d\n", __func__, 
res);
+           }
+       }
     }
 
     sqlite3_exec(db, "UPDATE album SET artwork_item_pid = (SELECT item.pid 
FROM item WHERE item.artwork_cache_id != 0 AND item.album_pid = album.pid LIMIT 
1);", NULL, NULL, NULL);
@@ -1259,6 +1326,9 @@ leave:
     if (stmt_artist) {
        sqlite3_finalize(stmt_artist);
     }
+    if (stmt_video_info) {
+       sqlite3_finalize(stmt_video_info);
+    }
     if (genre_map) {
        g_hash_table_destroy(genre_map);
     }

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to