Index: src/plugins/tracker/totem-tracker.c
===================================================================
--- src/plugins/tracker/totem-tracker.c	(revisión: 0)
+++ src/plugins/tracker/totem-tracker.c	(revisión: 0)
@@ -0,0 +1,116 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* 
+ * Copyright (C) 2007 Javier Goday <jgoday@gmail.com>
+ * Based on the sidebar-test totem plugin example 
+ * Copyright (C) 2007 Bastien Nocera <hadess@hadess.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Totem project hereby grant permission for non-gpl compatible GStreamer
+ * plugins to be used and distributed together with GStreamer and Totem. This
+ * permission are above and beyond the permissions granted by the GPL license
+ * Totem is covered by.
+ *
+ * See license_change file for details.
+ *
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gi18n-lib.h>
+#include <gmodule.h>
+#include <string.h>
+
+#include "totem-plugin.h"
+#include "totem.h"
+#include "totem-tracker-widget.h"
+
+#define TOTEM_TYPE_TRACKER_PLUGIN		(totem_tracker_plugin_get_type ())
+#define TOTEM_TRACKER_PLUGIN(o)			(G_TYPE_CHECK_INSTANCE_CAST ((o), TOTEM_TYPE_TRACKER_PLUGIN, TotemTrackerPlugin))
+#define TOTEM_TRACKER_PLUGIN_CLASS(k)		(G_TYPE_CHECK_CLASS_CAST((k), TOTEM_TYPE_TRACKER_PLUGIN, TotemTrackerPluginClass))
+#define TOTEM_IS_TRACKER_PLUGIN(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), TOTEM_TYPE_TRACKER_PLUGIN))
+#define TOTEM_IS_TRACKER_PLUGIN_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), TOTEM_TYPE_TRACKER_PLUGIN))
+#define TOTEM_TRACKER_PLUGIN_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), TOTEM_TYPE_TRACKER_PLUGIN, TotemTrackerPluginClass))
+
+typedef struct
+{
+	TotemPlugin   parent;
+} TotemTrackerPlugin;
+
+typedef struct
+{
+	TotemPluginClass parent_class;
+} TotemTrackerPluginClass;
+
+
+G_MODULE_EXPORT GType register_totem_plugin		(GTypeModule *module);
+GType	totem_tracker_plugin_get_type		(void) G_GNUC_CONST;
+
+static void totem_tracker_plugin_init			(TotemTrackerPlugin *plugin);
+static void totem_tracker_plugin_finalize		(GObject *object);
+static gboolean impl_activate				(TotemPlugin *plugin, TotemObject *totem, GError **error);
+static void impl_deactivate				(TotemPlugin *plugin, TotemObject *totem);
+
+TOTEM_PLUGIN_REGISTER(TotemTrackerPlugin, totem_tracker_plugin)
+
+static void
+totem_tracker_plugin_class_init (TotemTrackerPluginClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	TotemPluginClass *plugin_class = TOTEM_PLUGIN_CLASS (klass);
+
+	object_class->finalize = totem_tracker_plugin_finalize;
+
+	plugin_class->activate = impl_activate;
+	plugin_class->deactivate = impl_deactivate;
+}
+
+static void
+totem_tracker_plugin_init (TotemTrackerPlugin *plugin)
+{
+}
+
+static void
+totem_tracker_plugin_finalize (GObject *object)
+{
+	G_OBJECT_CLASS (totem_tracker_plugin_parent_class)->finalize (object);
+}
+
+static gboolean
+impl_activate (TotemPlugin *plugin,
+	       TotemObject *totem,
+	       GError **error)
+{
+	GtkWidget *widget;
+
+	widget = totem_tracker_widget_new (totem);
+	gtk_widget_show (widget);
+	totem_add_sidebar_page (totem,
+				"tracker",
+				"Tracker",
+				widget);
+
+	return TRUE;
+}
+
+static void
+impl_deactivate	(TotemPlugin *plugin,
+		 TotemObject *totem)
+{
+	totem_remove_sidebar_page (totem, "tracker");
+}
+
Index: src/plugins/tracker/tracker.totem-plugin.in
===================================================================
--- src/plugins/tracker/tracker.totem-plugin.in	(revisión: 0)
+++ src/plugins/tracker/tracker.totem-plugin.in	(revisión: 0)
@@ -0,0 +1,9 @@
+[Totem Plugin]
+Module=tracker
+IAge=1
+Builtin=false
+_Name=Tracker
+_Description=Search for videos with Tracker
+Authors=Javier Goday
+Copyright=Copyright © 2007 Javier Goday
+Website=http://www.gnome.org/projects/totem/
Index: src/plugins/tracker/totem-tracker-widget.c
===================================================================
--- src/plugins/tracker/totem-tracker-widget.c	(revisión: 0)
+++ src/plugins/tracker/totem-tracker-widget.c	(revisión: 0)
@@ -0,0 +1,308 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
+ *
+ * The _get_result_count method taken from the tracker-client.h file from libtracker
+ * Copyright (C) 2006, Mr Jamie McCracken (jamiemcc@gnome.org)
+ * Copyright (C) 2007 Javier Goday <jgoday@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301, USA.
+ *
+ * Author : Javier Goday <jgoday@gmail.com>
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <tracker.h>
+#include <tracker-client.h>
+#include <libgnomevfs/gnome-vfs.h>
+
+#include "totem-tracker-widget.h"
+
+#define TRACKER_SERVICE                 "org.freedesktop.Tracker"
+#define TRACKER_OBJECT			"/org/freedesktop/tracker"
+#define TRACKER_INTERFACE		"org.freedesktop.Tracker.Search"
+#define TOTEM_TRACKER_MAX_RESULTS_SIZE	20
+
+G_DEFINE_TYPE (TotemTrackerWidget, totem_tracker_widget, GTK_TYPE_EVENT_BOX)
+
+enum {
+   FILE_COLUMN,
+   NAME_COLUMN,
+   N_COLUMNS
+};
+
+static GObjectClass *parent_class = NULL;
+
+static void totem_tracker_widget_class_init	(TotemTrackerWidgetClass *klass);
+static void totem_tracker_widget_init		(TotemTrackerWidget	 *widget);
+
+static void totem_tracker_widget_class_init (TotemTrackerWidgetClass *klass)
+{
+	GObjectClass *gobject_class;
+	GtkWidgetClass *widget_class;
+
+	parent_class = g_type_class_peek_parent (klass);
+	widget_class = GTK_WIDGET_CLASS (klass);
+
+	gobject_class = G_OBJECT_CLASS (klass);
+}
+
+static void _populate_result (TotemTrackerWidget *widget, gchar *result)
+{
+	GtkTreeIter iter;
+	GnomeVFSFileInfo *info;
+	GnomeVFSResult vfs_result;
+
+	info = gnome_vfs_file_info_new ();
+	vfs_result = gnome_vfs_get_file_info (result, info, GNOME_VFS_FILE_INFO_NAME_ONLY);
+
+	if (vfs_result == GNOME_VFS_OK) {
+		gtk_list_store_append (GTK_LIST_STORE(widget->result_store), &iter);  /* Acquire an iterator */
+	
+		gtk_list_store_set (GTK_LIST_STORE(widget->result_store), &iter,
+				FILE_COLUMN, result,
+				NAME_COLUMN, info->name,
+				-1);
+	}
+	else {
+		// Display an error
+	}
+
+	g_free (info);
+}
+
+static void _on_row_activated (GtkTreeView *tree, GtkTreePath *path, GtkTreeViewColumn *column, TotemTrackerWidget *widget)
+{
+	GtkTreeIter iter;
+	GValue value = {0,};
+
+	gtk_tree_model_get_iter (GTK_TREE_MODEL (widget->result_store), &iter, path);
+	gtk_tree_model_get_value (GTK_TREE_MODEL (widget->result_store), &iter, FILE_COLUMN, &value);
+
+	totem_action_set_mrl_and_play (widget->totem, g_value_get_string (&value));
+	g_value_unset (&value);
+}
+
+static gint _get_search_count (TrackerClient *client, gchar *search)
+{
+	GError *error = NULL;
+	gint count = 0;
+
+	dbus_g_proxy_call (client->proxy_search, "GetHitCount", &error, G_TYPE_STRING, "Videos", G_TYPE_STRING, search,  
+			G_TYPE_INVALID, G_TYPE_INT, &count, G_TYPE_INVALID);
+
+	if (error) {
+		g_warning (error->message);
+		g_error_free (error);
+		return -1;
+	}
+
+	return count;
+}
+
+static gboolean _do_search (GtkWidget *button, TotemTrackerWidget *widget)
+{
+	GError *error = NULL;
+	gchar **result = NULL;
+	gchar *search_text = NULL;
+	gint result_count;
+	gint i;
+	TrackerClient *client;
+
+	// clear the list store
+	gtk_list_store_clear (GTK_LIST_STORE(widget->result_store));
+
+	gtk_widget_set_sensitive (GTK_WIDGET(widget->previous_button), FALSE);
+	gtk_widget_set_sensitive (GTK_WIDGET(widget->next_button), FALSE);
+
+
+    	// get the tracker client
+	client = tracker_connect(TRUE);
+	if (!client) {
+        	g_warning("Error trying to get the tracker client");    
+		return FALSE;
+    	}
+	else {
+		// searched text
+		search_text = gtk_entry_get_text (GTK_ENTRY(widget->search_entry));
+
+		widget->total_result_count = _get_search_count (client, search_text);
+	
+		result = tracker_search_text (client, -1, SERVICE_VIDEOS, search_text, 
+								widget->current_result_page * TOTEM_TRACKER_MAX_RESULTS_SIZE, 
+								TOTEM_TRACKER_MAX_RESULTS_SIZE, 
+								&error);
+
+		if (!error && result) {
+			for (i = 0; result [i] != NULL; i++) {
+				_populate_result (widget, result [i]);
+			}
+		}
+		else {
+			g_warning (error->message);
+		}
+		
+		gtk_label_set_text (GTK_LABEL(widget->status_label), 
+			g_strdup_printf ("View %i-%i of %i results", widget->current_result_page * TOTEM_TRACKER_MAX_RESULTS_SIZE, 
+					(widget->current_result_page + 1) * TOTEM_TRACKER_MAX_RESULTS_SIZE > widget->total_result_count ? 
+									widget->total_result_count : 
+									(widget->current_result_page + 1) * TOTEM_TRACKER_MAX_RESULTS_SIZE,
+								widget->total_result_count));
+
+		g_free (result);
+		g_clear_error (&error);
+		tracker_disconnect(client);
+
+		// enable or disable the pager buttons
+		if (widget->current_result_page < widget->total_result_count / TOTEM_TRACKER_MAX_RESULTS_SIZE) {
+			gtk_widget_set_sensitive (GTK_WIDGET(widget->next_button), TRUE);	
+		}
+
+		if (widget->current_result_page > 0) {
+			gtk_widget_set_sensitive (GTK_WIDGET(widget->previous_button), TRUE);	
+		}
+
+		return TRUE;
+	}
+}
+
+static void _go_next (GtkWidget *button, TotemTrackerWidget *widget)
+{
+	if (widget->current_result_page < widget->total_result_count / TOTEM_TRACKER_MAX_RESULTS_SIZE) {
+		widget->current_result_page ++;
+	}
+
+	_do_search (button, widget);
+}
+
+static void _go_previous (GtkWidget *button, TotemTrackerWidget *widget)
+{
+	if (widget->current_result_page > 0) {
+		widget->current_result_page --;
+	}
+
+	_do_search (button, widget);
+}
+
+static void _init_result_list (TotemTrackerWidget *widget)
+{
+	GtkCellRenderer *renderer;
+	GtkTreeViewColumn *column;
+
+	// initialize the store result list
+	widget->result_store = gtk_list_store_new (2, 
+						   G_TYPE_STRING, // file
+						   G_TYPE_STRING); // name of the file
+
+	// create the gtktreewidget to show the results
+	widget->result_list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (widget->result_store));
+
+	// intialize the columns of the result list
+	renderer = gtk_cell_renderer_text_new ();
+	column = gtk_tree_view_column_new_with_attributes ("Name",
+                                                   renderer,
+                                                   "text", NAME_COLUMN,
+                                                   NULL);
+	gtk_tree_view_append_column (GTK_TREE_VIEW (widget->result_list), column);
+}
+
+static void totem_tracker_widget_init (TotemTrackerWidget *widget)
+{
+	// the main vertical box of the widget
+	GtkWidget *v_box;
+	GtkWidget *pager_box; // box that holds the next andd previous buttons
+	GtkWidget *search_box; // the search box contains the search entry and the search button
+	GtkScrolledWindow *scroll; // make the result list scrollable 
+
+	_init_result_list (widget);
+
+	// initialize the main vertical box
+	v_box = gtk_vbox_new (FALSE, 2);
+		
+	// create the label
+	widget->label = gtk_label_new ("Tracker search: ");
+	gtk_label_set_justify (GTK_LABEL(widget->label), GTK_JUSTIFY_LEFT);
+	gtk_box_pack_start (GTK_BOX(v_box), widget->label, FALSE, FALSE, 2);
+	
+	// create the search entry
+	widget->search_entry = gtk_entry_new ();
+
+	// create the search button
+	widget->search_button = gtk_button_new_from_stock (GTK_STOCK_FIND);
+
+	// add the search entry and button to the search box,
+	// and add the search box to the main vertical box
+	search_box = gtk_hbox_new (FALSE, 2);	
+	gtk_container_add (GTK_CONTAINER(search_box), widget->search_entry);
+	gtk_container_add (GTK_CONTAINER(search_box), widget->search_button);	
+	gtk_box_pack_start (GTK_BOX(v_box), search_box, FALSE, FALSE, 2);
+	
+	// insert the result list and initialize the viewport
+	scroll = gtk_scrolled_window_new (NULL, NULL);
+	gtk_container_add (GTK_CONTAINER(scroll), widget->result_list);
+	gtk_container_add (GTK_CONTAINER(v_box), scroll);
+
+
+	// initilize the pager box
+	pager_box = gtk_hbox_new (FALSE, 2);
+	widget->next_button = gtk_button_new_from_stock (GTK_STOCK_GO_FORWARD);
+	widget->previous_button = gtk_button_new_from_stock (GTK_STOCK_GO_BACK);
+	gtk_box_pack_start (GTK_BOX(pager_box), gtk_label_new (""), TRUE, TRUE, 2);
+	gtk_box_pack_start (GTK_BOX(pager_box), widget->previous_button, FALSE, FALSE, 2);
+	gtk_box_pack_start (GTK_BOX(pager_box), widget->next_button, FALSE, FALSE, 2);
+	gtk_box_pack_start (GTK_BOX(v_box), pager_box, FALSE, FALSE, 2);
+
+	gtk_widget_set_sensitive (GTK_WIDGET(widget->previous_button), FALSE);
+	gtk_widget_set_sensitive (GTK_WIDGET(widget->next_button), FALSE);
+
+	// create the status label
+	widget->status_label = gtk_label_new ("");
+	gtk_box_pack_start (GTK_BOX(v_box), widget->status_label, FALSE, FALSE, 2);
+
+	// add the main container to the widget
+	gtk_container_add (GTK_CONTAINER(widget), v_box);
+
+	gtk_widget_show_all (GTK_WIDGET(widget));
+
+	// connect the search button clicked signal
+	g_signal_connect (G_OBJECT(widget->search_button), "clicked",
+				G_CALLBACK(_do_search), (gpointer) widget);
+	// connect the result list row-activated signal
+	g_signal_connect (G_OBJECT(widget->result_list), "row-activated",
+				G_CALLBACK(_on_row_activated), (gpointer) widget);
+	// connect the pager buttons
+	g_signal_connect (G_OBJECT(widget->next_button), "clicked",
+				G_CALLBACK(_go_next), (gpointer) widget);
+	g_signal_connect (G_OBJECT(widget->previous_button), "clicked",
+				G_CALLBACK(_go_previous), (gpointer) widget);	
+
+}
+
+GtkWidget *totem_tracker_widget_new (TotemObject *totem)
+{
+	GtkWidget *widget;
+	
+	widget = g_object_new (TOTEM_TYPE_TRACKER_WIDGET, NULL);
+
+	TOTEM_TRACKER_WIDGET(widget)->totem = totem;
+	// reset the info about the search
+	TOTEM_TRACKER_WIDGET(widget)->total_result_count = 0;
+	TOTEM_TRACKER_WIDGET(widget)->current_result_page = 0;
+
+
+	return widget;
+}
+
Index: src/plugins/tracker/totem-tracker-widget.h
===================================================================
--- src/plugins/tracker/totem-tracker-widget.h	(revisión: 0)
+++ src/plugins/tracker/totem-tracker-widget.h	(revisión: 0)
@@ -0,0 +1,68 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
+ *
+ * Copyright (C) 2007 Javier Goday <jgoday@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301, USA.
+ *
+ * Author : Javier Goday <jgoday@gmail.com>
+ */
+#ifndef __TOTEM_TRACKER_WIDGET_H__
+#define __TOTEM_TRACKER_WIDGET_H__
+
+#include "totem.h"
+
+#include <gtk/gtk.h>
+#include <tracker.h>
+
+
+#define TOTEM_TYPE_TRACKER_WIDGET               (totem_tracker_widget_get_type ())
+#define TOTEM_TRACKER_WIDGET(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), TOTEM_TYPE_TRACKER_WIDGET, TotemTrackerWidget))
+#define TOTEM_TRACKER_WIDGET_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), TOTEM_TYPE_TRACKER_WIDGET, TotemTrackerWidgetClass))
+#define TOTEM_IS_TRACKER_WIDGET(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TOTEM_TYPE_TRACKER_WIDGET))
+#define TOTEM_IS_TRACKER_WIDGET_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), TOTEM_TYPE_TRACKER_WIDGET))
+#define TOTEM_TRACKER_WIDGET_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), TOTEM_TYPE_TRACKER_WIDGET, TotemTrackerWidgetClass))
+
+typedef struct TotemTrackerWidget {
+    GtkEventBox parent;
+
+    TotemObject *totem;
+
+    GtkWidget *label; // the title label
+    GtkWidget *search_entry; // the entry for the search
+    GtkWidget *search_button;
+    GtkWidget *status_label;
+
+    GtkWidget *next_button;
+    GtkWidget *previous_button;
+
+    gint total_result_count;
+    gint current_result_page;
+
+    GtkListStore *result_store; // model for the search results
+    GtkWidget *result_list; // the view of the results
+
+} TotemTrackerWidget;
+
+typedef struct {
+    GtkEventBoxClass parent_class;
+} TotemTrackerWidgetClass;
+
+
+
+GType       totem_tracker_widget_get_type   (void);
+GtkWidget*  totem_tracker_widget_new        (TotemObject *totem); 
+
+#endif /* __TOTEM_TRACKER_WIDGET_H__ */
Index: src/plugins/tracker/Makefile.am
===================================================================
--- src/plugins/tracker/Makefile.am	(revisión: 0)
+++ src/plugins/tracker/Makefile.am	(revisión: 0)
@@ -0,0 +1,42 @@
+modules_flags = -export_dynamic -avoid-version -module
+
+plugindir = $(PLUGINDIR)/tracker
+plugin_LTLIBRARIES = libtracker.la
+# override to _not_ install the test plugins
+install-pluginLTLIBRARIES:
+
+plugin_in_files = tracker.totem-plugin.in
+
+%.totem-plugin: %.totem-plugin.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+noinst_DATA = $(plugin_in_files:.totem-plugin.in=.totem-plugin)
+
+common_defines = \
+	-D_REENTRANT					\
+	-DDBUS_API_SUBJECT_TO_CHANGE			\
+	-DGNOMELOCALEDIR=\""$(datadir)/locale"\"	\
+	-DGCONF_PREFIX=\""/apps/totem"\"		\
+	-DDATADIR=\""$(datadir)"\"			\
+	-DLIBEXECDIR=\""$(libexecdir)"\"		\
+	-DBINDIR=\""$(bindir)"\"			\
+	-DTOTEM_PLUGIN_DIR=\""$(libdir)/totem/plugins"\"\
+	$(DISABLE_DEPRECATED)
+
+libtracker_la_SOURCES = totem-tracker.c totem-tracker-widget.c
+libtracker_la_LDFLAGS = $(modules_flags)
+libtracker_la_LIBADD = -ltrackerclient
+libtracker_la_CPPFLAGS = $(common_defines)
+
+libtracker_la_CFLAGS = \
+	$(EXTRA_GNOME_CFLAGS)	\
+	$(WARN_CFLAGS)		\
+	$(DBUS_CFLAGS)		\
+	$(AM_CFLAGS)		\
+	-I$(top_srcdir)/src	\
+	-I$(top_srcdir)/src/plugins
+
+EXTRA_DIST = $(plugin_in_files)
+
+CLEANFILES = $(noinst_DATA) $(BUILT_SOURCES)
+DISTCLEANFILES = $(plugin_DATA)
+
Index: src/plugins/tracker/tracker.totem-plugin
===================================================================
--- src/plugins/tracker/tracker.totem-plugin	(revisión: 0)
+++ src/plugins/tracker/tracker.totem-plugin	(revisión: 0)
@@ -0,0 +1,9 @@
+[Totem Plugin]
+Module=tracker
+IAge=1
+Builtin=false
+Name=Tracker
+Description=Search for videos with Tracker
+Authors=Javier Goday
+Copyright=Copyright © 2007 Javier Goday
+Website=http://www.gnome.org/projects/totem/
