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 (
"log"
"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) {
t, err := e.newUSBTransfer(TRANSFER_TYPE_ISOCHRONOUS, buf)
if err != nil {

View File

@@ -18,25 +18,15 @@
#include <string.h>
void print_xfer(struct libusb_transfer *xfer);
void transfer_callback(void *);
void xfer_callback(void *);
void callback(struct libusb_transfer *xfer) {
//printf("Callback!\n");
//print_xfer(xfer);
transfer_callback(xfer->user_data);
xfer_callback(xfer->user_data);
}
int submit(struct libusb_transfer *xfer) {
xfer->callback = &callback;
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);
}

View File

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