Petter Bellander / Mbed 2 deprecated Saab-BT

Dependencies:   mbed

Revision:
5:8e468fef2754
Parent:
4:3041a571b7a7
Child:
6:c454f88524d6
--- a/RN52.cpp	Tue Jan 05 22:10:16 2016 +0000
+++ b/RN52.cpp	Mon Jan 11 20:49:59 2016 +0000
@@ -24,16 +24,16 @@
     printf("Serial baudrate set\r\n");
 }
 
-bool RN52::check_event(RN52_RESULT * rn52_result){
+bool RN52::check_event(RN52_RESULT * result){
     static bool last = 0;
     if((last == 1) && (event_pin == 0)) {
-        get(RN52_GETSTATUS, rn52_result);
-        switch (rn52_result->event) {
+        get(RN52_GETSTATUS, result);
+        switch (result->event) {
             case RN52_CALLER_ID_EVENT:
-                get(RN52_CALLER_ID, rn52_result);
+                get(RN52_CALLER_ID, result);
                 break;
             case RN52_TRACK_CHANGE_EVENT:
-                get(RN52_TRACK_METADATA, rn52_result);
+                get(RN52_TRACK_METADATA, result);
                 break;
         }
         last = event_pin;
@@ -43,42 +43,44 @@
     return 0;
 }
 
+bool RN52::connect(){
+    char response[40];
+    serial.printf(CONNECT);
+    return capture_response(response);
+}
 
-bool RN52::set(RN52_COMMAND cmd){
+bool RN52::disconnect(){
+    char response[40];
+    serial.printf(DISCONNECT);
+    return capture_response(response);
+}
+
+bool RN52::next_track(){
     char response[40];
-    switch (cmd) {
-        case RN52_PLAYPAUSE:
-            serial.printf(PLAYPAUSE);
-            break;
-        case RN52_NEXTTRACK:
-            serial.printf(NEXTTRACK);
-            break;
-        case RN52_PREVTRACK:
-            serial.printf(PREVTRACK);
-            break;
-        case RN52_CONNECT:
-            serial.printf(CONNECT);
-            break;
-        case RN52_DISCONNECT:
-            serial.printf(DISCONNECT);
-            break;
-        case RN52_REBOOT:
-            serial.printf(REBOOT);
-            break;
-        case RN52_VOLUMEUP:
-            serial.printf(VOLUMEUP);
-            break;
-        case RN52_MAXVOLUME:
-            serial.printf(MAXVOLUME);
-            break;
-        case RN52_ASSISTANT:
-            serial.printf(ASSISTANT);
-            break;
-        default:
-            return false;
-    }
-    capture_response(response);
-    return (response[0] == 'A');
+    serial.printf(NEXTTRACK);
+    return capture_response(response);
+}
+
+bool RN52::prev_track(){
+    char response[40];
+    serial.printf(PREVTRACK);
+    return capture_response(response);
+}
+
+bool RN52::toggle_play(){
+    char response[40];
+    serial.printf(PLAYPAUSE);
+    return capture_response(response);
+}
+
+bool RN52::maxvolume(){
+    char response[40];
+    //serial.printf(MAXVOLUME);
+    serial.printf(VOLUMEUP);
+    serial.printf(VOLUMEUP);
+    serial.printf(VOLUMEUP);
+    serial.printf(VOLUMEUP);
+    return capture_response(response);
 }
 
 bool RN52::get(RN52_COMMAND cmd, RN52_RESULT * result){
@@ -120,7 +122,7 @@
 }
 
 
-void RN52::capture_response(char * str){        
+bool RN52::capture_response(char * str){        
     char c = ' ';
     char n = 0;
     while(c != '\n') {
@@ -131,4 +133,5 @@
         }   
     }
     str[n] = '\0';
+    return (str[0] == 'A');
 }
\ No newline at end of file