diff options
author | Arun Raghavan <ford_prefect@gentoo.org> | 2010-03-17 18:58:33 +0000 |
---|---|---|
committer | Arun Raghavan <ford_prefect@gentoo.org> | 2010-03-17 18:58:33 +0000 |
commit | 0fceffc735f7adc08f4f1bc9dfc5af9ba61961c0 (patch) | |
tree | 0422e3dfadbfcb6f0df0f5400731a0c48bfbf45c /media-sound | |
parent | Update metadata.xml to list myself as primary maintainer. (diff) | |
download | historical-0fceffc735f7adc08f4f1bc9dfc5af9ba61961c0.tar.gz historical-0fceffc735f7adc08f4f1bc9dfc5af9ba61961c0.tar.bz2 historical-0fceffc735f7adc08f4f1bc9dfc5af9ba61961c0.zip |
Bump to 1.5.5 (1.6 RC1). Drops some flags in favour of depending on gst-plugins-meta, makes CD ripping support optional, and adds USE-flag controlled support for the Youtube plugin.
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64
Diffstat (limited to 'media-sound')
-rw-r--r-- | media-sound/banshee/ChangeLog | 11 | ||||
-rw-r--r-- | media-sound/banshee/Manifest | 8 | ||||
-rw-r--r-- | media-sound/banshee/banshee-1.5.5.ebuild | 145 | ||||
-rw-r--r-- | media-sound/banshee/files/banshee-1.5.5-volume-reset-fix.patch | 268 | ||||
-rw-r--r-- | media-sound/banshee/files/banshee-1.5.5-volume-slider-fix.patch | 62 | ||||
-rw-r--r-- | media-sound/banshee/metadata.xml | 2 |
6 files changed, 493 insertions, 3 deletions
diff --git a/media-sound/banshee/ChangeLog b/media-sound/banshee/ChangeLog index c805192b628e..37c11161ac9d 100644 --- a/media-sound/banshee/ChangeLog +++ b/media-sound/banshee/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for media-sound/banshee # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-sound/banshee/ChangeLog,v 1.107 2010/02/25 06:22:21 ford_prefect Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-sound/banshee/ChangeLog,v 1.108 2010/03/17 18:58:33 ford_prefect Exp $ + +*banshee-1.5.5 (17 Mar 2010) + + 17 Mar 2010; Arun Raghavan <ford_prefect@gentoo.org> + +banshee-1.5.5.ebuild, +files/banshee-1.5.5-volume-reset-fix.patch, + +files/banshee-1.5.5-volume-slider-fix.patch, metadata.xml: + Bump to 1.5.5 (1.6 RC1). Drops some flags in favour of depending on + gst-plugins-meta, makes CD ripping support optional, and adds USE-flag + controlled support for the Youtube plugin. 25 Feb 2010; Arun Raghavan <ford_prefect@gentoo.org> -banshee-1.5.0.ebuild, -banshee-1.5.2.ebuild: diff --git a/media-sound/banshee/Manifest b/media-sound/banshee/Manifest index 4bc0c7d2c4a4..e4e1c4b9b569 100644 --- a/media-sound/banshee/Manifest +++ b/media-sound/banshee/Manifest @@ -1,13 +1,17 @@ AUX banshee-1.4.2-metadata-writefail.patch 5701 RMD160 3985a02b7f4e9013951d75090051ff4d8991916d SHA1 28ab88d8eb12801d4b2a2a9186c71c2904e88525 SHA256 179608931a113a660965689cdf077e066952b0c125c9648befbbe3bd07c13399 AUX banshee-1.4.3-CVE-2009-1175.patch 2985 RMD160 c149b8783431a4673b2f2a330a2f5059f7a210d0 SHA1 78841e5dce317fb3e16cc10f4e1b9b6f7ac2b825 SHA256 d8678cadb3c62f809bb977ad2563877d05c33a86ff4c315fe9d89d2c80c82feb +AUX banshee-1.5.5-volume-reset-fix.patch 11938 RMD160 837021473c02ca1af22e04a8579809feb5aaa373 SHA1 aef7dbdb401f1d1d0b7081a592d5d2eccda36897 SHA256 d4fd898914b39f0737ff9b5dbc9d92da9fe2241110d3ce0ca71097f1fafb48b9 +AUX banshee-1.5.5-volume-slider-fix.patch 2453 RMD160 6b42eed1e477f5fae8d14c0f5d93a5865d14c951 SHA1 d63f7c1fe7e90726aaa4773c2ebb8b0185062e2e SHA256 84c97798990d42094bafbb1ef73d5275ff113565c5699d90ab4095aa5e00469f DIST banshee-1-1.4.3.tar.bz2 2415388 RMD160 06a76574efaa6bc0740d5c656dcbb2334ee84e73 SHA1 3b137c1efe3eb8881da2e86210104eb292a7c560 SHA256 8abe54b17c6755b7b6f617c8470ba5e84c94a96b86af9aac1031080646e142d1 DIST banshee-1-1.5.3.tar.bz2 2614970 RMD160 aba5bfb9bfdabd4941ffb50f7bce2c8beec92910 SHA1 9d1c40a59b7a05e42ed4c2270acf2d58797e6765 SHA256 c4cebcde2d30e460152da881d64e2f890576b598961be63f1bd63a6d28de0b03 DIST banshee-1-1.5.4.tar.bz2 2951597 RMD160 cdcdcf756f1c7aa93f679aa9755400bee4a1107e SHA1 97a8bac07484de663911b81a1ceed29049173c23 SHA256 c22a915b85dbdd3e4508991f2ace82aa09052a687abab51d69b1b64bf7327cc7 +DIST banshee-1-1.5.5.tar.bz2 3177710 RMD160 dcf594d59d9e205fce85b734a5b92ac76fbe945c SHA1 6fb898810f3a6d03f22725379e180ee311d2caee SHA256 ffc3f548dca8f36f8627074dc67c624c87d7ca299082fc6967d493a63538e475 DIST banshee-1.4.2-musicbrainz-fix.patch.bz2 14078 RMD160 185e306fe4705c2d317b6dbbaa11d69b4c52b4ca SHA1 a98a56346c8a3134959c3533ecae72a3979ef392 SHA256 d238408dce5eec001c0ff77dec3097c43414c4d897b456a45451a0a7e8975dbb EBUILD banshee-1.4.3-r1.ebuild 3265 RMD160 c6b48dd5d4f470e22e810924216f1d771aafa1f1 SHA1 9a8eff7d036cf6621c581caef3136a0d97fde787 SHA256 d9935590985749db49562b4d41cf2f25babe332ea896fe152f58bc8eac7dc39f EBUILD banshee-1.4.3-r2.ebuild 3309 RMD160 2de0e84578b83272f55db8dec9454edbbd0b5f0e SHA1 0f77c4b424e8db1bd3f33d8abe7992e30b0a26aa SHA256 5d03b328cade2d5ea824c58a56346e10e756a8c3f652a71f61236a2425105447 EBUILD banshee-1.4.3.ebuild 3699 RMD160 a4ecab4d4a883a7833e2bbc29267cbea6d6834f1 SHA1 8764442322ad093ad0d39f5ba73716bcec4693c7 SHA256 d0c38cd48b34331bfa099699444df2c296dc2db4c1231367123f38acfeda40e5 EBUILD banshee-1.5.3.ebuild 3269 RMD160 1d31f627b9a236253d88f2a17e2147a8c7c48901 SHA1 01c545d70ed52b2c3e7af338fcbc73e913be63a1 SHA256 d90becc1a7a759923e6bf361d4794aefb355216a582be3ac3898605e03a64c45 EBUILD banshee-1.5.4.ebuild 3394 RMD160 e8e009937b258427da06fb82af43a261d989d3e4 SHA1 f082ebd2f0f3c02742c2dbad325c8858c2d5c6d4 SHA256 4953bfa6735a36a8b20172a9968a91ee52d583a225e9c45a89dd24189a1df25d -MISC ChangeLog 19830 RMD160 1ab5c7022ebdc99f571074a921e9b856b5ff0db1 SHA1 62877344a165c6543e6563c3cf754271b480b1e6 SHA256 c7edfe5a95fad62246f67c036b412e61a37ee1b46dc8bdab74661ba245f6e642 -MISC metadata.xml 554 RMD160 75a483d10ed33a9ab44171dd9a0adadf8300eeba SHA1 823c1283251e53b1c87e595d1df2edfcbee36685 SHA256 a3e3af55e591e362d5c9be0116e03579b095c9829de22edbf5dc73ed2f4290f9 +EBUILD banshee-1.5.5.ebuild 3708 RMD160 2d3791dbce3bdc36c653540e3b3d710950670b73 SHA1 05ee24cb53b4b3297245c121b3e65de2d37cb089 SHA256 5fb716bb702e6e73a59ad663396a014eb1a90855c837c594946e184b470c9695 +MISC ChangeLog 20236 RMD160 f81cfc8790bb1f0db60e6af89f8b482c9daa22b8 SHA1 d1a256b79eeb8f623aa5f93c708cf7ef5c511c3d SHA256 d3f995d2fc7f135989a85f0d28e487fec47e5062e3cfc13b8ec5dce8f1cd5f21 +MISC metadata.xml 663 RMD160 0abe86be9299e6f220ee9fb2fd8956b5ae1cdc3f SHA1 d49b527c1a04f358ecd1ea6573165f13b1088f04 SHA256 84615a80e41486fd2a9213d5a6212459187be242e97ebd73833c268661acc976 diff --git a/media-sound/banshee/banshee-1.5.5.ebuild b/media-sound/banshee/banshee-1.5.5.ebuild new file mode 100644 index 000000000000..29fe426c0398 --- /dev/null +++ b/media-sound/banshee/banshee-1.5.5.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-sound/banshee/banshee-1.5.5.ebuild,v 1.1 2010/03/17 18:58:33 ford_prefect Exp $ + +EAPI=2 + +inherit eutils mono gnome2-utils fdo-mime versionator + +GVER=0.10.7 + +DESCRIPTION="Import, organize, play, and share your music using a simple and powerful interface." +HOMEPAGE="http://banshee-project.org" + +#BANSHEE_V2=$(get_version_component_range 2) +#[[ $((${BANSHEE_V2} % 2)) -eq 0 ]] && RELTYPE=stable || RELTYPE=unstable +#SRC_URI="http://download.banshee-project.org/${PN}/${RELTYPE}/${PV}/${PN}-1-${PV}.tar.bz2" +SRC_URI="http://download.banshee-project.org/${PN}/stable/${PV}/${PN}-1-${PV}.tar.bz2" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+aac +cdda boo daap doc +encode ipod karma mtp podcast test wikipedia youtube" + +RDEPEND=">=dev-lang/mono-2.4.3 + gnome-base/gnome-settings-daemon + x11-themes/gnome-icon-theme + sys-apps/dbus + >=dev-dotnet/gtk-sharp-2.12 + >=dev-dotnet/glade-sharp-2.12 + >=dev-dotnet/gconf-sharp-2.24.0 + >=dev-dotnet/gnome-sharp-2.24.0 + >=dev-dotnet/notify-sharp-0.4.0_pre20080912-r1 + >=media-libs/gstreamer-0.10.21-r3 + >=media-libs/gst-plugins-bad-${GVER} + >=media-libs/gst-plugins-good-${GVER} + >=media-libs/gst-plugins-ugly-${GVER} + >=media-plugins/gst-plugins-meta-0.10-r2:0.10 + >=media-plugins/gst-plugins-gnomevfs-${GVER} + >=media-plugins/gst-plugins-gconf-${GVER} + cdda? ( + || ( + >=media-plugins/gst-plugins-cdparanoia-${GVER} + >=media-plugins/gst-plugins-cdio-${GVER} + ) + ) + media-libs/musicbrainz:1 + >=dev-dotnet/dbus-glib-sharp-0.4.1 + >=dev-dotnet/dbus-sharp-0.6.1a + >=dev-dotnet/mono-addins-0.4[gtk] + >=dev-dotnet/taglib-sharp-2.0.3.5 + >=dev-db/sqlite-3.4 + karma? ( >=media-libs/libkarma-0.1.0-r1 ) + aac? ( >=media-plugins/gst-plugins-faad-${GVER} ) + boo? ( + >=dev-lang/boo-0.8.1 + ) + daap? ( + >=dev-dotnet/mono-zeroconf-0.8.0-r1 + ) + doc? ( + virtual/monodoc + ) + encode? ( + >=media-plugins/gst-plugins-lame-${GVER} + >=media-plugins/gst-plugins-taglib-${GVER} + ) + ipod? ( + >=dev-dotnet/ipod-sharp-0.8.5 + ) + mtp? ( + media-libs/libmtp + ) + wikipedia? ( + >=dev-dotnet/webkit-sharp-0.2 + ) + youtube? ( + >=dev-dotnet/google-gdata-sharp-1.4 + )" + +DEPEND="${RDEPEND} + dev-util/pkgconfig" + +DOCS="AUTHORS ChangeLog HACKING NEWS README" + +S=${WORKDIR}/${PN}-1-${PV} + +src_prepare() { + # from upstream: git diff a76aaf ae843d + epatch "${FILESDIR}/${P}-volume-reset-fix.patch" + # submitted upstream: bug #613177 + epatch "${FILESDIR}/${P}-volume-slider-fix.patch" +} + +src_configure() { + # Disable the gapless plugin till we have >=gst-plugins-base-0.10.25.2 + local myconf="--disable-dependency-tracking --disable-static + --enable-gnome --enable-schemas-install + --with-gconf-schema-file-dir=/etc/gconf/schemas + --with-vendor-build-id=Gentoo/${PN}/${PVR} + --disable-gapless-playback + --disable-torrent + --disable-shave" + + econf \ + $(use_enable doc docs) \ + $(use_enable boo) \ + $(use_enable mtp) \ + $(use_enable daap) \ + $(use_enable ipod) \ + $(use_enable podcast) \ + $(use_enable karma) \ + $(use_enable wikipedia webkit) \ + $(use_enable youtube gdata) \ + ${myconf} +} + +src_compile() { + emake MCS=/usr/bin/gmcs +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install efailed" + find "${D}" -name '*.la' -delete +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + ewarn + ewarn "If ${PN} doesn't play some format, please check your" + ewarn "USE flags on media-plugins/gst-plugins-meta" + ewarn + + fdo-mime_desktop_database_update + fdo-mime_mime_database_update + gnome2_icon_cache_update +} + +pkg_postrm() { + fdo-mime_desktop_database_update + fdo-mime_mime_database_update + gnome2_icon_cache_update +} diff --git a/media-sound/banshee/files/banshee-1.5.5-volume-reset-fix.patch b/media-sound/banshee/files/banshee-1.5.5-volume-reset-fix.patch new file mode 100644 index 000000000000..3053c870ae35 --- /dev/null +++ b/media-sound/banshee/files/banshee-1.5.5-volume-reset-fix.patch @@ -0,0 +1,268 @@ +diff --git a/libbanshee/banshee-player-pipeline.c b/libbanshee/banshee-player-pipeline.c +index 376300a..90b968d 100644 +--- a/libbanshee/banshee-player-pipeline.c ++++ b/libbanshee/banshee-player-pipeline.c +@@ -234,6 +234,19 @@ static void bp_about_to_finish_callback (GstElement *playbin, BansheePlayer *pla + } + #endif //ENABLE_GAPLESS + ++static void bp_volume_changed_callback (GstElement *playbin, GParamSpec *spec, BansheePlayer *player) ++{ ++ g_return_if_fail (IS_BANSHEE_PLAYER (player)); ++ g_return_if_fail (GST_IS_ELEMENT (playbin)); ++ ++ gdouble volume; ++ g_object_get (G_OBJECT (playbin), "volume", &volume, NULL); ++ ++ if (player->volume_changed_cb != NULL) { ++ player->volume_changed_cb (player, volume); ++ } ++} ++ + // --------------------------------------------------------------------------- + // Internal Functions + // --------------------------------------------------------------------------- +@@ -262,6 +275,8 @@ _bp_pipeline_construct (BansheePlayer *player) + + g_return_val_if_fail (player->playbin != NULL, FALSE); + ++ g_signal_connect (player->playbin, "notify::volume", G_CALLBACK (bp_volume_changed_callback), player); ++ + // Try to find an audio sink, prefer gconf, which typically is set to auto these days, + // fall back on auto, which should work on windows, and as a last ditch, try alsa + audiosink = gst_element_factory_make ("gconfaudiosink", "audiosink"); +diff --git a/libbanshee/banshee-player-private.h b/libbanshee/banshee-player-private.h +index 1edd375..68c6bf4 100644 +--- a/libbanshee/banshee-player-private.h ++++ b/libbanshee/banshee-player-private.h +@@ -79,6 +79,7 @@ typedef void (* BansheePlayerVisDataCallback) (BansheePlayer *player, gint + typedef void (* BansheePlayerNextTrackStartingCallback) (BansheePlayer *player); + typedef void (* BansheePlayerAboutToFinishCallback) (BansheePlayer *player); + typedef GstElement * (* BansheePlayerVideoPipelineSetupCallback) (BansheePlayer *player, GstBus *bus); ++typedef void (* BansheePlayerVolumeChangedCallback) (BansheePlayer *player, gdouble new_volume); + + typedef enum { + BP_VIDEO_DISPLAY_CONTEXT_UNSUPPORTED = 0, +@@ -98,6 +99,7 @@ struct BansheePlayer { + BansheePlayerNextTrackStartingCallback next_track_starting_cb; + BansheePlayerAboutToFinishCallback about_to_finish_cb; + BansheePlayerVideoPipelineSetupCallback video_pipeline_setup_cb; ++ BansheePlayerVolumeChangedCallback volume_changed_cb; + + // Pipeline Elements + GstElement *playbin; +@@ -113,7 +115,6 @@ struct BansheePlayer { + gboolean rgvolume_in_pipeline; + + gint equalizer_status; +- gdouble current_volume; + + // Pipeline/Playback State + GMutex *mutex; +diff --git a/libbanshee/banshee-player-replaygain.c b/libbanshee/banshee-player-replaygain.c +index 238333b..8c870f1 100644 +--- a/libbanshee/banshee-player-replaygain.c ++++ b/libbanshee/banshee-player-replaygain.c +@@ -165,12 +165,14 @@ void _bp_rgvolume_print_volume(BansheePlayer *player) + g_return_if_fail (IS_BANSHEE_PLAYER (player)); + if (player->replaygain_enabled && (player->rgvolume != NULL)) { + gdouble scale; ++ gdouble volume; + + g_object_get (G_OBJECT (player->rgvolume), "result-gain", &scale, NULL); ++ g_object_get (G_OBJECT (player->playbin), "volume", &volume, NULL); + + bp_debug ("scaled volume: %.2f (ReplayGain) * %.2f (User) = %.2f", +- bp_replaygain_db_to_linear (scale), player->current_volume, +- bp_replaygain_db_to_linear (scale) * player->current_volume); ++ bp_replaygain_db_to_linear (scale), volume, ++ bp_replaygain_db_to_linear (scale) * volume); + } + } + +diff --git a/libbanshee/banshee-player.c b/libbanshee/banshee-player.c +index 2c0cfb0..28266aa 100644 +--- a/libbanshee/banshee-player.c ++++ b/libbanshee/banshee-player.c +@@ -299,8 +299,7 @@ bp_set_volume (BansheePlayer *player, gdouble volume) + g_return_if_fail (IS_BANSHEE_PLAYER (player)); + g_return_if_fail (GST_IS_ELEMENT (player->playbin)); + +- player->current_volume = CLAMP (volume, 0.0, 1.0); +- g_object_set (player->playbin, "volume", player->current_volume, NULL); ++ g_object_set (player->playbin, "volume", CLAMP (volume, 0.0, 1.0), NULL); + _bp_rgvolume_print_volume (player); + } + +@@ -308,7 +307,16 @@ P_INVOKE gdouble + bp_get_volume (BansheePlayer *player) + { + g_return_val_if_fail (IS_BANSHEE_PLAYER (player), 0.0); +- return player->current_volume; ++ g_return_val_if_fail (GST_IS_ELEMENT (player->playbin), 0.0); ++ gdouble volume; ++ g_object_get (player->playbin, "volume", &volume, NULL); ++ return volume; ++} ++ ++P_INVOKE void ++bp_set_volume_changed_callback (BansheePlayer *player, BansheePlayerVolumeChangedCallback cb) ++{ ++ SET_CALLBACK (volume_changed_cb); + } + + P_INVOKE gboolean +diff --git a/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs b/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs +index 1a48c63..3d203bd 100644 +--- a/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs ++++ b/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs +@@ -61,6 +61,7 @@ namespace Banshee.GStreamer + internal delegate void BansheePlayerNextTrackStartingCallback (IntPtr player); + internal delegate void BansheePlayerAboutToFinishCallback (IntPtr player); + internal delegate IntPtr VideoPipelineSetupHandler (IntPtr player, IntPtr bus); ++ internal delegate void BansheePlayerVolumeChangedCallback (IntPtr player, double newVolume); + + internal delegate void GstTaggerTagFoundCallback (IntPtr player, string tagName, ref GLib.Value value); + +@@ -76,7 +77,6 @@ namespace Banshee.GStreamer + private uint GST_STREAM_ERROR = 0; + + private HandleRef handle; +- private bool initialized; + + private BansheePlayerEosCallback eos_callback; + private BansheePlayerErrorCallback error_callback; +@@ -88,12 +88,12 @@ namespace Banshee.GStreamer + private GstTaggerTagFoundCallback tag_found_callback; + private BansheePlayerNextTrackStartingCallback next_track_starting_callback; + private BansheePlayerAboutToFinishCallback about_to_finish_callback; ++ private BansheePlayerVolumeChangedCallback volume_changed_callback; + + private bool next_track_pending; + private SafeUri pending_uri; + + private bool buffering_finished; +- private int pending_volume = -1; + private bool xid_is_set = false; + + private bool gapless_enabled; +@@ -152,6 +152,7 @@ namespace Banshee.GStreamer + tag_found_callback = new GstTaggerTagFoundCallback (OnTagFound); + next_track_starting_callback = new BansheePlayerNextTrackStartingCallback (OnNextTrackStarting); + about_to_finish_callback = new BansheePlayerAboutToFinishCallback (OnAboutToFinish); ++ volume_changed_callback = new BansheePlayerVolumeChangedCallback (OnVolumeChanged); + bp_set_eos_callback (handle, eos_callback); + #if !WIN32 + bp_set_iterate_callback (handle, iterate_callback); +@@ -162,6 +163,7 @@ namespace Banshee.GStreamer + bp_set_tag_found_callback (handle, tag_found_callback); + bp_set_next_track_starting_callback (handle, next_track_starting_callback); + bp_set_video_pipeline_setup_callback (handle, video_pipeline_setup_callback); ++ bp_set_volume_changed_callback (handle, volume_changed_callback); + + next_track_set = new EventWaitHandle (false, EventResetMode.ManualReset); + } +@@ -174,12 +176,9 @@ namespace Banshee.GStreamer + throw new ApplicationException (Catalog.GetString ("Could not initialize GStreamer library")); + } + +- initialized = true; + OnStateChanged (PlayerState.Ready); + +- if (pending_volume >= 0) { +- Volume = (ushort)pending_volume; +- } ++ Volume = (ushort)PlayerEngineService.VolumeSchema.Get (); + + InstallPreferences (); + ReplayGainEnabled = ReplayGainEnabledSchema.Get (); +@@ -480,6 +479,11 @@ namespace Banshee.GStreamer + } + } + ++ private void OnVolumeChanged (IntPtr player, double newVolume) ++ { ++ OnEventChanged (PlayerEvent.Volume); ++ } ++ + private static StreamTag ProcessNativeTagResult (string tagName, ref GLib.Value valueRaw) + { + if (tagName == String.Empty || tagName == null) { +@@ -508,11 +512,6 @@ namespace Banshee.GStreamer + public override ushort Volume { + get { return (ushort)Math.Round (bp_get_volume (handle) * 100.0); } + set { +- if (!initialized) { +- pending_volume = value; +- return; +- } +- + bp_set_volume (handle, value / 100.0); + OnEventChanged (PlayerEvent.Volume); + } +@@ -815,6 +814,10 @@ namespace Banshee.GStreamer + private static extern double bp_get_volume (HandleRef player); + + [DllImport ("libbanshee.dll")] ++ private static extern void bp_set_volume_changed_callback (HandleRef player, ++ BansheePlayerVolumeChangedCallback cb); ++ ++ [DllImport ("libbanshee.dll")] + private static extern bool bp_can_seek (HandleRef player); + + [DllImport ("libbanshee.dll")] +diff --git a/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs b/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs +index 1d46a58..7e1c7f1 100644 +--- a/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs ++++ b/src/Core/Banshee.Services/Banshee.MediaEngine/PlayerEngineService.cs +@@ -196,7 +196,6 @@ namespace Banshee.MediaEngine + private void HandleStateChange (PlayerEventStateChangeArgs args) + { + if (args.Current == PlayerState.Loaded && CurrentTrack != null) { +- active_engine.Volume = (ushort) VolumeSchema.Get (); + MetadataService.Instance.Lookup (CurrentTrack); + } else if (args.Current == PlayerState.Ready) { + // Enable our preferred equalizer if it exists and was enabled last time. +@@ -535,8 +534,8 @@ namespace Banshee.MediaEngine + + private void CheckPending () + { +- if(pending_engine != null && pending_engine != active_engine) { +- if(active_engine.CurrentState == PlayerState.Idle) { ++ if (pending_engine != null && pending_engine != active_engine) { ++ if (active_engine.CurrentState == PlayerState.Idle) { + Close (); + } + +diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedVolumeButton.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedVolumeButton.cs +index c34ddf4..f654244 100644 +--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedVolumeButton.cs ++++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedVolumeButton.cs +@@ -37,9 +37,11 @@ namespace Banshee.Gui.Widgets + { + private bool emit_lock = false; + +- public ConnectedVolumeButton () : base () ++ public ConnectedVolumeButton () : base() + { ++ emit_lock = true; + Volume = PlayerEngineService.VolumeSchema.Get (); ++ emit_lock = false; + ServiceManager.PlayerEngine.ConnectEvent (OnPlayerEvent, PlayerEvent.Volume); + } + +@@ -57,12 +59,13 @@ namespace Banshee.Gui.Widgets + + protected override void OnVolumeChanged () + { ++ PlayerEngineService.VolumeSchema.Set (Volume); ++ + if (emit_lock) { + return; + } + + ServiceManager.PlayerEngine.Volume = (ushort)Volume; +- PlayerEngineService.VolumeSchema.Set(Volume); + + base.OnVolumeChanged (); + } diff --git a/media-sound/banshee/files/banshee-1.5.5-volume-slider-fix.patch b/media-sound/banshee/files/banshee-1.5.5-volume-slider-fix.patch new file mode 100644 index 000000000000..ffc5dec4a8a1 --- /dev/null +++ b/media-sound/banshee/files/banshee-1.5.5-volume-slider-fix.patch @@ -0,0 +1,62 @@ +From 6c51f4e0adb8ca3a52f478553d10887c0eb256ec Mon Sep 17 00:00:00 2001 +From: Arun Raghavan <arun.raghavan@collabora.co.uk> +Date: Wed, 17 Mar 2010 17:41:34 +0000 +Subject: [PATCH] [libbanshee] Make the volume slider smooth with PulseAudio + +PulseAudio maps linear stream volumes to "actual" volumes as a cubic +function. This change reflects that in the volume slider, making it feel +more natural. This also makes the slider values correspond to other +apps, such as GNOME volume preferences. + +Ref: https://tango.0pointer.de/pipermail/pulseaudio-discuss/2009-May/003898.html +--- + libbanshee/banshee-player.c | 17 +++++++++++++++++ + 1 files changed, 17 insertions(+), 0 deletions(-) + +diff --git a/libbanshee/banshee-player.c b/libbanshee/banshee-player.c +index 28266aa..d304ce8 100644 +--- a/libbanshee/banshee-player.c ++++ b/libbanshee/banshee-player.c +@@ -31,6 +31,9 @@ + #include "banshee-player-cdda.h" + #include "banshee-player-missing-elements.h" + #include "banshee-player-replaygain.h" ++#if GST_CHECK_VERSION(0,10,25) ++#include <gst/interfaces/streamvolume.h> ++#endif + + // --------------------------------------------------------------------------- + // Private Functions +@@ -299,7 +302,14 @@ bp_set_volume (BansheePlayer *player, gdouble volume) + g_return_if_fail (IS_BANSHEE_PLAYER (player)); + g_return_if_fail (GST_IS_ELEMENT (player->playbin)); + ++#if GST_CHECK_VERSION(0,10,25) ++ if (gst_element_implements_interface (player->playbin, GST_TYPE_STREAM_VOLUME)) ++ gst_stream_volume_set_volume (GST_STREAM_VOLUME (player->playbin), GST_STREAM_VOLUME_FORMAT_CUBIC, volume); ++ else ++ g_object_set (player->playbin, "volume", CLAMP (volume, 0.0, 1.0), NULL); ++#else + g_object_set (player->playbin, "volume", CLAMP (volume, 0.0, 1.0), NULL); ++#endif + _bp_rgvolume_print_volume (player); + } + +@@ -309,7 +319,14 @@ bp_get_volume (BansheePlayer *player) + g_return_val_if_fail (IS_BANSHEE_PLAYER (player), 0.0); + g_return_val_if_fail (GST_IS_ELEMENT (player->playbin), 0.0); + gdouble volume; ++#if GST_CHECK_VERSION(0,10,25) ++ if (gst_element_implements_interface (player->playbin, GST_TYPE_STREAM_VOLUME)) ++ volume = gst_stream_volume_get_volume (GST_STREAM_VOLUME (player->playbin), GST_STREAM_VOLUME_FORMAT_CUBIC); ++ else ++ g_object_get (player->playbin, "volume", &volume, NULL); ++#else + g_object_get (player->playbin, "volume", &volume, NULL); ++#endif + return volume; + } + +-- +1.7.0.2 + diff --git a/media-sound/banshee/metadata.xml b/media-sound/banshee/metadata.xml index 048f56ab03a7..935f6348bc60 100644 --- a/media-sound/banshee/metadata.xml +++ b/media-sound/banshee/metadata.xml @@ -5,10 +5,12 @@ <herd>gstreamer</herd> <use> <flag name="boo">Use external Boo instead of the bundled one</flag> + <flag name="cdda">Build with audio CD support</flag> <flag name="daap">Build with Daap support</flag> <flag name="karma">Build with karma support</flag> <flag name="podcast">Build with podcasting support</flag> <flag name="wikipedia">Enable the Wikipedia context pane (requires <pkg>net-libs/webkit-gtk</pkg>)</flag> + <flag name="youtube">Enable the Youtube plugin</flag> </use> </pkgmetadata> |