From 75dcf5020e797f2208c7cb3e7109769a0189d226 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Tue, 27 Aug 2013 18:50:45 -0300 Subject: [PATCH] jpeg: provide dlna information. --- src/plugins/jpeg/jpeg.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/plugins/jpeg/jpeg.c b/src/plugins/jpeg/jpeg.c index f002ba4..0915409 100644 --- a/src/plugins/jpeg/jpeg.c +++ b/src/plugins/jpeg/jpeg.c @@ -44,6 +44,46 @@ #include #include +static const struct lms_string_size dlna_mime = + LMS_STATIC_STRING_SIZE("image/jpeg"); +static const struct lms_string_size dlna_sm_ico = + LMS_STATIC_STRING_SIZE("JPEG_SM_ICO"); +static const struct lms_string_size dlna_lrg_ico = + LMS_STATIC_STRING_SIZE("JPEG_LRG_ICO"); +static const struct lms_string_size dlna_tn = + LMS_STATIC_STRING_SIZE("JPEG_TN"); +static const struct lms_string_size dlna_sm = + LMS_STATIC_STRING_SIZE("JPEG_SM"); +static const struct lms_string_size dlna_med = + LMS_STATIC_STRING_SIZE("JPEG_MED"); +static const struct lms_string_size dlna_lrg = + LMS_STATIC_STRING_SIZE("JPEG_LRG"); + +static void +_fill_dlna_profile(struct lms_image_info *info) +{ + const unsigned short w = info->width; + const unsigned short h = info->height; + + info->dlna_mime = dlna_mime; + + if (w == 0 || h == 0) + return; + + if (w == 48 && h == 48) + info->dlna_profile = dlna_sm_ico; + else if (w == 120 && h == 120) + info->dlna_profile = dlna_lrg_ico; + else if (w <= 160 && h <= 160) + info->dlna_profile = dlna_tn; + else if (w <= 640 && h <= 480) + info->dlna_profile = dlna_sm; + else if (w <= 1024 && h <= 768) + info->dlna_profile = dlna_med; + else if (w <= 4096 && h <= 4096) + info->dlna_profile = dlna_lrg; +} + enum { JPEG_MARKER_SOI = 0xd8, JPEG_MARKER_DQT = 0xdb, @@ -648,6 +688,8 @@ _parse(struct plugin *plugin, struct lms_context *ctxt, const struct lms_file_in if (info.artist.str) lms_charset_conv(ctxt->cs_conv, &info.artist.str, &info.artist.len); + _fill_dlna_profile(&info); + info.id = finfo->id; r = lms_db_image_add(plugin->img_db, &info); -- 2.7.4