Skip to content

[Question] Struct width function in his fields #33

@Romakita

Description

@Romakita

Hello guys,

To begin, thanks for your awesome library :D.

I works libphoto2 integration inside nodejs module, and one the function used by libphoto2 require a complex structure like that:

 typedef struct _CameraFileHandler {
   // int (*size) (uint64_t *size); /* only for read? */
   int (*read) ( unsigned char *data, uint64_t *len);
   // int (*write) ( unsigned char *data, uint64_t *len);
} CameraFileHandler;

I tried to define a StructType like that:

const {refType} = require("ref");
const RefCB = refType("void");
const ffi = require("ffi-napi");

const StructCameraFileHandler = StructType({
  read: RefCB
});

const driver = ffi.Library("libgphoto2", {
   gp_file_new_from_handler: ["int", [refType(StructCameraFileHandler)]],
});

const file = new StructCameraFileHandler();
file.read = ffi.Callback("int", [StructPriv, types.CString, "int"], (data, length) => {
   console.log(data, length);
});

driver.gp_file_new_from_handler(file.ref());

But, my callback is never called. I'm not sure if the structure is correctly configured with ffi and ref-struct.
Do you have any idea ?

Thanks in advance ;)
See you,
Romain

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions