void init_state(struct watchman_ignore* state) { add_strings(state, ignore_dirs, sizeof(ignore_dirs) / sizeof(ignore_dirs[0]), false); add_strings(state, ignore_vcs, sizeof(ignore_vcs) / sizeof(ignore_vcs[0]), true); }
StringArray& StringArray:: operator=(const StringArray &rhs) { clear(); fastuidraw::const_c_array<const char*> src(rhs.string_array()); add_strings(src.begin(), src.end()); return *this; }
static obs_properties_t *obs_x264_props(void *unused) { UNUSED_PARAMETER(unused); obs_properties_t *props = obs_properties_create(); obs_property_t *list; obs_property_t *p; obs_properties_add_int(props, "bitrate", TEXT_BITRATE, 50, 10000000, 1); p = obs_properties_add_bool(props, "use_bufsize", TEXT_CUSTOM_BUF); obs_property_set_modified_callback(p, use_bufsize_modified); obs_properties_add_int(props, "buffer_size", TEXT_BUF_SIZE, 0, 10000000, 1); obs_properties_add_int(props, "keyint_sec", TEXT_KEYINT_SEC, 0, 20, 1); p = obs_properties_add_bool(props, "cbr", TEXT_USE_CBR); obs_properties_add_int(props, "crf", TEXT_CRF, 0, 51, 1); obs_property_set_modified_callback(p, use_cbr_modified); list = obs_properties_add_list(props, "preset", TEXT_PRESET, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); add_strings(list, x264_preset_names); list = obs_properties_add_list(props, "profile", TEXT_PROFILE, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); obs_property_list_add_string(list, TEXT_NONE, ""); obs_property_list_add_string(list, "baseline", "baseline"); obs_property_list_add_string(list, "main", "main"); obs_property_list_add_string(list, "high", "high"); list = obs_properties_add_list(props, "tune", TEXT_TUNE, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); obs_property_list_add_string(list, TEXT_NONE, ""); add_strings(list, x264_tune_names); obs_properties_add_bool(props, "vfr", TEXT_VFR); obs_properties_add_text(props, "x264opts", TEXT_X264_OPTS, OBS_TEXT_DEFAULT); return props; }
static obs_properties_t *obs_qsv_props(void *unused) { UNUSED_PARAMETER(unused); obs_properties_t *props = obs_properties_create(); obs_property_t *list; list = obs_properties_add_list(props, "target_usage", TEXT_SPEED, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); add_strings(list, qsv_usage_names); list = obs_properties_add_list(props, "profile", TEXT_PROFILE, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); add_strings(list, qsv_profile_names); obs_properties_add_int(props, "keyint_sec", TEXT_KEYINT_SEC, 1, 20, 1); obs_properties_add_int(props, "async_depth", TEXT_ASYNC_DEPTH, 1, 7, 1); list = obs_properties_add_list(props, "rate_control", TEXT_RATE_CONTROL, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); add_rate_controls(list, qsv_ratecontrols); obs_property_set_modified_callback(list, rate_control_modified); obs_property_t *p; p = obs_properties_add_int(props, "bitrate", TEXT_TARGET_BITRATE, 50, 10000000, 50); obs_property_int_set_suffix(p, " Kbps"); p = obs_properties_add_int(props, "max_bitrate", TEXT_MAX_BITRATE, 50, 10000000, 50); obs_property_int_set_suffix(p, " Kbps"); obs_properties_add_int(props, "accuracy", TEXT_ACCURACY, 0, 10000, 1); obs_properties_add_int(props, "convergence", TEXT_CONVERGENCE, 0, 10, 1); obs_properties_add_int(props, "qpi", "QPI", 1, 51, 1); obs_properties_add_int(props, "qpp", "QPP", 1, 51, 1); obs_properties_add_int(props, "qpb", "QPB", 1, 51, 1); obs_properties_add_int(props, "icq_quality", TEXT_ICQ_QUALITY, 1, 51, 1); obs_properties_add_int(props, "la_depth", TEXT_LA_DEPTH, 10, 100, 1); return props; }
string multiply(string num1, string num2) { if (num1 == "0" || num2 == "0") return "0"; string ret = "0"; int cnt = 0; for (int i = num2.size() - 1; i >= 0; --i) { string product = char_multi_string(num1, num2[i]); product.append(cnt++, '0'); ret = add_strings(ret, product); } return ret; }
StringArray:: StringArray(const StringArray &rhs) { fastuidraw::const_c_array<const char*> src(rhs.string_array()); add_strings(src.begin(), src.end()); }