From 25f0db3ecd0b6a53b84f0e72cd73d666074f1113 Mon Sep 17 00:00:00 2001 From: Klaus Reimer Date: Sun, 24 Feb 2013 02:03:11 +0100 Subject: [PATCH] Send dataEventOccurred event when control IRP has finished. --- .../ailis/usb4java/support/ControlIrpQueue.java | 15 ++++++++++++--- .../ailis/usb4java/topology/Usb4JavaDevice.java | 3 ++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/ailis/usb4java/support/ControlIrpQueue.java b/src/main/java/de/ailis/usb4java/support/ControlIrpQueue.java index 91beb97..49f5ff9 100644 --- a/src/main/java/de/ailis/usb4java/support/ControlIrpQueue.java +++ b/src/main/java/de/ailis/usb4java/support/ControlIrpQueue.java @@ -12,6 +12,7 @@ import java.nio.ByteBuffer; import javax.usb.UsbControlIrp; import javax.usb.UsbException; import javax.usb.UsbIrp; +import javax.usb.event.UsbDeviceDataEvent; import de.ailis.usb4java.exceptions.Usb4JavaException; import de.ailis.usb4java.jni.USB_Dev_Handle; @@ -24,15 +25,22 @@ import de.ailis.usb4java.topology.Usb4JavaDevice; */ public final class ControlIrpQueue extends AbstractIrpQueue { + /** The USB device listener list. */ + private final UsbDeviceListenerList listeners; + /** * Constructor. - * + * * @param device * The USB device. + * @param listeners + * The USB device listener list. */ - public ControlIrpQueue(final Usb4JavaDevice device) + public ControlIrpQueue(final Usb4JavaDevice device, + final UsbDeviceListenerList listeners) { super(device); + this.listeners = listeners; } /** @@ -64,6 +72,7 @@ public final class ControlIrpQueue extends AbstractIrpQueue @Override protected void finishIrp(final UsbIrp irp) { - // Empty + this.listeners.dataEventOccurred(new UsbDeviceDataEvent( + this.device, (UsbControlIrp) irp)); } } diff --git a/src/main/java/de/ailis/usb4java/topology/Usb4JavaDevice.java b/src/main/java/de/ailis/usb4java/topology/Usb4JavaDevice.java index fee31c1..c23bfc8 100644 --- a/src/main/java/de/ailis/usb4java/topology/Usb4JavaDevice.java +++ b/src/main/java/de/ailis/usb4java/topology/Usb4JavaDevice.java @@ -81,7 +81,8 @@ public abstract class Usb4JavaDevice implements UsbDevice private UsbPort port; /** The IRP queue. */ - private final ControlIrpQueue queue = new ControlIrpQueue(this); + private final ControlIrpQueue queue = new ControlIrpQueue(this, + this.listeners); /** * Constructor.