diff options
author | Philip Van Hoof <philip@codeminded.be> | 2011-10-25 11:44:26 +0200 |
---|---|---|
committer | Philip Van Hoof <philip@codeminded.be> | 2011-10-25 11:56:55 +0200 |
commit | ffd93011f34c7a273524523e9d46af296159f6ad (patch) | |
tree | a407e77251f50663d563039d8914173db8da021f | |
parent | 7f3b3a112873bac597964e5158986560db349b44 (diff) | |
download | tracker-media-art-detect.tar.gz |
tracker-extract, jpeg: Detect albumartmedia-art-detect
-rw-r--r-- | src/tracker-extract/tracker-extract-jpeg.c | 92 |
1 files changed, 51 insertions, 41 deletions
diff --git a/src/tracker-extract/tracker-extract-jpeg.c b/src/tracker-extract/tracker-extract-jpeg.c index a9d15cbd2..61fa1d770 100644 --- a/src/tracker-extract/tracker-extract-jpeg.c +++ b/src/tracker-extract/tracker-extract-jpeg.c @@ -33,6 +33,7 @@ #include <libtracker-extract/tracker-extract.h> #include <libtracker-sparql/tracker-sparql.h> +#include "tracker-albumart.h" #include "tracker-main.h" #define CM_TO_INCH 0.393700787 @@ -160,6 +161,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info) gboolean success = TRUE; GString *where; guint i; + gboolean is_albumart; metadata = tracker_extract_info_get_metadata_builder (info); preupdate = tracker_extract_info_get_preupdate_builder (info); @@ -167,6 +169,7 @@ tracker_extract_get_metadata (TrackerExtractInfo *info) file = tracker_extract_info_get_file (info); filename = g_file_get_path (file); + is_albumart = tracker_is_albumart (file); size = tracker_file_get_size (filename); @@ -187,7 +190,12 @@ tracker_extract_get_metadata (TrackerExtractInfo *info) tracker_sparql_builder_predicate (metadata, "a"); tracker_sparql_builder_object (metadata, "nfo:Image"); tracker_sparql_builder_predicate (metadata, "a"); - tracker_sparql_builder_object (metadata, "nmm:Photo"); + + if (is_albumart) { + tracker_sparql_builder_object (metadata, "nmm:MediaArt"); + } else { + tracker_sparql_builder_object (metadata, "nmm:Photo"); + } cinfo.err = jpeg_std_error (&tejerr.jpeg); tejerr.jpeg.error_exit = extract_jpeg_error_exit; @@ -544,30 +552,53 @@ tracker_extract_get_metadata (TrackerExtractInfo *info) tracker_sparql_builder_object_unvalidated (metadata, md.copyright); } - if (md.white_balance) { - tracker_sparql_builder_predicate (metadata, "nmm:whiteBalance"); - tracker_sparql_builder_object (metadata, md.white_balance); - } + if (!is_albumart) { + if (md.white_balance) { + tracker_sparql_builder_predicate (metadata, "nmm:whiteBalance"); + tracker_sparql_builder_object (metadata, md.white_balance); + } - if (md.fnumber) { - gdouble value; + if (md.fnumber) { + gdouble value; - value = g_strtod (md.fnumber, NULL); - tracker_sparql_builder_predicate (metadata, "nmm:fnumber"); - tracker_sparql_builder_object_double (metadata, value); - } + value = g_strtod (md.fnumber, NULL); + tracker_sparql_builder_predicate (metadata, "nmm:fnumber"); + tracker_sparql_builder_object_double (metadata, value); + } - if (md.flash) { - tracker_sparql_builder_predicate (metadata, "nmm:flash"); - tracker_sparql_builder_object (metadata, md.flash); - } + if (md.flash) { + tracker_sparql_builder_predicate (metadata, "nmm:flash"); + tracker_sparql_builder_object (metadata, md.flash); + } - if (md.focal_length) { - gdouble value; + if (md.focal_length) { + gdouble value; - value = g_strtod (md.focal_length, NULL); - tracker_sparql_builder_predicate (metadata, "nmm:focalLength"); - tracker_sparql_builder_object_double (metadata, value); + value = g_strtod (md.focal_length, NULL); + tracker_sparql_builder_predicate (metadata, "nmm:focalLength"); + tracker_sparql_builder_object_double (metadata, value); + } + + if (md.exposure_time) { + gdouble value; + + value = g_strtod (md.exposure_time, NULL); + tracker_sparql_builder_predicate (metadata, "nmm:exposureTime"); + tracker_sparql_builder_object_double (metadata, value); + } + + if (md.iso_speed_ratings) { + gdouble value; + + value = g_strtod (md.iso_speed_ratings, NULL); + tracker_sparql_builder_predicate (metadata, "nmm:isoSpeed"); + tracker_sparql_builder_object_double (metadata, value); + } + + if (md.metering_mode) { + tracker_sparql_builder_predicate (metadata, "nmm:meteringMode"); + tracker_sparql_builder_object (metadata, md.metering_mode); + } } if (md.artist) { @@ -594,22 +625,6 @@ tracker_extract_get_metadata (TrackerExtractInfo *info) g_free (uri); } - if (md.exposure_time) { - gdouble value; - - value = g_strtod (md.exposure_time, NULL); - tracker_sparql_builder_predicate (metadata, "nmm:exposureTime"); - tracker_sparql_builder_object_double (metadata, value); - } - - if (md.iso_speed_ratings) { - gdouble value; - - value = g_strtod (md.iso_speed_ratings, NULL); - tracker_sparql_builder_predicate (metadata, "nmm:isoSpeed"); - tracker_sparql_builder_object_double (metadata, value); - } - tracker_guarantee_date_from_file_mtime (metadata, "nie:contentCreated", md.date, @@ -620,11 +635,6 @@ tracker_extract_get_metadata (TrackerExtractInfo *info) tracker_sparql_builder_object_unvalidated (metadata, md.description); } - if (md.metering_mode) { - tracker_sparql_builder_predicate (metadata, "nmm:meteringMode"); - tracker_sparql_builder_object (metadata, md.metering_mode); - } - if (md.creator) { gchar *uri = tracker_sparql_escape_uri_printf ("urn:contact:%s", md.creator); |