Mercurial > hg > xmms-sid
comparison src/xs_length.c @ 385:7dc7e7dbbf90
Indentation fixes.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 22 Jan 2006 20:48:02 +0000 |
parents | 4611f1194941 |
children | 3c239e4160d5 |
comparison
equal
deleted
inserted
replaced
384:7e35b6059d79 | 385:7dc7e7dbbf90 |
---|---|
91 /* Check the field separator char */ | 91 /* Check the field separator char */ |
92 if (pcStr[*piPos] == ':') { | 92 if (pcStr[*piPos] == ':') { |
93 /* Get seconds-field */ | 93 /* Get seconds-field */ |
94 (*piPos)++; | 94 (*piPos)++; |
95 iTemp = 0; | 95 iTemp = 0; |
96 while (isdigit(pcStr[*piPos])) | 96 while (isdigit(pcStr[*piPos])) { |
97 iTemp = (iTemp * 10) + (pcStr[(*piPos)++] - '0'); | 97 iTemp = (iTemp * 10) + (pcStr[(*piPos)++] - '0'); |
98 } | |
98 | 99 |
99 iResult += iTemp; | 100 iResult += iTemp; |
100 } else | 101 } else |
101 iResult = -2; | 102 iResult = -2; |
102 } else | 103 } else |
287 /* Compare two nodes | 288 /* Compare two nodes |
288 */ | 289 */ |
289 static gint xs_sldb_cmp(const void *pNode1, const void *pNode2) | 290 static gint xs_sldb_cmp(const void *pNode1, const void *pNode2) |
290 { | 291 { |
291 /* We assume here that we never ever get NULL-pointers or similar */ | 292 /* We assume here that we never ever get NULL-pointers or similar */ |
292 return xs_sldb_cmphash((*(t_xs_sldb_node **) pNode1)->md5Hash, (*(t_xs_sldb_node **) pNode2)->md5Hash); | 293 return xs_sldb_cmphash( |
294 (*(t_xs_sldb_node **) pNode1)->md5Hash, | |
295 (*(t_xs_sldb_node **) pNode2)->md5Hash); | |
293 } | 296 } |
294 | 297 |
295 | 298 |
296 /* (Re)create index | 299 /* (Re)create index |
297 */ | 300 */ |
373 */ | 376 */ |
374 typedef struct | 377 typedef struct |
375 { | 378 { |
376 gchar magicID[4]; /* "PSID" / "RSID" magic identifier */ | 379 gchar magicID[4]; /* "PSID" / "RSID" magic identifier */ |
377 guint16 version, /* Version number */ | 380 guint16 version, /* Version number */ |
378 dataOffset, /* Start of actual c64 data in file */ | 381 dataOffset, /* Start of actual c64 data in file */ |
379 loadAddress, /* Loading address */ | 382 loadAddress, /* Loading address */ |
380 initAddress, /* Initialization address */ | 383 initAddress, /* Initialization address */ |
381 playAddress, /* Play one frame */ | 384 playAddress, /* Play one frame */ |
382 nSongs, /* Number of subsongs */ | 385 nSongs, /* Number of subsongs */ |
383 startSong; /* Default starting song */ | 386 startSong; /* Default starting song */ |
384 guint32 speed; /* Speed */ | 387 guint32 speed; /* Speed */ |
385 gchar sidName[32]; /* Descriptive text-fields, ASCIIZ */ | 388 gchar sidName[32]; /* Descriptive text-fields, ASCIIZ */ |
386 gchar sidAuthor[32]; | 389 gchar sidAuthor[32]; |
387 gchar sidCopyright[32]; | 390 gchar sidCopyright[32]; |
388 } t_xs_psidv1_header; | 391 } t_xs_psidv1_header; |
441 psidH2.flags = xs_rd_be16(inFile); | 444 psidH2.flags = xs_rd_be16(inFile); |
442 psidH2.startPage = fgetc(inFile); | 445 psidH2.startPage = fgetc(inFile); |
443 psidH2.pageLength = fgetc(inFile); | 446 psidH2.pageLength = fgetc(inFile); |
444 psidH2.reserved = xs_rd_be16(inFile); | 447 psidH2.reserved = xs_rd_be16(inFile); |
445 } | 448 } |
449 | |
446 #ifdef XS_BUF_DYNAMIC | 450 #ifdef XS_BUF_DYNAMIC |
447 /* Allocate buffer */ | 451 /* Allocate buffer */ |
448 songData = (guint8 *) g_malloc(XS_SIDBUF_SIZE * sizeof(guint8)); | 452 songData = (guint8 *) g_malloc(XS_SIDBUF_SIZE * sizeof(guint8)); |
449 if (!songData) { | 453 if (!songData) { |
450 fclose(inFile); | 454 fclose(inFile); |
456 iRes = fread(songData, sizeof(guint8), XS_SIDBUF_SIZE, inFile); | 460 iRes = fread(songData, sizeof(guint8), XS_SIDBUF_SIZE, inFile); |
457 fclose(inFile); | 461 fclose(inFile); |
458 | 462 |
459 /* Initialize and start MD5-hash calculation */ | 463 /* Initialize and start MD5-hash calculation */ |
460 xs_md5_init(&inState); | 464 xs_md5_init(&inState); |
465 | |
461 if (psidH.loadAddress == 0) { | 466 if (psidH.loadAddress == 0) { |
462 /* Strip load address (2 first bytes) */ | 467 /* Strip load address (2 first bytes) */ |
463 xs_md5_append(&inState, &songData[2], iRes - 2); | 468 xs_md5_append(&inState, &songData[2], iRes - 2); |
464 } else { | 469 } else { |
465 /* Append "as is" */ | 470 /* Append "as is" */ |
466 xs_md5_append(&inState, songData, iRes); | 471 xs_md5_append(&inState, songData, iRes); |
467 } | 472 } |
468 | 473 |
469 | |
470 #ifdef XS_BUF_DYNAMIC | 474 #ifdef XS_BUF_DYNAMIC |
471 /* Free buffer */ | 475 /* Free buffer */ |
472 g_free(songData); | 476 g_free(songData); |
473 #endif | 477 #endif |
474 | 478 |
475 /* Append header data to hash */ | 479 /* Append header data to hash */ |
476 #define XSADDHASH(QDATAB) { ib8[0] = (QDATAB & 0xff); ib8[1] = (QDATAB >> 8); xs_md5_append(&inState, (guint8 *) &ib8, sizeof(ib8)); } | 480 #define XSADDHASH(QDATAB) { ib8[0] = (QDATAB & 0xff); ib8[1] = (QDATAB >> 8); xs_md5_append(&inState, (guint8 *) &ib8, sizeof(ib8)); } |
477 | 481 |
478 XSADDHASH(psidH.initAddress) | 482 XSADDHASH(psidH.initAddress) |
479 XSADDHASH(psidH.playAddress) | 483 XSADDHASH(psidH.playAddress) |
480 XSADDHASH(psidH.nSongs) | 484 XSADDHASH(psidH.nSongs) |
481 #undef XSADDHASH | 485 #undef XSADDHASH |
482 /* Append song speed data to hash */ | 486 |
483 i8 = 0; | 487 /* Append song speed data to hash */ |
488 i8 = 0; | |
484 for (iIndex = 0; (iIndex < psidH.nSongs) && (iIndex < 32); iIndex++) { | 489 for (iIndex = 0; (iIndex < psidH.nSongs) && (iIndex < 32); iIndex++) { |
485 i8 = (psidH.speed & (1 << iIndex)) ? 60 : 0; | 490 i8 = (psidH.speed & (1 << iIndex)) ? 60 : 0; |
486 xs_md5_append(&inState, &i8, sizeof(i8)); | 491 xs_md5_append(&inState, &i8, sizeof(i8)); |
487 } | 492 } |
488 | 493 |
489 /* Rest of songs (more than 32) */ | 494 /* Rest of songs (more than 32) */ |
490 for (iIndex = 32; iIndex < psidH.nSongs; iIndex++) { | 495 for (iIndex = 32; iIndex < psidH.nSongs; iIndex++) { |
491 xs_md5_append(&inState, &i8, sizeof(i8)); | 496 xs_md5_append(&inState, &i8, sizeof(i8)); |
492 } | 497 } |
493 | |
494 | 498 |
495 /* PSIDv2NG specific */ | 499 /* PSIDv2NG specific */ |
496 if (psidH.version == 2) { | 500 if (psidH.version == 2) { |
497 /* SEE SIDPLAY HEADERS FOR INFO */ | 501 /* SEE SIDPLAY HEADERS FOR INFO */ |
498 i8 = (psidH2.flags >> 2) & 3; | 502 i8 = (psidH2.flags >> 2) & 3; |