diff --git a/src/gui/moviebrowser.h b/src/gui/moviebrowser.h index 70f9523a9..a4df89ba4 100644 --- a/src/gui/moviebrowser.h +++ b/src/gui/moviebrowser.h @@ -499,7 +499,7 @@ class CDirMenu : public CMenuWidget }; -// EPG Genre , taken from epgview, TODO: migth be splitted in major/minor to increase handling, might be moved to CMovieInfo +// EPG Genre, taken from epgview, TODO: might be splitted in major/minor to increase handling #define GENRE_ALL_COUNT 76 const CMenuOptionChooser::keyval GENRE_ALL[GENRE_ALL_COUNT] = { @@ -581,137 +581,6 @@ const CMenuOptionChooser::keyval GENRE_ALL[GENRE_ALL_COUNT] = { 0xA7, LOCALE_GENRE_TRAVEL_HOBBIES_7 } }; -#define GENRE_MOVIE_COUNT 9 -const CMenuOptionChooser::keyval genre_movie[GENRE_MOVIE_COUNT] = -{ - { 0, LOCALE_GENRE_MOVIE_0 }, - { 1, LOCALE_GENRE_MOVIE_1 }, - { 2, LOCALE_GENRE_MOVIE_2 }, - { 3, LOCALE_GENRE_MOVIE_3 }, - { 4, LOCALE_GENRE_MOVIE_4 }, - { 5, LOCALE_GENRE_MOVIE_5 }, - { 6, LOCALE_GENRE_MOVIE_6 }, - { 7, LOCALE_GENRE_MOVIE_7 }, - { 8, LOCALE_GENRE_MOVIE_8 } -}; -#define GENRE_NEWS_COUNT 5 -const CMenuOptionChooser::keyval genre_news[GENRE_NEWS_COUNT] = -{ - { 0, LOCALE_GENRE_NEWS_0 }, - { 1, LOCALE_GENRE_NEWS_1 }, - { 2, LOCALE_GENRE_NEWS_2 }, - { 3, LOCALE_GENRE_NEWS_3 }, - { 4, LOCALE_GENRE_NEWS_4 } -}; -#define GENRE_SHOW_COUNT 4 -const CMenuOptionChooser::keyval genre_show[GENRE_SHOW_COUNT] = -{ - { 0, LOCALE_GENRE_SHOW_0 }, - { 1, LOCALE_GENRE_SHOW_1 }, - { 2, LOCALE_GENRE_SHOW_2 }, - { 3, LOCALE_GENRE_SHOW_3 } -}; -#define GENRE_SPORTS_COUNT 12 -const CMenuOptionChooser::keyval genre_sports[GENRE_SPORTS_COUNT] = -{ - { 0, LOCALE_GENRE_SPORTS_0 }, - { 1, LOCALE_GENRE_SPORTS_1 }, - { 2, LOCALE_GENRE_SPORTS_2 }, - { 3, LOCALE_GENRE_SPORTS_3 }, - { 4, LOCALE_GENRE_SPORTS_4 }, - { 5, LOCALE_GENRE_SPORTS_5 }, - { 6, LOCALE_GENRE_SPORTS_6 }, - { 7, LOCALE_GENRE_SPORTS_7 }, - { 8, LOCALE_GENRE_SPORTS_8 }, - { 9, LOCALE_GENRE_SPORTS_9 }, - {10, LOCALE_GENRE_SPORTS_10 }, - {11, LOCALE_GENRE_SPORTS_11 } -}; -#define GENRE_CHILDRENS_PROGRAMMES_COUNT 6 -const CMenuOptionChooser::keyval genre_childrens_programmes[GENRE_CHILDRENS_PROGRAMMES_COUNT] = -{ - { 0, LOCALE_GENRE_CHILDRENS_PROGRAMMES_0 }, - { 1, LOCALE_GENRE_CHILDRENS_PROGRAMMES_1 }, - { 2, LOCALE_GENRE_CHILDRENS_PROGRAMMES_2 }, - { 3, LOCALE_GENRE_CHILDRENS_PROGRAMMES_3 }, - { 4, LOCALE_GENRE_CHILDRENS_PROGRAMMES_4 }, - { 5, LOCALE_GENRE_CHILDRENS_PROGRAMMES_5 } -}; -#define GENRE_MUSIC_DANCE_COUNT 7 -const CMenuOptionChooser::keyval genre_music_dance[GENRE_MUSIC_DANCE_COUNT] = -{ - { 0, LOCALE_GENRE_MUSIC_DANCE_0 }, - { 1, LOCALE_GENRE_MUSIC_DANCE_1 }, - { 2, LOCALE_GENRE_MUSIC_DANCE_2 }, - { 3, LOCALE_GENRE_MUSIC_DANCE_3 }, - { 4, LOCALE_GENRE_MUSIC_DANCE_4 }, - { 5, LOCALE_GENRE_MUSIC_DANCE_5 }, - { 6, LOCALE_GENRE_MUSIC_DANCE_6 } -}; -#define GENRE_ARTS_COUNT 12 -const CMenuOptionChooser::keyval genre_arts_dance[GENRE_ARTS_COUNT] = -{ - { 0, LOCALE_GENRE_ARTS_0 }, - { 1, LOCALE_GENRE_ARTS_1 }, - { 2, LOCALE_GENRE_ARTS_2 }, - { 3, LOCALE_GENRE_ARTS_3 }, - { 4, LOCALE_GENRE_ARTS_4 }, - { 5, LOCALE_GENRE_ARTS_5 }, - { 6, LOCALE_GENRE_ARTS_6 }, - { 7, LOCALE_GENRE_ARTS_7 }, - { 8, LOCALE_GENRE_ARTS_8 }, - { 9, LOCALE_GENRE_ARTS_9 }, - {10, LOCALE_GENRE_ARTS_10 }, - {11, LOCALE_GENRE_ARTS_11 } -}; -#define GENRE_SOCIAL_POLITICAL_COUNT 4 -const CMenuOptionChooser::keyval genre_social_political[GENRE_SOCIAL_POLITICAL_COUNT] = -{ - { 0, LOCALE_GENRE_SOCIAL_POLITICAL_0 }, - { 1, LOCALE_GENRE_SOCIAL_POLITICAL_1 }, - { 2, LOCALE_GENRE_SOCIAL_POLITICAL_2 }, - { 3, LOCALE_GENRE_SOCIAL_POLITICAL_3 } -}; -#define GENRE_DOCUS_MAGAZINES_COUNT 8 -const CMenuOptionChooser::keyval genre_docus_magazines[GENRE_DOCUS_MAGAZINES_COUNT] = -{ - { 0, LOCALE_GENRE_DOCUS_MAGAZINES_0 }, - { 1, LOCALE_GENRE_DOCUS_MAGAZINES_1 }, - { 2, LOCALE_GENRE_DOCUS_MAGAZINES_2 }, - { 3, LOCALE_GENRE_DOCUS_MAGAZINES_3 }, - { 4, LOCALE_GENRE_DOCUS_MAGAZINES_4 }, - { 5, LOCALE_GENRE_DOCUS_MAGAZINES_5 }, - { 6, LOCALE_GENRE_DOCUS_MAGAZINES_6 }, - { 7, LOCALE_GENRE_DOCUS_MAGAZINES_7 } -}; -#define GENRE_TRAVEL_HOBBIES_COUNT 8 -const CMenuOptionChooser::keyval genre_travel_hobbies[GENRE_TRAVEL_HOBBIES_COUNT] = -{ - { 0, LOCALE_GENRE_TRAVEL_HOBBIES_0 }, - { 1, LOCALE_GENRE_TRAVEL_HOBBIES_1 }, - { 2, LOCALE_GENRE_TRAVEL_HOBBIES_2 }, - { 3, LOCALE_GENRE_TRAVEL_HOBBIES_3 }, - { 4, LOCALE_GENRE_TRAVEL_HOBBIES_4 }, - { 5, LOCALE_GENRE_TRAVEL_HOBBIES_5 }, - { 6, LOCALE_GENRE_TRAVEL_HOBBIES_6 }, - { 7, LOCALE_GENRE_TRAVEL_HOBBIES_7 } -}; - -#define GENRE_MAJOR_COUNT 10 -const CMenuOptionChooser::keyval genre_major[GENRE_MAJOR_COUNT] = -{ - { 1, LOCALE_GENRE_MOVIE_0 }, - { 2, LOCALE_GENRE_NEWS_0 }, - { 3, LOCALE_GENRE_SHOW_0 }, - { 4, LOCALE_GENRE_SPORTS_0 }, - { 5, LOCALE_GENRE_CHILDRENS_PROGRAMMES_0 }, - { 6, LOCALE_GENRE_MUSIC_DANCE_0 }, - { 7, LOCALE_GENRE_ARTS_0 }, - { 8, LOCALE_GENRE_SOCIAL_POLITICAL_0 }, - { 9, LOCALE_GENRE_DOCUS_MAGAZINES_0 }, - { 10, LOCALE_GENRE_TRAVEL_HOBBIES_0} -}; - #endif /*MOVIEBROWSER_H_*/ diff --git a/src/gui/movieinfo.cpp b/src/gui/movieinfo.cpp index d070d7e8d..78252c708 100644 --- a/src/gui/movieinfo.cpp +++ b/src/gui/movieinfo.cpp @@ -53,6 +53,8 @@ #include #include +#include + //#define XMLTREE_LIB #ifdef XMLTREE_LIB #include @@ -482,6 +484,23 @@ void CMovieInfo::showMovieInfo(MI_MOVIE_INFO & movie_info) } print_buffer.erase(print_buffer.size()-2); } + if (movie_info.genreMajor != 0) + { + neutrino_locale_t locale_genre; + unsigned char i = (movie_info.genreMajor & 0x0F0); + if (i >= 0x010 && i < 0x0B0) + { + i >>= 4; + i--; + locale_genre = genre_sub_classes_list[i][((movie_info.genreMajor & 0x0F) < genre_sub_classes[i]) ? (movie_info.genreMajor & 0x0F) : 0]; + } + else + locale_genre = LOCALE_GENRE_UNKNOWN; + print_buffer += "\n"; + print_buffer += g_Locale->getText(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR); + print_buffer += ": "; + print_buffer += g_Locale->getText(locale_genre); + } print_buffer += "\n\n"; print_buffer += g_Locale->getText(LOCALE_MOVIEBROWSER_INFO_PREVPLAYDATE); diff --git a/src/neutrino.h b/src/neutrino.h index 76f891516..bf470f6ad 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -82,6 +82,9 @@ typedef struct font_sizes_groups const neutrino_locale_t hint; } font_sizes_groups_struct; +extern const unsigned char genre_sub_classes[]; /* epgview.cpp */ +extern const neutrino_locale_t * genre_sub_classes_list[]; /* epgview.cpp */ + class CNeutrinoApp : public CMenuTarget, CChangeObserver { public: