summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerge A. Zaitsev <zaitsev.serge@gmail.com>2017-10-03 12:30:33 +0300
committerSerge A. Zaitsev <zaitsev.serge@gmail.com>2017-10-03 12:30:33 +0300
commitc2f8addd210c4e41d9aa6d05b9c6487bc2a6ff84 (patch)
treeecc03948f953236a9adbebb4d0a5c34887bfc6d9
parent7b7b350faaf3294deb0e58e4f769ebab567201dd (diff)
go bindings: fix unsafe.Pointer warning
-rw-r--r--rtaudio.go24
1 files changed, 18 insertions, 6 deletions
diff --git a/rtaudio.go b/rtaudio.go
index c033942..8b0f644 100644
--- a/rtaudio.go
+++ b/rtaudio.go
@@ -20,12 +20,25 @@ package rtaudio
#cgo darwin CXXFLAGS: -D__MACOSX_CORE__
#cgo darwin LDFLAGS: -framework CoreAudio -framework CoreFoundation
+#include <stdlib.h>
+#include <stdint.h>
#include "rtaudio_c.h"
extern int goCallback(void *out, void *in, unsigned int nFrames,
- double stream_time, rtaudio_stream_status_t status,
- void *userdata);
-
+ double stream_time, rtaudio_stream_status_t status, void *userdata);
+
+static inline void cgoRtAudioOpenStream(rtaudio_t audio,
+ rtaudio_stream_parameters_t *output_params,
+ rtaudio_stream_parameters_t *input_params,
+ rtaudio_format_t format,
+ unsigned int sample_rate,
+ unsigned int *buffer_frames,
+ int cb_id,
+ rtaudio_stream_options_t *options) {
+ rtaudio_open_stream(audio, output_params, input_params,
+ format, sample_rate, buffer_frames,
+ goCallback, (void *)(uintptr_t)cb_id, options, NULL);
+}
*/
import "C"
import (
@@ -463,9 +476,8 @@ func (audio *rtaudio) Open(out, in *StreamParams, format Format, sampleRate uint
audio.cb = cb
k := registerAudio(audio)
- C.rtaudio_open_stream(audio.audio, cOutPtr, cInPtr,
- C.rtaudio_format_t(format), C.uint(sampleRate), &framesCount,
- C.rtaudio_cb_t(C.goCallback), unsafe.Pointer(uintptr(k)), cOptsPtr, nil)
+ C.cgoRtAudioOpenStream(audio.audio, cOutPtr, cInPtr,
+ C.rtaudio_format_t(format), C.uint(sampleRate), &framesCount, C.int(k), cOptsPtr)
if C.rtaudio_error(audio.audio) != nil {
return errors.New(C.GoString(C.rtaudio_error(audio.audio)))
}