Thanks, it works I get an instance of FFIOpaqueObject.
But how do I get a specific libusb_device object from the list?
Thanks again for you quick answer :-).
Julien
On 01/07/16 11:44, Esteban Lorenzano wrote:
Hi,
an opaque structure is not an FFIExternalObject but an FFIOpaqueObject.
in that case, something like (simplified):
ctx := (your context).
list := FFIOpaqueObject new.
size := self getDevice: ctx list: list.
getDevice: ctx list: list
^ self ffiCall: #(size_t libusb_get_device_list (libusb_context *ctx,
FFIOpaqueObject ***list))
should work (note that of course you can make libusb_device an alias for your
type… that does not matters much, this is just a simplification).
if this does not works, if you can provide me code to reproduce it, I can give
it a shot and see what happens :)
Esteban
On 01 Jul 2016, at 11:19, Julien Delplanque <jul...@tamere.eu> wrote:
Hello everyone,
I have a question about the UFFI API. I have the following function:
ssize_t libusb_get_device_list (libusb_context *ctx, libusb_device ***list)
where libusb_device is an opaque structure.
I made a type mapping "ssize_t" -> "int" and an object inheriting
from FFIExternalObject for the "libusb_context" (others methods
using it are working).
I can not find how to get an array filled with libusb_device using UFFI from
Pharo. :-(
Thanks in advance,
Julien