summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac4
-rw-r--r--src/librygel-server/filelist.am3
-rw-r--r--src/librygel-server/libmediaart-1.0.vapi35
-rw-r--r--src/librygel-server/rygel-media-art-store.vala23
4 files changed, 22 insertions, 43 deletions
diff --git a/configure.ac b/configure.ac
index 89290669..236f3c1c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,7 +46,7 @@ GEE_REQUIRED=0.8.0
UUID_REQUIRED=1.41.3
LIBSOUP_REQUIRED=2.44.0
GTK_REQUIRED=3.0
-MEDIAART_REQUIRED=0.4.0
+MEDIAART_REQUIRED=0.5.0
dnl Additional requirements for media-export plugin
GSTREAMER_TAG_REQUIRED=1.0
@@ -74,7 +74,7 @@ PKG_CHECK_MODULES([LIBRYGEL_SERVER_DEPS], [$RYGEL_COMMON_MODULES uuid >=
libsoup-2.4 >= $LIBSOUP_REQUIRED libmediaart-1.0 >=
$MEDIAART_REQUIRED])
RYGEL_COMMON_MODULES_VALAFLAGS="$RYGEL_BASE_MODULES_VALAFLAGS --pkg gupnp-av-1.0"
-LIBRYGEL_SERVER_DEPS_VALAFLAGS="$RYGEL_COMMON_MODULES_VALAFLAGS --pkg gssdp-1.0 --pkg gio-2.0 --pkg libsoup-2.4 --pkg gmodule-2.0"
+LIBRYGEL_SERVER_DEPS_VALAFLAGS="$RYGEL_COMMON_MODULES_VALAFLAGS --pkg gssdp-1.0 --pkg gio-2.0 --pkg libsoup-2.4 --pkg gmodule-2.0 --pkg libmediaart-1.0"
AC_SUBST([LIBRYGEL_SERVER_DEPS_VALAFLAGS])
PKG_CHECK_MODULES([LIBRYGEL_RENDERER_DEPS], [$RYGEL_COMMON_MODULES gio-2.0 >= $GIO_REQUIRED libsoup-2.4 >= $LIBSOUP_REQUIRED])
diff --git a/src/librygel-server/filelist.am b/src/librygel-server/filelist.am
index 44cfe04e..f40d699b 100644
--- a/src/librygel-server/filelist.am
+++ b/src/librygel-server/filelist.am
@@ -78,5 +78,4 @@ LIBRYGEL_SERVER_NONVAPI_SOURCE_FILES = \
rygel-wmp-hacks.vala \
rygel-xbmc-hacks.vala \
rygel-xbox-hacks.vala \
- rygel-data-sink.vala \
- libmediaart-1.0.vapi
+ rygel-data-sink.vala
diff --git a/src/librygel-server/libmediaart-1.0.vapi b/src/librygel-server/libmediaart-1.0.vapi
deleted file mode 100644
index 8433ba23..00000000
--- a/src/librygel-server/libmediaart-1.0.vapi
+++ /dev/null
@@ -1,35 +0,0 @@
-/* libmediaart-1.0.vapi generated by vapigen, do not modify. */
-
-[CCode (cprefix = "MediaArt", gir_namespace = "MediaArt", gir_version = "1.0", lower_case_cprefix = "media_art_")]
-namespace MediaArt {
- [CCode (cheader_filename = "libmediaart/mediaart.h", cprefix = "MEDIA_ART_", has_type_id = false)]
- public enum Type {
- NONE,
- ALBUM,
- VIDEO
- }
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static bool buffer_to_jpeg (uint8 buffer, ulong len, string buffer_mime, string target);
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static bool file_to_jpeg (string filename, string target);
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static void get_file (string artist, string title, string prefix, GLib.File? file, out GLib.File cache_file, out GLib.File local_file);
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static void get_path (string artist, string title, string prefix, string? uri, out string path, out string local_uri);
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static bool init ();
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static void plugin_init (int max_width);
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static void plugin_shutdown ();
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static bool process ([CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "gulong")] uint8[] buffer, string mime, MediaArt.Type type, string? artist, string? title, string uri);
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static bool process_file ([CCode (array_length_cname = "len", array_length_pos = 1.5, array_length_type = "gsize")] uint8[]? buffer, string mime, MediaArt.Type type, string artist, string title, GLib.File file);
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static bool remove (string artist, string? album);
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static void shutdown ();
- [CCode (cheader_filename = "libmediaart/mediaart.h")]
- public static string strip_invalid_entities (string original);
-}
diff --git a/src/librygel-server/rygel-media-art-store.vala b/src/librygel-server/rygel-media-art-store.vala
index 453c09cd..5d939f1e 100644
--- a/src/librygel-server/rygel-media-art-store.vala
+++ b/src/librygel-server/rygel-media-art-store.vala
@@ -36,11 +36,12 @@ public class Rygel.MediaArtStore : GLib.Object {
private static bool first_time = true;
private string directory;
+ private MediaArt.Process? media_art_process;
public static MediaArtStore? get_default () {
if (first_time) {
try {
- MediaArt.init ();
+ MediaArt.plugin_init (128);
media_art_store = new MediaArtStore ();
} catch (MediaArtStoreError error) {
warning ("No media art available: %s", error.message);
@@ -107,9 +108,16 @@ public class Rygel.MediaArtStore : GLib.Object {
}
public void add (MusicItem item, File file, uint8[]? data) {
- MediaArt.process_file (data, item.mime_type,
- MediaArt.Type.ALBUM, item.artist, item.album,
- file);
+ if (media_art_process == null) {
+ return;
+ }
+
+ try {
+ media_art_process.buffer (MediaArt.Type.ALBUM, MediaArt.ProcessFlags.NONE, file,
+ data, item.mime_type, item.artist, item.album);
+ } catch (Error error) {
+ warning ("%s", error.message);
+ }
}
private MediaArtStore () throws MediaArtStoreError {
@@ -122,5 +130,12 @@ public class Rygel.MediaArtStore : GLib.Object {
}
this.directory = dir;
+
+ try {
+ this.media_art_process = new MediaArt.Process ();
+ } catch (Error error) {
+ this.media_art_process = null;
+ throw new MediaArtStoreError.NO_MEDIA_ART ("%s", error.message);
+ }
}
}