struct motion_filter * create_pointer_accelerator_filter_touchpad(int dpi) { struct pointer_accelerator *filter; filter = create_default_filter(dpi); if (!filter) return NULL; filter->base.interface = &accelerator_interface_touchpad; filter->profile = touchpad_accel_profile_linear; return &filter->base; }
struct motion_filter * create_pointer_accelerator_filter_trackpoint(int dpi) { struct pointer_accelerator *filter; filter = create_default_filter(dpi); if (!filter) return NULL; filter->base.interface = &accelerator_interface_trackpoint; filter->profile = trackpoint_accel_profile; filter->threshold = DEFAULT_THRESHOLD; filter->accel = DEFAULT_ACCELERATION; filter->incline = DEFAULT_INCLINE; return &filter->base; }
struct motion_filter * create_pointer_accelerator_filter_touchpad(int dpi, uint64_t event_delta_smooth_threshold, uint64_t event_delta_smooth_value) { struct pointer_accelerator *filter; filter = create_default_filter(dpi); if (!filter) return NULL; filter->base.interface = &accelerator_interface_touchpad; filter->profile = touchpad_accel_profile_linear; filter->event_delta_smooth_threshold = event_delta_smooth_threshold; filter->event_delta_smooth_value = event_delta_smooth_value; return &filter->base; }
static switch_status_t config(void) { char *cf = "kazoo.conf"; switch_xml_t cfg, xml, child, param; globals.send_all_headers = globals.send_all_private_headers = 0; globals.connection_timeout = 500; globals.receive_timeout = 200; globals.receive_msg_preallocate = 2000; globals.event_stream_preallocate = 4000; globals.send_msg_batch = 10; globals.event_stream_framing = 2; globals.port = 0; if (!(xml = switch_xml_open_cfg(cf, &cfg, NULL))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to open configuration file %s\n", cf); return SWITCH_STATUS_FALSE; } else { if ((child = switch_xml_child(cfg, "settings"))) { for (param = switch_xml_child(child, "param"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); if (!strcmp(var, "listen-ip")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set bind ip address: %s\n", val); set_pref_ip(val); } else if (!strcmp(var, "listen-port")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set bind port: %s\n", val); globals.port = atoi(val); } else if (!strcmp(var, "cookie")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set cookie: %s\n", val); set_pref_ei_cookie(val); } else if (!strcmp(var, "cookie-file")) { if (read_cookie_from_file(val) == 1) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to read cookie from %s\n", val); } } else if (!strcmp(var, "nodename")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set node name: %s\n", val); set_pref_ei_nodename(val); } else if (!strcmp(var, "shortname")) { globals.ei_shortname = switch_true(val); } else if (!strcmp(var, "kazoo-var-prefix")) { set_pref_kazoo_var_prefix(val); } else if (!strcmp(var, "compat-rel")) { if (atoi(val) >= 7) globals.ei_compat_rel = atoi(val); else switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid compatibility release '%s' specified\n", val); } else if (!strcmp(var, "nat-map")) { globals.nat_map = switch_true(val); } else if (!strcmp(var, "send-all-headers")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set send-all-headers: %s\n", val); globals.send_all_headers = switch_true(val); } else if (!strcmp(var, "send-all-private-headers")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set send-all-private-headers: %s\n", val); globals.send_all_private_headers = switch_true(val); } else if (!strcmp(var, "connection-timeout")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set connection-timeout: %s\n", val); globals.connection_timeout = atoi(val); } else if (!strcmp(var, "receive-timeout")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set receive-timeout: %s\n", val); globals.receive_timeout = atoi(val); } else if (!strcmp(var, "receive-msg-preallocate")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set receive-msg-preallocate: %s\n", val); globals.receive_msg_preallocate = atoi(val); } else if (!strcmp(var, "event-stream-preallocate")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set event-stream-preallocate: %s\n", val); globals.event_stream_preallocate = atoi(val); } else if (!strcmp(var, "send-msg-batch-size")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set send-msg-batch-size: %s\n", val); globals.send_msg_batch = atoi(val); } else if (!strcmp(var, "event-stream-framing")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set event-stream-framing: %s\n", val); globals.event_stream_framing = atoi(val); } } } if ((child = switch_xml_child(cfg, "event-filter"))) { switch_hash_t *filter; switch_core_hash_init(&filter); for (param = switch_xml_child(child, "header"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); switch_core_hash_insert(filter, var, "1"); } globals.event_filter = filter; } switch_xml_free(xml); } if (globals.receive_msg_preallocate < 0) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Invalid receive message preallocate value, disabled\n"); globals.receive_msg_preallocate = 0; } if (globals.event_stream_preallocate < 0) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Invalid event stream preallocate value, disabled\n"); globals.event_stream_preallocate = 0; } if (globals.send_msg_batch < 1) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Invalid send message batch size, reverting to default\n"); globals.send_msg_batch = 10; } if (!globals.event_filter) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Event filter not found in configuration, using default\n"); globals.event_filter = create_default_filter(); } if (globals.event_stream_framing < 1 || globals.event_stream_framing > 4) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Invalid event stream framing value, using default\n"); globals.event_stream_framing = 2; } if (zstr(globals.kazoo_var_prefix)) { set_pref_kazoo_var_prefix("variable_ecallmgr*"); globals.var_prefix_length = 17; //ignore the * } else { /* we could use the global pool but then we would have to conditionally * free the pointer if it was not drawn from the XML */ char *buf; int size = switch_snprintf(NULL, 0, "variable_%s*", globals.kazoo_var_prefix) + 1; switch_malloc(buf, size); switch_snprintf(buf, size, "variable_%s*", globals.kazoo_var_prefix); switch_safe_free(globals.kazoo_var_prefix); globals.kazoo_var_prefix = buf; globals.var_prefix_length = size - 2; //ignore the * } if (!globals.num_worker_threads) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Number of worker threads not found in configuration, using default\n"); globals.num_worker_threads = 10; } if (zstr(globals.ip)) { set_pref_ip("0.0.0.0"); } if (zstr(globals.ei_cookie)) { int res; char *home_dir = getenv("HOME"); char path_buf[1024]; if (!zstr(home_dir)) { /* $HOME/.erlang.cookie */ switch_snprintf(path_buf, sizeof (path_buf), "%s%s%s", home_dir, SWITCH_PATH_SEPARATOR, ".erlang.cookie"); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Checking for cookie at path: %s\n", path_buf); res = read_cookie_from_file(path_buf); if (res) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "No cookie or valid cookie file specified, using default cookie\n"); set_pref_ei_cookie("ClueCon"); } } } if (!globals.ei_nodename) { set_pref_ei_nodename("freeswitch"); } if (!globals.nat_map) { globals.nat_map = 0; } return SWITCH_STATUS_SUCCESS; }