libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit 3d4d099cbc0c77611d7bc2a89aade021b6d1a4e1
parent aafe569d51be89c6d59b72a71fb97e674cd8a7a3
Author: Toni Ruottu <toni.ruottu@helsinki.fi>
Date:   Sat, 11 Nov 2006 01:59:46 +0000

Some nsf plugin corrections.

Diffstat:
MChangeLog | 2+-
MNEWS | 2+-
Msrc/include/extractor.h | 4++++
Msrc/main/extractor.c | 6+++++-
Msrc/plugins/nsfextractor.c | 28++++++++++++++++------------
5 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,5 +1,5 @@ Sat Nov 11 00:04:34 EET 2006 - Added a NSF ( NES Sound Format ) plugin + Added an NSF ( NES Sound Format ) plugin Sat Sep 16 12:36:42 MDT 2006 Added support for various additional tags to ID3v2 extractors. diff --git a/NEWS b/NEWS @@ -1,5 +1,5 @@ Sat Nov 11 00:04:34 EET 2006 - Added a NSF ( NES Sound Format ) plugin + Added an NSF ( NES Sound Format ) plugin Tue Apr 18 14:44:37 PDT 2006 Added dictionaries for Finnish, French, Gaelic and Swedish diff --git a/src/include/extractor.h b/src/include/extractor.h @@ -180,6 +180,10 @@ typedef enum { EXTRACTOR_MUSICIAN_CREDITS_LIST = 123, EXTRACTOR_MOOD = 124, + EXTRACTOR_FORMAT_VERSION = 125, + EXTRACTOR_TELEVISION_SYSTEM = 126, + EXTRACTOR_SONG_COUNT = 127, + EXTRACTOR_STARTING_SONG = 128, } EXTRACTOR_KeywordType; diff --git a/src/main/extractor.c b/src/main/extractor.c @@ -166,11 +166,15 @@ static const char *keywordTypes[] = { gettext_noop("time"), gettext_noop("musician credits list"), gettext_noop("mood"), + gettext_noop("format version"), /* 125 */ + gettext_noop("television system"), + gettext_noop("song count"), + gettext_noop("starting song"), NULL, }; /* the number of keyword types (for bounds-checking) */ -#define HIGHEST_TYPE_NUMBER 125 +#define HIGHEST_TYPE_NUMBER 129 #ifdef HAVE_LIBOGG #if HAVE_VORBIS diff --git a/src/plugins/nsfextractor.c b/src/plugins/nsfextractor.c @@ -50,9 +50,9 @@ libextractor_nsf_extract(const char * filename, size_t size, struct EXTRACTOR_Keywords * prev) { int i; - char name[32]; - char artist[32]; - char copyright[32]; + char name[33]; + char artist[33]; + char copyright[33]; char songs[32]; char startingsong[32]; @@ -80,20 +80,20 @@ libextractor_nsf_extract(const char * filename, /* Version of NSF format */ - sprintf( startingsong, "NSF version: %d", data[5] ); - prev = addkword(prev, startingsong, EXTRACTOR_UNKNOWN); + sprintf( startingsong, "%d", data[5] ); + prev = addkword(prev, startingsong, EXTRACTOR_FORMAT_VERSION); /* Get song count */ - sprintf( songs, "total songs: %d", data[6] ); - prev = addkword(prev, songs, EXTRACTOR_UNKNOWN); + sprintf( songs, "%d", data[6] ); + prev = addkword(prev, songs, EXTRACTOR_SONG_COUNT); /* Get number of the first song to be played */ - sprintf( startingsong, "starting song: %d", data[7] ); - prev = addkword(prev, startingsong, EXTRACTOR_UNKNOWN); + sprintf( startingsong, "%d", data[7] ); + prev = addkword(prev, startingsong, EXTRACTOR_STARTING_SONG); /* Parse name, artist, copyright fields */ @@ -105,6 +105,10 @@ libextractor_nsf_extract(const char * filename, copyright[i] = data[ 0x4e + i ]; } + name[32] = '\0'; + artist[32] = '\0'; + copyright[32] = '\0'; + prev = addkword(prev, name, EXTRACTOR_TITLE); prev = addkword(prev, artist, EXTRACTOR_ARTIST); prev = addkword(prev, copyright, EXTRACTOR_COPYRIGHT); @@ -114,17 +118,17 @@ libextractor_nsf_extract(const char * filename, if( data[0x7a] & 2 ) { - prev = addkword(prev, "a dual PAL/NTSC tune", EXTRACTOR_UNKNOWN); + prev = addkword(prev, "PAL/NTSC", EXTRACTOR_TELEVISION_SYSTEM); } else { if( data[0x7a] & 1 ) { - prev = addkword(prev, "a PAL tune", EXTRACTOR_UNKNOWN); + prev = addkword(prev, "PAL", EXTRACTOR_TELEVISION_SYSTEM); } else { - prev = addkword(prev, "an NTSC tune", EXTRACTOR_UNKNOWN); + prev = addkword(prev, "NTSC", EXTRACTOR_TELEVISION_SYSTEM); } }