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 (
|
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 {
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user