Procházet zdrojové kódy

Attemp to fix the streamer..

jancoow před 9 roky
rodič
revize
95bd0aa150
6 změnil soubory, kde provedl 36 přidání a 34 odebrání
  1. 3 1
      .idea/InternetRadio.iml
  2. 6 2
      alarm.c
  3. 0 1
      displayHandler.c
  4. 13 18
      httpstream.c
  5. 8 4
      httpstream.h
  6. 6 8
      network.c

+ 3 - 1
.idea/InternetRadio.iml

@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module type="CPP_MODULE" version="4">
   <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/CMakeLists.txt" isTestSource="false" />
+    </content>
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module-library">
       <library name="Header Search Paths">

+ 6 - 2
alarm.c

@@ -71,7 +71,7 @@ void setSnooze(int idx){
 	alarm[idx].state = 2;
 	snooze[idx].snoozeTime = ct;
 	snooze[idx].snoozeTime.tm_min += alarm[idx].snooze;
-	stopStream();
+	//stopStream();
 }
 
 int daysInMonth(int m, int y) {
@@ -124,7 +124,11 @@ void setState(int idx){
 	}
 	
 	if (compareTime(ct, alarm[idx].time) >= 1 && alarm[idx].time.tm_year != 0 && alarm[idx].state != 2){
-		alarm[idx].state = 1;
+		if(alarm[idx].state != 1) {
+			alarm[idx].state = 1;
+			printf("\n\nAlarm gaat nu af!\n\n");
+			playStream(alarm[idx].ip, alarm[idx].port, alarm[idx].url);
+		}
 	} else if (alarm[idx].state != 2){
 		alarm[idx].state = 0;
 	}

+ 0 - 1
displayHandler.c

@@ -72,7 +72,6 @@ void displayAlarm(int line_number, int line_numberTwo, int idx)
     if (line_number > -1 && line_number < 2){
         (*write_display_ptr[line_number])(str, 16);
     }
-    playStream(am.ip, am.port, am.url);
 
 	j = 0;
     char str2[16];

+ 13 - 18
httpstream.c

@@ -28,14 +28,9 @@
 #include "ntp.h"
 #include "httpstream.h"
 
-#define MAX_HEADERLINE 512
-
 bool isStreaming;
 
 TCPSOCKET *sock;
-u_short mss = 1460;
-u_long rx_to = 3000;
-u_short tcpbufsiz = 8760;
 FILE *stream;
 u_long metaint;
 
@@ -44,24 +39,24 @@ THREAD(Stream, args)
     if(stream) {
         PlayMp3Stream(stream, metaint);
     }
+    fclose(stream);
+    NutTcpCloseSocket(sock);
+    VsPlayerStop();
     stopStream();
+    printf("Stopping http stream..");
     NutThreadExit();
 }
 
 void playStream(char *ipaddr, u_short port, char *radiourl){
     if(isStreaming != true){
-        isStreaming = true;
         ConnectStation(sock, inet_addr(ipaddr), port, radiourl, &metaint);
-        VsPlayerKick();
-        NutThreadCreate("Stream", Stream, NULL, 1024);
+        isStreaming = true;
+        NutThreadCreate("Stream", Stream, NULL, 512);
     }
 }
 
 void stopStream(){
     isStreaming = false;
-    fclose(stream);
-    NutTcpCloseSocket(sock);
-    VsPlayerStop();
 }
 
 bool HttpIsStreaming(){
@@ -78,23 +73,23 @@ void ConnectStation(TCPSOCKET *sock, u_long ip, u_short port, char *radiourl, u_
      */
     if ((sock = NutTcpCreateSocket()) == 0)
         printf("Probleem bij het creereen van tcp socket");
-    if (NutTcpSetSockOpt(sock, TCP_MAXSEG, &mss, sizeof(mss)))
+    if (NutTcpSetSockOpt(sock, TCP_MAXSEG, MSS, sizeof(MSS)))
         printf("Probleem bij het creereen van tcp socket");
-    if (NutTcpSetSockOpt(sock, SO_RCVTIMEO, &rx_to, sizeof(rx_to)))
+    if (NutTcpSetSockOpt(sock, SO_RCVTIMEO, RX_TO, sizeof(RX_TO)))
         printf("Probleem bij het creereen van tcp socket");
-    if (NutTcpSetSockOpt(sock, SO_RCVBUF, &tcpbufsiz, sizeof(tcpbufsiz)))
+    if (NutTcpSetSockOpt(sock, SO_RCVBUF, TCPBUFSIZE, sizeof(TCPBUFSIZE)))
         printf("Probleem bij het creereen van tcp socket");
 
     printf("Connecting %s:%u...", inet_ntoa(ip), port);
     if ((rc = NutTcpConnect(sock, ip, port))) {
         printf("Error: Connect failed with %d\n", ip);
-        return 0;
+        return;
     }
     puts("OK");
 
     if ((stream = _fdopen((int) sock, "r+b")) == 0) {
         printf("Error: Can't create stream");
-        return 0;
+        return;
     }
 
     /*
@@ -192,7 +187,7 @@ int ProcessMetaData(FILE *stream)
 
 void PlayMp3Stream(FILE *stream, u_long metaint)
 {
-    size_t rbytes;
+    size_t rbytes = 0;
     u_char *mp3buf;
     u_char ief;
     int got = 0;
@@ -284,4 +279,4 @@ void PlayMp3Stream(FILE *stream, u_long metaint)
             break;
         }
     }
-}
+}

+ 8 - 4
httpstream.h

@@ -7,9 +7,13 @@
 
 #include "ntp.h"
 
-extern bool HttpIsStreaming();
-extern void playStream(char *ipaddr, u_short port, char *radiourl);
-extern void stopStream();
+#define MAX_HEADERLINE 512
+#define MSS 1460
+#define RX_TO 3000
+#define TCPBUFSIZE 8760
 
+extern bool HttpIsStreaming(void);
+extern void playStream(char *ipaddr, u_short port, char *radiourl);
+extern void stopStream(void);
 
-#endif /* _Httpstream_H */
+#endif /* _Httpstream_H */

+ 6 - 8
network.c

@@ -67,7 +67,7 @@ void httpGet(char address[], void (*parser)(char*)){
     }else if (NutTcpConnect(sock, inet_addr("62.195.226.247"), 80)) {
         printf("Can't connect to server\n");
     }else if (NutTcpSetSockOpt(sock, SO_RCVTIMEO, &rx_to, sizeof(rx_to))){
-
+        printf("Can't set sock options\n");
     }else{
         FILE *stream;
         stream = _fdopen((int) sock, "r+b");
@@ -92,16 +92,14 @@ void httpGet(char address[], void (*parser)(char*)){
             }
         }
         fclose(stream);
+
+        content[t] = '\0';
+        printf("\nContent size: %d, Content: %s \n", t, content);
+        parser(content);
+        free(content);
     }
     NutTcpCloseSocket(sock);
-
-    content[t] = '\0';
-    printf("\nContent size: %d, Content: %s \n", t, content);
-    parser(content);
-    free(content);
-
     isReceiving = false;
-    return content;
 }
 
 bool NetworkIsReceiving(void){