Hi Klaus, Is casting the pointer to a byte (and sending it the same way as T_I8) not a good solution to this? As the Java API already uses the byte type. Could it cause issues? (I'm not very experienced with C++.) Using the Pointer class in JNA I believe I could work with a byte or int value.
Thanks, Norbert Date: Mon, 2 Jul 2018 13:46:57 +0200 > From: Klaus Espenlaub <klaus.espenl...@oracle.com> > To: vbox-dev@virtualbox.org > Subject: Re: [vbox-dev] queryBitmapInfo in Java API returns no image > address > Message-ID: <8f996c78-330d-efec-c92c-4e54081de...@oracle.com> > Content-Type: text/plain; charset="utf-8" > > Hi Norbert, > > On 01.07.2018 23:29, Szatm?ri Norbert P?ter wrote: > > Hello, > > I'm developing a Java frontend for VirtualBox machines and I managed > > to set it up to launch the machine inside the process and attach my > > framebuffer to it. It's receiving changes and updates, queryBitmapInfo > > returns all information correctly, except for the address out parameter. > > > > The array I'm using to hold the value is large enough for the whole > > screen but all of the values in the array remain 0, even after the > > machine has booted up and is running the guest OS. VirtualBox also > > seems to freeze for some seconds while the machine is running inside > > my application. > > (I'm also running my program as root as I was unable to set the setuid > > bit up correctly, but I don't have any issues running VBox as root, so > > I don't think it's related.) > > > > How can I receive images from the machine in Java? > > Right now? You don't. JXPCOM simply can't deal with such parameters. > Possibly fixable, didn't investigate if there are technical issues with > implementing "out" parameters of type "byte ptr". The code for handling > the various 'out' parameter passing cases is in > src/libs/xpcom18a4/java/src/nsJavaWrapper.cpp, function FinalizeParams > (which is called from Java through the JNI function callXPCOMMethod in > the same file). The 'in' case is in SetupParams. > > Apparently so far no one needed to call methods with pointer parameters. > > Klaus > > > VirtualBox version: 5.2.12 r122591 (Qt5.9.5) > > VBox API: Java XPCOM 5.2 > > OS: Ubuntu 18.04 x64, Java 8 > > > > My code in notifyChange: > > > > |display.querySourceBitmap(0L, holder); > > byte[] arr = bb.array(); //640 * 480 * 4 bytes backing a ByteBuffer > > long[] w = new long[1], h = new long[1], bpp = new long[1], bpl = > > new long[1], pf = new long[1]; > > holder.value.getTypedWrapped().queryBitmapInfo(arr, w, h, bpp, > > bpl, pf); > > System.out.println("Arr0:" + arr[0]); //Returns 0 > > System.out.println("whbppbplpf: " + w[0] + " " + h[0] + " " + > > bpp[0] + " " + bpl[0] + " " + pf[0]); //Returns correct values > > | > > > > Regards, > > Norbert >
_______________________________________________ vbox-dev mailing list vbox-dev@virtualbox.org https://www.virtualbox.org/mailman/listinfo/vbox-dev