[banshee/gapless-ng: 827/836] [libbanshee] Move _bp_pipeline_rebuild to banshe-player-replaygain.c



commit b04c2eccd3714bc37157ef5dc9d3d41f019f9785
Author: Christopher James Halse Rogers <raof ubuntu com>
Date:   Wed Feb 24 21:22:09 2010 +1100

    [libbanshee] Move _bp_pipeline_rebuild to banshe-player-replaygain.c
    
    And rename it to _bp_replaygain_pipeline_rebuild, since that's what it does

 libbanshee/banshee-player-pipeline.c   |   58 +------------------------------
 libbanshee/banshee-player-replaygain.c |   59 +++++++++++++++++++++++++++++++-
 libbanshee/banshee-player-replaygain.h |    1 +
 3 files changed, 60 insertions(+), 58 deletions(-)
---
diff --git a/libbanshee/banshee-player-pipeline.c b/libbanshee/banshee-player-pipeline.c
index c640bbe..82a236d 100644
--- a/libbanshee/banshee-player-pipeline.c
+++ b/libbanshee/banshee-player-pipeline.c
@@ -300,6 +300,7 @@ _bp_pipeline_construct (BansheePlayer *player)
         player->after_rgvolume = audiosink;
     }
     player->rgvolume_in_pipeline = FALSE;
+    _bp_replaygain_pipeline_rebuild (player);
 
     _bp_vis_pipeline_setup (player);
     
@@ -352,60 +353,3 @@ _bp_pipeline_destroy (BansheePlayer *player)
     
     player->playbin = NULL;
 }
-
-static void
-pad_block_cb (GstPad *srcPad, gboolean blocked, gpointer user_data) {
-
-    if (blocked == FALSE) {
-        return;
-    }
-
-    BansheePlayer* player = (BansheePlayer*) user_data;
-    g_return_if_fail (IS_BANSHEE_PLAYER (player));
-
-    if (player->rgvolume_in_pipeline == TRUE) {
-        g_return_if_fail (player->rgvolume != NULL);
-        gst_element_unlink(player->before_rgvolume, player->rgvolume);
-        gst_element_unlink(player->rgvolume, player->after_rgvolume);
-    } else {
-        gst_element_unlink(player->before_rgvolume, player->after_rgvolume);
-    }
-
-    if (player->rgvolume == NULL && player->replaygain_enabled == TRUE) {
-        player->rgvolume = gst_element_factory_make ("rgvolume", NULL);
-        gst_bin_add (GST_BIN (player->audiobin), player->rgvolume);
-    }
-
-    if (player->replaygain_enabled == TRUE) {
-        gst_element_sync_state_with_parent(player->rgvolume);
-
-        // link in rgvolume and connect to the real audio sink.
-        gst_element_link (player->before_rgvolume, player->rgvolume);
-        gst_element_link (player->rgvolume, player->after_rgvolume);
-        player->rgvolume_in_pipeline = TRUE;
-    } else {
-        // link the queue with the real audio sink
-        gst_element_link (player->before_rgvolume, player->after_rgvolume);
-        player->rgvolume_in_pipeline = FALSE;
-    }
-
-    if (gst_pad_is_blocked (srcPad) == TRUE) {
-        gst_pad_set_blocked_async(srcPad, FALSE, &pad_block_cb, player);
-    }
-
-    _bp_rgvolume_print_volume(player);
-}
-
-void _bp_pipeline_rebuild (BansheePlayer* player)
-{
-    g_return_if_fail (IS_BANSHEE_PLAYER (player));
-    g_return_if_fail (GST_IS_ELEMENT (player->before_rgvolume));
-
-    GstPad* srcPad = gst_element_get_static_pad(player->before_rgvolume, "src");
-
-    if (gst_pad_is_active(srcPad) == TRUE && gst_pad_is_blocked (srcPad) == FALSE) {
-        gst_pad_set_blocked_async(srcPad, TRUE, &pad_block_cb, player);
-    } else if (srcPad->block_callback == NULL) {
-        pad_block_cb(srcPad, TRUE, player);
-    }
-}
diff --git a/libbanshee/banshee-player-replaygain.c b/libbanshee/banshee-player-replaygain.c
index acfe737..4105a20 100644
--- a/libbanshee/banshee-player-replaygain.c
+++ b/libbanshee/banshee-player-replaygain.c
@@ -40,6 +40,49 @@ bp_replaygain_db_to_linear(gdouble value)
     return pow(10, value / 20.0);
 }
 
+static void
+pad_block_cb (GstPad *srcPad, gboolean blocked, gpointer user_data) {
+
+    if (blocked == FALSE) {
+        return;
+    }
+
+    BansheePlayer* player = (BansheePlayer*) user_data;
+    g_return_if_fail (IS_BANSHEE_PLAYER (player));
+
+    if (player->rgvolume_in_pipeline == TRUE) {
+        g_return_if_fail (player->rgvolume != NULL);
+        gst_element_unlink(player->before_rgvolume, player->rgvolume);
+        gst_element_unlink(player->rgvolume, player->after_rgvolume);
+    } else {
+        gst_element_unlink(player->before_rgvolume, player->after_rgvolume);
+    }
+
+    if (player->rgvolume == NULL && player->replaygain_enabled == TRUE) {
+        player->rgvolume = gst_element_factory_make ("rgvolume", NULL);
+        gst_bin_add (GST_BIN (player->audiobin), player->rgvolume);
+    }
+
+    if (player->replaygain_enabled == TRUE) {
+        gst_element_sync_state_with_parent(player->rgvolume);
+
+        // link in rgvolume and connect to the real audio sink.
+        gst_element_link (player->before_rgvolume, player->rgvolume);
+        gst_element_link (player->rgvolume, player->after_rgvolume);
+        player->rgvolume_in_pipeline = TRUE;
+    } else {
+        // link the queue with the real audio sink
+        gst_element_link (player->before_rgvolume, player->after_rgvolume);
+        player->rgvolume_in_pipeline = FALSE;
+    }
+
+    if (gst_pad_is_blocked (srcPad) == TRUE) {
+        gst_pad_set_blocked_async(srcPad, FALSE, &pad_block_cb, player);
+    }
+
+    _bp_rgvolume_print_volume(player);
+}
+
 // ---------------------------------------------------------------------------
 // Internal Functions
 // ---------------------------------------------------------------------------
@@ -70,6 +113,20 @@ void _bp_rgvolume_print_volume(BansheePlayer *player)
     }
 }
 
+void _bp_replaygain_pipeline_rebuild (BansheePlayer* player)
+{
+    g_return_if_fail (IS_BANSHEE_PLAYER (player));
+    g_return_if_fail (GST_IS_ELEMENT (player->before_rgvolume));
+
+    GstPad* srcPad = gst_element_get_static_pad(player->before_rgvolume, "src");
+
+    if (gst_pad_is_active(srcPad) == TRUE && gst_pad_is_blocked (srcPad) == FALSE) {
+        gst_pad_set_blocked_async(srcPad, TRUE, &pad_block_cb, player);
+    } else if (srcPad->block_callback == NULL) {
+        pad_block_cb(srcPad, TRUE, player);
+    }
+}
+
 // ---------------------------------------------------------------------------
 // Public Functions
 // ---------------------------------------------------------------------------
@@ -80,7 +137,7 @@ bp_replaygain_set_enabled (BansheePlayer *player, gboolean enabled)
     g_return_if_fail (IS_BANSHEE_PLAYER (player));
     player->replaygain_enabled = enabled;
     bp_debug ("%s ReplayGain", enabled ? "Enabled" : "Disabled");
-    _bp_pipeline_rebuild(player);
+    _bp_replaygain_pipeline_rebuild(player);
 }
 
 P_INVOKE gboolean
diff --git a/libbanshee/banshee-player-replaygain.h b/libbanshee/banshee-player-replaygain.h
index 8c38148..3d80cc3 100644
--- a/libbanshee/banshee-player-replaygain.h
+++ b/libbanshee/banshee-player-replaygain.h
@@ -33,5 +33,6 @@
 
 GstElement* _bp_rgvolume_new          (BansheePlayer *player);
 void        _bp_rgvolume_print_volume (BansheePlayer *player);
+void        _bp_replaygain_pipeline_rebuild (BansheePlayer* player);
 
 #endif /* _BANSHEE_PLAYER_REPLAYGAIN_H */



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