frontend-tools: Cleanup libobs C++ type use

master
VodBox 2021-11-26 22:26:35 +13:00
parent 3d544653e8
commit c3409b5bb5
4 changed files with 36 additions and 68 deletions

View File

@ -33,9 +33,7 @@ struct SceneSwitch {
static inline bool WeakSourceValid(obs_weak_source_t *ws)
{
obs_source_t *source = obs_weak_source_get_source(ws);
if (source)
obs_source_release(source);
OBSSourceAutoRelease source = obs_weak_source_get_source(ws);
return !!source;
}
@ -268,13 +266,11 @@ void SceneSwitcher::on_startAtLaunch_toggled(bool value)
void SceneSwitcher::UpdateNonMatchingScene(const QString &name)
{
obs_source_t *scene = obs_get_source_by_name(name.toUtf8().constData());
obs_weak_source_t *ws = obs_source_get_weak_source(scene);
OBSSourceAutoRelease scene =
obs_get_source_by_name(name.toUtf8().constData());
OBSWeakSourceAutoRelease ws = obs_source_get_weak_source(scene);
switcher->nonMatchingScene = ws;
obs_weak_source_release(ws);
obs_source_release(scene);
switcher->nonMatchingScene = ws.Get();
}
void SceneSwitcher::on_noMatchDontSwitch_clicked()
@ -341,15 +337,15 @@ static void SaveSceneSwitcher(obs_data_t *save_data, bool saving, void *)
{
if (saving) {
lock_guard<mutex> lock(switcher->m);
obs_data_t *obj = obs_data_create();
obs_data_array_t *array = obs_data_array_create();
OBSDataAutoRelease obj = obs_data_create();
OBSDataArrayAutoRelease array = obs_data_array_create();
switcher->Prune();
for (SceneSwitch &s : switcher->switches) {
obs_data_t *array_obj = obs_data_create();
OBSDataAutoRelease array_obj = obs_data_create();
obs_source_t *source =
OBSSourceAutoRelease source =
obs_weak_source_get_source(s.scene);
if (source) {
const char *n = obs_source_get_name(source);
@ -357,10 +353,7 @@ static void SaveSceneSwitcher(obs_data_t *save_data, bool saving, void *)
obs_data_set_string(array_obj, "window_title",
s.window.c_str());
obs_data_array_push_back(array, array_obj);
obs_source_release(source);
}
obs_data_release(array_obj);
}
string nonMatchingSceneName =
@ -375,15 +368,13 @@ static void SaveSceneSwitcher(obs_data_t *save_data, bool saving, void *)
obs_data_set_array(obj, "switches", array);
obs_data_set_obj(save_data, "auto-scene-switcher", obj);
obs_data_array_release(array);
obs_data_release(obj);
} else {
switcher->m.lock();
obs_data_t *obj =
OBSDataAutoRelease obj =
obs_data_get_obj(save_data, "auto-scene-switcher");
obs_data_array_t *array = obs_data_get_array(obj, "switches");
OBSDataArrayAutoRelease array =
obs_data_get_array(obj, "switches");
size_t count = obs_data_array_count(array);
if (!obj)
@ -404,7 +395,8 @@ static void SaveSceneSwitcher(obs_data_t *save_data, bool saving, void *)
switcher->switches.clear();
for (size_t i = 0; i < count; i++) {
obs_data_t *array_obj = obs_data_array_item(array, i);
OBSDataAutoRelease array_obj =
obs_data_array_item(array, i);
const char *scene =
obs_data_get_string(array_obj, "scene");
@ -413,13 +405,8 @@ static void SaveSceneSwitcher(obs_data_t *save_data, bool saving, void *)
switcher->switches.emplace_back(
GetWeakSourceByName(scene), window);
obs_data_release(array_obj);
}
obs_data_array_release(array);
obs_data_release(obj);
switcher->m.unlock();
if (active)
@ -484,16 +471,13 @@ void SwitcherData::Thread()
}
if (match) {
obs_source_t *source =
OBSSourceAutoRelease source =
obs_weak_source_get_source(scene);
obs_source_t *currentSource =
OBSSourceAutoRelease currentSource =
obs_frontend_get_current_scene();
if (source && source != currentSource)
obs_frontend_set_current_scene(source);
obs_source_release(currentSource);
obs_source_release(source);
}
}

View File

@ -226,10 +226,9 @@ void CaptionsDialog::on_provider_currentIndexChanged(int idx)
static void caption_text(const std::string &text)
{
obs_output *output = obs_frontend_get_streaming_output();
OBSOutputAutoRelease output = obs_frontend_get_streaming_output();
if (output) {
obs_output_output_caption_text1(output, text.c_str());
obs_output_release(output);
}
}
@ -396,7 +395,7 @@ static void obs_event(enum obs_frontend_event event, void *)
static void save_caption_data(obs_data_t *save_data, bool saving, void *)
{
if (saving) {
obs_data_t *obj = obs_data_create();
OBSDataAutoRelease obj = obs_data_create();
obs_data_set_string(obj, "source",
captions->source_name.c_str());
@ -406,11 +405,11 @@ static void save_caption_data(obs_data_t *save_data, bool saving, void *)
captions->handler_id.c_str());
obs_data_set_obj(save_data, "captions", obj);
obs_data_release(obj);
} else {
captions->stop();
obs_data_t *obj = obs_data_get_obj(save_data, "captions");
OBSDataAutoRelease obj =
obs_data_get_obj(save_data, "captions");
if (!obj)
obj = obs_data_create();
@ -424,7 +423,6 @@ static void save_caption_data(obs_data_t *save_data, bool saving, void *)
captions->handler_id = obs_data_get_string(obj, "provider");
captions->source =
GetWeakSourceByName(captions->source_name.c_str());
obs_data_release(obj);
if (enabled)
captions->start();

View File

@ -250,7 +250,7 @@ void OutputTimer::EventStopRecording()
static void SaveOutputTimer(obs_data_t *save_data, bool saving, void *)
{
if (saving) {
obs_data_t *obj = obs_data_create();
OBSDataAutoRelease obj = obs_data_create();
obs_data_set_int(obj, "streamTimerHours",
ot->ui->streamingTimerHours->value());
@ -275,10 +275,9 @@ static void SaveOutputTimer(obs_data_t *save_data, bool saving, void *)
ot->ui->pauseRecordTimer->isChecked());
obs_data_set_obj(save_data, "output-timer", obj);
obs_data_release(obj);
} else {
obs_data_t *obj = obs_data_get_obj(save_data, "output-timer");
OBSDataAutoRelease obj =
obs_data_get_obj(save_data, "output-timer");
if (!obj)
obj = obs_data_create();
@ -304,8 +303,6 @@ static void SaveOutputTimer(obs_data_t *save_data, bool saving, void *)
ot->ui->pauseRecordTimer->setChecked(
obs_data_get_bool(obj, "pauseRecordTimer"));
obs_data_release(obj);
}
}

View File

@ -243,8 +243,7 @@ void ScriptsTool::ReloadScript(const char *path)
if (strcmp(script_path, path) == 0) {
obs_script_reload(script);
OBSData settings = obs_data_create();
obs_data_release(settings);
OBSDataAutoRelease settings = obs_data_create();
obs_properties_t *prop =
obs_script_get_properties(script);
@ -275,9 +274,9 @@ void ScriptsTool::SetScriptDefaults(const char *path)
for (OBSScript &script : scriptData->scripts) {
const char *script_path = obs_script_get_path(script);
if (strcmp(script_path, path) == 0) {
obs_data_t *settings = obs_script_get_settings(script);
OBSDataAutoRelease settings =
obs_script_get_settings(script);
obs_data_clear(settings);
obs_data_release(settings);
obs_script_update(script, nullptr);
on_reloadScripts_clicked();
@ -353,8 +352,7 @@ void ScriptsTool::on_addScripts_clicked()
item->setData(Qt::UserRole, QString(file));
ui->scripts->addItem(item);
OBSData settings = obs_data_create();
obs_data_release(settings);
OBSDataAutoRelease settings = obs_data_create();
obs_properties_t *prop =
obs_script_get_properties(script);
@ -499,11 +497,10 @@ void ScriptsTool::on_scripts_currentRowChanged(int row)
return;
}
OBSData settings = obs_script_get_settings(script);
obs_data_release(settings);
OBSDataAutoRelease settings = obs_script_get_settings(script);
propertiesView = new OBSPropertiesView(
settings, script,
settings.Get(), script,
(PropertiesReloadCallback)obs_script_get_properties, nullptr,
(PropertiesVisualUpdateCb)obs_script_update);
ui->propertiesLayout->addWidget(propertiesView);
@ -585,30 +582,26 @@ static void obs_event(enum obs_frontend_event event, void *)
static void load_script_data(obs_data_t *load_data, bool, void *)
{
obs_data_array_t *array = obs_data_get_array(load_data, "scripts-tool");
OBSDataArrayAutoRelease array =
obs_data_get_array(load_data, "scripts-tool");
delete scriptData;
scriptData = new ScriptData;
size_t size = obs_data_array_count(array);
for (size_t i = 0; i < size; i++) {
obs_data_t *obj = obs_data_array_item(array, i);
OBSDataAutoRelease obj = obs_data_array_item(array, i);
const char *path = obs_data_get_string(obj, "path");
obs_data_t *settings = obs_data_get_obj(obj, "settings");
OBSDataAutoRelease settings = obs_data_get_obj(obj, "settings");
obs_script_t *script = obs_script_create(path, settings);
if (script) {
scriptData->scripts.emplace_back(script);
}
obs_data_release(settings);
obs_data_release(obj);
}
if (scriptsWindow)
scriptsWindow->RefreshLists();
obs_data_array_release(array);
}
static void save_script_data(obs_data_t *save_data, bool saving, void *)
@ -616,23 +609,19 @@ static void save_script_data(obs_data_t *save_data, bool saving, void *)
if (!saving)
return;
obs_data_array_t *array = obs_data_array_create();
OBSDataArrayAutoRelease array = obs_data_array_create();
for (OBSScript &script : scriptData->scripts) {
const char *script_path = obs_script_get_path(script);
obs_data_t *settings = obs_script_save(script);
OBSDataAutoRelease settings = obs_script_save(script);
obs_data_t *obj = obs_data_create();
OBSDataAutoRelease obj = obs_data_create();
obs_data_set_string(obj, "path", script_path);
obs_data_set_obj(obj, "settings", settings);
obs_data_array_push_back(array, obj);
obs_data_release(obj);
obs_data_release(settings);
}
obs_data_set_array(save_data, "scripts-tool", array);
obs_data_array_release(array);
}
static void script_log(void *, obs_script_t *script, int log_level,