int network_manager_init(DBusConnection *conn) { read_config(CONFIGDIR "/network.conf"); if (bnep_init()) { error("Can't init bnep module"); return -1; } /* * There is one socket to handle the incomming connections. NAP, * GN and PANU servers share the same PSM. The initial BNEP message * (setup connection request) contains the destination service * field that defines which service the source is connecting to. */ if (server_init(conn, conf_security, conf_master) < 0) return -1; /* Register network server if it doesn't exist */ btd_register_adapter_driver(&network_server_driver); if (connection_init(conn) < 0) return -1; btd_register_device_driver(&network_panu_driver); btd_register_device_driver(&network_gn_driver); btd_register_device_driver(&network_nap_driver); connection = dbus_connection_ref(conn); return 0; }
int input_manager_init(DBusConnection *conn, GKeyFile *config) { GError *err = NULL; if (config) { idle_timeout = g_key_file_get_integer(config, "General", "IdleTimeout", &err); if (err) { DBG("input.conf: %s", err->message); g_error_free(err); } } connection = dbus_connection_ref(conn); #ifndef BT_ALT_STACK btd_register_adapter_driver(&input_server_driver); #endif btd_register_device_driver(&input_hid_driver); #ifndef BT_ALT_STACK btd_register_device_driver(&input_headset_driver); #endif return 0; }
int reporter_init(struct btd_adapter *adapter) { struct reporter_adapter *radapter; DBusConnection *conn; if (!main_opts.gatt_enabled) { DBG("GATT is disabled"); return -ENOTSUP; } conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); if (!conn) return -1; radapter = g_new0(struct reporter_adapter, 1); radapter->adapter = adapter; radapter->conn = conn; link_loss_register(adapter, radapter->conn); register_tx_power(adapter); imm_alert_register(adapter, radapter->conn); btd_register_device_driver(&reporter_device_driver); reporter_adapters = g_slist_prepend(reporter_adapters, radapter); DBG("Proximity Reporter for adapter %p", adapter); return 0; }
int serial_manager_init(DBusConnection *conn) { connection = dbus_connection_ref(conn); btd_register_adapter_driver(&serial_proxy_driver); btd_register_device_driver(&serial_port_driver); return 0; }
int batterystate_manager_init(DBusConnection *conn) { int ret; ret = btd_register_device_driver(&battery_device_driver); if (!ret) connection = dbus_connection_ref(conn); return ret; }
int thermometer_manager_init(DBusConnection *conn) { int ret; ret = btd_register_device_driver(&thermometer_device_driver); if (ret < 0) return ret; connection = dbus_connection_ref(conn); return 0; }
int hdp_manager_init(DBusConnection *conn) { if (hdp_manager_start(conn)) return -1; connection = dbus_connection_ref(conn); btd_register_adapter_driver(&hdp_adapter_driver); btd_register_device_driver(&hdp_device_driver); return 0; }
static int serial_init(void) { conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); if (conn == NULL) return -EIO; if (serial_manager_init(conn) < 0) { dbus_connection_unref(conn); return -EIO; } btd_register_device_driver(&serial_driver); return 0; }
static int hog_manager_init(void) { return btd_register_device_driver(&hog_driver); }
int audio_manager_init(DBusConnection *conn, GKeyFile *conf, gboolean *enable_sco) { char **list; int i; char *str; gboolean b; GError *err = NULL; connection = dbus_connection_ref(conn); if (!conf) goto proceed; config = conf; list = g_key_file_get_string_list(config, "General", "Enable", NULL, NULL); for (i = 0; list && list[i] != NULL; i++) { if (g_str_equal(list[i], "Headset")) enabled.headset = TRUE; else if (g_str_equal(list[i], "Gateway")) enabled.gateway = TRUE; else if (g_str_equal(list[i], "Sink")) enabled.sink = TRUE; else if (g_str_equal(list[i], "Source")) enabled.source = TRUE; else if (g_str_equal(list[i], "Control")) enabled.control = TRUE; else if (g_str_equal(list[i], "Socket")) enabled.socket = TRUE; else if (g_str_equal(list[i], "Media")) enabled.media = TRUE; } g_strfreev(list); list = g_key_file_get_string_list(config, "General", "Disable", NULL, NULL); for (i = 0; list && list[i] != NULL; i++) { if (g_str_equal(list[i], "Headset")) enabled.headset = FALSE; else if (g_str_equal(list[i], "Gateway")) enabled.gateway = FALSE; else if (g_str_equal(list[i], "Sink")) enabled.sink = FALSE; else if (g_str_equal(list[i], "Source")) enabled.source = FALSE; else if (g_str_equal(list[i], "Control")) enabled.control = FALSE; else if (g_str_equal(list[i], "Socket")) enabled.socket = FALSE; else if (g_str_equal(list[i], "Media")) enabled.media = FALSE; } g_strfreev(list); b = g_key_file_get_boolean(config, "General", "AutoConnect", &err); if (err) { DBG("audio.conf: %s", err->message); g_clear_error(&err); } else auto_connect = b; b = g_key_file_get_boolean(config, "Headset", "HFP", &err); if (err) g_clear_error(&err); else enabled.hfp = b; err = NULL; i = g_key_file_get_integer(config, "Headset", "MaxConnected", &err); if (err) { DBG("audio.conf: %s", err->message); g_clear_error(&err); } else max_connected_headsets = i; str = g_key_file_get_string(config, "WBspeech", "I2sEnable", &err); if (err) g_clear_error(&err); else { wbs_commands_param.I2sEnable = strtol(str, NULL, 16); } str = g_key_file_get_string(config, "WBspeech", "IsMaster", &err); if (err) g_clear_error(&err); else { wbs_commands_param.IsMaster = strtol(str, NULL, 16); } str = g_key_file_get_string(config, "WBspeech", "ClockRate", &err); if (err) g_clear_error(&err); else { wbs_commands_param.ClockRate = strtol(str, NULL, 16); } str = g_key_file_get_string(config, "WBspeech", "PcmInterfaceRate", &err); if (err) g_clear_error(&err); else { wbs_commands_param.PcmInterfaceRate = strtol(str, NULL, 16); } proceed: if (enabled.socket) unix_init(); if (enabled.media) btd_register_adapter_driver(&media_server_driver); if (enabled.headset) btd_register_adapter_driver(&headset_server_driver); if (enabled.gateway) btd_register_adapter_driver(&gateway_server_driver); if (enabled.source || enabled.sink) btd_register_adapter_driver(&a2dp_server_driver); if (enabled.control) btd_register_adapter_driver(&avrcp_server_driver); btd_register_device_driver(&audio_driver); *enable_sco = (enabled.gateway || enabled.headset); return 0; }