From cc923d73a5a24581241cca0ae7e1c4b59b89a224 Mon Sep 17 00:00:00 2001 From: Sergey Alirzaev Date: Fri, 12 Nov 2010 09:51:47 +0300 Subject: [PATCH] Some small oss fixes --- CMakeLists.txt | 3 ++- src/libsvc/audio_api_oss.c | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3768e16..3eb8d21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -299,4 +299,5 @@ ELSE(BUILD_TESTS) ENDIF(BUILD_TESTS) - +SET_SOURCE_FILES_PROPERTIES(src/libsvc/audio_api_oss.c + PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wextra") diff --git a/src/libsvc/audio_api_oss.c b/src/libsvc/audio_api_oss.c index f156b58..5fc16a7 100644 --- a/src/libsvc/audio_api_oss.c +++ b/src/libsvc/audio_api_oss.c @@ -14,6 +14,9 @@ #include #include +#if defined(__OpenBSD__) || defined(__NetBSD__) // Stolen from mpd; seems sensible +#include +#else /* using sys/soundcard.h to avoid adding /usr/include/sys/ to the include path * because it causes the nasty include loop[1]; it is against 4front's * recommendations though[2] @@ -21,6 +24,7 @@ * [1] http://sprunge.us/VZXW * [2] http://manuals.opensound.com/developer/programming.html */ #include +#endif #include "audio_api.h" #include "thread.h" @@ -32,7 +36,7 @@ static audio_data_t* input_audio_data; static audio_data_t* output_audio_data; static int fd; -static unsigned int fs; /* frame size */ +static uint_fast32_t fs; /* frame size */ static thread_t rt; static thread_t wt; @@ -56,11 +60,12 @@ static void oss_open(unsigned int rate) { } static void *reader(void *_) { + (void)_; size_t s = fs * 2; int16_t *buf = malloc(s); assert(buf); while (true) { - ssize_t i; + size_t i; i = 0; while (i < s) { @@ -77,11 +82,12 @@ static void *reader(void *_) { } static void *writer(void *_) { + (void)_; size_t s = fs * 2; int16_t *buf = malloc(s); assert(buf); while (true) { - ssize_t i; + size_t i; oss_playback_callback(output_audio_data); @@ -115,6 +121,11 @@ int close_audio() { thread_exit(rt); assert(rt != 0); assert(rt = 0); + + thread_exit(wt); + assert(wt != 0); + assert(wt = 0); + audio_data_destroy(input_audio_data); audio_data_destroy(output_audio_data); return 0; -- 2.11.4.GIT