static void SaveAudioDevice(const char *name, int channel, obs_data_t *parent) { obs_source_t *source = obs_get_output_source(channel); if (!source) return; obs_data_t *data = obs_save_source(source); obs_data_set_obj(parent, name, data); obs_data_release(data); obs_source_release(source); }
obs_data_array_t *obs_save_sources(void) { obs_data_array_t *array; size_t i; if (!obs) return NULL; array = obs_data_array_create(); pthread_mutex_lock(&obs->data.user_sources_mutex); for (i = 0; i < obs->data.user_sources.num; i++) { obs_source_t *source = obs->data.user_sources.array[i]; obs_data_t *source_data = obs_save_source(source); obs_data_array_push_back(array, source_data); obs_data_release(source_data); } pthread_mutex_unlock(&obs->data.user_sources_mutex); return array; }