00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <stdio.h>
00029
00030 #include <vlc/vlc.h>
00031
00032 #include "iso_lang.h"
00033
00034
00035
00036
00037 #include "iso-639_def.h"
00038
00039 static const iso639_lang_t unknown_language =
00040 { "Unknown", "Unknown", "??", "???", "???" };
00041
00042
00043
00044
00045
00046 const char * DecodeLanguage( uint16_t i_code )
00047 {
00048 const iso639_lang_t * p_lang;
00049 uint8_t psz_code[3];
00050
00051 psz_code[0] = i_code >> 8;
00052 psz_code[1] = i_code & 0xff;
00053 psz_code[2] = '\0';
00054
00055 for( p_lang = p_languages; p_lang->psz_eng_name; p_lang++ )
00056 {
00057 if( !memcmp( p_lang->psz_iso639_1, psz_code, 2 ) )
00058 {
00059 # if 0
00060 if( *p_lang->psz_native_name )
00061 {
00062 return p_lang->psz_native_name;
00063 }
00064 #endif
00065
00066 return _( p_lang->psz_eng_name );
00067 }
00068 }
00069
00070 return _( "Unknown" );
00071 }
00072
00073 const iso639_lang_t * GetLang_1( const char * psz_code )
00074 {
00075 const iso639_lang_t *p_lang;
00076
00077 for( p_lang = p_languages; p_lang->psz_eng_name; p_lang++ )
00078 if( !strncmp( p_lang->psz_iso639_1, psz_code, 2 ) )
00079 return p_lang;
00080
00081 return &unknown_language;
00082 }
00083
00084 const iso639_lang_t * GetLang_2T( const char * psz_code )
00085 {
00086 const iso639_lang_t *p_lang;
00087
00088 for( p_lang = p_languages; p_lang->psz_eng_name; p_lang++ )
00089 if( !strncmp( p_lang->psz_iso639_2T, psz_code, 3 ) )
00090 return p_lang;
00091
00092 return &unknown_language;
00093 }
00094
00095 const iso639_lang_t * GetLang_2B( const char * psz_code )
00096 {
00097 const iso639_lang_t *p_lang;
00098
00099 for( p_lang = p_languages; p_lang->psz_eng_name; p_lang++ )
00100 if( !strncmp( p_lang->psz_iso639_2B, psz_code, 3 ) )
00101 return p_lang;
00102
00103 return &unknown_language;
00104 }
00105