Skip to content

Commit 9d6600c

Browse files
committed
Add AutoCloseable to CaptureStream for try-with-resources support
1 parent 9d87a9e commit 9d6600c

2 files changed

Lines changed: 7 additions & 2 deletions

File tree

src/main/java/io/github/doblon8/openpnp/capture/CaptureStream.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import static io.github.doblon8.openpnp.capture.bindings.openpnp_capture.Cap_closeStream;
44
import static io.github.doblon8.openpnp.capture.bindings.openpnp_capture.Cap_isOpenStream;
55

6-
public class CaptureStream {
6+
public class CaptureStream implements AutoCloseable {
77
private final CaptureContext context;
88
private final int id;
99

@@ -27,6 +27,7 @@ public boolean isOpen() {
2727
*
2828
* @throws CaptureException if an error occurs while closing the capture stream.
2929
*/
30+
@Override
3031
public void close() {
3132
int result = Cap_closeStream(context.getSegment(), id);
3233
CaptureResult captureResult = CaptureResult.values()[result];

src/test/java/Scratch.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,18 @@ void main() {
99
var version = OpenPnpCapture.getLibraryVersion();
1010
System.out.println("OpenPnP Capture Library Version: " + version);
1111

12-
setLogLevel(LogLevel.ERROR);
12+
setLogLevel(LogLevel.DEBUG);
1313
installCustomLogFunction((logLevel, message) -> System.out.println("Custom Log [" + logLevel + "]: " + message));
1414

1515
try (var capture = new OpenPnpCapture()) {
1616
// No checking if devices and format are available, just get the first ones for testing
1717
var device = capture.getDevices().getFirst();
1818
var format = device.getFormats().getFirst();
1919
System.out.println("Using device '" + device.getName() + "' with format " + format);
20+
21+
try (var stream = device.openStream(format)) {
22+
System.out.println("Stream is open: " + stream.isOpen());
23+
}
2024
} catch (CaptureException e) {
2125
System.err.println("Error using CaptureContext: " + e.getMessage());
2226
}

0 commit comments

Comments
 (0)