bluetooth: Fix some native backend command sending
authorArun Raghavan <arun@accosted.net>
Fri, 31 Oct 2014 04:45:02 +0000 (10:15 +0530)
committerArun Raghavan <arun@accosted.net>
Fri, 31 Oct 2014 05:17:56 +0000 (10:47 +0530)
We weren't writing out one character from the "OK" response, and the
"AT" part of the "+VGS" and "+VGM" commands was missing. Also, the spec
says that the command is terminated by only a CR and not an LF (probably
doesn't hurt, but let's adhere to the spec for now).

src/modules/bluetooth/backend-native.c

index aa2b756..a9dc64c 100644 (file)
@@ -248,7 +248,7 @@ static void rfcomm_io_callback(pa_mainloop_api *io, pa_io_event *e, int fd, pa_i
 
         pa_log_debug("RFCOMM >> OK");
 
-        len = write(fd, "\r\nOK\r\n", 5);
+        len = write(fd, "\r\nOK\r\n", 6);
 
         /* we ignore any errors, it's not critical and real errors should
          * be caught with the HANGUP and ERROR events handled above */
@@ -285,8 +285,8 @@ static void set_speaker_gain(pa_bluetooth_transport *t, uint16_t gain) {
 
     t->speaker_gain = gain;
 
-    len = sprintf(buf, "+VGS=%d\r\n", gain);
-    pa_log_debug("RFCOMM >> +VGS=%d", gain);
+    len = sprintf(buf, "AT+VGS=%d\r", gain);
+    pa_log_debug("RFCOMM >> AT+VGS=%d", gain);
 
     written = write(trfc->rfcomm_fd, buf, len);
 
@@ -304,8 +304,8 @@ static void set_microphone_gain(pa_bluetooth_transport *t, uint16_t gain) {
 
     t->microphone_gain = gain;
 
-    len = sprintf(buf, "+VGM=%d\r\n", gain);
-    pa_log_debug("RFCOMM >> +VGM=%d", gain);
+    len = sprintf(buf, "AT+VGM=%d\r", gain);
+    pa_log_debug("RFCOMM >> AT+VGM=%d", gain);
 
     written = write (trfc->rfcomm_fd, buf, len);