| 23 | static int durationUnitToMultiplier(Duration::Unit u); |
| 24 | |
| 25 | void Duration::Load(obs_data_t *obj, const char *name) |
| 26 | { |
| 27 | auto data = obs_data_get_obj(obj, name); |
| 28 | |
| 29 | // TODO: remove this fallback |
| 30 | if (!data || !obs_data_has_user_value(data, "version") || |
| 31 | obs_data_get_int(data, "version") != 1) { |
| 32 | _value = 0.; |
| 33 | bool usingDefaultArgs = strcmp("duration", name) == 0; |
| 34 | if (usingDefaultArgs) { |
| 35 | _value = obs_data_get_double(obj, "seconds"); |
| 36 | } |
| 37 | if (_value.GetValue() == 0.0) { |
| 38 | _value = obs_data_get_double(obj, name); |
| 39 | } |
| 40 | |
| 41 | if (usingDefaultArgs) { |
| 42 | _unit = static_cast<Duration::Unit>( |
| 43 | obs_data_get_int(obj, "displayUnit")); |
| 44 | } else if (_value.GetValue() >= 86400) { |
| 45 | _unit = (_value.GetValue() / 60 >= 86400) |
| 46 | ? Duration::Unit::HOURS |
| 47 | : Duration::Unit::MINUTES; |
| 48 | } else { |
| 49 | _unit = Duration::Unit::SECONDS; |
| 50 | } |
| 51 | |
| 52 | _value = _value / durationUnitToMultiplier(_unit); |
| 53 | |
| 54 | obs_data_release(data); |
| 55 | return; |
| 56 | } |
| 57 | |
| 58 | _value.Load(data, "value"); |
| 59 | _unit = static_cast<Duration::Unit>(obs_data_get_int(data, "unit")); |
| 60 | obs_data_release(data); |
| 61 | } |
| 62 | |
| 63 | bool Duration::DurationReached() |
| 64 | { |
no test coverage detected