summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS9
-rw-r--r--Makefile.am23
-rw-r--r--Makefile.decl64
-rw-r--r--NEWS0
-rw-r--r--README0
-rwxr-xr-xautogen.sh15
-rw-r--r--configure.ac286
-rw-r--r--libmediaart.doap39
-rw-r--r--libmediaart/Makefile.am48
-rw-r--r--libmediaart/extract.c (renamed from src/tracker-extract/tracker-media-art.c)51
-rw-r--r--libmediaart/extract.h (renamed from src/tracker-extract/tracker-media-art.h)10
-rw-r--r--libmediaart/extractdummy.c (renamed from src/tracker-extract/tracker-media-art-dummy.c)0
-rw-r--r--libmediaart/extractgeneric.h (renamed from src/tracker-extract/tracker-media-art-generic.h)13
-rw-r--r--libmediaart/extractpixbuf.c (renamed from src/tracker-extract/tracker-media-art-pixbuf.c)35
-rw-r--r--libmediaart/extractqt.cpp (renamed from src/tracker-extract/tracker-media-art-qt.cpp)0
-rw-r--r--libmediaart/mediaart.h32
-rw-r--r--libmediaart/queue.c (renamed from src/libtracker-miner/tracker-media-art.c)3
-rw-r--r--libmediaart/queue.h (renamed from src/libtracker-miner/tracker-media-art.h)10
-rw-r--r--libmediaart/utils.c (renamed from src/libtracker-common/tracker-media-art.c)4
-rw-r--r--libmediaart/utils.h (renamed from src/libtracker-common/tracker-media-art.h)14
-rw-r--r--tests/Makefile.am19
-rw-r--r--tests/mediaarttest.c (renamed from tests/libtracker-common/tracker-media-art-test.c)2
22 files changed, 599 insertions, 78 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..1e83aa6
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,9 @@
+Martyn Russell <martyn at lanedo com>
+Jürg Billeter <juerg.billeter at codethink co uk>
+Philip Van Hoof <philip at codeminded be>
+Carlos Garnacho <carlos at lanedo com>
+Mikael Ottela <mikael.ottela at ixonos com>
+Ivan Frade <ivan.frade at nokia com>
+Jamie McCracken <jamiemcc at gnome org>
+Adrien Bustany <abustany at gnome org>
+Aleksander Morgado <aleksander at lanedo com>
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..61b9f78
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,23 @@
+include $(top_srcdir)/Makefile.decl
+
+SUBDIRS = libmediaart
+
+if HAVE_UNIT_TESTS
+SUBDIRS += tests
+endif
+
+EXTRA_DIST = \
+ intltool-extract.in \
+ intltool-merge.in \
+ intltool-update.in \
+ libmediaart.doap
+
+DISTCLEANFILES = \
+ intltool-extract \
+ intltool-merge \
+ intltool-update
+
+DISTCHECK_CONFIGURE_FLAGS = \
+ --enable-unit-tests
+
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
diff --git a/Makefile.decl b/Makefile.decl
new file mode 100644
index 0000000..2c5a4a2
--- /dev/null
+++ b/Makefile.decl
@@ -0,0 +1,64 @@
+#
+# Testing rules for make
+# Original file: http://svn.gnome.org/svn/glib/trunk/Makefile.decl
+#
+# test: run all tests in cwd and subdirs
+# test-report: run tests in subdirs and generate report
+# perf-report: run tests in subdirs with -m perf and generate report
+# full-report: like test-report: with -m perf and -m slow
+#
+
+GTESTER = gtester # for non-GLIB packages
+GTESTER_REPORT = gtester-report
+
+# initialize variables for unconditional += appending
+TEST_PROGS =
+
+### testing rules
+
+# test: run all tests in cwd and subdirs
+test: ${TEST_PROGS} all
+ @ test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
+ @ for subdir in $(SUBDIRS) . ; do \
+ test "$$subdir" = "." -o "$$subdir" = "po" || \
+ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
+ done
+# test-report: run tests in subdirs and generate report
+# perf-report: run tests in subdirs with -m perf and generate report
+# full-report: like test-report: with -m perf and -m slow
+test-report perf-report full-report: ${TEST_PROGS}
+ @test -z "${TEST_PROGS}" || { \
+ case $@ in \
+ test-report) test_options="-k";; \
+ perf-report) test_options="-k -m=perf";; \
+ full-report) test_options="-k -m=perf -m=slow";; \
+ esac ; \
+ if test -z "$$GTESTER_LOGDIR" ; then \
+ ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
+ elif test -n "${TEST_PROGS}" ; then \
+ ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
+ fi ; \
+ }
+ @ ignore_logdir=true ; \
+ if test -z "$$GTESTER_LOGDIR" ; then \
+ GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
+ ignore_logdir=false ; \
+ fi ; \
+ for subdir in $(SUBDIRS) . ; do \
+ test "$$subdir" = "." -o "$$subdir" = "po" || \
+ ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
+ done ; \
+ $$ignore_logdir || { \
+ echo '<?xml version="1.0"?>' > $@.xml ; \
+ echo '<report-collection>' >> $@.xml ; \
+ for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
+ sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
+ done ; \
+ echo >> $@.xml ; \
+ echo '</report-collection>' >> $@.xml ; \
+ rm -rf "$$GTESTER_LOGDIR"/ ; \
+ ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
+ }
+.PHONY: test test-report perf-report full-report
+# run make test as part of make check
+check-local: test
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/NEWS
diff --git a/README b/README
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/README
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..e3135a9
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+#
+# NOTE: compare_versions() is stolen from gnome-autogen.sh
+
+# Generate required files
+test -n "$srcdir" || srcdir=`dirname "$0"`
+test -n "$srcdir" || srcdir=.
+(
+ cd "$srcdir" &&
+ touch ChangeLog && # Automake requires that ChangeLog exist
+ autopoint --force &&
+ AUTOPOINT='intltoolize --automake --copy' autoreconf --verbose --force --install
+) || exit
+test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..17651fe
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,286 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+# This file is part of Libmediaart.
+
+AC_PREREQ([2.64])
+
+# Making releases:
+# LIBMEDIAART_MICRO_VERSION += 1;
+# LIBMEDIAART_INTERFACE_AGE += 1;
+# LIBMEDIAART_BINARY_AGE += 1;
+# if any functions have been added, set LIBMEDIAART_INTERFACE_AGE to 0.
+# if backwards compatibility has been broken,
+# set LIBMEDIAART_BINARY_AGE and LIBMEDIAART_INTERFACE_AGE to 0.
+m4_define([libmediaart_major_version], [0])
+m4_define([libmediaart_minor_version], [1])
+m4_define([libmediaart_micro_version], [0])
+m4_define([libmediaart_interface_age], [0])
+m4_define([libmediaart_binary_age],
+ [m4_eval(100 * libmediaart_minor_version + libmediaart_micro_version)])
+m4_define([libmediaart_version],
+ [libmediaart_major_version.libmediaart_minor_version.libmediaart_micro_version])
+# This is the X.Y used in -lliblibmediaart-FOO-X.Y
+m4_define([libmediaart_api_version], [0.2])
+
+# libtool version related macros
+m4_define([libmediaart_lt_release], [libmediaart_major_version.libmediaart_minor_version])
+m4_define([libmediaart_lt_current],
+ [m4_eval(100 * libmediaart_minor_version + libmediaart_micro_version - libmediaart_interface_age)])
+m4_define([libmediaart_lt_revision], [libmediaart_interface_age])
+m4_define([libmediaart_lt_age], [m4_eval(libmediaart_binary_age - libmediaart_interface_age)])
+m4_define([libmediaart_lt_current_minus_age],
+ [m4_eval(libmediaart_lt_current - libmediaart_lt_age)])
+
+# Define a string for the earliest version that this release has
+# backwards binary compatibility with for all interfaces a module
+# might. Unless we add module-only API with lower stability
+# guarantees, this should be unchanged until we break binary compat
+# for Libmediaart.
+#
+# LIBMEDIAART_BINARY_VERSION=$LIBMEDIAART_MAJOR_VERSION.$LIBMEDIAART_MINOR_VERSION.$LT_CURRENT
+m4_define([libmediaart_binary_version], [0.2.0])
+
+AC_INIT([libmediaart],
+ [libmediaart_version],
+ [http://bugzilla.gnome.org/],
+ [libmediaart],
+ [https://wiki.gnome.org/MediaArtStorageSpec])
+
+AC_CONFIG_SRCDIR([libmediaart/mediaart.h])
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([1.11 no-define tar-ustar -Wno-portability])
+
+AM_SILENT_RULES([yes])
+
+LIBMEDIAART_MAJOR_VERSION=libmediaart_major_version
+LIBMEDIAART_MINOR_VERSION=libmediaart_minor_version
+LIBMEDIAART_MICRO_VERSION=libmediaart_micro_version
+LIBMEDIAART_INTERFACE_AGE=libmediaart_interface_age
+LIBMEDIAART_BINARY_AGE=libmediaart_binary_age
+LIBMEDIAART_VERSION=libmediaart_version
+LIBMEDIAART_API_VERSION=libmediaart_api_version
+LIBMEDIAART_BINARY_VERSION=libmediaart_binary_version
+
+AC_SUBST(LIBMEDIAART_MAJOR_VERSION)
+AC_SUBST(LIBMEDIAART_MINOR_VERSION)
+AC_SUBST(LIBMEDIAART_MICRO_VERSION)
+AC_SUBST(LIBMEDIAART_INTERFACE_AGE)
+AC_SUBST(LIBMEDIAART_BINARY_AGE)
+AC_SUBST(LIBMEDIAART_API_VERSION)
+AC_SUBST(LIBMEDIAART_VERSION)
+AC_SUBST(LIBMEDIAART_BINARY_VERSION)
+
+AC_DEFINE(LIBMEDIAART_MAJOR_VERSION, [libmediaart_major_version],
+ [Define to the Libmediaart major version])
+AC_DEFINE(LIBMEDIAART_MINOR_VERSION, [libmediaart_minor_version],
+ [Define to the Libmediaart minor version])
+AC_DEFINE(LIBMEDIAART_MICRO_VERSION, [libmediaart_micro_version],
+ [Define to the Libmediaart micro version])
+AC_DEFINE(LIBMEDIAART_INTERFACE_AGE, [libmediaart_interface_age],
+ [Define to the Libmediaart interface age])
+AC_DEFINE(LIBMEDIAART_BINARY_AGE, [libmediaart_binary_age],
+ [Define to the Libmediaart binary age])
+
+# libtool versioning
+LT_RELEASE=libmediaart_lt_release
+LT_CURRENT=libmediaart_lt_current
+LT_REVISION=libmediaart_lt_revision
+LT_AGE=libmediaart_lt_age
+LT_CURRENT_MINUS_AGE=libmediaart_lt_current_minus_age
+AC_SUBST(LT_RELEASE)
+AC_SUBST(LT_CURRENT)
+AC_SUBST(LT_REVISION)
+AC_SUBST(LT_AGE)
+AC_SUBST(LT_CURRENT_MINUS_AGE)
+
+# Checks for programs.
+AC_PROG_CXX
+AC_PROG_AWK
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_RANLIB
+AC_PROG_MKDIR_P
+AC_PROG_YACC
+
+# Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT([disable-static])
+
+# Get text
+AM_GNU_GETTEXT_VERSION([0.17])
+AM_GNU_GETTEXT([external])
+
+# Checks for programs.
+AC_PROG_CXX
+AC_PROG_AWK
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_RANLIB
+
+# Checks for libraries.
+
+# Checks for header files.
+AC_CHECK_HEADERS([stdlib.h string.h unistd.h utime.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_SIZE_T
+
+# Checks for library functions.
+AC_CHECK_FUNCS([strstr utime])
+
+
+CFLAGS="$CFLAGS"
+
+# Library required versions
+GLIB_REQUIRED=2.35.1
+GDKPIXBUF_REQUIRED=2.12.0
+QT_REQUIRED=4.7.1
+TRACKER_REQUIRED=0.16.0
+
+# Check requirements for libmediaart
+LIBMEDIAART_REQUIRED="glib-2.0 >= $GLIB_REQUIRED tracker-sparql-0.16 >= $TRACKER_REQUIRED"
+PKG_CHECK_MODULES(LIBMEDIAART, [$LIBMEDIAART_REQUIRED])
+
+LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS -lz -lm"
+
+####################################################################
+# General CFLAGS/LIBS
+####################################################################
+BUILD_CFLAGS="${WARN_CFLAGS} -DG_LOG_DOMAIN=\\\"libmediaart\\\" -DLIBMEDIAART_COMPILATION"
+BUILD_LIBS="${GCOV_LIBS}"
+
+AC_SUBST(BUILD_VALAFLAGS)
+AC_SUBST(BUILD_CFLAGS)
+AC_SUBST(BUILD_LIBS)
+
+##################################################################
+# Check for tracker-extract: GdkPixbuf for MP3 album art
+##################################################################
+
+AC_ARG_ENABLE(gdkpixbuf,
+ AS_HELP_STRING([--enable-gdkpixbuf],
+ [enable GdkPixbuf support, (MP3 album art) [[default=auto]]]),,
+ [enable_gdkpixbuf=auto])
+
+##################################################################
+# Check for libmediaart-extract: Qt for MP3 album art
+##################################################################
+
+AC_ARG_ENABLE(qt,
+ AS_HELP_STRING([--enable-qt],
+ [enable Qt support, (MP3 album art) [[default=auto]]]),,
+ [enable_qt=auto])
+
+selected_for_media_art="no (disabled)"
+
+##################################################################
+# Check for tracker-extract: Choose between GdkPixbuf/Qt
+##################################################################
+
+if test "x$enable_qt" != "xno" && test "x$enable_gdkpixbuf" != "xyes"; then
+ PKG_CHECK_MODULES(QT,
+ [QtGui >= $QT_REQUIRED],
+ [have_qt=yes],
+ [have_qt=no])
+
+ LIBMEDIAART_CFLAGS="$LIBMEDIAART_CFLAGS $QT_CFLAGS"
+ LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS $QT_LIBS"
+
+ if test "x$have_qt" = "xyes"; then
+ AC_DEFINE(HAVE_QT, [], [Define if we have Qt])
+ selected_for_media_art="yes (qt)"
+ fi
+else
+ have_qt="no (disabled)"
+fi
+
+if test "x$enable_qt" = "xyes"; then
+ if test "x$have_qt" != "xyes"; then
+ AC_MSG_ERROR([Couldn't find Qt >= $QT_REQUIRED.])
+ fi
+fi
+
+AM_CONDITIONAL(HAVE_QT, test "x$have_qt" = "xyes")
+
+if test "x$enable_gdkpixbuf" != "xno" && test "x$enable_quill" != "xyes"; then
+ PKG_CHECK_MODULES(GDKPIXBUF,
+ [gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED],
+ [have_gdkpixbuf=yes],
+ [have_gdkpixbuf=no])
+
+ LIBMEDIAART_CFLAGS="$LIBMEDIAART_CFLAGS $GDKPIXBUF_CFLAGS"
+ LIBMEDIAART_LIBS="$LIBMEDIAART_LIBS $GDKPIXBUF_LIBS"
+
+ if test "x$have_gdkpixbuf" = "xyes"; then
+ AC_DEFINE(HAVE_GDKPIXBUF, [], [Define if we have GdkPixbuf])
+ selected_for_media_art="yes (GdkPixbuf)"
+ fi
+else
+ have_gdkpixbuf="no (disabled)"
+fi
+
+if test "x$enable_gdkpixbuf" = "xyes"; then
+ if test "x$have_gdkpixbuf" != "xyes"; then
+ AC_MSG_ERROR([Couldn't find GdkPixbuf >= $GDKPIXBUF_REQUIRED.])
+ fi
+fi
+
+AM_CONDITIONAL(HAVE_GDKPIXBUF, test "x$have_gdkpixbuf" = "xyes")
+
+####################################################################
+# Should we build GLib based unit tests
+####################################################################
+
+AC_ARG_ENABLE(unit_tests,
+ AS_HELP_STRING([--enable-unit-tests],
+ [enable unit tests [[default=yes]]]), ,
+ [enable_unit_tests=yes])
+
+if test "x$enable_unit_tests" != "xno" ; then
+ have_unit_tests=yes
+
+ AC_DEFINE(HAVE_UNIT_TEST, 1, [Define if we have GLib unit test framework])
+
+ AC_PATH_PROG(gtester, gtester)
+ if test -z $gtester; then
+ AC_MSG_ERROR([Could not find 'gtester'])
+ fi
+else
+ have_unit_tests=no
+fi
+
+AM_CONDITIONAL(HAVE_UNIT_TESTS, test "x$have_unit_tests" = "xyes")
+
+##################################################################
+# Write generated files
+##################################################################
+
+AC_CONFIG_FILES([
+ Makefile
+ libmediaart/Makefile
+ tests/Makefile
+])
+
+AC_OUTPUT
+
+echo "
+Build Configuration:
+
+ Prefix: ${prefix}
+ Source code location: ${srcdir}
+ Compiler: ${CC}
+ Compiler Warnings: $enable_compile_warnings
+
+ Enable functional tests: $enable_functional_tests
+ Enable unit tests: $have_unit_tests
+
+ Support media art processing: $selected_for_media_art
+"
diff --git a/libmediaart.doap b/libmediaart.doap
new file mode 100644
index 0000000..4f29e24
--- /dev/null
+++ b/libmediaart.doap
@@ -0,0 +1,39 @@
+<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+ xmlns:foaf="http://xmlns.com/foaf/0.1/"
+ xmlns:gnome="http://api.gnome.org/doap-extensions#"
+ xmlns="http://usefulinc.com/ns/doap#">
+
+ <name xml:lang="en">libmediaart</name>
+ <shortdesc xml:lang="en">Library for handling media art</shortdesc>
+ <description>Library tasked with managing, extracting and handling media art caches</description>
+ <homepage rdf:resource="https://github.com/curlybeast/libmediaart" />
+ <mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/tracker-list" />
+ <category rdf:resource="http://api.gnome.org/doap-extensions#platform" />
+ <bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=tracker" />
+
+ <maintainer>
+ <foaf:Person>
+ <foaf:name>Martyn Russell</foaf:name>
+ <foaf:mbox rdf:resource="mailto:martyn@lanedo.com" />
+ <gnome:userid>mr</gnome:userid>
+ </foaf:Person>
+ </maintainer>
+
+ <maintainer>
+ <foaf:Person>
+ <foaf:name>Philip Van Hoof</foaf:name>
+ <foaf:mbox rdf:resource="mailto:pvanhoof@gnome.org" />
+ <gnome:userid>pvanhoof</gnome:userid>
+ </foaf:Person>
+ </maintainer>
+
+ <maintainer>
+ <foaf:Person>
+ <foaf:name>Sam Thursfield</foaf:name>
+ <foaf:mbox rdf:resource="mailto:sam.thursfield@codethink.co.uk" />
+ <gnome:userid>ssam2</gnome:userid>
+ </foaf:Person>
+ </maintainer>
+
+</Project>
diff --git a/libmediaart/Makefile.am b/libmediaart/Makefile.am
new file mode 100644
index 0000000..5857c3e
--- /dev/null
+++ b/libmediaart/Makefile.am
@@ -0,0 +1,48 @@
+include $(top_srcdir)/Makefile.decl
+
+AM_CPPFLAGS = \
+ $(BUILD_CFLAGS) \
+ $(LIBMEDIAART_CFLAGS)
+
+#
+# Binaries
+#
+lib_LTLIBRARIES = libmediaart-@LIBMEDIAART_API_VERSION@.la
+
+libmediaartdir = $(libdir)/libmediaart-$(LIBMEDIAART_API_VERSION)/
+libmediaartincludedir=$(includedir)/libmediaart-$(LIBMEDIAART_API_VERSION)/
+
+libmediaart_@LIBMEDIAART_API_VERSION@_la_SOURCES = \
+ utils.c \
+ utils.h \
+ queue.c \
+ queue.h \
+ extract.c \
+ extract.h \
+ extractgeneric.h \
+ $(backend)
+
+libmediaartinclude_HEADERS = \
+ utils.h \
+ queue.h \
+ extract.h \
+ extractgeneric.h
+
+if HAVE_GDKPIXBUF
+libmediaart_@LIBMEDIAART_API_VERSION@_la_SOURCES += extractpixbuf.c
+else
+if HAVE_QT
+libmediaart_@LIBMEDIAART_API_VERSION@_la_SOURCES += extractqt.cpp
+else
+libmediaart_@LIBMEDIAART_API_VERSION@_la_SOURCES += extractdummy.c
+endif
+endif
+
+
+libmediaart_@LIBMEDIAART_API_VERSION@_la_LDFLAGS = \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
+
+libmediaart_@LIBMEDIAART_API_VERSION@_la_LIBADD = \
+ -lm \
+ $(BUILD_LIBS) \
+ $(LIBMEDIAART_LIBS)
diff --git a/src/tracker-extract/tracker-media-art.c b/libmediaart/extract.c
index 6a4b7b3..5ee7bfa 100644
--- a/src/tracker-extract/tracker-media-art.c
+++ b/libmediaart/extract.c
@@ -35,15 +35,8 @@
#include <glib/gstdio.h>
#include <gio/gio.h>
-#include <libtracker-miner/tracker-miner.h>
-#include <libtracker-common/tracker-file-utils.h>
-#include <libtracker-common/tracker-date-time.h>
-#include <libtracker-common/tracker-media-art.h>
-
-#include "tracker-media-art.h"
-#include "tracker-extract.h"
-#include "tracker-marshal.h"
-#include "tracker-media-art-generic.h"
+#include "extract.h"
+#include "utils.h"
#define ALBUMARTER_SERVICE "com.nokia.albumart"
#define ALBUMARTER_PATH "/com/nokia/albumart/Requester"
@@ -56,7 +49,7 @@ static const gchar *media_art_type_name[TRACKER_MEDIA_ART_TYPE_COUNT] = {
};
typedef struct {
- TrackerStorage *storage;
+ void *storage; /* was TrackerStorage *storage; */
gchar *art_path;
gchar *local_uri;
} GetFileInfo;
@@ -77,7 +70,7 @@ typedef enum {
static gboolean initialized = FALSE;
static gboolean disable_requests;
-static TrackerStorage *media_art_storage;
+/* static TrackerStorage *media_art_storage; */
static GHashTable *media_art_cache;
static GDBusConnection *connection;
@@ -777,8 +770,7 @@ media_art_set (const unsigned char *buffer,
}
static void
-media_art_request_download (TrackerStorage *storage,
- TrackerMediaArtType type,
+media_art_request_download (TrackerMediaArtType type,
const gchar *album,
const gchar *artist,
const gchar *local_uri,
@@ -797,8 +789,6 @@ media_art_request_download (TrackerStorage *storage,
info = g_slice_new (GetFileInfo);
- info->storage = storage ? g_object_ref (storage) : NULL;
-
info->local_uri = g_strdup (local_uri);
info->art_path = g_strdup (art_path);
@@ -821,6 +811,8 @@ media_art_request_download (TrackerStorage *storage,
}
}
+#if 0
+
static void
media_art_copy_to_local (TrackerStorage *storage,
const gchar *filename,
@@ -891,6 +883,18 @@ media_art_copy_to_local (TrackerStorage *storage,
}
}
+#else
+#warning "FIXME: WE don't have TrackerStorage, media_art_copy_to_local() does nothing."
+
+static void
+media_art_copy_to_local (const gchar *filename,
+ const gchar *local_uri)
+{
+ g_warning ("FIXME: WE don't have TrackerStorage, media_art_copy_to_local() does nothing.");
+}
+
+#endif
+
static void
media_art_queue_cb (GObject *source_object,
GAsyncResult *res,
@@ -919,9 +923,7 @@ media_art_queue_cb (GObject *source_object,
if (info->storage && info->art_path &&
g_file_test (info->art_path, G_FILE_TEST_EXISTS)) {
-
- media_art_copy_to_local (info->storage,
- info->art_path,
+ media_art_copy_to_local (info->art_path,
info->local_uri);
}
@@ -944,8 +946,6 @@ tracker_media_art_init (void)
tracker_media_art_plugin_init ();
- media_art_storage = tracker_storage_new ();
-
/* Cache to know if we have already handled uris */
media_art_cache = g_hash_table_new_full (g_str_hash,
g_str_equal,
@@ -980,10 +980,6 @@ tracker_media_art_shutdown (void)
g_hash_table_unref (media_art_cache);
}
- if (media_art_storage) {
- g_object_unref (media_art_storage);
- }
-
tracker_media_art_plugin_shutdown ();
initialized = FALSE;
@@ -1087,8 +1083,7 @@ tracker_media_art_process (const unsigned char *buffer,
* media-art to the media-art
* downloaders
*/
- media_art_request_download (media_art_storage,
- type,
+ media_art_request_download (type,
artist,
title,
local_art_uri,
@@ -1116,9 +1111,7 @@ tracker_media_art_process (const unsigned char *buffer,
* situation might have changed
*/
if (g_file_test (art_path, G_FILE_TEST_EXISTS)) {
- media_art_copy_to_local (media_art_storage,
- art_path,
- local_art_uri);
+ media_art_copy_to_local (art_path, local_art_uri);
}
}
diff --git a/src/tracker-extract/tracker-media-art.h b/libmediaart/extract.h
index 980239a..d20bae0 100644
--- a/src/tracker-extract/tracker-media-art.h
+++ b/libmediaart/extract.h
@@ -17,11 +17,15 @@
* Boston, MA 02110-1301, USA.
*/
-#ifndef __TRACKER_EXTRACT_MEDIA_ART_H__
-#define __TRACKER_EXTRACT_MEDIA_ART_H__
+#ifndef __LIBMEDIAART_EXTRACT_H__
+#define __LIBMEDIAART_EXTRACT_H__
#include <glib.h>
+#if !defined (__LIBMEDIAART_INSIDE__) && !defined (LIBMEDIAART_COMPILATION)
+#error "Only <libmediaart/mediaart.h> must be included directly."
+#endif
+
G_BEGIN_DECLS
typedef enum {
@@ -44,4 +48,4 @@ gboolean tracker_media_art_process (const unsigned char *buffer,
G_END_DECLS
-#endif /* __TRACKER_EXTRACT_MEDIA_ART_H__ */
+#endif /* __LIBMEDIAART_UTILS_H__ */
diff --git a/src/tracker-extract/tracker-media-art-dummy.c b/libmediaart/extractdummy.c
index 64462b7..64462b7 100644
--- a/src/tracker-extract/tracker-media-art-dummy.c
+++ b/libmediaart/extractdummy.c
diff --git a/src/tracker-extract/tracker-media-art-generic.h b/libmediaart/extractgeneric.h
index 53bbab6..eb9ebf4 100644
--- a/src/tracker-extract/tracker-media-art-generic.h
+++ b/libmediaart/extractgeneric.h
@@ -20,14 +20,19 @@
* Philip Van Hoof <philip@codeminded.be>
*/
-#ifndef __TRACKER_MEDIA_ART_GENERIC_H__
-#define __TRACKER_MEDIA_ART_GENERIC_H__
+
+#ifndef __LIBMEDIAART_EXTRACTGENERIC_H__
+#define __LIBMEDIAART_EXTRACTGENERIC_H__
#include <glib.h>
+#if !defined (__LIBMEDIAART_INSIDE__) && !defined (LIBMEDIAART_COMPILATION)
+#error "Only <libmediaart/mediaart.h> must be included directly."
+#endif
+
G_BEGIN_DECLS
-void tracker_media_art_plugin_init (void);
+void tracker_media_art_plugin_init (gint max_width);
void tracker_media_art_plugin_shutdown (void);
gboolean tracker_media_art_file_to_jpeg (const gchar *filename,
@@ -39,4 +44,4 @@ gboolean tracker_media_art_buffer_to_jpeg (const unsigned char *buffer,
G_END_DECLS
-#endif /* __TRACKER_MEDIA_ART_GENERIC_H__ */
+#endif /* __LIBMEDIAART_EXTRACTGENERIC_H__ */
diff --git a/src/tracker-extract/tracker-media-art-pixbuf.c b/libmediaart/extractpixbuf.c
index 3ed7684..6dedab5 100644
--- a/src/tracker-extract/tracker-media-art-pixbuf.c
+++ b/libmediaart/extractpixbuf.c
@@ -22,13 +22,16 @@
#include <gdk-pixbuf/gdk-pixbuf.h>
-#include "tracker-media-art-generic.h"
+#include "extractgeneric.h"
-#include "tracker-main.h"
+static gint max_width_in_bytes = 0;
void
-tracker_media_art_plugin_init (void)
+tracker_media_art_plugin_init (gint max_width)
{
+ g_return_if_fail (max_width >= 0);
+
+ max_width_in_bytes = max_width;
}
void
@@ -42,13 +45,6 @@ tracker_media_art_file_to_jpeg (const gchar *filename,
{
GdkPixbuf *pixbuf;
GError *error = NULL;
- TrackerConfig *config = tracker_main_get_config ();
- gint max_media_art_width = tracker_config_get_max_media_art_width (config);
-
- if (max_media_art_width < 0) {
- g_debug ("Not saving album art from file, disabled in config");
- return TRUE;
- }
/* TODO: Add resizing support */
@@ -77,17 +73,15 @@ size_prepared_cb (GdkPixbufLoader *loader,
gint height,
gpointer user_data)
{
- TrackerConfig *config = tracker_main_get_config ();
- gint max_media_art_width = tracker_config_get_max_media_art_width (config);
gfloat scale;
- if (max_media_art_width < 1 || width <= max_media_art_width) {
+ if (max_width_in_bytes < 1 || width <= max_width_in_bytes) {
return;
}
- g_debug ("Resizing media art to %d width", max_media_art_width);
+ g_debug ("Resizing media art to %d width", max_width_in_bytes);
- scale = width / (gfloat) max_media_art_width;
+ scale = width / (gfloat) max_width_in_bytes;
gdk_pixbuf_loader_set_size (loader, (gint) (width / scale), (gint) (height / scale));
}
@@ -98,16 +92,13 @@ tracker_media_art_buffer_to_jpeg (const unsigned char *buffer,
const gchar *buffer_mime,
const gchar *target)
{
- TrackerConfig *config = tracker_main_get_config ();
- gint max_media_art_width = tracker_config_get_max_media_art_width (config);
-
- if (max_media_art_width < 0) {
+ if (max_width_in_bytes < 0) {
g_debug ("Not saving album art from buffer, disabled in config");
return TRUE;
}
/* FF D8 FF are the three first bytes of JPeg images */
- if (max_media_art_width == 0 &&
+ if (max_width_in_bytes == 0 &&
(g_strcmp0 (buffer_mime, "image/jpeg") == 0 ||
g_strcmp0 (buffer_mime, "JPG") == 0) &&
(buffer && len > 2 && buffer[0] == 0xff && buffer[1] == 0xd8 && buffer[2] == 0xff)) {
@@ -120,10 +111,10 @@ tracker_media_art_buffer_to_jpeg (const unsigned char *buffer,
g_debug ("Saving album art using GdkPixbufLoader for uri:'%s' (max width:%d)",
target,
- max_media_art_width);
+ max_width_in_bytes);
loader = gdk_pixbuf_loader_new ();
- if (max_media_art_width > 0) {
+ if (max_width_in_bytes > 0) {
g_signal_connect (loader,
"size-prepared",
G_CALLBACK (size_prepared_cb),
diff --git a/src/tracker-extract/tracker-media-art-qt.cpp b/libmediaart/extractqt.cpp
index 74aad18..74aad18 100644
--- a/src/tracker-extract/tracker-media-art-qt.cpp
+++ b/libmediaart/extractqt.cpp
diff --git a/libmediaart/mediaart.h b/libmediaart/mediaart.h
new file mode 100644
index 0000000..d8ade88
--- /dev/null
+++ b/libmediaart/mediaart.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2009, Nokia <ivan.frade@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __LIBMEDIAART_H__
+#define __LIBMEDIAART_H__
+
+#define __LIBMEDIAART_H_INSIDE__
+
+#include <libmediaart/extract.h>
+#include <libmediaart/extractgeneric.h>
+#include <libmediaart/queue.h>
+#include <libmediaart/utils.h>
+
+#undef __LIBMEDIAART_H_INSIDE__
+
+#endif /* __LIBMEDIAART_H__ */
diff --git a/src/libtracker-miner/tracker-media-art.c b/libmediaart/queue.c
index fb92d24..97a889f 100644
--- a/src/libtracker-miner/tracker-media-art.c
+++ b/libmediaart/queue.c
@@ -24,11 +24,8 @@
#include <glib.h>
#include <glib/gstdio.h>
-#include <libtracker-common/tracker-media-art.h>
#include <libtracker-sparql/tracker-sparql.h>
-#include "tracker-media-art.h"
-
/**
* SECTION:tracker-media-art
* @title: Media art management
diff --git a/src/libtracker-miner/tracker-media-art.h b/libmediaart/queue.h
index f36f444..f71b0ee 100644
--- a/src/libtracker-miner/tracker-media-art.h
+++ b/libmediaart/queue.h
@@ -17,13 +17,13 @@
* 02110-1301 USA
*/
-#ifndef __LIBTRACKER_MINER_MEDIA_ART_H__
-#define __LIBTRACKER_MINER_MEDIA_ART_H__
+#ifndef __LIBMEDIAART_QUEUE_H__
+#define __LIBMEDIAART_QUEUE_H__
#include <libtracker-sparql/tracker-sparql.h>
-#if !defined (__LIBTRACKER_MINER_H_INSIDE__) && !defined (TRACKER_COMPILATION)
-#error "Only <libtracker-miner/tracker-miner.h> can be included directly."
+#if !defined (__LIBMEDIAART_INSIDE__) && !defined (LIBMEDIAART_COMPILATION)
+#error "Only <libmediaart/mediaart.h> must be included directly."
#endif
G_BEGIN_DECLS
@@ -34,4 +34,4 @@ void tracker_media_art_queue_empty (TrackerSparqlConnection *connection);
G_END_DECLS
-#endif /* __LIBTRACKER_MINER_MEDIA_ART_H__ */
+#endif /* __LIBMEDIAART_QUEUE_H__ */
diff --git a/src/libtracker-common/tracker-media-art.c b/libmediaart/utils.c
index b5dfa5c..6374ae3 100644
--- a/src/libtracker-common/tracker-media-art.c
+++ b/libmediaart/utils.c
@@ -34,10 +34,6 @@
#include <glib/gstdio.h>
#include <gio/gio.h>
-#include "tracker-file-utils.h"
-#include "tracker-date-time.h"
-#include "tracker-media-art.h"
-
static gboolean
media_art_strip_find_next_block (const gchar *original,
const gunichar open_char,
diff --git a/src/libtracker-common/tracker-media-art.h b/libmediaart/utils.h
index 73ffa0c..6c0af13 100644
--- a/src/libtracker-common/tracker-media-art.h
+++ b/libmediaart/utils.h
@@ -17,17 +17,17 @@
* Boston, MA 02110-1301, USA.
*/
-#ifndef __LIBTRACKER_COMMON_MEDIA_ART_H__
-#define __LIBTRACKER_COMMON_MEDIA_ART_H__
+#ifndef __LIBMEDIAART_UTILS_H__
+#define __LIBMEDIAART_UTILS_H__
#include <glib.h>
-G_BEGIN_DECLS
-
-#if !defined (__LIBTRACKER_COMMON_INSIDE__) && !defined (TRACKER_COMPILATION)
-#error "only <libtracker-common/tracker-common.h> must be included directly."
+#if !defined (__LIBMEDIAART_INSIDE__) && !defined (LIBMEDIAART_COMPILATION)
+#error "Only <libmediaart/mediaart.h> must be included directly."
#endif
+G_BEGIN_DECLS
+
gchar * tracker_media_art_strip_invalid_entities (const gchar *original);
void tracker_media_art_get_path (const gchar *artist,
const gchar *album,
@@ -39,4 +39,4 @@ void tracker_media_art_get_path (const gchar *artist,
G_END_DECLS
-#endif /* __LIBTRACKER_COMMON_MEDIA_ART_H__ */
+#endif /* __LIBMEDIAART_UTILS_H__ */
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..6d907fb
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,19 @@
+include $(top_srcdir)/Makefile.decl
+
+noinst_PROGRAMS = $(TEST_PROGS)
+
+TEST_PROGS += mediaarttest
+
+AM_CPPFLAGS = \
+ -DTOP_SRCDIR=\"$(abs_top_srcdir)\" \
+ -DTOP_BUILDDIR=\"$(abs_top_builddir)\" \
+ $(BUILD_CFLAGS) \
+ -I$(top_srcdir)/libmediaart \
+ $(LIBMEDIAART_CFLAGS)
+
+LDADD = \
+ $(top_builddir)/libmediaart/libmediaart-@LIBMEDIAART_API_VERSION@.la \
+ $(BUILD_LIBS) \
+ $(LIBMEDIAART_LIBS)
+
+mediaarttest = mediaarttest.c
diff --git a/tests/libtracker-common/tracker-media-art-test.c b/tests/mediaarttest.c
index c5114c0..187b9d2 100644
--- a/tests/libtracker-common/tracker-media-art-test.c
+++ b/tests/mediaarttest.c
@@ -19,7 +19,7 @@
#include <glib-object.h>
-#include <libtracker-common/tracker-common.h>
+#include <libmediaart/mediaart.h>
struct {
const gchar *input;