[rygel] media-export: Disable in favor of Tracker plugin
- From: Zeeshan Ali Khattak <zeeshanak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] media-export: Disable in favor of Tracker plugin
- Date: Fri, 6 Aug 2010 15:34:58 +0000 (UTC)
commit 3034d9d5e5aebf0414b455c580c57dd04494ad7c
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date: Fri Aug 6 18:06:32 2010 +0300
media-export: Disable in favor of Tracker plugin
If user have Tracker installed, we really should make use of that. This
change only disables the plugin's exposure over UPnP. We really should
cancel all metadata harvesting if plugin is disabled and viceversa.
.../media-export/rygel-media-export-plugin.vala | 34 +++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
---
diff --git a/src/plugins/media-export/rygel-media-export-plugin.vala b/src/plugins/media-export/rygel-media-export-plugin.vala
index 148b364..efee996 100644
--- a/src/plugins/media-export/rygel-media-export-plugin.vala
+++ b/src/plugins/media-export/rygel-media-export-plugin.vala
@@ -21,6 +21,9 @@
using Rygel;
using GUPnP;
+private const string TRACKER_PLUGIN = "Tracker";
+private const string OUR_PLUGIN = "MediaExport";
+
/**
* Simple plugin which exposes the media contents of a directory via UPnP.
*
@@ -28,12 +31,41 @@ using GUPnP;
public void module_init (PluginLoader loader) {
var plugin = new MediaExport.Plugin ();
+ Idle.add (() => {
+ foreach (var loaded_plugin in loader.list_plugins ()) {
+ on_plugin_available (loaded_plugin, plugin);
+ }
+
+ loader.plugin_available.connect ((new_plugin) => {
+ on_plugin_available (new_plugin, plugin);
+ });
+
+ return false;
+ });
+
loader.add_plugin (plugin);
}
+public void on_plugin_available (Plugin plugin, Plugin our_plugin) {
+ if (plugin.name == TRACKER_PLUGIN &&
+ our_plugin.available == plugin.available) {
+ if (plugin.available) {
+ message ("Disabling plugin '%s' in favor of plugin '%s'",
+ OUR_PLUGIN,
+ TRACKER_PLUGIN);
+ } else {
+ message ("Plugin '%s' disabled, enabling '%s' plugin",
+ TRACKER_PLUGIN,
+ OUR_PLUGIN);
+ }
+
+ our_plugin.available = !plugin.available;
+ }
+}
+
public class Rygel.MediaExport.Plugin : Rygel.MediaServerPlugin {
public Plugin () {
- base ("MediaExport", _("@REALNAME@'s media"));
+ base (OUR_PLUGIN, _("@REALNAME@'s media"));
}
public override MediaContainer? get_root_container (GUPnP.Context context) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]