protected time_t chosen_time;
protected SourceType chosen_type;
+ protected dynamic DBus.Object otimed_alarm;
+ protected dynamic DBus.Object notification;
protected SList<Alarm> alarms;
// Ticks once a minute
"org.freesmartphone.ogpsd",
"/org/freedesktop/Gypsy",
"org.freedesktop.Gypsy.Time");
+
+ // FSO alarm system
+ otimed_alarm = zavai.registry.sbus.get_object(
+ "org.freesmartphone.otimed",
+ "/org/freesmartphone/Time/Alarm",
+ "org.freesmartphone.Time.Alarm");
+ notification = zavai.registry.sbus.get_object(
+ "org.freesmartphone",
+ "org/freesmartphone/Notification",
+ "org.freesmartphone.Notification");
+ notification.Alarm += on_alarm;
}
public void schedule(Alarm a)
{
alarms.insert_sorted(a, alarm_compare);
zavai.log.info("Next alarm: " + alarms.data.label + " at " + Time.local(alarms.data.deadline).to_string());
+ otimed_reschedule();
+ }
+
+ private void otimed_reschedule()
+ {
+ if (alarms != null)
+ {
+ try {
+ otimed_alarm.ClearAlarm();
+ otimed_alarm.SetAlarm(alarms.data.deadline);
+ } catch (Error e) {
+ zavai.log.error("Cannot reschedule alarms: " + e.message);
+ }
+ }
+ }
+
+ private void on_alarm()
+ {
+ check_alarms();
}
public void check_alarms()
zavai.log.info("Triggering " + a.label);
a.trigger();
}
+
+ otimed_reschedule();
}
private void on_gps_time(dynamic DBus.Object pos, int t)
//string VERSION = "0.1";
-void on_alarm()
-{
- stderr.printf("RETURNED\n");
-}
-
static int main (string[] args) {
Gtk.init (ref args);
zavai.gps.init();
zavai.clock.init();
+ /*
zavai.clock.clock.schedule(new zavai.clock.Alarm(123456, "Second"));
zavai.clock.clock.schedule(new zavai.clock.Alarm(1234567, "Third"));
zavai.clock.clock.schedule(new zavai.clock.Alarm(12345, "First"));
zavai.clock.clock.check_alarms();
+ */
zavai.registry.register_menu("menu.main", new zavai.Menu("Main menu"));
//zavai.app.show_applet("menu.main");
zavai.app.show_applet("zavai.status");
+ zavai.clock.clock.schedule(new zavai.clock.Alarm(time_t() + 3, "Test second"));
+ zavai.clock.clock.schedule(new zavai.clock.Alarm(time_t() + 2, "Test first"));
+
//zavai.ui.power.power_menu.toggle();
// # Shutdown the main loop on SIGINT