def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, 'source', 'Text Source:', obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == 'text_gdiplus' or source_id == 'text_ft2_source': name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_text(props, 'format', 'Text Format:', obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int_slider(props, 'seconds_between_lines', 'Seconds Between:', 1, 60, 1) obs.obs_properties_add_button(props, 'start_button', 'Start Cycling', start_pressed) return props
def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, "source", "Text Source:", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_text(props, "format", "Text Format:", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_button(props, "reset_button", "Reset/Stop Timer", reset_pressed) obs.obs_properties_add_button(props, "start_button", "Start Timer", start_pressed) obs.obs_properties_add_bool(props, "auto_start", "Start Automatically with Stream/Recording") obs.obs_properties_add_bool(props, "auto_stop", "Stop Automatically with Stream/Recording") obs.obs_properties_add_bool(props, "recording", "Enable for Recording") obs.obs_properties_add_bool(props, "visible", "Text Visible Only While Timer Running") return props
def script_properties(): props = obs.obs_properties_create() #campo de directorio obs.obs_properties_add_path(props, "file", "Archivo de frases", obs.OBS_PATH_FILE, "*.txt", "") #campo de lectura d enumeros enteros obs.obs_properties_add_int(props, "interval", "Intervalo de \nactualizacion (segundos)", 5, 3600, 1) #una combo list que meustra todas las fuentes de tipo texto p = obs.obs_properties_add_list(props, "source", "Fuente de texto", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) #un boton que lanza la funcion update_text cuando se presiona obs.obs_properties_add_button(props, "button", "Refrescar", refresh_pressed) return props
def script_properties(): if debug_mode: print("[CS] 配置已加载。") props = obs.obs_properties_create() obs.obs_properties_add_bool(props, "enabled", "启用该脚本") obs.obs_properties_add_bool(props, "debug_mode", "调试模式") obs.obs_properties_add_int( props, "check_frequency", "检查频率(毫秒)", 150, 10000, 100) obs.obs_properties_add_text( props, "display_text", "显示文本", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_bool(props, "spotify", "Spotify") obs.obs_properties_add_bool(props, "vlc", "VLC") obs.obs_properties_add_bool(props, "yt_firefox", "Youtube for Firefox") obs.obs_properties_add_bool(props, "yt_chrome", "Youtube for Chrome") obs.obs_properties_add_bool(props, "foobar2000", "Foobar2000") obs.obs_properties_add_bool(props, "necloud", "网易云音乐") obs.obs_properties_add_bool(props, 'aimp', 'AIMP') p = obs.obs_properties_add_list( props, "source_name", "使用文本框", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id in ("text_gdiplus", "text_ft2_source"): name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) return props
def script_properties(): # ui props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) number = obs.obs_properties_add_int(props, "_int", "Number", 1, 100, 1) text_value = obs.obs_properties_add_text(props, "_text", "Additional input:", obs.OBS_TEXT_DEFAULT) obs.obs_property_set_visible(text_value, False) obs.obs_property_set_modified_callback(number, callback) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "counter_text1", "[1]Set counter text", obs.OBS_TEXT_DEFAULT) p1 = obs.obs_properties_add_list( props, "source1", "[1]Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) obs.obs_properties_add_text(props, "counter_text2", "[2]Set counter text", obs.OBS_TEXT_DEFAULT) p2 = obs.obs_properties_add_list( props, "source2", "[2]Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p1, name, name) obs.obs_property_list_add_string(p2, name, name) obs.source_list_release(sources) return props
def script_properties(): # ui props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, "source", "Browser source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) obs.obs_properties_add_button(props, "button1", "Press tab", press_tab) obs.obs_properties_add_button(props, "button2", "Press shift+tab", press_shift_tab) obs.obs_properties_add_button(props, "button3", "Send LMB at [100,200]", click_at) obs.obs_properties_add_button(props, "button4", "Move to 0,0 ", move_mouse0) obs.obs_properties_add_button(props, "button5", "Move to 100,200 ", move_mouse1) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "browser_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) return props
def script_properties(): debug("[CS] Loaded properties.") props = obs.obs_properties_create() obs.obs_properties_add_bool(props, "enabled", "Enabled") obs.obs_properties_add_bool(props, "debug_mode", "Debug Mode") obs.obs_properties_add_int(props, "check_frequency", "Check frequency", 150, 10000, 100) obs.obs_properties_add_text(props, "display_text", "Display text", obs.OBS_TEXT_DEFAULT) for i in filter(lambda x: not x.startswith('_'), calcingfunc.keys()): obs.obs_properties_add_bool(props, globals()[i].id, globals()[i].display_name) p = obs.obs_properties_add_list(props, "source_name", "Text source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id in ("text_gdiplus", "text_ft2_source"): name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_int(props, "xMaxSize", "Max x size:", 0, 10000, 1) obs.obs_properties_add_int(props, "yMaxSize", "Max y size:", 0, 10000, 1) obs.obs_properties_add_int(props, "followRate", "Follow speed %:", 0, 100, 1) obs.obs_properties_add_int(props, "zoomRate", "Zoom speed %:", 0, 100, 1) obs.obs_properties_add_bool(props, "keepAspectRatio", "Keep aspect ratio on select rectangle:") sourceList1 = obs.obs_properties_add_list(props, "sourceName1", "Screen source 1:", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sourceList2 = obs.obs_properties_add_list(props, "sourceName2", "Screen source 2:", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() obs.obs_property_list_add_string(sourceList1, "", "") obs.obs_property_list_add_string(sourceList2, "", "") if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "monitor_capture": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(sourceList1, name, name) obs.obs_property_list_add_string(sourceList2, name, name) obs.source_list_release(sources) return props
def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, 'source', 'Text Source:', obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == 'text_gdiplus' or source_id == 'text_ft2_source': name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_int_slider(props, 'timer_duration', 'Timer Duration (Mins):', 1, 120, 1) obs.obs_properties_add_button(props, 'start_button', 'Start Countdown', start_pressed) return props
def script_properties(): # ui props = S.obs_properties_create() p = S.obs_properties_add_list( props, "source", "Text Source", S.OBS_COMBO_TYPE_EDITABLE, S.OBS_COMBO_FORMAT_STRING, ) sources = S.obs_enum_sources() if sources is not None: for source in sources: source_id = S.obs_source_get_unversioned_id(source) name = S.obs_source_get_name(source) S.obs_property_list_add_string(p, name, name) S.source_list_release(sources) _p = S.obs_properties_add_list( props, "scene", "Scene", S.OBS_COMBO_TYPE_EDITABLE, S.OBS_COMBO_FORMAT_STRING, ) scenes = S.obs_frontend_get_scenes() for scene in scenes: name = S.obs_source_get_name(scene) S.obs_property_list_add_string(_p, name, name) S.source_list_release(scenes) S.obs_properties_add_button(props, "button", "Duplicate", button_pressed) return props
def script_properties(): props = obs.obs_properties_create() # obs_property_t *obs_properties_add_text(obs_properties_t *props, const char *name, const char *description, enum obs_text_type type) obs.obs_properties_add_text( props, "api_endpoint", "API Endpoint", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text( props, "jsonpath", "Path to json string (ex menu.state)", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text( props, "format_rule", "Formatting rule (python format)", obs.OBS_TEXT_MULTILINE) # obs_property_t *obs_properties_add_int(obs_properties_t *props, const char *name, const char *description, int min, int max, int step) p = obs.obs_properties_add_list( props, "text_source", "Text Source (old FreeType 2)", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_ft2_source": # gdiplus lags!!!!!! if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button( props, "button", "Save/Refresh", save_pressed) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "counter_text", "Set counter text", obs.OBS_TEXT_DEFAULT) p = obs.obs_properties_add_list( props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Refresh", refresh) return props
def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, 'source', 'Text Source:', obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == 'text_gdiplus' or source_id == 'text_ft2_source': name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_text(props, 'format', 'Text Format:', obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_button(props, 'start_button', 'Start Timer', start_pressed) obs.obs_properties_add_bool(props, 'auto_start', 'Start Automatically with Stream') return props
def get_active_song(): sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_name = obs.obs_source_get_name(source) source_id = obs.obs_source_get_unversioned_id(source) active = obs.obs_source_active(source) if source_id == "ffmpeg_source" and active is True: return source
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "scripted_text", "Scripted text", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int(props, "refresh_rate", "Refresh rate(ms)", 15, 5 * 1000, 1) obs.obs_properties_add_int(props, "duration", "Duration shown(ms)", 1 * 1000, 3600 * 1000, 1) p = obs.obs_properties_add_list( props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sp = obs.obs_properties_add_list( props, "playsound", "Media Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) tp = obs.obs_properties_add_list( props, "text_effect", "Text effect", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) for i in scripted_text_driver.txt_efcts.keys(): obs.obs_property_list_add_string(tp, i, i) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) if source_id == "ffmpeg_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(sp, name, name) obs.source_list_release(sources) obs.obs_properties_add_button( props, "button1", "PREVIEW", lambda *props: scripted_text_driver.hotkey_hook()) obs.obs_properties_add_button( props, "button2", "RESET", lambda *props: scripted_text_driver.reset_duration()) return props
def fill_source_list(p): obs.obs_property_list_clear(p) obs.obs_property_list_add_string(p, "", "") with source_list_ar() as sources: if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if (source_id == "text_gdiplus" or source_id == "text_ft2_source"): name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name)
def script_properties(): "https://obsproject.com/docs/reference-properties.html" props = obs.obs_properties_create() obs.obs_properties_add_text(props, "scripted_text", "Scripted text", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int(props, "refresh_rate", "Refresh rate(ms)", 50, 5000, 1) obs.obs_properties_add_int(props, "duration", "Duration shown(ms)", 5000, 15000, 1) p = obs.obs_properties_add_list( props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sp = obs.obs_properties_add_list( props, "playsound", "Media Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) tp = obs.obs_properties_add_list( props, "text_effect", "Text effect", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) for i in ["rainbow", "static", "random_chars", "blink"]: obs.obs_property_list_add_string(tp, i, i) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) if source_id == "ffmpeg_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(sp, name, name) print(name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Refresh and preview(5s)", refresh) return props
def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, "source", "Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, source_id) obs.source_list_release(sources) return props
def set_source_text(source_name: str, text: str, color: int): if source_name is None or source_name == "": return # copied and modified from scripted-text.py by UpgradeQ with source_ar(source_name) as source, data_ar() as settings: obs.obs_data_set_string(settings, "text", text) source_id = obs.obs_source_get_unversioned_id(source) if color is not None: if source_id == "text_gdiplus": obs.obs_data_set_int(settings, "color", color) # colored text # freetype2 is BGR, should be reversed for getting correct color else: number = "".join(hex(color)[2:]) color = int("0xff" f"{number}", base=16) obs.obs_data_set_int(settings, "color1", color) obs.obs_source_update(source, settings)
def _add(self, props, on_changed): flag = _obs.OBS_COMBO_TYPE_EDITABLE if self.editable else _obs.OBS_COMBO_TYPE_LIST fmt = _obs.OBS_COMBO_FORMAT_STRING p = _obs.obs_properties_add_list(props, self.name, self.text, flag, fmt) super()._add(p, on_changed) _obs.obs_property_list_add_string(p, "(None)", None) sources = _obs.obs_enum_sources() if sources is not None: try: for s in sources: s_id = _obs.obs_source_get_unversioned_id(s) if _contains_pattern(s_id, self.kinds): v = _obs.obs_source_get_name(s) _obs.obs_property_list_add_string(p, v, v) finally: _obs.source_list_release(sources)
def script_properties(): # ui props = S.obs_properties_create() p = S.obs_properties_add_list( props, "source", "Text Source", S.OBS_COMBO_TYPE_EDITABLE, S.OBS_COMBO_FORMAT_STRING, ) sources = S.obs_enum_sources() if sources is not None: for source in sources: source_id = S.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = S.obs_source_get_name(source) S.obs_property_list_add_string(p, name, name) S.source_list_release(sources) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "url", "URL", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int(props, "interval", "Update Interval (seconds)", 5, 3600, 1) p = obs.obs_properties_add_list(props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Refresh", refresh_pressed) return props
def script_properties(): props = obs.obs_properties_create() s = obs.obs_properties_add_list(props, "scene", "Scene", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) p = obs.obs_properties_add_list(props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) obs.obs_properties_add_bool(props, "reset_time", "Reset time on scene switch") obs.obs_properties_add_int(props, "stop_stream_time", "Stop stream/record after (seconds):", 10, 7200, 1) obs.obs_properties_add_bool(props, "stop_stream", "Enabled") sources = obs.obs_enum_sources() if sources is not None: for source in sources: name = obs.obs_source_get_name(source) source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) scenes = obs.obs_frontend_get_scenes() if scenes is not None: for scene in scenes: name = obs.obs_source_get_name(scene) obs.obs_property_list_add_string(s, name, name) obs.source_list_release(scenes) obs.obs_properties_add_button(props, "reset_button", "Reset Stopwatch", reset_stopwatch_pressed) obs.obs_properties_add_button(props, "button", "Refresh", refresh_pressed) return props
def get_source_list(self): """ Get list of text sources """ _sources = obs.obs_enum_sources() _names = [] if _sources is not None: for _source in _sources: _source_id = obs.obs_source_get_unversioned_id(_source) if _source_id == "text_gdiplus"\ or _source_id == "text_ft2_source": _names.append(obs.obs_source_get_name(_source)) return _names
def script_properties(): # ui props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_bool(props, "_obs_bool", "Words") obs.obs_properties_add_button(props, "button", "Refresh", refresh_pressed) return props
def script_properties(): # ui props = obs.obs_properties_create() number = obs.obs_properties_add_int(props, "refresh_rate", "Refresh rate (ms)", 15, 300, 5) p = obs.obs_properties_add_list( props, "source", "Select cursor source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Stop", stop_pressed) obs.obs_properties_add_button(props, "button2", "Start", start_pressed) obs.obs_properties_add_bool(props, "bool_yn", "Update crop") return props
def script_properties(): # ui props = obs.obs_properties_create() obs.obs_properties_add_int(props, "max_value", "Max value", 1, 1_000_000, 1) p = obs.obs_properties_add_list( props, "source", "Color Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Start", start_pressed) obs.obs_properties_add_button(props, "button1", "Stop", lambda *props: eg.toggle()) return props
def script_properties(): props = obs.obs_properties_create() source_list = obs.obs_properties_add_list(props, "text_source_list", "Source List", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": source_name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(source_list, source_name, source_name) obs.obs_properties_add_path(props, "path", "List of reproduction folder", obs.OBS_PATH_DIRECTORY, None, None) obs.obs_properties_add_text(props, "scene", "Target scene", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(props, "group", "Target group name", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_button(props, "refresh", "Refresh folder", button_handler) obs.source_list_release(sources) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "unrealserver", "Server Address - unreal://", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int(props, "interval", "Update Interval (seconds)", 5, 3600, 1) ut_t0n = obs.obs_properties_add_list(props, "team0name", "Red Team Name", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) ut_t0s = obs.obs_properties_add_list(props, "team0score", "Red Team Score", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) ut_t1n = obs.obs_properties_add_list(props, "team1name", "Blue Team Name", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) ut_t1s = obs.obs_properties_add_list(props, "team1score", "Blue Team Score", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) ut_sts = obs.obs_properties_add_list(props, "serverstatus", "Server Status", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) ut_map = obs.obs_properties_add_list(props, "servermap", "Current Map", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) ut_tim = obs.obs_properties_add_list(props, "gametime", "Remaining Time", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) ut_obj = obs.obs_properties_add_list(props, "gameobjs", "Objective Stats", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) ut_dbg = obs.obs_properties_add_list(props, "debug", "Debug", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(ut_t0n, name, name) obs.obs_property_list_add_string(ut_t0s, name, name) obs.obs_property_list_add_string(ut_t1n, name, name) obs.obs_property_list_add_string(ut_t1s, name, name) obs.obs_property_list_add_string(ut_sts, name, name) obs.obs_property_list_add_string(ut_map, name, name) obs.obs_property_list_add_string(ut_tim, name, name) obs.obs_property_list_add_string(ut_obj, name, name) obs.obs_property_list_add_string(ut_dbg, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "&Save && Run", refresh_pressed) return props