Hello.

I found this in structure:

enum fp_print_data_type {
         PRINT_DATA_RAW = 0, /* memset-imposed default */
         PRINT_DATA_NBIS_MINUTIAE,
};

struct fp_print_data {
         uint16_t driver_id;
         uint32_t devtype;
         enum fp_print_data_type type;
         size_t length;
         unsigned char data[0];  // OK, it's array from one element
};

But when I enroll my finger, the data has the length 2404 elements. How it  
change it's size?

I'm porting libfprint to qt4 and I need transform this struct to  
QByteArray and back. I successfully write data to byteArray, but I have  
difficult with backward procedure. See the function:


struct fp_print_data CFingerprintScanner::byteArrayToFpdata(QByteArray  
byteArray)
{
     quint16 driver_id;
     quint32 devtype;
     quint32 type;
     quint64 length;
     char * data;

     struct fp_print_data fpdata;

     QBuffer buffer(&byteArray);
     buffer.open(QIODevice::ReadOnly);

     QDataStream in(&buffer);

     in >> driver_id;
     in >> devtype;
     in >> type;
     in >> length;

     data = (char *) malloc(length);

     in.readRawData(data, length);

     fpdata.driver_id = (uint16_t) driver_id;
     fpdata.devtype = (uint32_t) devtype;
     fpdata.type = (enum fp_print_data_type) type;
     fpdata.length = (size_t) length;

     // in this I must write data to fpdata.data, but how can I do it?
     // it's not possible to convert char * (or unsigned char*) to unsigned  
char[0]

     free(data);

     return fpdata;
}

I'm disappointed. Somebody can tell me how can I change size of this array?

-- 
За використання революційного клієнта електронної пошти Opera:  
http://www.opera.com/mail/
_______________________________________________
fprint mailing list
fprint@reactivated.net
http://lists.reactivated.net/mailman/listinfo/fprint

Reply via email to