Builds the obs_data blob for a "current scene == sceneName for at least triggerDuration" condition, matching MacroConditionScene::Save(). { "segmentSettings": { "enabled": true, "version": 2 }, "id": "scene", "logic": 0, "durationModifier": { "time_constraint": 1, // AT_LEAST "seconds": }, "sceneSelection": { "type": 0, "name": " ", "canvasSelection": "Main" },
| 34 | // "version": 1 |
| 35 | // } |
| 36 | static OBSDataAutoRelease |
| 37 | buildSceneConditionData(const QString &scene, const Duration &triggerDuration) |
| 38 | { |
| 39 | OBSDataAutoRelease seg = obs_data_create(); |
| 40 | obs_data_set_bool(seg, "enabled", true); |
| 41 | obs_data_set_int(seg, "version", 2); |
| 42 | |
| 43 | OBSDataAutoRelease durMod = obs_data_create(); |
| 44 | obs_data_set_int(durMod, "time_constraint", 1); |
| 45 | triggerDuration.Save(durMod, "seconds"); |
| 46 | |
| 47 | OBSDataAutoRelease sceneSel = obs_data_create(); |
| 48 | obs_data_set_int(sceneSel, "type", 0); |
| 49 | obs_data_set_string(sceneSel, "name", scene.toUtf8().constData()); |
| 50 | obs_data_set_string(sceneSel, "canvasSelection", "Main"); |
| 51 | |
| 52 | OBSDataAutoRelease data = obs_data_create(); |
| 53 | obs_data_set_obj(data, "segmentSettings", seg); |
| 54 | obs_data_set_string(data, "id", "scene"); |
| 55 | obs_data_set_int(data, "logic", 0); |
| 56 | obs_data_set_obj(data, "durationModifier", durMod); |
| 57 | obs_data_set_obj(data, "sceneSelection", sceneSel); |
| 58 | obs_data_set_int(data, "type", 10); |
| 59 | obs_data_set_int(data, "version", 1); |
| 60 | |
| 61 | return data; |
| 62 | } |
| 63 | |
| 64 | // Builds the obs_data blob for a scene-switch action, |
| 65 | // matching MacroActionSwitchScene::Save(). |