static void impl_activate (PeasActivatable *plugin) { RBGenericPlayerPlugin *pi = RB_GENERIC_PLAYER_PLUGIN (plugin); RBRemovableMediaManager *rmm; RBShell *shell; gboolean scanned; g_object_get (plugin, "object", &shell, NULL); g_object_get (shell, "removable-media-manager", &rmm, NULL); /* watch for new removable media. use connect_after so * plugins for more specific device types can get in first. */ g_signal_connect_after (G_OBJECT (rmm), "create-source-mount", G_CALLBACK (create_source_cb), pi); /* only scan if we're being loaded after the initial scan has been done */ g_object_get (rmm, "scanned", &scanned, NULL); if (scanned) rb_removable_media_manager_scan (rmm); g_object_unref (rmm); g_object_unref (shell); }
static void impl_deactivate (RBPlugin *bplugin, RBShell *shell) { RBGenericPlayerPlugin *plugin = RB_GENERIC_PLAYER_PLUGIN (bplugin); RBRemovableMediaManager *rmm = NULL; GtkUIManager *uimanager = NULL; g_object_get (G_OBJECT (shell), "removable-media-manager", &rmm, "ui-manager", &uimanager, NULL); g_signal_handlers_disconnect_by_func (G_OBJECT (rmm), create_source_cb, plugin); g_list_foreach (plugin->player_sources, (GFunc)rb_source_delete_thyself, NULL); g_list_free (plugin->player_sources); plugin->player_sources = NULL; if (plugin->ui_merge_id) { gtk_ui_manager_remove_ui (uimanager, plugin->ui_merge_id); plugin->ui_merge_id = 0; } g_object_unref (G_OBJECT (uimanager)); g_object_unref (G_OBJECT (rmm)); }
static void impl_deactivate (PeasActivatable *bplugin) { RBGenericPlayerPlugin *plugin = RB_GENERIC_PLAYER_PLUGIN (bplugin); RBRemovableMediaManager *rmm; RBShell *shell; g_object_get (plugin, "object", &shell, NULL); g_object_get (shell, "removable-media-manager", &rmm, NULL); g_signal_handlers_disconnect_by_func (G_OBJECT (rmm), create_source_cb, plugin); g_list_foreach (plugin->player_sources, (GFunc)rb_display_page_delete_thyself, NULL); g_list_free (plugin->player_sources); plugin->player_sources = NULL; g_object_unref (rmm); g_object_unref (shell); }