[brasero] Switch BRASERO_TRACK_STREAM_ISRC_TAG from int to string



commit 82b3c490d5893316ff47fa76d41b304be4a86c63
Author: Tomáš Bžatek <tbzatek redhat com>
Date:   Wed Oct 30 15:55:51 2013 +0000

    Switch BRASERO_TRACK_STREAM_ISRC_TAG from int to string
    
    The International Standard Recording Code (ISRC) is a  12
    byte string that is created from two uppercase characters
    for the country code, followed by three uppercase charac‐
    ters  for  the owner, followed by two digits for the year
    of recording followed by five digits for  the  recording
    serial number.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=711162

 libbrasero-burn/brasero-tags.h             |    2 +-
 libbrasero-burn/brasero-track-stream-cfg.c |   10 +++++-----
 libbrasero-utils/brasero-io.c              |    4 +++-
 libbrasero-utils/brasero-metadata.c        |   14 +++++++++-----
 libbrasero-utils/brasero-metadata.h        |    2 +-
 plugins/audio2cue/burn-audio2cue.c         |    8 ++++----
 plugins/cdrkit/burn-wodim.c                |    7 +++----
 plugins/cdrtools/burn-cdrecord.c           |    7 +++----
 plugins/transcode/burn-transcode.c         |    8 ++++----
 src/brasero-audio-disc.c                   |   24 +++++++++++++-----------
 src/brasero-multi-song-props.c             |    6 +++---
 src/brasero-multi-song-props.h             |    2 +-
 src/brasero-project-parse.c                |   27 +++++++++++++++------------
 src/brasero-song-properties.c              |   23 ++++++-----------------
 src/brasero-song-properties.h              |    4 ++--
 src/brasero-video-disc.c                   |   23 +++++++++++++----------
 16 files changed, 86 insertions(+), 85 deletions(-)
---
diff --git a/libbrasero-burn/brasero-tags.h b/libbrasero-burn/brasero-tags.h
index 31a844d..c04f0a9 100644
--- a/libbrasero-burn/brasero-tags.h
+++ b/libbrasero-burn/brasero-tags.h
@@ -56,6 +56,7 @@ G_BEGIN_DECLS
 #define BRASERO_TRACK_STREAM_COMPOSER_TAG              "track::stream::info::composer"
 #define BRASERO_TRACK_STREAM_ARTIST_TAG                        "track::stream::info::artist"
 #define BRASERO_TRACK_STREAM_ALBUM_TAG                 "track::stream::info::album"
+#define BRASERO_TRACK_STREAM_ISRC_TAG                  "track::stream::info::isrc"
 #define BRASERO_TRACK_STREAM_THUMBNAIL_TAG             "track::stream::snapshot"
 #define BRASERO_TRACK_STREAM_MIME_TAG                  "track::stream::mime"
 
@@ -63,7 +64,6 @@ G_BEGIN_DECLS
  * Int
  */
 
-#define BRASERO_TRACK_STREAM_ISRC_TAG                  "track::stream::info::isrc"
 
 /**
  * This tag (for sessions) is used to set an estimated size, used to determine
diff --git a/libbrasero-burn/brasero-track-stream-cfg.c b/libbrasero-burn/brasero-track-stream-cfg.c
index 9d53dd6..2699b6f 100644
--- a/libbrasero-burn/brasero-track-stream-cfg.c
+++ b/libbrasero-burn/brasero-track-stream-cfg.c
@@ -299,11 +299,11 @@ brasero_track_stream_cfg_results_cb (GObject *obj,
                brasero_track_tag_add_string (BRASERO_TRACK (obj),
                                              BRASERO_TRACK_STREAM_COMPOSER_TAG,
                                              g_file_info_get_attribute_string (info, BRASERO_IO_COMPOSER));
-       if (g_file_info_get_attribute_int32 (info, BRASERO_IO_ISRC)
-       && !brasero_track_tag_lookup_int (BRASERO_TRACK (obj), BRASERO_TRACK_STREAM_ISRC_TAG))
-               brasero_track_tag_add_int (BRASERO_TRACK (obj),
-                                          BRASERO_TRACK_STREAM_ISRC_TAG,
-                                          g_file_info_get_attribute_int32 (info, BRASERO_IO_ISRC));
+       if (g_file_info_get_attribute_string (info, BRASERO_IO_ISRC)
+       && !brasero_track_tag_lookup_string (BRASERO_TRACK (obj), BRASERO_TRACK_STREAM_ISRC_TAG))
+               brasero_track_tag_add_string (BRASERO_TRACK (obj),
+                                             BRASERO_TRACK_STREAM_ISRC_TAG,
+                                             g_file_info_get_attribute_string (info, BRASERO_IO_ISRC));
 
        /* Start monitoring it */
        file = g_file_new_for_uri (uri);
diff --git a/libbrasero-utils/brasero-io.c b/libbrasero-utils/brasero-io.c
index 6124848..5619359 100644
--- a/libbrasero-utils/brasero-io.c
+++ b/libbrasero-utils/brasero-io.c
@@ -836,7 +836,6 @@ static void
 brasero_io_set_metadata_attributes (GFileInfo *info,
                                    BraseroMetadataInfo *metadata)
 {
-       g_file_info_set_attribute_int32 (info, BRASERO_IO_ISRC, metadata->isrc);
        g_file_info_set_attribute_uint64 (info, BRASERO_IO_LEN, metadata->len);
 
        if (metadata->type)
@@ -857,6 +856,9 @@ brasero_io_set_metadata_attributes (GFileInfo *info,
        if (metadata->composer)
                g_file_info_set_attribute_string (info, BRASERO_IO_COMPOSER, metadata->composer);
 
+       if (metadata->isrc)
+               g_file_info_set_attribute_string (info, BRASERO_IO_ISRC, metadata->isrc);
+
        g_file_info_set_attribute_boolean (info, BRASERO_IO_HAS_AUDIO, metadata->has_audio);
        if (metadata->has_audio) {
                if (metadata->channels)
diff --git a/libbrasero-utils/brasero-metadata.c b/libbrasero-utils/brasero-metadata.c
index 7f10088..1943368 100644
--- a/libbrasero-utils/brasero-metadata.c
+++ b/libbrasero-utils/brasero-metadata.c
@@ -186,6 +186,9 @@ brasero_metadata_info_clear (BraseroMetadataInfo *info)
        if (info->musicbrainz_id)
                g_free (info->musicbrainz_id);
 
+       if (info->isrc)
+               g_free (info->isrc);
+
        if (info->silences) {
                g_slist_foreach (info->silences, (GFunc) g_free, NULL);
                g_slist_free (info->silences);
@@ -216,7 +219,6 @@ brasero_metadata_info_copy (BraseroMetadataInfo *dest,
        dest->has_dts = src->has_dts;
        dest->rate = src->rate;
        dest->channels = src->channels;
-       dest->isrc = src->isrc;
        dest->len = src->len;
        dest->is_seekable = src->is_seekable;
        dest->has_audio = src->has_audio;
@@ -243,6 +245,9 @@ brasero_metadata_info_copy (BraseroMetadataInfo *dest,
        if (src->musicbrainz_id)
                dest->musicbrainz_id = g_strdup (src->musicbrainz_id);
 
+       if (src->isrc)
+               dest->isrc = g_strdup (src->isrc);
+
        if (src->snapshot) {
                dest->snapshot = src->snapshot;
                g_object_ref (dest->snapshot);
@@ -943,11 +948,10 @@ foreach_tag (const GstTagList *list,
                gst_tag_list_get_string (list, tag, &(self->composer));
        }
 */     else if (!strcmp (tag, GST_TAG_ISRC)) {
-               gchar *isrc = NULL;
-               gst_tag_list_get_string (list, tag, &isrc);
+               if (priv->info->isrc)
+                       g_free (priv->info->isrc);
 
-               if (isrc)
-                       priv->info->isrc = (int) g_ascii_strtoull (isrc, NULL, 10);
+               gst_tag_list_get_string (list, tag, &(priv->info->isrc));
        }
        else if (!strcmp (tag, GST_TAG_MUSICBRAINZ_TRACKID)) {
                gst_tag_list_get_string (list, tag, &(priv->info->musicbrainz_id));
diff --git a/libbrasero-utils/brasero-metadata.h b/libbrasero-utils/brasero-metadata.h
index 8799642..eca95b4 100644
--- a/libbrasero-utils/brasero-metadata.h
+++ b/libbrasero-utils/brasero-metadata.h
@@ -69,7 +69,7 @@ typedef struct {
        gchar *genre;
        gchar *composer;
        gchar *musicbrainz_id;
-       int isrc;
+       gchar *isrc;
        guint64 len;
 
        gint channels;
diff --git a/plugins/audio2cue/burn-audio2cue.c b/plugins/audio2cue/burn-audio2cue.c
index 2601533..78c21f9 100644
--- a/plugins/audio2cue/burn-audio2cue.c
+++ b/plugins/audio2cue/burn-audio2cue.c
@@ -455,7 +455,6 @@ brasero_audio2cue_create_thread (gpointer data)
        tracks = NULL;
        brasero_job_get_tracks (data, &tracks);
        for (; tracks; tracks = tracks->next) {
-               int isrc;
                guint64 gap;
                guint64 len;
                gchar *string;
@@ -463,6 +462,7 @@ brasero_audio2cue_create_thread (gpointer data)
                BraseroTrack *track;
                const gchar *performer;
                const gchar *songwriter;
+               const gchar *isrc;
 
                track = tracks->data;
 
@@ -527,9 +527,9 @@ brasero_audio2cue_create_thread (gpointer data)
                        g_free (line);
                }
 
-               isrc = brasero_track_tag_lookup_int (track, BRASERO_TRACK_STREAM_ISRC_TAG);
-               if (isrc > 0) {
-                       line = g_strdup_printf ("\tISRC %i\n", isrc);
+               isrc = brasero_track_tag_lookup_string (track, BRASERO_TRACK_STREAM_ISRC_TAG);
+               if (isrc) {
+                       line = g_strdup_printf ("\tISRC \"%s\"\n", isrc);
                        if (write (fd_out, line, strlen (line)) < 0) {
                                int err_saved = errno;
                                priv->error = g_error_new_literal (BRASERO_BURN_ERROR,
diff --git a/plugins/cdrkit/burn-wodim.c b/plugins/cdrkit/burn-wodim.c
index c0477c8..be7e5b9 100644
--- a/plugins/cdrkit/burn-wodim.c
+++ b/plugins/cdrkit/burn-wodim.c
@@ -438,7 +438,6 @@ brasero_wodim_write_inf (BraseroWodim *wodim,
                         GError **error)
 {
        gint fd;
-       int isrc;
        gint size;
         int errsv;
        gchar *path;
@@ -514,9 +513,9 @@ brasero_wodim_write_inf (BraseroWodim *wodim,
                goto error;
 
        /* ISRC */
-       isrc = brasero_track_tag_lookup_int (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG);
-       if (isrc > 0)
-               string = g_strdup_printf ("ISRC=\t%i\n", isrc);
+       info = brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG);
+       if (info)
+               string = g_strdup_printf ("ISRC=\t%s\n", info);
        else
                string = g_strdup ("ISRC=\t\n");
        size = strlen (string);
diff --git a/plugins/cdrtools/burn-cdrecord.c b/plugins/cdrtools/burn-cdrecord.c
index 92c23b3..89ba629 100644
--- a/plugins/cdrtools/burn-cdrecord.c
+++ b/plugins/cdrtools/burn-cdrecord.c
@@ -424,7 +424,6 @@ brasero_cdrecord_write_inf (BraseroCDRecord *cdrecord,
                            GError **error)
 {
        gint fd;
-       int isrc;
         int errsv;
        gint size;
        gchar *path;
@@ -503,9 +502,9 @@ brasero_cdrecord_write_inf (BraseroCDRecord *cdrecord,
                goto error;
 
        /* ISRC */
-       isrc = brasero_track_tag_lookup_int (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG);
-       if (isrc > 0)
-               string = g_strdup_printf ("ISRC=\t%i\n", isrc);
+       info = brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG);
+       if (info)
+               string = g_strdup_printf ("ISRC=\t%s\n", info);
        else
                string = g_strdup ("ISRC=\t\n");
        size = strlen (string);
diff --git a/plugins/transcode/burn-transcode.c b/plugins/transcode/burn-transcode.c
index 6861168..b93d17a 100644
--- a/plugins/transcode/burn-transcode.c
+++ b/plugins/transcode/burn-transcode.c
@@ -1396,13 +1396,13 @@ foreach_tag (const GstTagList *list,
                }
        }
        else if (!strcmp (tag, GST_TAG_ISRC)) {
-               if (!brasero_track_tag_lookup_int (track, BRASERO_TRACK_STREAM_ISRC_TAG)) {
+               if (!brasero_track_tag_lookup_string (track, BRASERO_TRACK_STREAM_ISRC_TAG)) {
                        gchar *isrc = NULL;
 
                        gst_tag_list_get_string (list, tag, &isrc);
-                       brasero_track_tag_add_int (track,
-                                                  BRASERO_TRACK_STREAM_ISRC_TAG,
-                                                  (int) g_ascii_strtoull (isrc, NULL, 10));
+                       brasero_track_tag_add_string (track,
+                                                     BRASERO_TRACK_STREAM_ISRC_TAG,
+                                                     isrc);
                }
        }
        else if (!strcmp (tag, GST_TAG_PERFORMER)) {
diff --git a/src/brasero-audio-disc.c b/src/brasero-audio-disc.c
index e2c49b8..b0dce92 100644
--- a/src/brasero-audio-disc.c
+++ b/src/brasero-audio-disc.c
@@ -1477,7 +1477,6 @@ static void
 brasero_audio_disc_edit_multi_song_properties (BraseroAudioDisc *disc,
                                               GList *list)
 {
-       gint isrc;
        gint64 gap;
        GList *copy;
        GList *item;
@@ -1487,6 +1486,7 @@ brasero_audio_disc_edit_multi_song_properties (BraseroAudioDisc *disc,
        gchar *artist = NULL;
        GtkResponseType result;
        gchar *composer = NULL;
+       gchar *isrc = NULL;
 
        model = gtk_tree_view_get_model (GTK_TREE_VIEW (disc->priv->tree));
        toplevel = gtk_widget_get_toplevel (GTK_WIDGET (disc));
@@ -1550,10 +1550,10 @@ brasero_audio_disc_edit_multi_song_properties (BraseroAudioDisc *disc,
                                                       BRASERO_TRACK_STREAM_COMPOSER_TAG,
                                                       composer);
 
-               if (isrc > 0)
-                        brasero_track_tag_add_int (BRASERO_TRACK (track),
-                                                   BRASERO_TRACK_STREAM_ISRC_TAG,
-                                                   isrc);
+               if (isrc)
+                        brasero_track_tag_add_string (BRASERO_TRACK (track),
+                                                      BRASERO_TRACK_STREAM_ISRC_TAG,
+                                                      isrc);
 
                 if (gap > -1)
                         brasero_track_stream_set_boundaries (BRASERO_TRACK_STREAM (track),
@@ -1564,6 +1564,7 @@ brasero_audio_disc_edit_multi_song_properties (BraseroAudioDisc *disc,
        g_list_free (copy);
        g_free (artist);
        g_free (composer);
+       g_free (isrc);
 
        gtk_widget_destroy (props);
 }
@@ -1573,7 +1574,6 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc,
                                                GtkTreePath *treepath)
 {
        gint64 gap;
-       gint isrc;
        gint64 end;
        gint64 start;
        guint track_num;
@@ -1586,6 +1586,7 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc,
        gchar *title;
        gchar *artist;
        gchar *composer;
+       gchar *isrc;
        GtkTreeIter iter;
 
        model = gtk_tree_view_get_model (GTK_TREE_VIEW (disc->priv->tree));
@@ -1607,7 +1608,7 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc,
                                           brasero_track_tag_lookup_string (BRASERO_TRACK (track), 
BRASERO_TRACK_STREAM_ARTIST_TAG),
                                           brasero_track_tag_lookup_string (BRASERO_TRACK (track), 
BRASERO_TRACK_STREAM_TITLE_TAG),
                                           brasero_track_tag_lookup_string (BRASERO_TRACK (track), 
BRASERO_TRACK_STREAM_COMPOSER_TAG),
-                                          brasero_track_tag_lookup_int (BRASERO_TRACK (track), 
BRASERO_TRACK_STREAM_ISRC_TAG),
+                                          brasero_track_tag_lookup_string (BRASERO_TRACK (track), 
BRASERO_TRACK_STREAM_ISRC_TAG),
                                           length,
                                           brasero_track_stream_get_start (BRASERO_TRACK_STREAM (track)),
                                           brasero_track_stream_get_end (BRASERO_TRACK_STREAM (track)),
@@ -1657,10 +1658,10 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc,
                                              BRASERO_TRACK_STREAM_COMPOSER_TAG,
                                              composer);
 
-       if (isrc > 0)
-               brasero_track_tag_add_int (BRASERO_TRACK (track),
-                                          BRASERO_TRACK_STREAM_ISRC_TAG,
-                                          isrc);
+       if (isrc)
+               brasero_track_tag_add_string (BRASERO_TRACK (track),
+                                             BRASERO_TRACK_STREAM_ISRC_TAG,
+                                             isrc);
 
        if (end - start + BRASERO_SECTORS_TO_DURATION (gap) < BRASERO_MIN_STREAM_LENGTH)
                brasero_audio_disc_short_track_dialog (disc);
@@ -1668,6 +1669,7 @@ brasero_audio_disc_edit_single_song_properties (BraseroAudioDisc *disc,
        g_free (title);
        g_free (artist);
        g_free (composer);
+       g_free (isrc);
        gtk_widget_destroy (props);
 }
 
diff --git a/src/brasero-multi-song-props.c b/src/brasero-multi-song-props.c
index be2704e..823e22a 100644
--- a/src/brasero-multi-song-props.c
+++ b/src/brasero-multi-song-props.c
@@ -77,7 +77,7 @@ void
 brasero_multi_song_props_get_properties (BraseroMultiSongProps *self,
                                         gchar **artist,
                                         gchar **composer,
-                                        gint *isrc,
+                                        gchar **isrc,
                                         gint64 *gap)
 {
        const gchar *text;
@@ -103,9 +103,9 @@ brasero_multi_song_props_get_properties (BraseroMultiSongProps *self,
        if (isrc) {
                text = gtk_entry_get_text (GTK_ENTRY (priv->isrc));
                if (text && strcmp (text, _("<Keep current values>")))
-                       *isrc = (gint) g_strtod (text, NULL);
+                       *isrc = g_strdup (text);
                else
-                       *isrc = -1;
+                       *isrc = NULL;
        }
 
        if (gap)
diff --git a/src/brasero-multi-song-props.h b/src/brasero-multi-song-props.h
index b7f4500..de34a73 100644
--- a/src/brasero-multi-song-props.h
+++ b/src/brasero-multi-song-props.h
@@ -70,7 +70,7 @@ void
 brasero_multi_song_props_get_properties (BraseroMultiSongProps *props,
                                         gchar **artist,
                                         gchar **composer,
-                                        gint *isrc,
+                                        gchar **isrc,
                                         gint64 *gap);
 
 G_END_DECLS
diff --git a/src/brasero-project-parse.c b/src/brasero-project-parse.c
index 5359678..b2a58a1 100644
--- a/src/brasero-project-parse.c
+++ b/src/brasero-project-parse.c
@@ -330,18 +330,22 @@ _read_audio_track (xmlDocPtr project,
                        g_free (unescaped_composer);
                }
                else if (!xmlStrcmp (uris->name, (const xmlChar *) "isrc")) {
-                       gchar *isrc;
+                       xmlChar *isrc;
+                        gchar *unescaped_isrc;
 
-                       isrc = (gchar *) xmlNodeListGetString (project,
-                                                              uris->xmlChildrenNode,
-                                                              1);
+                       isrc = xmlNodeListGetString (project,
+                                                    uris->xmlChildrenNode,
+                                                    1);
                        if (!isrc)
                                goto error;
 
-                        brasero_track_tag_add_int (BRASERO_TRACK (track),
-                                                   BRASERO_TRACK_STREAM_ISRC_TAG,
-                                                   (gint) g_ascii_strtod (isrc, NULL));
+                       unescaped_isrc = g_uri_unescape_string ((char *) isrc, NULL);
                        g_free (isrc);
+
+                        brasero_track_tag_add_string (BRASERO_TRACK (track),
+                                                      BRASERO_TRACK_STREAM_ISRC_TAG,
+                                                      unescaped_isrc);
+                       g_free (unescaped_isrc);
                }
                else if (uris->type == XML_ELEMENT_NODE)
                        goto error;
@@ -626,7 +630,6 @@ _save_audio_track_xml (xmlTextWriter *project,
        xmlChar *escaped;
        gchar *start;
        gint success;
-       gchar *isrc;
        gchar *uri;
        gchar *end;
 
@@ -709,13 +712,13 @@ _save_audio_track_xml (xmlTextWriter *project,
                        return FALSE;
        }
 
-       if (brasero_track_tag_lookup_int (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG)) {
-               isrc = g_strdup_printf ("%d", brasero_track_tag_lookup_int (BRASERO_TRACK (track), 
BRASERO_TRACK_STREAM_ISRC_TAG));
+       if (brasero_track_tag_lookup_string (BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG)) {
+               escaped = (unsigned char *) g_uri_escape_string (brasero_track_tag_lookup_string 
(BRASERO_TRACK (track), BRASERO_TRACK_STREAM_ISRC_TAG), NULL, FALSE);
                success = xmlTextWriterWriteElement (project,
                                                     (xmlChar *) "isrc",
-                                                    (xmlChar *) isrc);
+                                                    escaped);
 
-               g_free (isrc);
+               g_free (escaped);
                if (success == -1)
                        return FALSE;
        }
diff --git a/src/brasero-song-properties.c b/src/brasero-song-properties.c
index ebbdc32..b8c8de2 100644
--- a/src/brasero-song-properties.c
+++ b/src/brasero-song-properties.c
@@ -307,7 +307,7 @@ brasero_song_props_get_properties (BraseroSongProps *self,
                                   gchar **artist,
                                   gchar **title,
                                   gchar **composer,
-                                  gint *isrc,
+                                  gchar **isrc,
                                   gint64 *start,
                                   gint64 *end,
                                   gint64 *gap)
@@ -333,15 +333,8 @@ brasero_song_props_get_properties (BraseroSongProps *self,
                        *composer = NULL;
        }
 
-       if (isrc) {
-               const gchar *string;
-
-               string = brasero_song_props_get_entry_value (GTK_ENTRY (self->priv->isrc));
-               if (string)
-                       *isrc = (gint) g_strtod (string, NULL);
-               else
-                       *isrc = 0;
-       }
+       if (isrc)
+               *isrc = brasero_song_props_get_entry_value (GTK_ENTRY (self->priv->isrc));
 
        if (start)
                *start = brasero_time_button_get_value (BRASERO_TIME_BUTTON (self->priv->start));
@@ -357,7 +350,7 @@ brasero_song_props_set_properties (BraseroSongProps *self,
                                   const gchar *artist,
                                   const gchar *title,
                                   const gchar *composer,
-                                  gint isrc,
+                                  const gchar *isrc,
                                   gint64 length,
                                   gint64 start,
                                   gint64 end,
@@ -391,12 +384,8 @@ brasero_song_props_set_properties (BraseroSongProps *self,
                gtk_entry_set_text (GTK_ENTRY (self->priv->title), title);
        if (composer)
                gtk_entry_set_text (GTK_ENTRY (self->priv->composer), composer);
-
-       if (isrc) {
-               string = g_strdup_printf ("%i", isrc);
-               gtk_entry_set_text (GTK_ENTRY (self->priv->isrc), string);
-               g_free (string);
-       }
+       if (isrc)
+               gtk_entry_set_text (GTK_ENTRY (self->priv->isrc), isrc);
 
        if (gap > 0) {
                secs = gap / GST_SECOND;
diff --git a/src/brasero-song-properties.h b/src/brasero-song-properties.h
index edb0ddb..997a49e 100644
--- a/src/brasero-song-properties.h
+++ b/src/brasero-song-properties.h
@@ -60,7 +60,7 @@ brasero_song_props_get_properties (BraseroSongProps *self,
                                   gchar **artist,
                                   gchar **title,
                                   gchar **composer,
-                                  gint *isrc,
+                                  gchar **isrc,
                                   gint64 *start,
                                   gint64 *end,
                                   gint64 *gap);
@@ -70,7 +70,7 @@ brasero_song_props_set_properties (BraseroSongProps *self,
                                   const gchar *artist,
                                   const gchar *title,
                                   const gchar *composer,
-                                  gint isrc,
+                                  const gchar *isrc,
                                   gint64 length,
                                   gint64 start,
                                   gint64 end,
diff --git a/src/brasero-video-disc.c b/src/brasero-video-disc.c
index 3fa1134..d7c15b2 100644
--- a/src/brasero-video-disc.c
+++ b/src/brasero-video-disc.c
@@ -623,7 +623,6 @@ static void
 brasero_video_disc_edit_song_properties_list (BraseroVideoDisc *self,
                                              GList *list)
 {
-       gint isrc;
        GList *item;
        GList *copy;
        GtkWidget *props;
@@ -631,6 +630,7 @@ brasero_video_disc_edit_song_properties_list (BraseroVideoDisc *self,
        GtkTreeModel *model;
        gchar *artist = NULL;
        gchar *composer = NULL;
+       gchar *isrc = NULL;
        GtkResponseType result;
        BraseroVideoDiscPrivate *priv;
 
@@ -688,14 +688,15 @@ brasero_video_disc_edit_song_properties_list (BraseroVideoDisc *self,
                                              BRASERO_TRACK_STREAM_COMPOSER_TAG,
                                              composer);
 
-               brasero_track_tag_add_int (track,
-                                          BRASERO_TRACK_STREAM_ISRC_TAG,
-                                          isrc);
+               brasero_track_tag_add_string (track,
+                                             BRASERO_TRACK_STREAM_ISRC_TAG,
+                                             isrc);
        }
 
        g_list_free (copy);
        g_free (artist);
        g_free (composer);
+       g_free (isrc);
 end:
 
        gtk_widget_destroy (props);
@@ -705,12 +706,12 @@ static void
 brasero_video_disc_edit_song_properties_file (BraseroVideoDisc *self,
                                              BraseroTrack *track)
 {
-       gint isrc;
        gint64 end;
        gint64 start;
        gchar *title;
        gchar *artist;
        gchar *composer;
+       gchar *isrc;
        GtkWidget *props;
        guint64 length = 0;
        GtkWidget *toplevel;
@@ -726,7 +727,7 @@ brasero_video_disc_edit_song_properties_file (BraseroVideoDisc *self,
                                           brasero_track_tag_lookup_string (track, 
BRASERO_TRACK_STREAM_ARTIST_TAG),
                                           brasero_track_tag_lookup_string (track, 
BRASERO_TRACK_STREAM_TITLE_TAG),
                                           brasero_track_tag_lookup_string (track, 
BRASERO_TRACK_STREAM_COMPOSER_TAG),
-                                          brasero_track_tag_lookup_int (track, 
BRASERO_TRACK_STREAM_ISRC_TAG),
+                                          brasero_track_tag_lookup_string (track, 
BRASERO_TRACK_STREAM_ISRC_TAG),
                                           length,
                                           brasero_track_stream_get_start (BRASERO_TRACK_STREAM (track)),
                                           brasero_track_stream_get_end (BRASERO_TRACK_STREAM (track)),
@@ -774,10 +775,12 @@ brasero_video_disc_edit_song_properties_file (BraseroVideoDisc *self,
                g_free (composer);
        }
 
-       if (isrc)
-               brasero_track_tag_add_int (track,
-                                          BRASERO_TRACK_STREAM_ISRC_TAG,
-                                          isrc);
+       if (isrc) {
+               brasero_track_tag_add_string (track,
+                                             BRASERO_TRACK_STREAM_ISRC_TAG,
+                                             isrc);
+               g_free (isrc);
+       }
 
        brasero_track_stream_set_boundaries (BRASERO_TRACK_STREAM (track),
                                             start,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]