MBED implementation of JAudioStream
Revision 3:51a66c975910, committed 2015-08-14
- 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(); };