|
|
@ -1,8 +1,11 @@ |
|
|
|
#include <ical/Alarm.h>
|
|
|
|
#include <libical/icalproperty_cxx.h>
|
|
|
|
|
|
|
|
#include <db/db.h>
|
|
|
|
|
|
|
|
namespace ical { |
|
|
|
Alarm::Alarm(icalcomponent* alarm_component) { |
|
|
|
Alarm::Alarm(icalcomponent* alarm_component, const uint32_t& event_dtstart) : m_event_dtstart(event_dtstart) { |
|
|
|
DEBUG << "Parsing ALARM"; |
|
|
|
parse(alarm_component); |
|
|
|
} |
|
|
|
|
|
|
@ -20,7 +23,7 @@ namespace ical { |
|
|
|
void Alarm::parse_description(icalcomponent* alarm_component) { |
|
|
|
icalproperty* description_property = icalcomponent_get_first_property(alarm_component, ICAL_DESCRIPTION_PROPERTY); |
|
|
|
if(description_property != 0) { |
|
|
|
description = icalproperty_get_value_as_string(description_property); |
|
|
|
m_description = icalproperty_get_value_as_string(description_property); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -30,17 +33,46 @@ namespace ical { |
|
|
|
if(trigger_property != 0) { |
|
|
|
tr = icalproperty_get_trigger(trigger_property); |
|
|
|
if (!icaltime_is_null_time(tr.time)) { |
|
|
|
trigger = ical::trigger_type::ABSOLUTE; |
|
|
|
m_trigger = ical::trigger_type::ABSOLUTE; |
|
|
|
DEBUG << icaltime_as_ical_string(tr.time); |
|
|
|
} else { |
|
|
|
trigger = ical::trigger_type::RELATIVE; |
|
|
|
m_trigger = ical::trigger_type::RELATIVE; |
|
|
|
DEBUG << icaldurationtype_as_int(tr.duration); |
|
|
|
m_absolute_trigger = m_event_dtstart + icaldurationtype_as_int(tr.duration); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
std::string Alarm::get_action() const { |
|
|
|
//switch(m_action) {
|
|
|
|
// case ical::action::DISPLAY: return "display";
|
|
|
|
// case ical::action::AUDIO: return "audio";
|
|
|
|
// case ical::action::EMAIL: return "email";
|
|
|
|
// case ical::action::PROC: return "proc";
|
|
|
|
// default: return "";
|
|
|
|
//}
|
|
|
|
return ""; |
|
|
|
} |
|
|
|
|
|
|
|
std::string Alarm::get_trigger_type() const { |
|
|
|
switch(m_trigger) { |
|
|
|
case ical::trigger_type::ABSOLUTE: return "absolute"; |
|
|
|
case ical::trigger_type::RELATIVE: return "relative"; |
|
|
|
default: return ""; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
std::vector<std::string> Alarm::get_db_row() const { |
|
|
|
return {db_safe(get_action()), |
|
|
|
db_safe(m_description), |
|
|
|
db_safe(std::to_string(m_absolute_trigger))}; |
|
|
|
} |
|
|
|
|
|
|
|
std::string Alarm::print() const { |
|
|
|
std::string s = ""; |
|
|
|
s += "DESCRIPTION: " + description + "\n"; |
|
|
|
s += trigger == ical::trigger_type::ABSOLUTE ? "ABSOLUTE: " : "RELATIVE: "; |
|
|
|
//s += "DESCRIPTION: " + m_description + "\n";
|
|
|
|
////s += m_trigger == ical::trigger_type::ABSOLUTE ? "ABSOLUTE: " : "RELATIVE: ";
|
|
|
|
//s += "ABSOLUTE_TRIGGER: " + std::to_string(m_absolute_trigger) + "\n";
|
|
|
|
return s; |
|
|
|
} |
|
|
|
} |