[rhythmbox] shell: cancel outstanding transfers to or from deleted sources
- From: Jonathan Matthew <jmatthew src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rhythmbox] shell: cancel outstanding transfers to or from deleted sources
- Date: Tue, 14 May 2013 12:42:10 +0000 (UTC)
commit fa5ca160f4118c13e672781ce56bac571376f62b
Author: Jonathan Matthew <jonathan d14n org>
Date: Tue May 14 22:34:26 2013 +1000
shell: cancel outstanding transfers to or from deleted sources
shell/rb-shell.c | 2 ++
shell/rb-track-transfer-queue.c | 20 ++++++++++++++++++++
shell/rb-track-transfer-queue.h | 2 ++
3 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/shell/rb-shell.c b/shell/rb-shell.c
index 790f03a..6048c79 100644
--- a/shell/rb-shell.c
+++ b/shell/rb-shell.c
@@ -2159,6 +2159,8 @@ rb_shell_display_page_deleted_cb (RBDisplayPage *page, RBShell *shell)
rb_shell_player_stop (shell->priv->player_shell);
}
+ rb_track_transfer_queue_cancel_for_source (shell->priv->track_transfer_queue, source);
+
shell->priv->sources = g_list_remove (shell->priv->sources, source);
}
diff --git a/shell/rb-track-transfer-queue.c b/shell/rb-track-transfer-queue.c
index c6a089e..7d1c52e 100644
--- a/shell/rb-track-transfer-queue.c
+++ b/shell/rb-track-transfer-queue.c
@@ -599,6 +599,26 @@ rb_track_transfer_queue_find_batch_by_source (RBTrackTransferQueue *queue, RBSou
return data.results;
}
+/**
+ * rb_track_transfer_queue_cancel_for_source;
+ * @queue: the #RBTrackTransferQueue
+ * @source: the #RBSource to cancel transfers to/from
+ *
+ * Cancels all transfers to or from a specified source.
+ */
+void
+rb_track_transfer_queue_cancel_for_source (RBTrackTransferQueue *queue, RBSource *source)
+{
+ GList *batches;
+ GList *l;
+
+ batches = rb_track_transfer_queue_find_batch_by_source (queue, source);
+ for (l = batches; l != NULL; l = l->next) {
+ rb_track_transfer_queue_cancel_batch (queue, l->data);
+ }
+ g_list_free (batches);
+}
+
static void
rb_track_transfer_queue_init (RBTrackTransferQueue *queue)
{
diff --git a/shell/rb-track-transfer-queue.h b/shell/rb-track-transfer-queue.h
index a588029..17b0d6a 100644
--- a/shell/rb-track-transfer-queue.h
+++ b/shell/rb-track-transfer-queue.h
@@ -72,6 +72,8 @@ void rb_track_transfer_queue_cancel_batch (RBTrackTransferQueue *queue,
RBTrackTransferBatch *batch);
GList * rb_track_transfer_queue_find_batch_by_source (RBTrackTransferQueue *queue,
RBSource *source);
+void rb_track_transfer_queue_cancel_for_source (RBTrackTransferQueue *queue,
+ RBSource *source);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]