Provide plugins with Osso context
authorPhilipp Zabel <philipp.zabel@gmail.com>
Thu, 12 Nov 2009 14:04:37 +0000 (15:04 +0100)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Thu, 12 Nov 2009 18:23:25 +0000 (19:23 +0100)
Makefile.am
src/main.vala
src/plugin-interface.vala
src/plugins/google-plugin.vala
src/plugins/imdb-plugin.vala

index e79c281..b93d76e 100644 (file)
@@ -85,9 +85,9 @@ libgoogle_plugin_la_VALASOURCES = \
        src/plugins/google-parser.vala
 
 libgoogle_plugin_la_VALAFLAGS = --vapidir ./vapi --pkg config \
-       --pkg hildon-1
-libgoogle_plugin_la_CFLAGS = ${HILDON_CFLAGS}
-libgoogle_plugin_la_LIBADD = ${HILDON_LIBS}
+       --pkg hildon-1 --pkg libosso
+libgoogle_plugin_la_CFLAGS = ${HILDON_CFLAGS} ${OSSO_CFLAGS}
+libgoogle_plugin_la_LIBADD = ${HILDON_LIBS} ${OSSO_LIBS}
 libgoogle_plugin_la_LDFLAGS = -module
 
 ${libgoogle_plugin_la_SOURCES}: ${libgoogle_plugin_la_VALASOURCES}
@@ -112,9 +112,9 @@ libimdb_plugin_la_VALASOURCES = \
         src/plugins/imdb-download-dialog.vala
 
 libimdb_plugin_la_VALAFLAGS = --vapidir ./vapi --pkg config \
-       --pkg dbus-glib-1 --pkg hildon-1 --pkg sqlite3
-libimdb_plugin_la_CFLAGS = ${DBUS_CFLAGS} ${HILDON_CFLAGS} ${SQLITE3_CFLAGS}
-libimdb_plugin_la_LIBADD = ${DBUS_LIBS} ${HILDON_LIBS} ${SQLITE3_LIBS}
+       --pkg dbus-glib-1 --pkg hildon-1 --pkg libosso --pkg sqlite3
+libimdb_plugin_la_CFLAGS = ${DBUS_CFLAGS} ${HILDON_CFLAGS} ${OSSO_CFLAGS} ${SQLITE3_CFLAGS}
+libimdb_plugin_la_LIBADD = ${DBUS_LIBS} ${HILDON_LIBS} ${OSSO_LIBS} ${SQLITE3_LIBS}
 libimdb_plugin_la_LDFLAGS = -module
 
 ${libimdb_plugin_la_SOURCES}: ${libimdb_plugin_la_VALASOURCES}
index f580ccf..a833fc3 100644 (file)
@@ -31,7 +31,7 @@ public class CinaestProgram : Hildon.Program {
                add_window (window);
        }
 
-       public void register_plugins () {
+       public void register_plugins (Osso.Context context) {
                string plugin_path = Config.PKGLIBDIR;
                try {
                        var directory = File.new_for_path (plugin_path);
@@ -50,7 +50,7 @@ public class CinaestProgram : Hildon.Program {
 
                                        plugin = registrar.new_object ();
                                        plugins.append (plugin);
-                                       plugin.hello (window);
+                                       plugin.hello (window, context);
                                }
                        }
 
@@ -60,7 +60,6 @@ public class CinaestProgram : Hildon.Program {
        }
 
        public void run () {
-               register_plugins ();
                // FIXME - always start with the first plugin's first source for now
                if (plugins != null) {
                        var plugin = plugins.first ().data;
@@ -83,6 +82,7 @@ public class CinaestProgram : Hildon.Program {
                }
 
                CinaestProgram app = new CinaestProgram ();
+               app.register_plugins (osso_context);
                app.run ();
 
                return 0;
index d0ba953..70c73d5 100644 (file)
@@ -17,7 +17,7 @@
  */
 
 public abstract class Plugin : Object {
-       public abstract void hello (Gtk.Window window);
+       public abstract void hello (Gtk.Window window, Osso.Context context);
 
        public abstract unowned List<MovieSource> get_sources ();
 
index 534c139..3ef966c 100644 (file)
@@ -22,7 +22,7 @@ using Hildon;
 class GooglePlugin : Plugin {
        List<MovieSource> sources;
 
-       public override void hello (Gtk.Window window) {
+       public override void hello (Gtk.Window window, Osso.Context context) {
                stdout.printf ("Google Plugin Loaded.\n");
 
                var source = new GoogleSource ();
index 3382cb1..b2a5f05 100644 (file)
@@ -22,8 +22,9 @@ using Hildon;
 class IMDbPlugin : Plugin {
        private dynamic DBus.Object server;
        List<MovieSource> sources;
+       private weak Osso.Context osso_context;
 
-       public override void hello (Gtk.Window window) {
+       public override void hello (Gtk.Window window, Osso.Context context) {
                string filename = Path.build_filename (Environment.get_user_cache_dir(),
                                                       "cinaest", "imdb.db", null);
                stdout.printf ("IMDb Plugin Loaded. Cache Db: %s\n", filename);
@@ -44,6 +45,8 @@ class IMDbPlugin : Plugin {
                sources = new List<MovieSource> ();
                sources.append (source);
 
+               osso_context = context;
+
                // FIXME - this forces the inclusion of config.h
                (void) Config.GETTEXT_PACKAGE;
        }