Am Mittwoch, 5. August 2015, 21:38:45 schrieb Il Prof.:
> Sorry but that's not what i meant,
> i know how to use sqlite, what i don't understand is how the base curve is
> encoded in the sql database "line", the parameters are saved as a binary
> blob (i suppose encoded in some way)

The history table is the interesting part, the column "module" contains the 
module version and "op_params" the actual parameters. In the case of basecurve 
for module version 2 that is just the binary data from the following data 
structure:

typedef struct dt_iop_basecurve_params_t
{
  // three curves (c, ., .) with max number of nodes
  // the other two are reserved, maybe we'll have cam rgb at some point.
  dt_iop_basecurve_node_t basecurve[3][MAXNODES];
  int basecurve_nodes[3];
  int basecurve_type[3];
} dt_iop_basecurve_params_t;

If you want to peek into those binary blobs you can just load the matching 
libbasecurve.so and use its introspection to get/set single fields in what you 
have in the database.

If all you care about is generating entries you can just stick to the version 
2 format – even when we decide to bump the actual format used in dt – and rely 
on the update mechanisms that will allow darktable to keep understanding your 
then old format.

That being said, I am quite certain that putting basecurves into the database 
is the wrong thing to do.

Tobias

[...]

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to