MCPcopy Create free account
hub / github.com/WarmUpTill/SceneSwitcher / buildAudioConditionData

Function buildAudioConditionData

lib/utils/first-run-wizard-audio.cpp:47–97  ·  view source on GitHub ↗

Builds the obs_data blob for an audio volume condition, matching MacroConditionAudio::Save() output. Checks output volume (checkType 0) ABOVE (outputCondition 0) the given threshold in dB, held for at least `duration`. { "segmentSettings": { "enabled": true, "version": 2 }, "id": "audio", "logic": 0, "durationModifier": { "time_constraint": 1, // AT_LEAST "seconds": <Duration::Save output

Source from the content-addressed store, hash-verified

45// "version": 3
46// }
47static OBSDataAutoRelease buildAudioConditionData(const QString &sourceName,
48 double thresholdDb,
49 const Duration &duration)
50{
51 OBSDataAutoRelease seg = obs_data_create();
52 obs_data_set_bool(seg, "enabled", true);
53 obs_data_set_int(seg, "version", 2);
54
55 OBSDataAutoRelease durMod = obs_data_create();
56 obs_data_set_int(durMod, "time_constraint", 1);
57 duration.Save(durMod, "seconds");
58
59 OBSDataAutoRelease audioSrc = obs_data_create();
60 obs_data_set_int(audioSrc, "type", 0);
61 obs_data_set_string(audioSrc, "name", sourceName.toUtf8().constData());
62
63 OBSDataAutoRelease volume = obs_data_create();
64 obs_data_set_double(volume, "value", 0.0);
65 obs_data_set_int(volume, "type", 0);
66
67 OBSDataAutoRelease syncOffset = obs_data_create();
68 obs_data_set_int(syncOffset, "value", 0);
69 obs_data_set_int(syncOffset, "type", 0);
70
71 OBSDataAutoRelease balance = obs_data_create();
72 obs_data_set_double(balance, "value", 0.5);
73 obs_data_set_int(balance, "type", 0);
74
75 OBSDataAutoRelease volumeDB = obs_data_create();
76 obs_data_set_double(volumeDB, "value", thresholdDb);
77 obs_data_set_int(volumeDB, "type", 0);
78
79 OBSDataAutoRelease data = obs_data_create();
80 obs_data_set_obj(data, "segmentSettings", seg);
81 obs_data_set_string(data, "id", "audio");
82 obs_data_set_int(data, "logic", 0);
83 obs_data_set_obj(data, "durationModifier", durMod);
84 obs_data_set_obj(data, "audioSource", audioSrc);
85 obs_data_set_int(data, "monitor", 0);
86 obs_data_set_obj(data, "volume", volume);
87 obs_data_set_obj(data, "syncOffset", syncOffset);
88 obs_data_set_obj(data, "balance", balance);
89 obs_data_set_int(data, "checkType", 0);
90 obs_data_set_int(data, "outputCondition", 0);
91 obs_data_set_int(data, "volumeCondition", 0);
92 obs_data_set_bool(data, "useDb", true);
93 obs_data_set_obj(data, "volumeDB", volumeDB);
94 obs_data_set_int(data, "version", 3);
95
96 return data;
97}
98
99// Builds the obs_data blob for a scene-visibility action on the current scene,
100// matching MacroActionSceneVisibility::Save() output.

Callers 1

validatePageMethod · 0.85

Calls 1

SaveMethod · 0.45

Tested by

no test coverage detected