MBED implementation of JAudioStream

Files at this revision

API Documentation at this revision

Comitter:
ollie8
Date:
Fri Aug 14 15:54:03 2015 +0000
Parent:
2:22ee01f24346
Child:
4:ebdd1cf0c9f7
Commit message:
Almost working, still fucked though!!

Changed in this revision

JAudioStream.cpp Show annotated file Show diff for this revision Revisions of this file
JAudioStream.h Show annotated file Show diff for this revision Revisions of this file
--- 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;
         }
     }
 }
--- a/JAudioStream.h	Thu Aug 13 16:19:50 2015 +0000
+++ b/JAudioStream.h	Fri Aug 14 15:54:03 2015 +0000
@@ -4,11 +4,10 @@
 #include "EthernetInterface.h"
 #include "UDPSocket.h"
 
-#define MAX_PACKT 24
+#define MAX_PACKT 48
 #define MESSAGE_SIZE 8
 #define MESSAGE_COMP_SIZE 4
 #define REQUEST_RESPONSE_MODE 1
-#define PORT 7777
 
 class JAudioStream {
     private:
@@ -20,7 +19,7 @@
         char* comt;
         char* hrbt;
         EthernetInterface eth;
-        UDPSocket udp;
+        UDPSocket socket;
         Endpoint endPoint;
         char* remoteIp;
         short remotePort;
@@ -29,17 +28,16 @@
         void buildMeassge(char*, int, char*);
         void buildMeassge(char*, int, char*, char*);
         void intTocharArr(int, char*);
-        void send(char*, short);
+        void send(char*, int);
         char* nowPlaying;
     public:
         JAudioStream();
         bool connect(char *, short, char *);
-        bool read(char*);
+        bool read(char*, int);
         bool isConnected();
         char* getNowPlaying();
         void request(char);
         void disconnect();
-        bool available();
         void receive();
 };