diff --git a/example/cdtext.c b/example/cdtext.c index ec080f00..ab9b8f5f 100644 --- a/example/cdtext.c +++ b/example/cdtext.c @@ -20,7 +20,7 @@ libcdio. See also corresponding C++ programs of similar names. */ #define EXAMPLE_CUE_FILE "../test/data/cdtext.cue" -#define EXAMPLE_PREF_LANG "German" +#define EXAMPLE_PREF_LANG CDTEXT_LANGUAGE_GERMAN #ifdef HAVE_CONFIG_H #include "config.h" @@ -78,7 +78,7 @@ print_disc_info(CdIo_t *p_cdio) { /* select language */ if(cdtext_select_language(cdtext, EXAMPLE_PREF_LANG)) { - printf("%s selected.\n", EXAMPLE_PREF_LANG); + printf("%s selected.\n", cdtext_lang2str (EXAMPLE_PREF_LANG)); } else { printf("'%s' is not available. Using '%s'\n", EXAMPLE_PREF_LANG, cdtext_lang2str (cdtext_get_language (cdtext))); diff --git a/include/cdio++/cdtext.hpp b/include/cdio++/cdtext.hpp index 263c2ac9..83edf7b9 100644 --- a/include/cdio++/cdtext.hpp +++ b/include/cdio++/cdtext.hpp @@ -86,7 +86,7 @@ cdtext_lang_t getLanguage() /*! selects a language */ -bool selectLanguage(const char *lang) +bool selectLanguage(cdtext_lang_t lang) { return cdtext_select_language(p_cdtext, lang); } diff --git a/include/cdio/cdtext.h b/include/cdio/cdtext.h index 916eebc1..1fda0eaa 100644 --- a/include/cdio/cdtext.h +++ b/include/cdio/cdtext.h @@ -277,7 +277,7 @@ cdtext_lang_t cdtext_get_language (const cdtext_t *p_cdtext); @return true on success, false if language is not available */ -bool cdtext_select_language(cdtext_t *p_cdtext, const char *lang); +bool cdtext_select_language(cdtext_t *p_cdtext, cdtext_lang_t lang); /* Returns a list of available languages or NULL. diff --git a/lib/driver/cdtext.c b/lib/driver/cdtext.c index 0986bd96..2584272a 100644 --- a/lib/driver/cdtext.c +++ b/lib/driver/cdtext.c @@ -342,24 +342,21 @@ cdtext_lang_t return false. @param p_cdtext the CD-TEXT object - @param language string representation of the language + @param language language identifier @return true on success, false if language is not available */ bool -cdtext_select_language(cdtext_t *p_cdtext, const char *language) +cdtext_select_language(cdtext_t *p_cdtext, cdtext_lang_t language) { - cdtext_lang_t lang_id; - lang_id = cdtext_is_language(language); - if(NULL == p_cdtext) return false; - if (CDTEXT_LANGUAGE_UNKNOWN != lang_id) + if (CDTEXT_LANGUAGE_UNKNOWN != language) { int i; for (i=0; iblock[i].language_code) { + if (language == p_cdtext->block[i].language_code) { p_cdtext->block_i = i; return true; } diff --git a/src/cd-info.c b/src/cd-info.c index a120c8bd..f66cf98c 100644 --- a/src/cd-info.c +++ b/src/cd-info.c @@ -445,7 +445,7 @@ print_cdtext_info(CdIo_t *p_cdio, track_t i_tracks, track_t i_first_track) { languages = cdtext_list_languages(p_cdtext); for(i=0; i<8; i++) if ( CDTEXT_LANGUAGE_UNKNOWN != languages[i] - && cdtext_select_language(p_cdtext, cdtext_lang2str(languages[i]))) + && cdtext_select_language(p_cdtext, languages[i])) { printf("\nLanguage %d '%s':\n", i, cdtext_lang2str(languages[i]));