mirror of
https://git.planet-casio.com/Lephenixnoir/fxsdk.git
synced 2025-06-06 14:45:03 +02:00
Compare commits
2 commits
f1721186bb
...
b7803a6aed
Author | SHA1 | Date | |
---|---|---|---|
|
b7803a6aed | ||
|
a98bbff1c9 |
3 changed files with 41 additions and 0 deletions
|
@ -113,6 +113,9 @@ static void TUI_render_status(void)
|
||||||
struct fxlink_device *fdev = &TUI.devices.devices[i];
|
struct fxlink_device *fdev = &TUI.devices.devices[i];
|
||||||
struct fxlink_calc *calc = fdev->calc;
|
struct fxlink_calc *calc = fdev->calc;
|
||||||
|
|
||||||
|
if(fdev->idVendor != 0x07cf)
|
||||||
|
continue;
|
||||||
|
|
||||||
if(fdev->status == FXLINK_FDEV_STATUS_CONNECTED) {
|
if(fdev->status == FXLINK_FDEV_STATUS_CONNECTED) {
|
||||||
wattron(win, fmt_to_ncurses_attr(FMT_BGSELECTED));
|
wattron(win, fmt_to_ncurses_attr(FMT_BGSELECTED));
|
||||||
mvwhline(win, y, 0, ' ', w);
|
mvwhline(win, y, 0, ' ', w);
|
||||||
|
|
|
@ -632,6 +632,29 @@ bool fxlink_device_start_bulk_OUT(struct fxlink_device *fdev,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool fxlink_device_has_bulk_OUT(struct fxlink_device *fdev)
|
||||||
|
{
|
||||||
|
struct fxlink_comm *comm = fdev->comm;
|
||||||
|
return comm && comm->claimed && comm->ftransfer_OUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fxlink_device_wait_bulk_OUT(
|
||||||
|
libusb_context *ctx, struct fxlink_device *fdev)
|
||||||
|
{
|
||||||
|
while(fxlink_device_has_bulk_OUT(fdev))
|
||||||
|
libusb_handle_events(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool fxlink_device_send_bulk_OUT(
|
||||||
|
libusb_context *ctx, struct fxlink_device *fdev,
|
||||||
|
char const *app, char const *type, void const *data, int size)
|
||||||
|
{
|
||||||
|
if(!fxlink_device_start_bulk_OUT(fdev, app, type, data, size, false))
|
||||||
|
return false;
|
||||||
|
fxlink_device_wait_bulk_OUT(ctx, fdev);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//---
|
//---
|
||||||
// Polled file descriptor tracking
|
// Polled file descriptor tracking
|
||||||
//---
|
//---
|
||||||
|
|
|
@ -235,6 +235,21 @@ bool fxlink_device_start_bulk_OUT(struct fxlink_device *fdev,
|
||||||
char const *app, char const *type, void const *data, int size,
|
char const *app, char const *type, void const *data, int size,
|
||||||
bool own_data);
|
bool own_data);
|
||||||
|
|
||||||
|
/* Check whether a device currently has an ongoing OUT transfer. */
|
||||||
|
bool fxlink_device_has_bulk_OUT(struct fxlink_device *fdev);
|
||||||
|
|
||||||
|
/* Wait for an ongoing OUT transfer to finish. If there is no such transfer
|
||||||
|
ongoing, this function is a no-op. */
|
||||||
|
void fxlink_device_wait_bulk_OUT(
|
||||||
|
libusb_context *ctx, struct fxlink_device *fdev);
|
||||||
|
|
||||||
|
/* Run an OUT transfer on the device and wait for its completion. Note that if
|
||||||
|
the calculator does not properly receive the data for whatever reason, this
|
||||||
|
function will never return. */
|
||||||
|
bool fxlink_device_send_bulk_OUT(
|
||||||
|
libusb_context *ctx, struct fxlink_device *fdev,
|
||||||
|
char const *app, char const *type, void const *data, int size);
|
||||||
|
|
||||||
/* Interrupt any active transfers on the device. */
|
/* Interrupt any active transfers on the device. */
|
||||||
void fxlink_device_interrupt_transfers(struct fxlink_device *fdev);
|
void fxlink_device_interrupt_transfers(struct fxlink_device *fdev);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue