svn commit: r364442 - head/devel/gvfs/files
Antoine Brodin
antoine at FreeBSD.org
Sat Aug 9 13:50:09 UTC 2014
Author: antoine
Date: Sat Aug 9 13:50:09 2014
New Revision: 364442
URL: http://svnweb.freebsd.org/changeset/ports/364442
QAT: https://qat.redports.org/buildarchive/r364442/
Log:
Add a patch to unbreak after libcdio update
Obtained from upstream changes:
https://github.com/GNOME/gvfs/commit/5624012821836136ad38abea00469865f6e7d616
https://github.com/GNOME/gvfs/commit/fe9e82d6fc5a5651411f7f1e9abab10dad57fd53
Approved by: kwm
Added:
head/devel/gvfs/files/patch-daemon_gvfsbackendcdda.c (contents, props changed)
Added: head/devel/gvfs/files/patch-daemon_gvfsbackendcdda.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/gvfs/files/patch-daemon_gvfsbackendcdda.c Sat Aug 9 13:50:09 2014 (r364442)
@@ -0,0 +1,94 @@
+--- daemon/gvfsbackendcdda.c.orig 2012-05-15 18:01:50 +0000
++++ daemon/gvfsbackendcdda.c
+@@ -55,7 +55,12 @@
+ #include "gvfsjobenumerate.h"
+
+ #define DO_NOT_WANT_PARANOIA_COMPATIBILITY
+-#include <cdio/paranoia.h>
++#define HAVE_PARANOIA_NEW_INCLUDES
++#ifdef HAVE_PARANOIA_NEW_INCLUDES
++ #include <cdio/paranoia/paranoia.h>
++#else
++ #include <cdio/paranoia.h>
++#endif
+ #include <cdio/cdio.h>
+
+ /* TODO:
+@@ -158,6 +163,16 @@ release_metadata (GVfsBackendCdda *cdda_
+ cdda_backend->tracks = NULL;
+ }
+
++static char *
++cdtext_string_to_utf8 (const char *string)
++{
++ if (string == NULL)
++ return NULL;
++
++ /* CD-text doesn't specify encoding. In case outside ascii, assume latin-1. */
++ return g_convert (string, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL);
++}
++
+ static void
+ fetch_metadata (GVfsBackendCdda *cdda_backend)
+ {
+@@ -169,11 +184,22 @@ fetch_metadata (GVfsBackendCdda *cdda_ba
+ if (!cdio)
+ return;
+
+- cdtext = cdio_get_cdtext(cdio, 0);
++#if LIBCDIO_VERSION_NUM >= 84
++ cdtext = cdio_get_cdtext (cdio);
++#else
++ cdtext = cdio_get_cdtext (cdio, 0);
++#endif /* LIBCDIO_VERSION_NUM >= 84 */
++
+ if (cdtext) {
+- cdda_backend->album_title = g_strdup (cdtext_get (CDTEXT_TITLE, cdtext));
+- cdda_backend->album_artist = g_strdup (cdtext_get (CDTEXT_PERFORMER, cdtext));
+- cdda_backend->genre = g_strdup (cdtext_get (CDTEXT_GENRE, cdtext));
++#if LIBCDIO_VERSION_NUM >= 84
++ cdda_backend->album_title = cdtext_string_to_utf8 (cdtext_get_const (cdtext, CDTEXT_FIELD_TITLE, 0));
++ cdda_backend->album_artist = cdtext_string_to_utf8 (cdtext_get_const (cdtext, CDTEXT_FIELD_PERFORMER, 0));
++ cdda_backend->genre = cdtext_string_to_utf8 (cdtext_get_const (cdtext, CDTEXT_FIELD_GENRE, 0));
++#else
++ cdda_backend->album_title = cdtext_string_to_utf8 (cdtext_get_const (CDTEXT_TITLE, cdtext));
++ cdda_backend->album_artist = cdtext_string_to_utf8 (cdtext_get_const (CDTEXT_PERFORMER, cdtext));
++ cdda_backend->genre = cdtext_string_to_utf8 (cdtext_get_const (CDTEXT_GENRE, cdtext));
++#endif /* LIBCDIO_VERSION_NUM >= 84 */
+ }
+
+ cdtrack = cdio_get_first_track_num(cdio);
+@@ -182,10 +208,17 @@ fetch_metadata (GVfsBackendCdda *cdda_ba
+ for ( ; cdtrack < last_cdtrack; cdtrack++ ) {
+ GVfsBackendCddaTrack *track;
+ track = g_new0 (GVfsBackendCddaTrack, 1);
+- cdtext = cdio_get_cdtext(cdio, cdtrack);
++#if LIBCDIO_VERSION_NUM < 84
++ cdtext = cdio_get_cdtext (cdio, cdtrack);
++#endif /* LIBCDIO_VERSION_NUM < 84 */
+ if (cdtext) {
+- track->title = g_strdup (cdtext_get (CDTEXT_TITLE, cdtext));
+- track->artist = g_strdup (cdtext_get (CDTEXT_PERFORMER, cdtext));
++#if LIBCDIO_VERSION_NUM >= 84
++ track->title = cdtext_string_to_utf8 (cdtext_get_const (cdtext, CDTEXT_FIELD_TITLE, cdtrack));
++ track->artist = cdtext_string_to_utf8 (cdtext_get_const (cdtext, CDTEXT_FIELD_PERFORMER, cdtrack));
++#else
++ track->title = cdtext_string_to_utf8 (cdtext_get_const (CDTEXT_TITLE, cdtext));
++ track->artist = cdtext_string_to_utf8 (cdtext_get_const (CDTEXT_PERFORMER, cdtext));
++#endif /* LIBCDIO_VERSION_NUM >= 84 */
+ }
+ track->duration = cdio_get_track_sec_count (cdio, cdtrack) / CDIO_CD_FRAMES_PER_SEC;
+
+@@ -961,8 +994,10 @@ do_query_info (GVfsBackend *backend,
+ g_file_info_set_display_name (info, _("Audio Disc")); /* TODO: fill in from metadata */
+ g_file_info_set_file_type (info, G_FILE_TYPE_DIRECTORY);
+ g_file_info_set_content_type (info, "inode/directory");
+- SET_INFO ("xattr::org.gnome.audio.title", cdda_backend->album_title);
+- SET_INFO ("xattr::org.gnome.audio.artist", cdda_backend->album_artist);
++ if (cdda_backend->album_title)
++ SET_INFO ("xattr::org.gnome.audio.title", cdda_backend->album_title);
++ if (cdda_backend->album_artist)
++ SET_INFO ("xattr::org.gnome.audio.artist", cdda_backend->album_artist);
+ SET_INFO ("xattr::org.gnome.audio.genre", cdda_backend->genre);
+ g_file_info_set_size (info, 0);
+ icon = g_themed_icon_new ("folder");
More information about the svn-ports-all
mailing list