forked from lexesv/gobass.dll
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcallbacks.go
More file actions
31 lines (25 loc) · 833 Bytes
/
callbacks.go
File metadata and controls
31 lines (25 loc) · 833 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package bass
import (
"runtime/cgo"
"unsafe"
)
/*
#include "bass.h"
#include "_gobass_callbacks.h"
#cgo CFLAGS: -Wno-pointer-to-int-cast
*/
import "C"
type GoSyncproc = func(sync Sync, channel Channel, data int)
//export _GoSyncprocCallback
func _GoSyncprocCallback(sync C.HSYNC, channel C.HCHANNEL, data C.DWORD, userdata unsafe.Pointer) {
fn := cgo.Handle(uintptr(userdata)).Value().(GoSyncproc)
fn(Sync(sync), Channel{handle: channel}, int(data))
}
var (
STREAMPROC_DEVICE *C.STREAMPROC = C.STREAMPROC_DEVICE
STREAMPROC_PUSH *C.STREAMPROC = C.STREAMPROC_PUSH
STREAMPROC_DUMMY *C.STREAMPROC = C.STREAMPROC_DUMMY
RecordCallbackStreamPutData *C.RECORDPROC = C._get_GoBassRecordCallbackStreamPutData()
goSyncprocCallback *C.SYNCPROC = C._get_GoSyncprocCallbackWrapper()
SyncprocFree *C.SYNCPROC = C._get_SyncprocFree()
)