Run without Gee
authorEnrico Zini <enrico@enricozini.org>
Wed, 16 Dec 2009 19:06:12 +0000 (19:06 +0000)
committerEnrico Zini <enrico@enricozini.org>
Wed, 16 Dec 2009 19:06:12 +0000 (19:06 +0000)
debian/control
src/CMakeLists.txt
src/core.vala
src/zavai.vala

index 39071995747f93b1dfa530f3cebc36001ff15d5f..88bc94050c4180516fdda2a1b7f7161cc8bc88e1 100644 (file)
@@ -2,7 +2,7 @@ Source: zavai
 Section: unknown
 Priority: extra
 Maintainer: Enrico Zini <enrico@enricozini.org>
-Build-Depends: debhelper (>= 7), autotools-dev, valac, libglib2.0-dev, libdbus-glib-1-dev, libgee-dev, libgtk2.0-dev, libwnck-dev, libdevkit-power-gobject-dev
+Build-Depends: debhelper (>= 7), autotools-dev, valac, libglib2.0-dev, libdbus-glib-1-dev, libgtk2.0-dev, libwnck-dev, libdevkit-power-gobject-dev
 Standards-Version: 3.8.3
 Homepage: http://git.debian.org/?p=users/enrico/zavai.git
 
index da59729b291c94940e502fb0df50f9076ed339f1..97341c409777d440e46e4a773ac94bb59759bbca 100644 (file)
@@ -3,7 +3,7 @@ include(../vala.cmake)
 
 set(zavai_version 0.1)
 
-set(packages gtk+-2.0 gee-1.0 dbus-glib-1>=0.80 libwnck-1.0>=2.26.0 devkit-power-gobject>=010 libomhacks)
+set(packages gtk+-2.0 dbus-glib-1>=0.80 libwnck-1.0>=2.26.0 devkit-power-gobject>=010 libomhacks)
 add_packages(ZAVAI ${packages})
 
 set(VALA_PACKAGES ${packages} posix linux-input dbus-extra gtkfisheyelist)
index 5da1a4f25eacaf9866dd405fb6d5c151f854c495..11a8804342be91efb3e989d0a44cdddc166b88ab 100644 (file)
@@ -47,11 +47,22 @@ public abstract class Service : Object, Resource {
 
     public signal void toggled(bool new_state);
 
-    protected Gee.HashMap<string, int> requests;
+    protected class Request
+    {
+        public string requestor;
+        public int count;
+        public Request(string requestor)
+        {
+            this.requestor = requestor;
+            count = 1;
+        }
+    }
+
+    protected List<Request> requests;
 
     construct
     {
-        requests = new Gee.HashMap<string, int>(str_hash, str_equal);
+        requests = null;
         zavai.registry.register(this);
     }
 
@@ -93,11 +104,17 @@ public abstract class Service : Object, Resource {
      */
     public bool request(string id)
     {
-        bool res = (requests.size == 0);
-        if (id in requests)
-            requests[id] = requests[id] + 1;
-        else
-            requests.set(id, 1);
+        bool res = (requests == null);
+        bool got = false;
+        for (weak List<Request> i = requests; i != null; i = i.next)
+            if (i.data.requestor == id)
+            {
+                ++i.data.count;
+                got = true;
+                break;
+            }
+        if (!got)
+            requests.prepend(new Request(id));
         if (res) start();
         return res;
     }
@@ -113,17 +130,22 @@ public abstract class Service : Object, Resource {
      */
     public bool release(string id)
     {
-        if (id in requests)
-        {
-            if (requests[id] > 1)
-                requests[id] = requests[id] - 1;
-            else
-                requests.remove(id);
-        } else {
+        weak List<Request> el = null;
+        for (weak List<Request> i = requests; i != null; i = i.next)
+            if (i.data.requestor == id)
+            {
+                el = i;
+                break;
+            }
+
+        if (el == null)
             return false;
-        }
-        if (requests.size > 0)
+
+        requests.delete_link(el);
+
+        if (requests != null)
             return false;
+
         stop();
         return true;
     }
index 1ff6443ae0c0ef8127756bd44e670e82f114b56f..d506a33026510c433facc564b8b388d32b14fe2d 100644 (file)
@@ -90,19 +90,13 @@ static int main (string[] args) {
        zavai.config.argv0 = args[0];
        zavai.registry = new zavai.Registry();
 
-stderr.printf("MI 1\n");
     zavai.main.init();
 
     // Additional infrastructure
-stderr.printf("MI 2\n");
        zavai.input.init();
-stderr.printf("MI 3\n");
        zavai.gps.init();
-stderr.printf("MI 4\n");
        zavai.gsm.init();
-stderr.printf("MI 5\n");
        zavai.audio.init();
-stderr.printf("MI 6\n");
        zavai.clock.init();
 
        /*
@@ -113,23 +107,14 @@ stderr.printf("MI 6\n");
        */
 
        // User interface
-stderr.printf("MI 7\n");
        zavai.ui.main.init();
-stderr.printf("MI 8\n");
        zavai.ui.gps.init();
-stderr.printf("MI 9\n");
        zavai.ui.gsm.init();
-stderr.printf("MI 10\n");
        zavai.app.run_script(zavai.config.homedir + "/display init");
-stderr.printf("MI 11\n");
        zavai.ui.power.init();
-stderr.printf("MI 12\n");
        zavai.ui.kbd.init();
-stderr.printf("MI 13\n");
        zavai.ui.wm.init();
-stderr.printf("MI 14\n");
        zavai.ui.calendar.init();
-stderr.printf("MI 15\n");
        zavai.ui.debug.init();
 
        //zavai.app.show_applet("menu.main");