This wraps the native virDomainScreenshot libvirt function available
since version 0.9.2.

Signed-off-by: Claudio Bley <[email protected]>
---
 src/main/java/org/libvirt/Domain.java      |   10 ++++++++++
 src/main/java/org/libvirt/Stream.java      |    4 ++++
 src/main/java/org/libvirt/jna/Libvirt.java |    1 +
 3 files changed, 15 insertions(+)

diff --git a/src/main/java/org/libvirt/Domain.java 
b/src/main/java/org/libvirt/Domain.java
index 1c0af91..a9113cf 100644
--- a/src/main/java/org/libvirt/Domain.java
+++ b/src/main/java/org/libvirt/Domain.java
@@ -1285,6 +1285,16 @@ public class Domain {
         processError(libvirt.virDomainSave(VDP, to));
     }
 
+    public String screenshot(Stream stream, int screen) throws 
LibvirtException {
+        Pointer ptr = processError(libvirt.virDomainScreenshot(this.VDP, 
stream.getVSP(), screen, 0));
+        stream.markReadable();
+        try {
+            return Library.getString(ptr);
+        } finally {
+            Library.free(ptr);
+        }
+    }
+
     /**
      * Configures the network to be automatically started when the host machine
      * boots.
diff --git a/src/main/java/org/libvirt/Stream.java 
b/src/main/java/org/libvirt/Stream.java
index 71a2a6e..97bebdd 100644
--- a/src/main/java/org/libvirt/Stream.java
+++ b/src/main/java/org/libvirt/Stream.java
@@ -175,6 +175,10 @@ public class Stream implements ByteChannel {
         return success;
     }
 
+    StreamPointer getVSP() {
+        return VSP;
+    }
+
     /**
      * Receives data from the stream into the buffer provided.
      *
diff --git a/src/main/java/org/libvirt/jna/Libvirt.java 
b/src/main/java/org/libvirt/jna/Libvirt.java
index c383ba6..80dacdb 100644
--- a/src/main/java/org/libvirt/jna/Libvirt.java
+++ b/src/main/java/org/libvirt/jna/Libvirt.java
@@ -305,6 +305,7 @@ public interface Libvirt extends Library {
     int virDomainResume(DomainPointer virDomainPtr);
     int virDomainSave(DomainPointer virDomainPtr, String to);
     int virDomainSendKey(DomainPointer virDomainPtr, int codeset, int 
holdtime, int[] keycodes, int nkeycodes, int flags);
+    Pointer virDomainScreenshot(DomainPointer virDomainPtr, StreamPointer 
virStreamPtr, int screen, int flags);
     int virDomainSetAutostart(DomainPointer virDomainPtr, int autoStart);
     int virDomainSetMaxMemory(DomainPointer virDomainPtr, NativeLong 
maxMemory);
     int virDomainSetMemory(DomainPointer virDomainPtr, NativeLong maxMemory);
-- 
1.7.9.5

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to