MBED implementation of JAudioStream

Revision:
3:51a66c975910
Parent:
2:22ee01f24346
Child:
4:ebdd1cf0c9f7
--- a/JAudioStream.cpp	Thu Aug 13 16:19:50 2015 +0000
+++ b/JAudioStream.cpp	Fri Aug 14 15:54:03 2015 +0000
@@ -17,42 +17,22 @@
 bool JAudioStream::connect(char* ip, short port, char* name) {
     eth.init();
     eth.connect();
-    udp.init();
-    udp.set_blocking(true);
+    socket.init();
+    socket.set_blocking(true);
     remotePort = port;
     remoteIp = ip;
     endPoint.set_address(ip, port);
-    char size = MESSAGE_SIZE*2;
-    char message[size];
+    char message[MESSAGE_SIZE*2];
     buildMeassge(cont, REQUEST_RESPONSE_MODE, name, message);
-    send(message, size);    
+    send(message, MESSAGE_SIZE*2);    
     return connected;
 }
 
-bool JAudioStream::read(char *buffer) {
-    bool result = false;
+bool JAudioStream::read(char *buffer, int size) {
     INFO("Reading...");
-    if (udp.receiveFrom(endPoint, buffer, sizeof(buffer)) > 0) {
-        INFO("Received: %s", buffer);
-        result = true;        
-    }
-    return result;
-}
-
-bool JAudioStream::available() {
-    if (inTransmission) {
-        return true;
-    } else {
-        char resp[MAX_PACKT];
-        if (read(resp)) {
-            if (memcmp(resp, begn, 4) == 0) {
-                memmove(&nowPlaying[0], &resp[4], 20);
-                inTransmission = true;
-                return true;
-            }
-        }
-    }
-    return false;
+    socket.receiveFrom(endPoint, buffer, size);
+    INFO("Received: %s", buffer);
+    return true;
 }
 
 bool JAudioStream::isConnected() {
@@ -73,30 +53,38 @@
 
 void JAudioStream::buildMeassge(char* cmd, int param, char* message) {
     char bParam[MESSAGE_COMP_SIZE];
+    intTocharArr(param, bParam);
     char i;
     for (i=0; i<MESSAGE_COMP_SIZE; i++) {
         message[i] = cmd[i];
     }
-    intTocharArr(param, bParam);
     for (i=MESSAGE_COMP_SIZE; i<MESSAGE_SIZE; i++) {
         message[i] = bParam[i-MESSAGE_COMP_SIZE];
     }
 }
 
 void JAudioStream::buildMeassge(char* cmd, int param, char* data, char* message) {
+    INFO("Building message...");
     char bParam[MESSAGE_COMP_SIZE];
     char i;
+    INFO("Adding command");
     for (i=0; i<MESSAGE_COMP_SIZE; i++) {
         message[i] = cmd[i];
+        INFO("char = %u", message[i]);
     }
+    INFO("Adding param");
     intTocharArr(param, bParam);
     for (i=MESSAGE_COMP_SIZE; i<MESSAGE_SIZE; i++) {
         message[i] = bParam[i-MESSAGE_COMP_SIZE];
+        INFO("char = %u", message[i]);
     }
+    INFO("Adding data");
     char dataSize = MESSAGE_SIZE*2;
     for (i=MESSAGE_SIZE; i<dataSize; i++) {
         message[i] = data[i-MESSAGE_SIZE];
+        INFO("char = %u", message[i]);
     }
+    INFO("Message complete. %d", sizeof(message));
 }
 
 void JAudioStream::intTocharArr(int value, char* buff) {
@@ -106,9 +94,9 @@
     buff[3] = value;
 }
 
-void JAudioStream::send(char* data, short len) {
-    INFO("Sending: %s", data);
-    udp.sendTo(endPoint, data, len);
+void JAudioStream::send(char* data, int size ) {
+    INFO("Sending: %s %d", data, size);
+    socket.sendTo(endPoint, data, size);
 }
 
 char* JAudioStream::getNowPlaying() {
@@ -117,13 +105,16 @@
 
 void JAudioStream::receive() {
     char resp[MAX_PACKT];
-    if (read(resp)) {
+    if (read(resp, MAX_PACKT)) {
         if (memcmp(resp, cond, 4) == 0) {
             connected = true;
         } else if (memcmp(resp, hrbt, 4) == 0) {
             char message[MESSAGE_SIZE];
             buildMeassge(hrbt, -1, message);
             send(message, MESSAGE_SIZE);     
+        } else if (memcmp(resp, begn, 4) == 0) {
+            memmove(&nowPlaying[0], &resp[4], 20);
+            inTransmission = true;
         }
     }
 }