From: Gustavo Sverzut Barbieri Date: Tue, 27 Aug 2013 21:51:06 +0000 (-0300) Subject: png: provide dlna information. X-Git-Tag: accepted/tizen/generic/20140106.140339~40 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5bd733eaeb4441d2c3e1ea129aedc4d3819c2150;p=platform%2Fupstream%2Flightmediascanner.git png: provide dlna information. --- diff --git a/src/plugins/png/png.c b/src/plugins/png/png.c index 9982b0a..b07dff9 100644 --- a/src/plugins/png/png.c +++ b/src/plugins/png/png.c @@ -42,6 +42,38 @@ #include #include +static const struct lms_string_size dlna_mime = + LMS_STATIC_STRING_SIZE("image/png"); +static const struct lms_string_size dlna_sm_ico = + LMS_STATIC_STRING_SIZE("PNG_SM_ICO"); +static const struct lms_string_size dlna_lrg_ico = + LMS_STATIC_STRING_SIZE("PNG_LRG_ICO"); +static const struct lms_string_size dlna_tn = + LMS_STATIC_STRING_SIZE("PNG_TN"); +static const struct lms_string_size dlna_lrg = + LMS_STATIC_STRING_SIZE("PNG_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 <= 4096 && h <= 4096) + info->dlna_profile = dlna_lrg; +} + static inline unsigned int _chunk_to_uint(unsigned char *buf) { @@ -150,6 +182,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);