[rhythmbox] encoder: add destination uri to the 'completed' signal



commit 9f2a50bd56062e4b7abec62484304f99e7d9ce64
Author: Jonathan Matthew <jonathan d14n org>
Date:   Mon Aug 6 06:59:41 2018 +1000

    encoder: add destination uri to the 'completed' signal

 backends/gstreamer/rb-encoder-gst.c |  6 +++++-
 backends/rb-encoder.c               |  7 ++++---
 backends/rb-encoder.h               |  2 +-
 shell/rb-track-transfer-batch.c     | 16 +++++++++-------
 4 files changed, 19 insertions(+), 12 deletions(-)
---
diff --git a/backends/gstreamer/rb-encoder-gst.c b/backends/gstreamer/rb-encoder-gst.c
index ff6f634ad..b0ab7b7e5 100644
--- a/backends/gstreamer/rb-encoder-gst.c
+++ b/backends/gstreamer/rb-encoder-gst.c
@@ -133,7 +133,11 @@ rb_encoder_gst_emit_completed (RBEncoderGst *encoder)
        }
 
        encoder->priv->completion_emitted = TRUE;
-       _rb_encoder_emit_completed (RB_ENCODER (encoder), encoder->priv->dest_size, 
encoder->priv->dest_media_type, encoder->priv->error);
+       _rb_encoder_emit_completed (RB_ENCODER (encoder),
+                                   encoder->priv->dest_uri,
+                                   encoder->priv->dest_size,
+                                   encoder->priv->dest_media_type,
+                                   encoder->priv->error);
 }
 
 static void
diff --git a/backends/rb-encoder.c b/backends/rb-encoder.c
index 181415114..5aff4a648 100644
--- a/backends/rb-encoder.c
+++ b/backends/rb-encoder.c
@@ -135,6 +135,7 @@ rb_encoder_interface_init (RBEncoderIface *iface)
        /**
         * RBEncoder::completed:
         * @encoder: the #RBEncoder instance
+        * @dest_uri: destination URI
         * @dest_size: size of the output file
         * @mediatype: output media type
         * @error: encoding error, or NULL if successful
@@ -150,7 +151,7 @@ rb_encoder_interface_init (RBEncoderIface *iface)
                              G_STRUCT_OFFSET (RBEncoderIface, completed),
                              NULL, NULL, NULL,
                              G_TYPE_NONE,
-                             3, G_TYPE_UINT64, G_TYPE_STRING, G_TYPE_POINTER);
+                             4, G_TYPE_STRING, G_TYPE_UINT64, G_TYPE_STRING, G_TYPE_POINTER);
 }
 
 GType
@@ -278,9 +279,9 @@ _rb_encoder_emit_progress (RBEncoder *encoder, double fraction)
 }
 
 void
-_rb_encoder_emit_completed (RBEncoder *encoder, guint64 dest_size, const char *mediatype, GError *error)
+_rb_encoder_emit_completed (RBEncoder *encoder, const char *dest_uri, guint64 dest_size, const char 
*mediatype, GError *error)
 {
-       g_signal_emit (encoder, signals[COMPLETED], 0, dest_size, mediatype, error);
+       g_signal_emit (encoder, signals[COMPLETED], 0, dest_uri, dest_size, mediatype, error);
 }
 
 void
diff --git a/backends/rb-encoder.h b/backends/rb-encoder.h
index 9a774158c..643a925a0 100644
--- a/backends/rb-encoder.h
+++ b/backends/rb-encoder.h
@@ -125,7 +125,7 @@ gboolean    rb_encoder_get_missing_plugins (RBEncoder *encoder,
 
 /* only to be used by subclasses */
 void   _rb_encoder_emit_progress (RBEncoder *encoder, double fraction);
-void   _rb_encoder_emit_completed (RBEncoder *encoder, guint64 dest_size, const char *mediatype, GError 
*error);
+void   _rb_encoder_emit_completed (RBEncoder *encoder, const char *uri, guint64 dest_size, const char 
*mediatype, GError *error);
 
 void   _rb_encoder_emit_prepare_source (RBEncoder *encoder, const char *uri, GObject *source);
 void   _rb_encoder_emit_prepare_sink (RBEncoder *encoder, const char *uri, GObject *sink);
diff --git a/shell/rb-track-transfer-batch.c b/shell/rb-track-transfer-batch.c
index 8c08d0864..107cb414c 100644
--- a/shell/rb-track-transfer-batch.c
+++ b/shell/rb-track-transfer-batch.c
@@ -82,6 +82,7 @@ static void   rb_track_transfer_batch_task_progress_init (RBTaskProgressInterface
 static gboolean start_next (RBTrackTransferBatch *batch);
 static void start_encoding (RBTrackTransferBatch *batch, gboolean overwrite);
 static void track_transfer_completed (RBTrackTransferBatch *batch,
+                                     const char *dest_uri,
                                      guint64 dest_size,
                                      const char *mediatype,
                                      gboolean skipped,
@@ -473,7 +474,7 @@ _rb_track_transfer_batch_continue (RBTrackTransferBatch *batch, gboolean overwri
        if (overwrite) {
                start_encoding (batch, TRUE);
        } else {
-               track_transfer_completed (batch, 0, NULL, TRUE, NULL);
+               track_transfer_completed (batch, NULL, 0, NULL, TRUE, NULL);
        }
 }
 
@@ -507,6 +508,7 @@ encoder_progress_cb (RBEncoder *encoder, double fraction, RBTrackTransferBatch *
 
 static void
 track_transfer_completed (RBTrackTransferBatch *batch,
+                         const char *dest_uri,
                          guint64 dest_size,
                          const char *mediatype,
                          gboolean skipped,
@@ -531,7 +533,7 @@ track_transfer_completed (RBTrackTransferBatch *batch,
                if (skipped == FALSE) {
                        g_signal_emit (batch, signals[TRACK_DONE], 0,
                                       entry,
-                                      batch->priv->current_dest_uri,
+                                      dest_uri,
                                       dest_size,
                                       mediatype,
                                       error);
@@ -545,6 +547,7 @@ track_transfer_completed (RBTrackTransferBatch *batch,
 
 static void
 encoder_completed_cb (RBEncoder *encoder,
+                     const char *dest_uri,
                      guint64 dest_size,
                      const char *mediatype,
                      GError *error,
@@ -556,15 +559,14 @@ encoder_completed_cb (RBEncoder *encoder,
        if (error == NULL) {
                rb_debug ("encoder finished (size %" G_GUINT64_FORMAT ")", dest_size);
        } else if (g_error_matches (error, RB_ENCODER_ERROR, RB_ENCODER_ERROR_DEST_EXISTS)) {
-               rb_debug ("encoder stopped because destination %s already exists",
-                         batch->priv->current_dest_uri);
-               g_signal_emit (batch, signals[OVERWRITE_PROMPT], 0, batch->priv->current_dest_uri);
+               rb_debug ("encoder stopped because destination %s already exists", dest_uri);
+               g_signal_emit (batch, signals[OVERWRITE_PROMPT], 0, dest_uri);
                return;
        } else {
                rb_debug ("encoder finished (error: %s)", error->message);
        }
 
-       track_transfer_completed (batch, dest_size, mediatype, FALSE, error);
+       track_transfer_completed (batch, dest_uri, dest_size, mediatype, FALSE, error);
 }
 
 static char *
@@ -651,7 +653,7 @@ create_parent_dirs_cb (GObject *source_object, GAsyncResult *result, gpointer da
                        g_task_run_in_thread (task, create_parent_dirs_task);
                } else {
                        rb_debug ("failed to create parent directories for %s", 
batch->priv->current_dest_uri);
-                       track_transfer_completed (batch, 0, NULL, FALSE, error);
+                       track_transfer_completed (batch, NULL, 0, NULL, FALSE, error);
                }
        } else {
                rb_debug ("parent directories for %s created", batch->priv->current_dest_uri);


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