summaryrefslogtreecommitdiff
path: root/src/crosscomposer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/crosscomposer.cc')
-rw-r--r--src/crosscomposer.cc49
1 files changed, 40 insertions, 9 deletions
diff --git a/src/crosscomposer.cc b/src/crosscomposer.cc
index c8992ff..010aa92 100644
--- a/src/crosscomposer.cc
+++ b/src/crosscomposer.cc
@@ -27,22 +27,53 @@
*/
#include <stdio.h>
+#include "socket.h"
+
#include "audioin.h"
#include "audioout.h"
+#define NUM_SAMPLES 940
+
int main(int argc, char *argv[])
{
- AudioIn in("default", "Capture", 44101, 1);
- AudioOut out("default", 44101, 1);
-
sample_t samples[940];
- int i = 50;
- while(i--) {
- int sz = in.read(samples, sizeof(samples));
- out.write(samples, sz);
- printf("."); fflush(stdout);
+ Socket s;
+ s.open("127.0.0.1", 10000);
+
+ switch(fork()) {
+ case 0:
+ {
+ AudioIn in("default", "Capture", 44100, 1);
+ s.setSend(0);
+
+ int i = 50;
+ while(i--) {
+ int sz = in.read(samples, NUM_SAMPLES);
+ for(size_t i = 0; i < NUM_SAMPLES; i++) {
+ samples[i] = ((sample_t)rand() / (float)RAND_MAX) * 10;
+ }
+ s.sendTo(samples, sz * sizeof(sample_t));
+ printf("s"); fflush(stdout);
+ }
+ printf("S!\n");
+ }
+ break;
+
+ default:
+ {
+ s.setRecv();
+ AudioOut out("default", 44100, 1);
+
+ int i = 50;
+ while(i--) {
+ int sz = s.recvFrom(samples, sizeof(samples));
+ out.write(samples, sz / sizeof(sample_t));
+ printf("r%f", samples[0]); fflush(stdout);
+ }
+ printf("R!\n");
+ }
+ break;
}
- printf("!\n");
return 0;
}