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