From 24c8bcfe7f76b20124e2862ea050f815c0f768e7 Mon Sep 17 00:00:00 2001 From: tlatorre Date: Tue, 14 Aug 2018 10:08:27 -0500 Subject: move everything to src directory --- src/db.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/db.h (limited to 'src/db.h') diff --git a/src/db.h b/src/db.h new file mode 100644 index 0000000..fcc76fa --- /dev/null +++ b/src/db.h @@ -0,0 +1,40 @@ +#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 -- cgit