bluetooth: don't set auto_connect flag when discovering bt devices
authorLennart Poettering <lennart@poettering.net>
Sun, 4 Oct 2009 11:00:51 +0000 (13:00 +0200)
committerLennart Poettering <lennart@poettering.net>
Sun, 4 Oct 2009 11:00:51 +0000 (13:00 +0200)
src/modules/bluetooth/module-bluetooth-device.c
src/modules/bluetooth/module-bluetooth-discover.c

index 4592fca..0ba1421 100644 (file)
@@ -74,7 +74,8 @@ PA_MODULE_USAGE(
         "profile=<a2dp|hsp> "
         "rate=<sample rate> "
         "channels=<number of channels> "
-        "path=<device object path>");
+        "path=<device object path> "
+        "auto_connect=<automatically connect?>");
 
 /*
 #ifdef NOKIA
@@ -98,6 +99,7 @@ static const char* const valid_modargs[] = {
     "rate",
     "channels",
     "path",
+    "auto_connect",
 #ifdef NOKIA
     "sco_sink",
     "sco_source",
@@ -141,6 +143,7 @@ struct userdata {
     char *address;
     char *path;
     pa_bluetooth_discovery *discovery;
+    pa_bool_t auto_connect;
 
     pa_dbus_connection *connection;
 
@@ -399,7 +402,7 @@ static int get_caps(struct userdata *u, uint8_t seid) {
         pa_assert(u->profile == PROFILE_HSP);
         msg.getcaps_req.transport = BT_CAPABILITIES_TRANSPORT_SCO;
     }
-    msg.getcaps_req.flags = BT_FLAG_AUTOCONNECT;
+    msg.getcaps_req.flags = u->auto_connect ? BT_FLAG_AUTOCONNECT : 0;
 
     if (service_send(u, &msg.getcaps_req.h) < 0)
         return -1;
@@ -2363,6 +2366,12 @@ int pa__init(pa_module* m) {
         goto fail;
     }
 
+    u->auto_connect = TRUE;
+    if (pa_modargs_get_value_boolean(ma, "auto_connect", &u->auto_connect)) {
+        pa_log("Failed to parse auto_connect= argument");
+        goto fail;
+    }
+
     channels = u->sample_spec.channels;
     if (pa_modargs_get_value_u32(ma, "channels", &channels) < 0 ||
         channels <= 0 || channels > PA_CHANNELS_MAX) {
index 02fd424..0085fa8 100644 (file)
@@ -117,7 +117,7 @@ static pa_hook_result_t load_module_for_device(pa_bluetooth_discovery *y, const
 #endif
 
             if (d->audio_source_state >= PA_BT_AUDIO_STATE_CONNECTED)
-                args = pa_sprintf_malloc("%s profile=\"a2dp_source\"", args);
+                args = pa_sprintf_malloc("%s profile=\"a2dp_source\" auto_connect=no", args);
 
             pa_log_debug("Loading module-bluetooth-device %s", args);
             m = pa_module_load(u->module->core, "module-bluetooth-device", args);