void obs_set_master_volume(float volume) { struct calldata data = {0}; if (!obs) return; calldata_setfloat(&data, "volume", volume); signal_handler_signal(obs->signals, "master_volume", &data); volume = (float)calldata_float(&data, "volume"); calldata_free(&data); obs->audio.user_volume = volume; }
void obs_source_setvolume(obs_source_t source, float volume) { if (source) { struct calldata data = {0}; calldata_setptr(&data, "source", source); calldata_setfloat(&data, "volume", volume); signal_handler_signal(source->context.signals, "volume", &data); signal_handler_signal(obs->signals, "source_volume", &data); volume = (float)calldata_float(&data, "volume"); calldata_free(&data); source->user_volume = volume; } }