| 2187 | } |
| 2188 | |
| 2189 | void WidgetInfo::ControlChanged() |
| 2190 | { |
| 2191 | const char *setting = obs_property_name(property); |
| 2192 | obs_property_type type = obs_property_get_type(property); |
| 2193 | |
| 2194 | if (!recently_updated) { |
| 2195 | old_settings_cache = obs_data_create(); |
| 2196 | obs_data_apply(old_settings_cache, view->settings); |
| 2197 | obs_data_release(old_settings_cache); |
| 2198 | } |
| 2199 | |
| 2200 | switch (type) { |
| 2201 | case OBS_PROPERTY_INVALID: |
| 2202 | return; |
| 2203 | case OBS_PROPERTY_BOOL: |
| 2204 | BoolChanged(setting); |
| 2205 | break; |
| 2206 | case OBS_PROPERTY_INT: |
| 2207 | IntChanged(setting); |
| 2208 | break; |
| 2209 | case OBS_PROPERTY_FLOAT: |
| 2210 | FloatChanged(setting); |
| 2211 | break; |
| 2212 | case OBS_PROPERTY_TEXT: |
| 2213 | TextChanged(setting); |
| 2214 | break; |
| 2215 | case OBS_PROPERTY_LIST: |
| 2216 | ListChanged(setting); |
| 2217 | break; |
| 2218 | case OBS_PROPERTY_BUTTON: |
| 2219 | ButtonClicked(); |
| 2220 | return; |
| 2221 | case OBS_PROPERTY_COLOR: |
| 2222 | if (!ColorChanged(setting)) |
| 2223 | return; |
| 2224 | break; |
| 2225 | case OBS_PROPERTY_FONT: |
| 2226 | if (!FontChanged(setting)) |
| 2227 | return; |
| 2228 | break; |
| 2229 | case OBS_PROPERTY_PATH: |
| 2230 | if (!PathChanged(setting)) |
| 2231 | return; |
| 2232 | break; |
| 2233 | case OBS_PROPERTY_EDITABLE_LIST: |
| 2234 | break; |
| 2235 | case OBS_PROPERTY_FRAME_RATE: |
| 2236 | if (!FrameRateChanged(widget, setting, view->settings)) |
| 2237 | return; |
| 2238 | break; |
| 2239 | case OBS_PROPERTY_GROUP: |
| 2240 | GroupChanged(setting); |
| 2241 | break; |
| 2242 | case OBS_PROPERTY_COLOR_ALPHA: |
| 2243 | if (!ColorAlphaChanged(setting)) |
| 2244 | return; |
| 2245 | break; |
| 2246 | } |
no test coverage detected