]> ToastFreeware Gitweb - gregoa/zavai.git/blobdiff - src/clock.vala
Merge branch 'master' into gregoa
[gregoa/zavai.git] / src / clock.vala
index e7f787daf1221ccdb01aaf625dc3adef334218ef..b55d3b250c36589a60839ac5bd619d2124f21172 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * clock - clock resource for zavai
  *
- * Copyright (C) 2009  Enrico Zini <enrico@enricozini.org>
+ * Copyright (C) 2009--2010  Enrico Zini <enrico@enricozini.org>
  *
  * 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
@@ -138,14 +138,13 @@ public class ZavaiClock : Object {
 
 public class AlarmTriggerInfo
 {
-    public uint id;
+    public zavai.log.Log log;
     public string label;
     public bool acked;
     public bool canceled;
 
     public AlarmTriggerInfo(string label)
     {
-        id = 0;
         this.label = label;
         acked = false;
         canceled = false;
@@ -165,14 +164,13 @@ public class AlarmTriggerQueue : zavai.Service
         queue = new List<AlarmTriggerInfo>();
     }
 
-    public uint enqueue_trigger(AlarmTriggerInfo info)
+    public void enqueue_trigger(AlarmTriggerInfo info)
     {
         // Reuse IDs from the associated logger object
-        info.id = zavai.log.log.start("alarm");
+        info.log = zavai.log.log.start("alarm", "Alarm " + info.label);
         queue.append(info);
-        if (queue.data.id == info.id)
+        if (queue.data == info)
             triggered(queue.data);
-        return info.id;
     }
 
     protected void done_with_first()
@@ -185,26 +183,27 @@ public class AlarmTriggerQueue : zavai.Service
 
     public void ack(AlarmTriggerInfo info)
     {
-        if (queue == null || info.id != queue.data.id) return;
+        if (queue == null || info != queue.data) return;
         if (!info.acked && !info.canceled)
         {
             info.acked = true;
             acked(info);
-            zavai.log.log.add(info.id, "alarm acknowledged");
-            zavai.log.log.end(info.id);
+            info.log.add("alarm acknowledged");
+            info.log.acked = true;
+            zavai.log.log.end(info.log);
         }
         done_with_first();
     }
 
     public void cancel(AlarmTriggerInfo info)
     {
-        if (queue == null || info.id != queue.data.id) return;
+        if (queue == null || info != queue.data) return;
         if (!info.acked && !info.canceled)
         {
             info.canceled = true;
             canceled(info);
-            zavai.log.log.add(info.id, "alarm canceled");
-            zavai.log.log.end(info.id);
+            info.log.add("alarm canceled");
+            zavai.log.log.end(info.log);
         }
         done_with_first();
     }