summaryrefslogtreecommitdiffstats
path: root/channels/audin/client/oss
diff options
context:
space:
mode:
Diffstat (limited to 'channels/audin/client/oss')
-rw-r--r--channels/audin/client/oss/CMakeLists.txt7
-rw-r--r--channels/audin/client/oss/audin_oss.c27
2 files changed, 18 insertions, 16 deletions
diff --git a/channels/audin/client/oss/CMakeLists.txt b/channels/audin/client/oss/CMakeLists.txt
index 6b747e4..5b4dac9 100644
--- a/channels/audin/client/oss/CMakeLists.txt
+++ b/channels/audin/client/oss/CMakeLists.txt
@@ -30,7 +30,12 @@ set(${MODULE_PREFIX}_LIBS
)
include_directories(..)
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${OSS_INCLUDE_DIRS})
-
+configure_file(
+ ${CMAKE_SOURCE_DIR}/cmake/oss-includes.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/oss-includes.h
+ @ONLY
+)
add_channel_client_subsystem_library(${MODULE_PREFIX} ${MODULE_NAME} ${CHANNEL_NAME} "" TRUE "")
diff --git a/channels/audin/client/oss/audin_oss.c b/channels/audin/client/oss/audin_oss.c
index 979a800..c42c089 100644
--- a/channels/audin/client/oss/audin_oss.c
+++ b/channels/audin/client/oss/audin_oss.c
@@ -37,11 +37,7 @@
#include <libgen.h>
#include <limits.h>
#include <unistd.h>
-#if defined(__OpenBSD__)
-#include <soundcard.h>
-#else
-#include <sys/soundcard.h>
-#endif
+#include <oss-includes.h>
#include <sys/ioctl.h>
#include <freerdp/freerdp.h>
@@ -67,15 +63,15 @@ typedef struct
rdpContext* rdpcontext;
} AudinOSSDevice;
-#define OSS_LOG_ERR(_text, _error) \
- do \
- { \
- if (_error != 0) \
- { \
- char buffer[256] = { 0 }; \
- WLog_ERR(TAG, "%s: %i - %s\n", _text, _error, \
- winpr_strerror(_error, buffer, sizeof(buffer))); \
- } \
+#define OSS_LOG_ERR(_text, _error) \
+ do \
+ { \
+ if ((_error) != 0) \
+ { \
+ char buffer[256] = { 0 }; \
+ WLog_ERR(TAG, "%s: %i - %s\n", (_text), (_error), \
+ winpr_strerror((_error), buffer, sizeof(buffer))); \
+ } \
} while (0)
static UINT32 audin_oss_get_format(const AUDIO_FORMAT* format)
@@ -233,7 +229,8 @@ static DWORD WINAPI audin_oss_thread_func(LPVOID arg)
if (ioctl(pcm_handle, SNDCTL_DSP_SETFRAGMENT, &tmp) == -1)
OSS_LOG_ERR("SNDCTL_DSP_SETFRAGMENT failed", errno);
- buffer_size = (oss->FramesPerPacket * oss->format.nChannels * (oss->format.wBitsPerSample / 8));
+ buffer_size =
+ (1ull * oss->FramesPerPacket * oss->format.nChannels * (oss->format.wBitsPerSample / 8ull));
buffer = (BYTE*)calloc((buffer_size + sizeof(void*)), sizeof(BYTE));
if (NULL == buffer)