diff options
Diffstat (limited to 'tests/test1')
-rwxr-xr-x | tests/test1/compil.sh | 3 | ||||
-rw-r--r-- | tests/test1/test1.c | 121 |
2 files changed, 124 insertions, 0 deletions
diff --git a/tests/test1/compil.sh b/tests/test1/compil.sh new file mode 100755 index 0000000..b54d0be --- /dev/null +++ b/tests/test1/compil.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +gcc -o test1 test1.c -lpulse-simple diff --git a/tests/test1/test1.c b/tests/test1/test1.c new file mode 100644 index 0000000..e99d2ff --- /dev/null +++ b/tests/test1/test1.c @@ -0,0 +1,121 @@ +/*** + This file is part of PulseAudio. + + PulseAudio is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, + or (at your option) any later version. + + PulseAudio 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 Lesser General Public License + along with PulseAudio; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. + ***/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdio.h> +#include <unistd.h> +#include <string.h> +#include <errno.h> + +#include <pulse/simple.h> +#include <pulse/error.h> + +#define BUFSIZE 1024 + +/* A simple routine calling UNIX write() in a loop */ +static ssize_t loop_write(int fd, const void*data, size_t size) { + ssize_t ret = 0; + + while (size > 0) { + ssize_t r; + + if ((r = write(fd, data, size)) < 0) + return r; + + if (r == 0) + break; + + ret += r; + data = (const uint8_t*) data + r; + size -= (size_t) r; + } + + return ret; +} + +int main(int argc, char*argv[]) { + + + /* The sample type to use */ + static const pa_sample_spec ss = { + .format = PA_SAMPLE_S16LE, + .rate = 44100, + .channels = 2 + }; + pa_simple *s = NULL; + int ret = 1; + int error; + int i,j; + float sum; + + /* Create the recording stream */ + if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_RECORD, NULL, "record", &ss, NULL, NULL, &error))) { + fprintf(stderr, __FILE__": pa_simple_new() failed: %s\n", pa_strerror(error)); + goto finish; + } + + j=0; + for (;;) { + uint8_t buf[BUFSIZE]; + + /* Record some data ... */ + if (pa_simple_read(s, buf, sizeof(buf), &error) < 0) { + fprintf(stderr, __FILE__": pa_simple_read() failed: %s\n", pa_strerror(error)); + goto finish; + } + +//printf("DEBUG : BUFSIZE==%i\n", BUFSIZE); + sum=0; + for (i=0;i<BUFSIZE;i=i+4) { +//printf("DEBUG : i==%i\n", i); + sum= (buf[i]*256+buf[i+1] -26000 ); + } + + if ( sum > 2000 || sum < -2000) { + printf("!"); + } else { + printf("."); + } + fflush(stdout); + + //printf("%i\t%f\n", j++, sum); +/* if (printf("%f\n", sum)) { + fprintf(stderr, __FILE__": write() failed: %s\n", strerror(errno)); + goto finish; + } +*/ + /* And write it to STDOUT + if (loop_write(STDOUT_FILENO, buf, sizeof(buf)) != sizeof(buf)) { + fprintf(stderr, __FILE__": write() failed: %s\n", strerror(errno)); + goto finish; + }*/ + } + + ret = 0; + +finish: + + if (s) + pa_simple_free(s); + + return ret; +} |