UI: Prevent calling of obs functions with NULL params

master
jp9000 2015-10-17 02:51:59 -07:00
parent f07ce8501f
commit 8d895eaa6a
1 changed files with 19 additions and 7 deletions

View File

@ -398,6 +398,9 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
auto source = static_cast<obs_source_t*>(calldata_ptr(param, auto source = static_cast<obs_source_t*>(calldata_ptr(param,
"source")); "source"));
if (!source)
return;
if (!(obs_source_get_output_flags(source) & OBS_SOURCE_AUDIO)) if (!(obs_source_get_output_flags(source) & OBS_SOURCE_AUDIO))
return; return;
@ -1354,9 +1357,14 @@ void OBSBasicSettings::LoadListValues(QComboBox *widget, obs_property_t *prop,
size_t count = obs_property_list_item_count(prop); size_t count = obs_property_list_item_count(prop);
obs_source_t *source = obs_get_output_source(index); obs_source_t *source = obs_get_output_source(index);
obs_data_t *settings = obs_source_get_settings(source); const char *deviceId = nullptr;
obs_data_t *settings = nullptr;
const char *deviceId = obs_data_get_string(settings, "device_id"); if (source) {
settings = obs_source_get_settings(source);
if (settings)
deviceId = obs_data_get_string(settings, "device_id");
}
widget->addItem(QTStr("Disabled"), "disabled"); widget->addItem(QTStr("Disabled"), "disabled");
@ -1366,12 +1374,16 @@ void OBSBasicSettings::LoadListValues(QComboBox *widget, obs_property_t *prop,
LoadListValue(widget, name, val); LoadListValue(widget, name, val);
} }
int idx = widget->findData(QVariant(QT_UTF8(deviceId))); if (deviceId) {
if (idx != -1) int idx = widget->findData(QVariant(QT_UTF8(deviceId)));
widget->setCurrentIndex(idx); if (idx != -1)
widget->setCurrentIndex(idx);
}
obs_source_release(source); if (settings)
obs_data_release(settings); obs_data_release(settings);
if (source)
obs_source_release(source);
} }
void OBSBasicSettings::LoadAudioDevices() void OBSBasicSettings::LoadAudioDevices()