#include #include #include #include int main(int argc, char *argv[]) { mme_hdl_t * hdl; qdb_hdl_t * db_hdl; qdb_result_t * res; int ret, r; hdl = mme_connect("/dev/mme/default", 0); if(hdl == NULL) { printf("Can't connect to mme\n"); return 0; } db_hdl = qdb_connect("mme", 0); if(db_hdl == NULL) { printf("Can't connect to database\n"); return 0; } res = qdb_query(db_hdl, 0, "SELECT fid FROM library WHERE ftype=1;"); if(res == NULL) { return NULL; } printf("Returned %d data items \n", qdb_rows(res)); for(r = 0; r < qdb_rows(res); r++) { uint64_t fid; char *data; uint32_t dsize; fid = *(uint64_t *)qdb_cell(res, r, 0); data = NULL; ret = mme_getphoto(hdl, fid, &data, &dsize); if(ret == -1) { printf("FID: %lld -> 0 bytes of photo information\n", fid); //Uncomment this to see if this helps with the memory leak //mme_freephoto(data); } else { printf("FID: %lld -> %d bytes of photo information\n", fid, dsize); mme_freephoto(data); } } qdb_freeresult(res); return 0; }