[banshee/gapless-ng: 827/836] [libbanshee] Move _bp_pipeline_rebuild to banshe-player-replaygain.c
- From: Christopher James Halse Rogers <chrishr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee/gapless-ng: 827/836] [libbanshee] Move _bp_pipeline_rebuild to banshe-player-replaygain.c
- Date: Thu, 25 Feb 2010 22:45:23 +0000 (UTC)
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]