]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
cleaned up audio.c
authorJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Wed, 13 Jul 2016 14:02:07 +0000 (14:02 +0000)
committerJohn Melton - G0ORX/N6LYT <john.d.melton@googlemail.com>
Wed, 13 Jul 2016 14:02:07 +0000 (14:02 +0000)
audio.c
pihpsdr
release/pihpsdr.tar
release/pihpsdr/pihpsdr

diff --git a/audio.c b/audio.c
index 22aa428a8a6a32effea27720847ed32759870062..431b5b386a7358cbfddc55e96949d5a939af9c4b 100644 (file)
--- a/audio.c
+++ b/audio.c
@@ -39,10 +39,6 @@ int audio_buffer_size = 2016; // samples (both left and right)
 
 static pa_simple *stream;
 
-static sem_t audioBufferFull;
-static sem_t audioBufferEmpty;
-static pthread_t audioThreadId;
-
 // each buffer contains 63 samples of left and right audio at 16 bits
 #define AUDIO_SAMPLES 63
 #define AUDIO_SAMPLE_SIZE 2
@@ -52,9 +48,6 @@ static pthread_t audioThreadId;
 
 static unsigned char *audio_buffer;
 static int audio_offset=0;
-static int running;
-
-void* audioThread(void* arg);
 
 int audio_init() {
 
@@ -75,34 +68,16 @@ fprintf(stderr,"audio_init audio_buffer_size=%d\n",audio_buffer_size);
         return -1;
     }
 
-    int res=sem_init(&audioBufferFull, 0, 0);
-    if(res!=0) {
-        fprintf(stderr,"audio_init: sem_init failed for audioBufferFull%d\n", res);
-        return -1;
-    }
-
-    res=sem_init(&audioBufferEmpty, 0, 0);
-    if(res!=0) {
-        fprintf(stderr,"audio_init: sem_init failed for audioBufferEmpty%d\n", res);
-        return -1;
-    }
-
-    res=pthread_create(&audioThreadId, NULL, audioThread, NULL);
-    if(res<0) {
-        fprintf(stderr, "Error creating DFC thread: %d\n", res);
-        return -1;
-    }
-
-fprintf(stderr,"... audio_init\n");
     return 0;
 }
 
 void audio_close() {
-  running=0;
+  pa_simple_free(stream);
 }
 
 void audio_write(double* buffer,int samples) {
     int i;
+    int result;
     int error;
 
     for(i=0;i<samples;i++) {
@@ -115,43 +90,13 @@ void audio_write(double* buffer,int samples) {
         audio_buffer[audio_offset++]=right_sample;
 
         if(audio_offset==AUDIO_BUFFER_SIZE) {
-            if (pa_simple_write(stream, audio_buffer, (size_t)AUDIO_BUFFER_SIZE, &error) < 0) {
+            result=pa_simple_write(stream, audio_buffer, (size_t)AUDIO_BUFFER_SIZE, &error);
+            if(result< 0) {
                 fprintf(stderr, __FILE__": pa_simple_write() failed: %s\n", pa_strerror(error));
-                _exit(1);
+                //_exit(1);
             }
             audio_offset=0;
         }
     }
 
 }
-
-void* audioThread(void* arg) {
-    int error;
-    fprintf(stderr,"audioThread running on cpu%d\n", sched_getcpu());
-    running=1;
-
-    while(running) {
-
-/*
-        error=sem_post(&audioBufferEmpty);
-        if(error!=0) {
-            fprintf(stderr, "audioThread: sem_post failed for audioBufferEmpty: %d\n", error);
-            _exit(1);
-        }
-*/
-        error=sem_wait(&audioBufferFull);
-        if(error!=0) {
-            fprintf(stderr, "audioThread: sem_wait failed for audioBufferFull: %d\n", error);
-            _exit(1);
-        }
-
-        if (pa_simple_write(stream, audio_buffer, (size_t)AUDIO_BUFFER_SIZE, &error) < 0) {
-            fprintf(stderr, __FILE__": pa_simple_write() failed: %s\n", pa_strerror(error));
-            _exit(1);
-        }
-    }
-
-    fprintf(stderr,"audioThread: ending\n");
-    pa_simple_free(stream);
-
-}
diff --git a/pihpsdr b/pihpsdr
index 85d98ea0c7a2135d9e5802e080fc87331d86cb7a..3d72ae35d77ee2726b1470b5a47de314cdc5626b 100755 (executable)
Binary files a/pihpsdr and b/pihpsdr differ
index afff376d46e1dc7d8620a5517c644ec672a78ba4..e37f3161406cf7e310f514cff1c7c0da14cef3bd 100644 (file)
Binary files a/release/pihpsdr.tar and b/release/pihpsdr.tar differ
index 85d98ea0c7a2135d9e5802e080fc87331d86cb7a..28029f40b4a125f3a5265174d6648ccafbc17b5d 100755 (executable)
Binary files a/release/pihpsdr/pihpsdr and b/release/pihpsdr/pihpsdr differ