move iso.c to transfer.c, as it's used for all transfers.
move transfer callback to transfer.go.
This commit is contained in:
@@ -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 {
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user