From 7be3db60a0efba40a0c10a4476490a05fa62a1bc Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Thu, 17 May 2012 18:41:13 +0000 Subject: Ajout des premiers bouts de code pour les tests : test1 = prise de son via pulse audio (à l'arache avec le modèle "simple") test2 = premières illuminations avec le projo LED test3 = fade R/G/B et jeu avec les problématiques de timing test4 = à faire : Appli GTK pour assembler les tests précédents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///var/svn/2012-violon-leds/trunk@2 6be1fa4d-33ac-4c33-becc-79fcb3794bb6 --- tests/test1/compil.sh | 3 ++ tests/test1/test1.c | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100755 tests/test1/compil.sh create mode 100644 tests/test1/test1.c (limited to 'tests/test1') 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 +#endif + +#include +#include +#include +#include + +#include +#include + +#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 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; +} -- cgit v1.2.3