From 54a59bc35c66b94c0dd96b71fbd2e2ccc3e0a480 Mon Sep 17 00:00:00 2001 From: Leandro Dorileo Date: Fri, 17 Jan 2014 10:48:53 -0200 Subject: [PATCH] db layer: call the lms_dlna_* functions Call the lms_dlna_* functions to properly set the dlna_profile and dlna_mime fields. The plugins can still set/define their own dlna_mime and dlna_profile, if so, we're not going to overwrite it and the plugin's will have priority. --- src/lib/lightmediascanner_db_audio.c | 10 ++++++++++ src/lib/lightmediascanner_db_image.c | 11 +++++++++++ src/lib/lightmediascanner_db_video.c | 10 ++++++++++ 3 files changed, 31 insertions(+) diff --git a/src/lib/lightmediascanner_db_audio.c b/src/lib/lightmediascanner_db_audio.c index c9ff039..5958f29 100644 --- a/src/lib/lightmediascanner_db_audio.c +++ b/src/lib/lightmediascanner_db_audio.c @@ -20,6 +20,7 @@ * @author Gustavo Sverzut Barbieri */ #include +#include #include "lightmediascanner_db_private.h" #include #include @@ -728,6 +729,7 @@ lms_db_audio_add(lms_db_audio_t *lda, struct lms_audio_info *info) { int64_t album_id, genre_id, artist_id; int ret_album, ret_genre, ret_artist; + const struct lms_dlna_audio_profile *dlna; if (!lda) return -1; @@ -736,6 +738,14 @@ lms_db_audio_add(lms_db_audio_t *lda, struct lms_audio_info *info) if (info->id < 1) return -3; + if (info->dlna_mime.len == 0 && info->dlna_profile.len == 0) { + dlna = lms_dlna_get_audio_profile(info); + if (dlna) { + info->dlna_mime = *dlna->dlna_mime; + info->dlna_profile = *dlna->dlna_profile; + } + } + ret_artist = _db_insert_artist(lda, info, &artist_id); if (ret_artist < 0) return -4; diff --git a/src/lib/lightmediascanner_db_image.c b/src/lib/lightmediascanner_db_image.c index b9cdf88..87877fe 100644 --- a/src/lib/lightmediascanner_db_image.c +++ b/src/lib/lightmediascanner_db_image.c @@ -22,6 +22,7 @@ #include #include "lightmediascanner_db_private.h" +#include #include #include @@ -348,6 +349,8 @@ _db_insert(lms_db_image_t *ldi, const struct lms_image_info *info) int lms_db_image_add(lms_db_image_t *ldi, struct lms_image_info *info) { + const struct lms_dlna_image_profile *dlna; + if (!ldi) return -1; if (!info) @@ -355,5 +358,13 @@ lms_db_image_add(lms_db_image_t *ldi, struct lms_image_info *info) if (info->id < 1) return -3; + if (info->dlna_mime.len == 0 && info->dlna_profile.len == 0) { + dlna = lms_dlna_get_image_profile(info); + if (dlna) { + info->dlna_mime = *dlna->dlna_mime; + info->dlna_profile = *dlna->dlna_profile; + } + } + return _db_insert(ldi, info); } diff --git a/src/lib/lightmediascanner_db_video.c b/src/lib/lightmediascanner_db_video.c index dc9b771..dee352c 100644 --- a/src/lib/lightmediascanner_db_video.c +++ b/src/lib/lightmediascanner_db_video.c @@ -21,6 +21,7 @@ */ #include +#include #include "lightmediascanner_db_private.h" #include #include @@ -604,6 +605,7 @@ int lms_db_video_add(lms_db_video_t *ldv, struct lms_video_info *info) { struct lms_stream *s; + const struct lms_dlna_video_profile *dlna; int r; if (!ldv) @@ -613,6 +615,14 @@ lms_db_video_add(lms_db_video_t *ldv, struct lms_video_info *info) if (info->id < 1) return -3; + if (info->dlna_mime.len == 0 && info->dlna_profile.len == 0) { + dlna = lms_dlna_get_video_profile(info); + if (dlna) { + info->dlna_mime = *dlna->dlna_mime; + info->dlna_profile = *dlna->dlna_profile; + } + } + r = _db_insert(ldv, info); if (r < 0) return r; -- 2.7.4