annotate audioDB_API.h @ 369:6564be3109c5 gcc-4.3-cleanups

gcc-4.3 warning cleanups for lshlib.cpp (I do not believe that any of these changes contain significant copyrightable "intellectual property". However, to the extent that they do, the changes are hereby released into the Public Domain, and may be therefore be used by anyone for any purpose without need for consideration of any kind.)
author mas01cr
date Wed, 12 Nov 2008 15:23:32 +0000
parents 8749d5bf6361
children 9742ea0ac33d
rev   line source
mas01ik@355 1 /* for API questions contact
mas01ik@355 2 * Christophe Rhodes c.rhodes@gold.ac.uk
mas01ik@355 3 * Ian Knopke mas01ik@gold.ac.uk, ian.knopke@gmail.com */
mas01ik@355 4
mas01ik@355 5
mas01ik@355 6 /*******************************************************************/
mas01ik@355 7 /* Data types for API */
mas01ik@355 8
mas01ik@355 9 /* The main struct that stores the name of the database, and in future will hold all
mas01ik@355 10 * kinds of other interesting information */
mas01ik@355 11 /* This basically gets passed around to all of the other functions */
mas01ik@355 12 struct adb {
mas01ik@355 13
mas01ik@355 14 char * dbname;
mas01ik@355 15 unsigned int ntracks; /* number of tracks */
mas01ik@355 16 unsigned int datadim; /* dimensionality of stored data */
mas01ik@355 17
mas01ik@355 18 };
mas01ik@355 19 typedef struct adb adb_t, *adb_ptr;
mas01ik@355 20
mas01ik@355 21 //used for both insert and batchinsert
mas01ik@355 22 struct adbinsert {
mas01ik@355 23
mas01ik@355 24 char * features;
mas01ik@355 25 char * power;
mas01ik@355 26 char * key;
mas01ik@355 27 char * times;
mas01ik@355 28
mas01ik@355 29 };
mas01ik@355 30 typedef struct adbinsert adb_insert_t, *adb_insert_ptr;
mas01ik@355 31
mas01ik@355 32 /* struct for returning status results */
mas01ik@355 33 struct adbstatus {
mas01ik@355 34
mas01ik@355 35 unsigned int numFiles;
mas01ik@355 36 unsigned int dim;
mas01ik@355 37 unsigned int length;
mas01ik@355 38 unsigned int dudCount;
mas01ik@355 39 unsigned int nullCount;
mas01ik@355 40 unsigned int flags;
mas01ik@355 41
mas01ik@355 42 };
mas01ik@355 43 typedef struct adbstatus adb_status_t, *adb_status_ptr;
mas01ik@355 44
mas01ik@355 45 /* needed for constructing a query */
mas01ik@355 46 struct adbquery {
mas01ik@355 47
mas01ik@355 48 char * querytype;
mas01ik@355 49 char * feature; //usually a file of some kind
mas01ik@355 50 char * power; //also a file
mas01ik@355 51 char * keylist; //also a file
mas01ik@355 52 char * qpoint; //position
mas01ik@355 53 char * numpoints;
mas01ik@355 54 char * radius;
mas01ik@355 55 char * resultlength; //how many results to make
mas01ik@355 56 char * sequencelength;
mas01ik@355 57 char * sequencehop;
mas01ik@355 58 double absolute_threshold;
mas01ik@355 59 double relative_threshold;
mas01ik@355 60 int exhaustive; //hidden option in gengetopt
mas01ik@355 61 double expandfactor; //hidden
mas01ik@355 62 int rotate; //hidden
mas01ik@355 63
mas01ik@355 64 };
mas01ik@355 65 typedef struct adbquery adb_query_t,*adb_query_ptr;
mas01ik@355 66
mas01ik@355 67 /* ... and for getting query results back */
mas01ik@355 68 struct adbqueryresult {
mas01ik@355 69
mas01ik@355 70 int sizeRlist; /* do I really need to return all 4 sizes here */
mas01ik@355 71 int sizeDist;
mas01ik@355 72 int sizeQpos;
mas01ik@355 73 int sizeSpos;
mas01ik@355 74 char **Rlist;
mas01ik@355 75 double *Dist;
mas01ik@355 76 unsigned int *Qpos;
mas01ik@355 77 unsigned int *Spos;
mas01ik@355 78
mas01ik@355 79 };
mas01ik@355 80 typedef struct adbqueryresult adb_queryresult_t, *adb_queryresult_ptr;
mas01ik@355 81
mas01ik@355 82
mas01ik@355 83 /*******************************************************************/
mas01ik@355 84 /* Function prototypes for API */
mas01ik@355 85
mas01ik@355 86
mas01ik@355 87 /* open an existing database */
mas01ik@355 88 /* returns a struct or NULL on failure */
mas01ik@355 89 adb_ptr audiodb_open(char * path);
mas01ik@355 90
mas01ik@355 91 /* create a new database */
mas01ik@355 92 /* returns a struct or NULL on failure */
mas01ik@355 93 //adb_ptr audiodb_create(char * path,long ntracks, long datadim);
mas01ik@355 94 adb_ptr audiodb_create(char * path,long datasize, long ntracks, long datadim);
mas01ik@355 95
mas01ik@355 96 /* close a database */
mas01ik@355 97 void audiodb_close(adb_ptr db);
mas01ik@355 98
mas01ik@355 99 /* You'll need to turn both of these on to do anything useful */
mas01ik@355 100 int audiodb_l2norm(adb_ptr mydb);
mas01ik@355 101 int audiodb_power(adb_ptr mydb);
mas01ik@355 102
mas01ik@355 103 /* insert functions */
mas01ik@355 104 int audiodb_insert(adb_ptr mydb, adb_insert_ptr ins);
mas01ik@355 105 int audiodb_batchinsert(adb_ptr mydb, adb_insert_ptr ins, unsigned int size);
mas01ik@355 106
mas01ik@355 107 /* query function */
mas01ik@355 108 int audiodb_query(adb_ptr mydb, adb_query_ptr adbq, adb_queryresult_ptr adbqres);
mas01ik@355 109
mas01ik@355 110 /* database status */
mas01ik@355 111 int audiodb_status(adb_ptr mydb, adb_status_ptr status);
mas01ik@355 112
mas01ik@355 113 /* varoius dump formats */
mas01ik@355 114 int audiodb_dump(adb_ptr mydb);
mas01cr@360 115 int audiodb_dump_withdir(adb_ptr mydb, const char *outputdir);
mas01ik@355 116
mas01ik@355 117