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); }
void obs_data_set_qfont(obs_data_t* data, const char* name, QFont font){ obs_data_t *fontObj = obs_data_create(); obs_data_set_string(fontObj, "face", (font.family()).toUtf8().data()); obs_data_set_string(fontObj, "style", (font.styleName()).toUtf8().data()); obs_data_set_int(fontObj, "size", font.pointSize()); int flags = font.bold() ? OBS_FONT_BOLD : 0; flags |= font.italic() ? OBS_FONT_ITALIC : 0; flags |= font.underline() ? OBS_FONT_UNDERLINE : 0; flags |= font.strikeOut() ? OBS_FONT_STRIKEOUT : 0; obs_data_set_int(fontObj, "flags", flags); obs_data_set_obj(data, "font", fontObj); obs_data_release(fontObj); return; }
obs_data_t *obs_save_source(obs_source_t *source) { obs_data_t *source_data = obs_data_create(); obs_data_t *settings = obs_source_get_settings(source); float volume = obs_source_get_volume(source); const char *name = obs_source_get_name(source); const char *id = obs_source_get_id(source); obs_source_save(source); obs_data_set_string(source_data, "name", name); obs_data_set_string(source_data, "id", id); obs_data_set_obj (source_data, "settings", settings); obs_data_set_double(source_data, "volume", volume); obs_data_release(settings); return source_data; }
void BiLiTextSourcePropertyDlg::mSltFontComboxChanged(const QString &text) { QFont font = qobject_cast<QFontComboBox *>(sender())->currentFont(); obs_data_t *fontObj = obs_data_create(); obs_data_set_string(fontObj, "face", (font.family()).toUtf8().data()); obs_data_set_string(fontObj, "style", (font.styleName()).toUtf8().data()); obs_data_set_int(fontObj, "size", font.pointSize()); int flags = font.bold() ? OBS_FONT_BOLD : 0; flags |= font.italic() ? OBS_FONT_ITALIC : 0; flags |= font.underline() ? OBS_FONT_UNDERLINE : 0; flags |= font.strikeOut() ? OBS_FONT_STRIKEOUT : 0; obs_data_set_int(fontObj, "flags", flags); obs_data_t *settingFont = obs_source_get_settings(mSrc); obs_data_set_obj(settingFont, "font", fontObj); obs_data_release(fontObj); obs_data_release(settingFont); }
static OBSSource CreateLabel(const char *name, size_t h) { obs_data_t *settings = obs_data_create(); obs_data_t *font = obs_data_create(); std::string text; text += " "; text += name; text += " "; #if defined(_WIN32) obs_data_set_string(font, "face", "Arial"); #elif defined(__APPLE__) obs_data_set_string(font, "face", "Helvetica"); #else obs_data_set_string(font, "face", "Monospace"); #endif obs_data_set_int(font, "flags", 1); // Bold text obs_data_set_int(font, "size", int(h / 9.81)); obs_data_set_obj(settings, "font", font); obs_data_set_string(settings, "text", text.c_str()); obs_data_set_bool(settings, "outline", false); #ifdef _WIN32 const char *text_source_id = "text_gdiplus"; #else const char *text_source_id = "text_ft2_source"; #endif OBSSource txtSource = obs_source_create_private(text_source_id, name, settings); obs_source_release(txtSource); obs_data_release(font); obs_data_release(settings); return txtSource; }
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(); for (OBSScript &script : scriptData->scripts) { const char *script_path = obs_script_get_path(script); obs_data_t *settings = obs_script_save(script); obs_data_t *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); }