Browse Source

added alarm action parsing

main
Stefan Pranger 2 years ago
parent
commit
986eb07abe
  1. 29
      ical/Alarm.cpp

29
ical/Alarm.cpp

@ -5,7 +5,6 @@
namespace ical {
Alarm::Alarm(icalcomponent* alarm_component, const uint32_t& event_dtstart) : m_event_dtstart(event_dtstart) {
DEBUG << "Parsing ALARM";
parse(alarm_component);
}
@ -16,8 +15,12 @@ namespace ical {
}
void Alarm::parse_action(icalcomponent* alarm_component) {
DEBUG << "TODO alarm action parsing" << std::endl;
//DEBUG << icalproperty_get_value_as_string(icalcomponent_get_first_property(alarm_component, ICAL_ACTION_PROPERTY)) << std::endl;
std::string action = icalproperty_get_value_as_string(icalcomponent_get_first_property(alarm_component, ICAL_ACTION_PROPERTY));
if(action == "DISPLAY") m_action = ical::action::DISPLAY;
else if(action == "AUDIO") m_action = ical::action::AUDIO;
else if(action == "EMAIL") m_action = ical::action::EMAIL;
else if(action == "PROC" ) m_action = ical::action::PROC;
else m_action = ical::action::DISPLAY;
}
void Alarm::parse_description(icalcomponent* alarm_component) {
@ -34,23 +37,21 @@ namespace ical {
tr = icalproperty_get_trigger(trigger_property);
if (!icaltime_is_null_time(tr.time)) {
m_trigger = ical::trigger_type::ABSOLUTE;
DEBUG << icaltime_as_ical_string(tr.time);
} else {
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 "";
//}
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 "";
}
@ -62,6 +63,10 @@ namespace ical {
}
}
//std::string Alarm::get_absolute_trigger() const {
// return m_absolute_trigger;
//}
std::vector<std::string> Alarm::get_db_row() const {
return {db_safe(get_action()),
db_safe(m_description),

Loading…
Cancel
Save