/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set et sw=2 ts=2: */ /*************************************************************************** * crosscomposer.cc * * Sun Jul 29 10:01:48 CEST 2012 * Copyright 2012 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of Cross Composer. * * Cross Composer is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Cross Composer is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Cross Composer; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include #include "socket.h" #include "audioin.h" #include "audioout.h" #include "audio.h" #define NUM_SAMPLES 940 int main(int argc, char *argv[]) { sample_t samples[NUM_SAMPLES]; Socket s; s.open("127.0.0.1", 10000); int loop = 100; return pamain(); switch(fork()) { case 0: { AudioIn in("default", "Capture", 44100, 1); s.setSend(0); while(loop--) { 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; //samples[i] *= 30; } s.sendTo(samples, sz * sizeof(sample_t)); printf("s"); fflush(stdout); } printf("S!\n"); } break; default: { s.setRecv(); AudioOut out("default", 44100, 1); while(loop--) { int sz = s.recvFrom(samples, sizeof(samples)); out.write(samples, sz / sizeof(sample_t)); sz = sz; printf("r%f", samples[0]); fflush(stdout); } printf("R!\n"); } break; } return 0; }