#ifndef DB_H #define DB_H /* This is a library for importing title banks from SNOMAN files. Each bank is * stored in a dictionary with the bank name and id as the key. For example, to * load the DQXX files: * * dbval *dbval; * * db_init(); * load_file("DQXX_0000010000.dat"); * dbval = get_bank("DQCH",1); * db_free(); * * The return value of get_bank() is a pointer to the bank values. It's up to * the caller to know the exact offsets for each value in the bank. Typically, * SNO database title banks have a database header of 20 words and 10 unused * words at the beginning of the bank. * * Note: Currently only 32 bit unsigned integers and 32 bit floating point * numbers are supported. I don't think that any of the SNOMAN files have * doubles. */ #include /* for uint32_t */ #include "dict.h" typedef union dbval { uint32_t u32; float f; } dbval; extern char db_err[256]; dict *db_init(void); void db_free(dict *db); int add_bank(dict *db, const char name[4], uint32_t id, dbval *data); dbval *get_bank(dict *db, const char name[4], uint32_t id); int load_file(dict *db, const char *filename); #endif