2007-12-21 James Livingston <email address hidden>
* shell/rb-shell.c: (rb_shell_finalize): revert a change which was
causing nasty warnings when exiting.
* configure.ac: bump version to 0.11.4
* NEWS: update with 0.11.4
2007-12-18 Jonathan Matthew <email address hidden>
* backends/gstreamer/rb-player-gst-xfade.c:
(rb_player_gst_xfade_dispose), (start_sink), (stop_sink),
(rb_player_gst_xfade_close), (rb_player_gst_xfade_play):
Remove obsolete stuff relating to pausing the sink, which we never do
any more.
2007-12-16 Jonathan Matthew <email address hidden>
* shell/rb-shell-player.c: (rb_shell_player_get_playing_time),
(rb_shell_player_error_get_type):
* shell/rb-shell-player.h:
Make rb_shell_player_get_playing_time fail if the player can't figure
out the playback position.
* plugins/audioscrobbler/rb-audioscrobbler.c:
(maybe_add_current_song_to_queue),
(rb_audioscrobbler_song_changed_cb):
If we don't get a playback position, assume we're at the start of the
track. From #499745.
2007-12-16 Jonathan Matthew <email address hidden>
* HACKING: Now less heinously out of date. Fixes #482767.
2007-12-13 Jonathan Matthew <email address hidden>
* configure.ac:
* data/icons/hicolor/48x48/Makefile.am:
* data/icons/hicolor/48x48/apps/Makefile.am:
* data/icons/hicolor/Makefile.am:
Add 48x48 icon, so the icon isn't tiny when drag'n'dropping it to the
desktop. Icon via Andreas Nilsson. Fixes #502935.
2007-12-12 Jonathan Matthew <email address hidden>
* plugins/generic-player/rb-generic-player-playlist-source.c:
(playlist_format_extension), (handle_playlist_start_cb),
(handle_playlist_entry_cb), (load_playlist):
Remove playlist parser API backwards compatibility stuff, use current
signal names and parameters.
2007-12-11 Jonathan Matthew <email address hidden>
patch by: Irene Huang <email address hidden>
* plugins/audiocd/rb-audiocd-source.c: (rb_audiocd_scan_songs),
(rb_audiocd_load_songs): Take GDK lock when showing error dialogs
during audio CD reading. Fixes #502265.
2007-12-10 Bastien Nocera <email address hidden>
* plugins/coherence/upnp_coherence/__init__.py: Export the
user's ~/.face (as setup by about-me and gdmphotosetup)
as the server's icon, for display in clients that support
it (Closes: #487970)
2007-12-09 Jonathan Matthew <email address hidden>
* podcast/rb-podcast-manager.c:
(rb_podcast_manager_download_file_info_cb):
Use rb_uri_exists() to check if the podcast has already been
downloaded, as we've converted the local path into a URI here.
2007-12-09 Jonathan Matthew <email address hidden>
* plugins/audioscrobbler/rb-audioscrobbler.c:
(rb_audioscrobbler_dispose), (rb_audioscrobbler_is_queueable),
(rb_audioscrobbler_song_changed_cb):
Add some helpful debug output. From #499745.
2007-12-04 Jonathan Matthew <email address hidden>
* plugins/visualizer/rb-visualizer-plugin.c:
(free_vis_plugin_info), (rb_visualizer_plugin_finalize),
(get_vis_plugin_list): If we're going to free the GStreamer feature
list that we get the visualization plugin strings from, we'll need to
copy the strings..
2007-12-04 Jonathan Matthew <email address hidden>
* INSTALL.quick: make this somewhat less horribly out of date.
2007-12-04 Jonathan Matthew <email address hidden>
* shell/rb-shell-player.c: (rb_shell_player_open_location):
Don't try to g_object_ref a RhythmDBEntry; it's not a GObject.
2007-12-03 Bastien Nocera <email address hidden>
* plugins/generic-player/rb-generic-player-playlist-source.c:
(save_playlist), (handle_playlist_start_cb), (load_playlist),
(rb_generic_player_playlist_source_new),
(rb_generic_player_playlist_source_get_property),
(rb_generic_player_playlist_source_set_property),
(rb_generic_player_playlist_source_class_init):
* plugins/generic-player/rb-generic-player-playlist-source.h:
* plugins/generic-player/rb-generic-player-plugin.c:
(rb_generic_player_plugin_new_playlist):
* plugins/generic-player/rb-generic-player-source.c:
(load_playlist_file), (default_load_playlists): Pass the device_root
when parsing a playlist on a removable device, to allow drive letters
in playlists (Helps: #427975)
2007-12-03 Bastien Nocera <email address hidden>
* plugins/mmkeys/rb-mmkeys-plugin.c: (media_player_key_pressed),
(filter_mmkeys), (mmkeys_grab), (impl_activate): Handle the Stop
key from the control-center D-Bus interface as we used to handle
the XF86AudioStop key (Closes: #438135)
2007-12-03 Bastien Nocera <email address hidden>
* plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
(rb_psp_is_volume_player): Handle PSPs with firmware >= 2.80
(Closes: #369222)
2007-12-03 Bastien Nocera <email address hidden>
* configure.ac:
* podcast/Makefile.am:
* podcast/plugin.symbols:
* podcast/rhythmbox-itms-plugin.cpp: Add a Mozilla plugin
to allow the iTMS pages to detect that we can handle itms:// URIs
(Closes: #489874)
2007-12-03 Bastien Nocera <email address hidden>
* configure.ac: Require totem-pl-parser 2.21.4
* lib/rb-file-helpers.c: (rb_uri_could_be_podcast):
* lib/rb-file-helpers.h: Add helper function to detect
whether it could be a podcast from the URI passed
* data/rhythmbox.schemas: Handle feed://, itpc:// and itms:// URIs
* podcast/Makefile.am:
* podcast/rb-podcast-manager.c:
(rb_podcast_manager_subscribe_feed),
(rb_podcast_manager_parse_complete_cb),
(rb_podcast_manager_thread_parse_feed),
(rb_podcast_manager_save_metadata),
(rb_podcast_manager_insert_feed):
* podcast/rb-podcast-parse.c: (playlist_metadata_foreach),
(playlist_started), (playlist_ended), (entry_metadata_foreach),
(entry_parsed), (rb_podcast_parse_load_feed),
(rb_podcast_parse_channel_free):
* podcast/rb-podcast-parse.h: Use totem-pl-parser to parse Podcast
files (including Atom files) (Closes: #355984), as well as OPML files
* shell/rb-playlist-manager.c: (handle_playlist_entry_cb),
(playlist_load_started_cb), (playlist_load_ended_cb),
(rb_playlist_manager_parse_file), (_is_dirty_playlist),
(rb_playlist_manager_save_playlists):
* shell/rb-shell-player.c: (rb_shell_player_class_init),
(rb_shell_player_handle_eos_unlocked), (rb_shell_player_init),
(playlist_entry_cb), (open_location_thread),
(rb_shell_player_open_location), (rb_shell_player_sync_play_order),
(rb_shell_player_do_previous), (rb_shell_player_do_next_internal),
(rb_shell_player_entry_activated_cb):
* shell/rb-shell.c: (handle_playlist_entry_cb),
(rb_shell_load_uri): Update API to totem-pl-parser 2.21.4, detect
podcasts and OPML files (Closes: #489520) and add them to the
podcast source
* podcast/test-podcast-parse.c: (main): Call setlocale
so we print UTF-8 characters
(Closes: #484768)
2007-12-03 Jonathan Matthew <email address hidden>
* rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main):
When we've decided not to save the database, it would be a good idea
to actually not save the database. Fixes #501125.
2007-12-02 Jonathan Matthew <email address hidden>
* sources/rb-static-playlist-source.c:
(rb_static_playlist_source_move_entry):
Move entries in the base query model, not the displayed query model.
Otherwise, the order change is lost when saving the playlist.
2007-12-02 Jonathan Matthew <email address hidden>
* bindings/python/Makefile.am:
* bindings/python/rb.defs:
* bindings/python/rb.override:
Add python bindings for the streaming source class.
2007-12-02 Jonathan Matthew <email address hidden>
* shell/rb-playlist-manager.c: (save_playlist_cb),
(rb_playlist_manager_save_playlists), (list_playlists_cb),
(rb_playlist_manager_get_playlists),
(rb_playlist_manager_get_playlist_names),
(find_playlist_by_name_cb), (_get_playlist_by_name):
Fix various playlist manager methods that have been broken since
the introduction of source list groups.
2007-11-29 Jonathan Matthew <email address hidden>
* shell/rb-shell-player.c: (notify_playing_idle),
(rb_shell_player_open_playlist_url), (rb_shell_player_dispose):
Remove the notify-playing idle handler when disposing the player.
Fixes #463948.
2007-11-28 Jonathan Matthew <email address hidden>
* plugins/audioscrobbler/rb-lastfm-source.c:
(rb_lastfm_source_metadata_cb):
Don't crash if we get a blank line in the metadata response, as we
apparently do sometimes. Should fix #465271.
2007-11-28 Jonathan Matthew <email address hidden>
* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
(rb_podcast_source_load_finish_cb):
Use g_signal_connect_object instead of _after, and g_idle_add
instead of gtk_idle_add. Probably fixes #463950?
2007-11-27 Bastien Nocera <email address hidden>
* plugins/ipod/rb-ipod-source.c: (impl_move_to_trash),
(impl_build_dest_uri), (request_artwork): Don't put iPod tracks in
the wastebasket when deleting them, they lost their database entry
so they're unrecoverable (Closes: #346434)
2007-11-26 Jonathan Matthew <email address hidden>
* plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
Follow symlinks when looking for local cover art. Fixes #499132.
2007-11-26 Jonathan Matthew <email address hidden>
* shell/rb-tray-icon.c: (rb_tray_icon_init):
Revert change from previous commit as it causes gtk warnings on
startup.
2007-11-25 James Livingston <email address hidden>
* bindings/python/rb.defs:
* metadata/rb-metadata-dbus-service.c: (main):
* plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
(rb_plugins_engine_load_cb):
* plugins/sample-vala/rb-sample-vala-plugin.vala:
* plugins/visualizer/rb-visualizer-plugin.c: (get_vis_plugin_list):
* shell/rb-shell.c: (rb_shell_finalize), (construct_widgets):
* shell/rb-tray-icon.c: (rb_tray_icon_init):
* tools/massif.sh:
* widgets/rb-entry-view.c: (rb_entry_view_get_sorting_type):
* widgets/rb-entry-view.h: fix some memory leaks. patch partially by
John Daiker.
2007-11-25 Jonathan Matthew <email address hidden>
* backends/gstreamer/rb-player-gst-xfade.c: (dump_stream_list),
(volume_changed_cb), (start_stream_fade), (link_unblocked_cb),
(link_and_unblock_stream), (unlink_blocked_cb),
(unlink_and_dispose_stream), (rb_player_gst_xfade_bus_cb),
(actually_start_stream), (get_times_and_stream), (stop_sink),
(rb_player_gst_xfade_open), (stop_sink_later), (maybe_stop_sink),
(rb_player_gst_xfade_close), (rb_player_gst_xfade_play),
(rb_player_gst_xfade_pause), (rb_player_gst_xfade_set_replaygain),
(rb_player_gst_xfade_set_time):
Use a short (half second) fade when pausing and unpausing streams.
Don't pause the sink; instead, stop it when there are no playing
streams.
Fixes #434142, #465482, #484883, and parts of #427244 and #452226.
2007-11-21 Jonathan Matthew <email address hidden>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_emit_reorder),
(apply_updated_entry_sequence):
Use g_malloc/g_free instead of malloc/free.
2007-11-20 Jonathan Matthew <email address hidden>
* plugins/mtpdevice/rb-mtp-plugin.c: (impl_activate),
(rb_mtp_plugin_device_added): Rearrange the device scanning loops so
we only get the device/vendor IDs for each connected device (which
involves dbus requests) once, rather than once per device type libmtp
knows about. Makes the mtp plugin's device scan about 100 times
faster, fixing #498198.
2007-11-20 Jonathan Matthew <email address hidden>
* plugins/mtpdevice/mtp-ui.xml:
* plugins/mtpdevice/rb-mtp-plugin.c:
Don't use the same name for the MTP eject action as the generic one.
Fixes #472541.
2007-11-17 Bastien Nocera <email address hidden>
* plugins/daap/rb-daap-connection.c: (handle_song_listing),
(rb_daap_connection_state_done): Fix DAAP sharing in client mode
not playing anything (Closes: #497430)
2007-11-12 Jonathan Matthew <email address hidden>
* configure.ac:
* metadata/Makefile.am:
* metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
(rb_metadata_has_missing_plugins),
(rb_metadata_get_missing_plugins):
* metadata/rb-metadata-dbus-service.c: (_send_error),
(rb_metadata_dbus_load), (rb_metadata_dbus_can_save),
(rb_metadata_dbus_save), (test_load):
* metadata/rb-metadata-dbus.c: (rb_metadata_dbus_get_strv),
(rb_metadata_dbus_add_strv):
* metadata/rb-metadata-dbus.h:
* metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb),
(rb_metadata_gst_unknown_type_cb),
(rb_metadata_handle_missing_plugin_message),
(rb_metadata_bus_handler), (rb_metadata_load),
(rb_metadata_has_missing_plugins),
(rb_metadata_get_missing_plugins):
* metadata/rb-metadata.h:
* metadata/test-metadata.c: (load_metadata_cb):
Process GStreamer missing-plugin messages. This requires a slightly
newer version of GStreamer than we otherwise require, so it's
conditional. Missing plugin information is available to callers of
the RBMetadata interface.
* shell/Makefile.am:
* lib/rb-marshal.list:
* shell/rb-shell.c: (rb_shell_constructor):
* shell/rb-missing-plugins.c:
(rb_plugin_install_plugin_is_blacklisted),
(rb_plugin_install_blacklist_plugin),
(rb_plugin_install_context_free), (rb_plugin_install_done),
(on_plugin_installation_done), (missing_plugins_event),
(missing_plugins_cb), (rb_missing_plugins_init):
* shell/rb-missing-plugins.h:
Add some machinery for calling GStreamer plugin installation helpers
and then retrying the original operation.
* rhythmdb/rhythmdb-private.h:
* rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
(rhythmdb_shutdown), (rhythmdb_finalize), (rhythmdb_read_leave),
(rhythmdb_process_metadata_load_real),
(rhythmdb_missing_plugins_cb),
(rhythmdb_missing_plugin_event_cleanup),
(rhythmdb_process_metadata_load), (rhythmdb_process_one_event),
(rhythmdb_execute_load):
Add missing plugin handling for file importing. Requires some
interesting locking to block further import attempts while installing
plugins. We don't process missing plugins for files we're going to
ignore anyway.
Also, while the database is read-only, add write operations to a
separate queue rather than requeueing them endlessly until the
database is writeable again.
* podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
(rb_podcast_manager_download_file_info_cb),
(missing_plugins_retry_cb), (missing_plugins_retry_cleanup),
(rb_podcast_manager_save_metadata), (download_progress_cb):
Add missing plugin handling for podcast downloads. When installation
is complete, retry the metadata load operation.
* backends/gstreamer/Makefile.am:
* backends/gstreamer/rb-player-gst-xfade.c:
(rb_player_gst_xfade_class_init), (emit_missing_plugins),
(rb_player_gst_xfade_handle_missing_plugin_message),
(rb_player_gst_xfade_bus_cb):
* backends/gstreamer/rb-player-gst.c: (rb_player_gst_class_init),
(rb_player_gst_handle_missing_plugin_message),
(rb_player_gst_bus_cb), (rb_player_gst_sync_pipeline),
(end_gstreamer_operation):
* shell/rb-shell-player.c: (rb_shell_player_class_init),
(rb_shell_player_init), (missing_plugins_retry_cb),
(missing_plugins_retry_cleanup), (missing_plugins_cb):
Add missing plugin handling for playback. When GStreamer complains
about missing plugins, stop playback, request installation, then retry
playback when it's done.
Fixes #338308.
2007-11-11 Jonathan Matthew <email address hidden>
patch by: <email address hidden>
* widgets/rb-rating-helper.c: (rb_rating_render_stars):
Don't use the deprecated gdk_pixbuf_render_to_drawable,
use the equivalent gdk_draw_pixbuf call. Fixes #495779.
2007-11-10 Jonathan Matthew <email address hidden>
* backends/gstreamer/rb-player-gst-xfade.c:
(actually_start_stream):
When starting a new stream with crossfading enabled, remove all
existing streams except any we're going to fade out and any that are
already fading out. Otherwise, we can end up playing two tracks at
once. Fixes #480764.