comparison src/xs_length.c @ 751:55eea3fa8868

Rename some structures.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 05 Nov 2012 18:42:57 +0200
parents 9321ffa2ea7e
children 15f0c8e11338
comparison
equal deleted inserted replaced
750:3180bf22090f 751:55eea3fa8868
28 #include <string.h> 28 #include <string.h>
29 29
30 30
31 /* Free memory allocated for given SLDB node 31 /* Free memory allocated for given SLDB node
32 */ 32 */
33 static void xs_sldb_node_free(sldb_node_t *node) 33 static void xs_sldb_node_free(XSSLDBNode *node)
34 { 34 {
35 if (node) { 35 if (node) {
36 /* Nothing much to do here ... */ 36 /* Nothing much to do here ... */
37 g_free(node->lengths); 37 g_free(node->lengths);
38 g_free(node); 38 g_free(node);
40 } 40 }
41 41
42 42
43 /* Insert given node to db linked list 43 /* Insert given node to db linked list
44 */ 44 */
45 static void xs_sldb_node_insert(xs_sldb_t *db, sldb_node_t *node) 45 static void xs_sldb_node_insert(XSSLDB *db, XSSLDBNode *node)
46 { 46 {
47 assert(db); 47 assert(db);
48 48
49 if (db->nodes) { 49 if (db->nodes) {
50 /* The first node's prev points to last node */ 50 /* The first node's prev points to last node */
98 } 98 }
99 99
100 100
101 /* Parse one SLDB definition line, return SLDB node 101 /* Parse one SLDB definition line, return SLDB node
102 */ 102 */
103 sldb_node_t * xs_sldb_read_entry(gchar *inLine) 103 XSSLDBNode * xs_sldb_read_entry(gchar *inLine)
104 { 104 {
105 size_t linePos; 105 size_t linePos;
106 gint i; 106 gint i;
107 gboolean isOK; 107 gboolean isOK;
108 sldb_node_t *tmnode; 108 XSSLDBNode *tmnode;
109 109
110 /* Allocate new node */ 110 /* Allocate new node */
111 tmnode = (sldb_node_t *) g_malloc0(sizeof(sldb_node_t)); 111 tmnode = (XSSLDBNode *) g_malloc0(sizeof(XSSLDBNode));
112 if (!tmnode) { 112 if (!tmnode) {
113 xs_error("Error allocating new node. Fatal error.\n"); 113 xs_error("Error allocating new node. Fatal error.\n");
114 return NULL; 114 return NULL;
115 } 115 }
116 116
189 } 189 }
190 190
191 191
192 /* Read database to memory 192 /* Read database to memory
193 */ 193 */
194 gint xs_sldb_read(xs_sldb_t *db, const gchar *dbFilename) 194 gint xs_sldb_read(XSSLDB *db, const gchar *dbFilename)
195 { 195 {
196 FILE *inFile; 196 FILE *inFile;
197 gchar inLine[XS_BUF_SIZE]; 197 gchar inLine[XS_BUF_SIZE];
198 size_t lineNum; 198 size_t lineNum;
199 sldb_node_t *tmnode; 199 XSSLDBNode *tmnode;
200 assert(db); 200 assert(db);
201 201
202 /* Try to open the file */ 202 /* Try to open the file */
203 if ((inFile = fopen(dbFilename, "ra")) == NULL) { 203 if ((inFile = fopen(dbFilename, "ra")) == NULL) {
204 xs_error("Could not open SongLengthDB '%s'\n", dbFilename); 204 xs_error("Could not open SongLengthDB '%s'\n", dbFilename);
267 */ 267 */
268 static gint xs_sldb_cmp(const void *node1, const void *node2) 268 static gint xs_sldb_cmp(const void *node1, const void *node2)
269 { 269 {
270 /* We assume here that we never ever get NULL-pointers or similar */ 270 /* We assume here that we never ever get NULL-pointers or similar */
271 return xs_sldb_cmphash( 271 return xs_sldb_cmphash(
272 (*(sldb_node_t **) node1)->md5Hash, 272 (*(XSSLDBNode **) node1)->md5Hash,
273 (*(sldb_node_t **) node2)->md5Hash); 273 (*(XSSLDBNode **) node2)->md5Hash);
274 } 274 }
275 275
276 276
277 /* (Re)create index 277 /* (Re)create index
278 */ 278 */
279 gint xs_sldb_index(xs_sldb_t * db) 279 gint xs_sldb_index(XSSLDB * db)
280 { 280 {
281 sldb_node_t *pCurr; 281 XSSLDBNode *pCurr;
282 size_t i; 282 size_t i;
283 assert(db); 283 assert(db);
284 284
285 /* Free old index */ 285 /* Free old index */
286 if (db->pindex) { 286 if (db->pindex) {
297 } 297 }
298 298
299 /* Check number of nodes */ 299 /* Check number of nodes */
300 if (db->n > 0) { 300 if (db->n > 0) {
301 /* Allocate memory for index-table */ 301 /* Allocate memory for index-table */
302 db->pindex = (sldb_node_t **) g_malloc(sizeof(sldb_node_t *) * db->n); 302 db->pindex = (XSSLDBNode **) g_malloc(sizeof(XSSLDBNode *) * db->n);
303 if (!db->pindex) 303 if (!db->pindex)
304 return -1; 304 return -1;
305 305
306 /* Get node-pointers to table */ 306 /* Get node-pointers to table */
307 i = 0; 307 i = 0;
310 db->pindex[i++] = pCurr; 310 db->pindex[i++] = pCurr;
311 pCurr = pCurr->next; 311 pCurr = pCurr->next;
312 } 312 }
313 313
314 /* Sort the indexes */ 314 /* Sort the indexes */
315 qsort(db->pindex, db->n, sizeof(sldb_node_t *), xs_sldb_cmp); 315 qsort(db->pindex, db->n, sizeof(XSSLDBNode *), xs_sldb_cmp);
316 } 316 }
317 317
318 return 0; 318 return 0;
319 } 319 }
320 320
321 321
322 /* Free a given song-length database 322 /* Free a given song-length database
323 */ 323 */
324 void xs_sldb_free(xs_sldb_t * db) 324 void xs_sldb_free(XSSLDB * db)
325 { 325 {
326 sldb_node_t *pCurr, *next; 326 XSSLDBNode *pCurr, *next;
327 327
328 if (!db) 328 if (!db)
329 return; 329 return;
330 330
331 /* Free the memory allocated for nodes */ 331 /* Free the memory allocated for nodes */
375 } psidv2_header_t; 375 } psidv2_header_t;
376 376
377 377
378 static gint xs_get_sid_hash(const gchar *filename, xs_md5hash_t hash) 378 static gint xs_get_sid_hash(const gchar *filename, xs_md5hash_t hash)
379 { 379 {
380 xs_file_t *inFile; 380 XSFile *inFile;
381 xs_md5state_t inState; 381 xs_md5state_t inState;
382 psidv1_header_t psidH; 382 psidv1_header_t psidH;
383 psidv2_header_t psidH2; 383 psidv2_header_t psidH2;
384 guint8 *songData; 384 guint8 *songData;
385 guint8 ib8[2], i8; 385 guint8 ib8[2], i8;
492 } 492 }
493 493
494 494
495 /* Get node from db index via binary search 495 /* Get node from db index via binary search
496 */ 496 */
497 sldb_node_t *xs_sldb_get(xs_sldb_t *db, const gchar *filename) 497 XSSLDBNode *xs_sldb_get(XSSLDB *db, const gchar *filename)
498 { 498 {
499 sldb_node_t keyItem, *key, **item; 499 XSSLDBNode keyItem, *key, **item;
500 500
501 /* Check the database pointers */ 501 /* Check the database pointers */
502 if (!db || !db->nodes || !db->pindex) 502 if (!db || !db->nodes || !db->pindex)
503 return NULL; 503 return NULL;
504 504