move iso.c to transfer.c, as it's used for all transfers.

move transfer callback to transfer.go.
This commit is contained in:
Sebastian Zagrodzki
2017-02-10 22:11:54 +01:00
parent d7ed6d67e6
commit 31b3ac1c67
3 changed files with 8 additions and 19 deletions

View File

@@ -23,15 +23,8 @@ import "C"
import ( import (
"log" "log"
"time" "time"
"unsafe"
) )
//export transfer_callback
func transfer_callback(cptr unsafe.Pointer) {
ch := *(*chan struct{})(cptr)
close(ch)
}
func isochronous_xfer(e *endpoint, buf []byte, timeout time.Duration) (int, error) { func isochronous_xfer(e *endpoint, buf []byte, timeout time.Duration) (int, error) {
t, err := e.newUSBTransfer(TRANSFER_TYPE_ISOCHRONOUS, buf) t, err := e.newUSBTransfer(TRANSFER_TYPE_ISOCHRONOUS, buf)
if err != nil { if err != nil {

View File

@@ -18,25 +18,15 @@
#include <string.h> #include <string.h>
void print_xfer(struct libusb_transfer *xfer); void print_xfer(struct libusb_transfer *xfer);
void transfer_callback(void *); void xfer_callback(void *);
void callback(struct libusb_transfer *xfer) { void callback(struct libusb_transfer *xfer) {
//printf("Callback!\n"); xfer_callback(xfer->user_data);
//print_xfer(xfer);
transfer_callback(xfer->user_data);
} }
int submit(struct libusb_transfer *xfer) { int submit(struct libusb_transfer *xfer) {
xfer->callback = &callback; xfer->callback = &callback;
xfer->status = -1; xfer->status = -1;
//print_xfer(xfer);
//printf("Transfer submitted\n");
/* fake
strcpy(xfer->buffer, "hello");
xfer->actual_length = 5;
callback(xfer);
return 0; */
return libusb_submit_transfer(xfer); return libusb_submit_transfer(xfer);
} }

View File

@@ -29,6 +29,12 @@ import (
"unsafe" "unsafe"
) )
//export xfer_callback
func xfer_callback(cptr unsafe.Pointer) {
ch := *(*chan struct{})(cptr)
close(ch)
}
type usbTransfer struct { type usbTransfer struct {
xfer *C.struct_libusb_transfer xfer *C.struct_libusb_transfer
pkts []*C.struct_libusb_packet_descriptor pkts []*C.struct_libusb_packet_descriptor