summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartyn Russell <martyn@lanedo.com>2013-08-13 18:52:23 +0100
committerMartyn Russell <martyn@lanedo.com>2013-08-13 18:52:23 +0100
commit600b229cc956760959db928d9e6b92aacf9e0f48 (patch)
treee56b51a1df3594872156620974379b00d696ba60
parent9ca023a8ea5883f9d054954dc389e6f5a0372c24 (diff)
downloadlibmediaart-600b229cc956760959db928d9e6b92aacf9e0f48.tar.gz
build: Initial import of files needed to make new project here...
Including AUTHORS, README, NEWS. Including autogen.sh, configure.ac and all Makefile.am files Also moved many files that were scattered around the Tracker project and brought them together. Some source files had to be fixed up to build properly.
-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;