Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. #define DATA_SIZE 8192
  2.  
  3.  
  4. int main(int argc, const char * argv[]) {
  5.  
  6.  
  7. int sock;
  8. struct sockaddr_in broadcastAddr;
  9. char *broadcastIP;
  10. unsigned short broadcastPort;
  11. char sendString[100];
  12. int broadcastPermission;
  13. FILE *fptr;
  14. int fidIn;
  15. unsigned int iSamplesRead=0;
  16. unsigned char data[DATA_SIZE];
  17. unsigned long long millisecondsSinceEpoch=0;
  18. struct timeval tv;
  19.  
  20. NSString * path = [[NSBundle mainBundle] pathForResource:@"2 copy" ofType: @"raw"];
  21. fptr = fopen([path cStringUsingEncoding:1], "r");
  22.  
  23. if(fptr == NULL)
  24. {
  25. printf("Error!");
  26. exit(1);
  27. }
  28.  
  29. broadcastIP = "224.0.0.0";
  30. broadcastPort = 5014;
  31.  
  32. if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
  33. printf("socket() failed");
  34.  
  35.  
  36. broadcastPermission = 1;
  37. if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (void *) &broadcastPermission,
  38. sizeof(broadcastPermission)) < 0)
  39. printf("setsockopt() failed");
  40.  
  41.  
  42. memset(&broadcastAddr, 0, sizeof(broadcastAddr));
  43. broadcastAddr.sin_family = AF_INET;
  44. broadcastAddr.sin_addr.s_addr = inet_addr(broadcastIP);
  45. broadcastAddr.sin_port = htons(broadcastPort);
  46.  
  47. sprintf(sendString,"arecord -f cd -t wav");
  48.  
  49. printf("rn sendString %@",sendString);
  50. fidIn = fileno(fptr);
  51.  
  52. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  53. NSString *documentsDirectory = [paths objectAtIndex:0];
  54. NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"test_Output_Broadcast.wav"]];
  55.  
  56. NSLog(@"Output Filepath : %@",filePath);
  57.  
  58. for (;;)
  59. {
  60. bzero(sendString, strlen(sendString));
  61. sprintf(sendString,"###%010u",iSamplesRead++);
  62. printf("nr Sample Counter Starts: %d", iSamplesRead);
  63. printf("nr%s",sendString);
  64.  
  65.  
  66. if (sendto(sock, sendString, strlen(sendString), 0, (struct sockaddr *)
  67. &broadcastAddr, sizeof(broadcastAddr)) != strlen(sendString))
  68.  
  69. //printf("sendto() sent a different number of bytes than expected");
  70.  
  71. bzero(data,strlen(data));
  72. // Grab data from process execution
  73. ssize_t readSize = read(fidIn, data, DATA_SIZE);
  74. //size_t writeSize = fwrite(data, 1, 512, fptr);
  75. printf("rn readSize %ld n", readSize);
  76.  
  77. if (readSize == 0) {
  78.  
  79. char semahpor[10] = "END***";
  80. bzero(semahpor,strlen(semahpor));
  81.  
  82. sprintf(semahpor,"END***");
  83. printf("nr Sample Counter Ends: %d", iSamplesRead);
  84. if (sendto(sock,semahpor, strlen(semahpor), 0, (struct sockaddr *)
  85. &broadcastAddr, sizeof(broadcastAddr)) != strlen(semahpor))
  86. printf("sendto() sent a different number of bytes than expected");
  87. fclose(fptr);
  88.  
  89. }
  90.  
  91. if (sendto(sock, data, readSize, 0, (struct sockaddr *)
  92. &broadcastAddr, sizeof(broadcastAddr)) != readSize) {
  93. printf("sendto() sent a different number of bytes than expected");
  94. }
  95.  
  96.  
  97. gettimeofday(&tv, NULL);
  98. millisecondsSinceEpoch = (unsigned long long)(tv.tv_sec) * 1000 + (unsigned long long)(tv.tv_usec) / 1000;
  99. bzero(sendString,strlen(sendString));
  100. sprintf(sendString,"%020llu$$$",millisecondsSinceEpoch);
  101. printf("nr epoch : %llu",millisecondsSinceEpoch);
  102. printf("nr%s",sendString);
  103. // Broadcast sendString in datagram to clients every 3 seconds
  104. if (sendto(sock,sendString, strlen(sendString), 0, (struct sockaddr *)
  105. &broadcastAddr, sizeof(broadcastAddr)) != strlen(sendString))
  106. printf("sendto() sent a different number of bytes than expected");
  107.  
  108. }
  109.  
  110.  
  111.  
  112. return NSApplicationMain(argc, argv);
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement