in wrap.go [189:212]
func setupStream(paths []string, flags CreateFlags, callbackInfo uintptr, eventID uint64, latency time.Duration, deviceID int32) FSEventStreamRef {
cPaths, err := createPaths(paths)
if err != nil {
log.Printf("Error creating paths: %s", err)
}
defer C.CFRelease(C.CFTypeRef(cPaths))
since := C.FSEventStreamEventId(eventID)
context := C.FSEventStreamContext{}
info := C.uintptr_t(callbackInfo)
cfinv := C.CFTimeInterval(float64(latency) / float64(time.Second))
var ref C.FSEventStreamRef
if deviceID != 0 {
ref = C.EventStreamCreateRelativeToDevice(&context, info,
C.dev_t(deviceID), cPaths, since, cfinv,
C.FSEventStreamCreateFlags(flags))
} else {
ref = C.EventStreamCreate(&context, info, cPaths, since,
cfinv, C.FSEventStreamCreateFlags(flags))
}
return FSEventStreamRef(ref)
}