Various event fixes
[timedsilencer] / alarmd_backend.h
index 8d8746b..4060bcd 100644 (file)
@@ -155,6 +155,7 @@ public:
 protected:
   static long newProfileEvent(Profile p, const QTime &event_time, QList<int> days) {
     Q_ASSERT(!days.empty());
+    qDebug("Registering an event");
     if(days.empty()) days << NEVER;
     // Create the default alarm struct.
     alarm_event_t *newEvent = alarm_event_create();
@@ -174,12 +175,18 @@ protected:
       if(days.first() == NEVER) {
         newEvent->alarm_time = toTime_t(event_time); // Set event time
       } else {
+        qDebug("Using the new recurrence API");
+        newEvent->recur_count = -1;
         newEvent->recur_secs = 0; // We re not using this way for recurrence
         alarm_recur_t* recur = alarm_event_add_recurrences(newEvent, 1);
         // Set event time
-        recur->mask_hour |= (1ul << event_time.hour());
-        recur->mask_min |= (1ull << event_time.minute());
-        recur->mask_wday |= daysToMask(days);
+        recur->special = ALARM_RECUR_SPECIAL_NONE;
+        recur->mask_mon = ALARM_RECUR_MON_ALL;
+        recur->mask_mday = ALARM_RECUR_MDAY_ALL;
+        recur->mask_hour = (1ul << event_time.hour());
+        recur->mask_min = (1ull << event_time.minute());
+        recur->mask_wday = daysToMask(days);
+        Q_ASSERT(newEvent->recurrence_cnt == 1);
       }
     }
     //Add 1 action to our alarm event, and assign it to the "act" variable