| 13 | } |
| 14 | |
| 15 | void DurationModifier::Load(obs_data_t *obj, const char *name, |
| 16 | const char *duration) |
| 17 | { |
| 18 | obs_data_t *data = nullptr; |
| 19 | if (obs_data_has_user_value(obj, "durationModifier")) { |
| 20 | data = obs_data_get_obj(obj, "durationModifier"); |
| 21 | } else { |
| 22 | // For backwards compatibility |
| 23 | obs_data_addref(obj); |
| 24 | data = obj; |
| 25 | } |
| 26 | |
| 27 | // For backwards compatibility check if duration value exist without |
| 28 | // time constraint condition - if so assume DurationCondition::MORE |
| 29 | if (!obs_data_has_user_value(data, name) && |
| 30 | obs_data_has_user_value(data, duration)) { |
| 31 | obs_data_set_int(data, name, static_cast<int>(Type::MORE)); |
| 32 | } |
| 33 | |
| 34 | _type = static_cast<Type>(obs_data_get_int(data, name)); |
| 35 | _duration.Load(data, duration); |
| 36 | |
| 37 | // TODO: remove this fallback |
| 38 | if (obs_data_has_user_value(data, "displayUnit")) { |
| 39 | _duration.SetUnit(static_cast<Duration::Unit>( |
| 40 | obs_data_get_int(data, "displayUnit"))); |
| 41 | } |
| 42 | |
| 43 | obs_data_release(data); |
| 44 | } |
| 45 | |
| 46 | void DurationModifier::SetTimeRemaining(double seconds) |
| 47 | { |