src/gui/eventlist.cpp-add program category filter to epg-search

Origin commit data
------------------
Commit: 39796eda68
Author: Jacek Jendrzej <overx300@gmail.com>
Date: 2015-06-30 (Tue, 30 Jun 2015)
This commit is contained in:
Jacek Jendrzej
2015-06-30 14:23:39 +02:00
parent 6432f51eb8
commit cf384796b6
8 changed files with 92 additions and 9 deletions

View File

@@ -20,6 +20,8 @@ EPGPlus.scroll_mode Scroll-Modus
EPGPlus.stretch_mode Stretch-Modus EPGPlus.stretch_mode Stretch-Modus
EPGPlus.swap_mode Blättern EPGPlus.swap_mode Blättern
EPGPlus.view_mode Modus EPGPlus.view_mode Modus
GENRE.ALL aus
GENRE.ARTS Kultur
GENRE.ARTS.0 Kunst/Kultur GENRE.ARTS.0 Kunst/Kultur
GENRE.ARTS.1 Darstellende Künste GENRE.ARTS.1 Darstellende Künste
GENRE.ARTS.10 Kunst-/Kultur-Magazin GENRE.ARTS.10 Kunst-/Kultur-Magazin
@@ -32,12 +34,14 @@ GENRE.ARTS.6 Film/ Kino
GENRE.ARTS.7 Experimental Film/Video GENRE.ARTS.7 Experimental Film/Video
GENRE.ARTS.8 Rundfunk/Presse GENRE.ARTS.8 Rundfunk/Presse
GENRE.ARTS.9 Neue Medien GENRE.ARTS.9 Neue Medien
GENRE.CHILDRENs_PROGRAMMES Kinder
GENRE.CHILDRENs_PROGRAMMES.0 Kinder/Jugendprogramm GENRE.CHILDRENs_PROGRAMMES.0 Kinder/Jugendprogramm
GENRE.CHILDRENs_PROGRAMMES.1 Programm für Vorschulkinder GENRE.CHILDRENs_PROGRAMMES.1 Programm für Vorschulkinder
GENRE.CHILDRENs_PROGRAMMES.2 Unterhaltungsprogramm für 6 bis 14-Jährige GENRE.CHILDRENs_PROGRAMMES.2 Unterhaltungsprogramm für 6 bis 14-Jährige
GENRE.CHILDRENs_PROGRAMMES.3 Unterhaltungsprogramm für 10 bis 16-Jährige GENRE.CHILDRENs_PROGRAMMES.3 Unterhaltungsprogramm für 10 bis 16-Jährige
GENRE.CHILDRENs_PROGRAMMES.4 Informations- und Bildungsprogramm GENRE.CHILDRENs_PROGRAMMES.4 Informations- und Bildungsprogramm
GENRE.CHILDRENs_PROGRAMMES.5 Trickfilm GENRE.CHILDRENs_PROGRAMMES.5 Trickfilm
GENRE.DOCUS_MAGAZINES Magazin
GENRE.DOCUS_MAGAZINES.0 Doku/Magazin GENRE.DOCUS_MAGAZINES.0 Doku/Magazin
GENRE.DOCUS_MAGAZINES.1 Natur/Tiere/Umwelt GENRE.DOCUS_MAGAZINES.1 Natur/Tiere/Umwelt
GENRE.DOCUS_MAGAZINES.2 Naturwissenschaft und Technik GENRE.DOCUS_MAGAZINES.2 Naturwissenschaft und Technik
@@ -46,6 +50,7 @@ GENRE.DOCUS_MAGAZINES.4 Ausland/Expeditions
GENRE.DOCUS_MAGAZINES.5 Sozial- und Geisteswissenschaften GENRE.DOCUS_MAGAZINES.5 Sozial- und Geisteswissenschaften
GENRE.DOCUS_MAGAZINES.6 Weiterbildung GENRE.DOCUS_MAGAZINES.6 Weiterbildung
GENRE.DOCUS_MAGAZINES.7 Sprachen GENRE.DOCUS_MAGAZINES.7 Sprachen
GENRE.MOVIE Spielfilm
GENRE.MOVIE.0 Spielfilm/Drama GENRE.MOVIE.0 Spielfilm/Drama
GENRE.MOVIE.1 Kriminalfilm/Thriller GENRE.MOVIE.1 Kriminalfilm/Thriller
GENRE.MOVIE.2 Abenteuerfilm/Western/Kriegsfilm GENRE.MOVIE.2 Abenteuerfilm/Western/Kriegsfilm
@@ -55,6 +60,7 @@ GENRE.MOVIE.5 Soap/Melodram/Folklore
GENRE.MOVIE.6 Romantik GENRE.MOVIE.6 Romantik
GENRE.MOVIE.7 klassischer/religiöser/historischer Film/Drama GENRE.MOVIE.7 klassischer/religiöser/historischer Film/Drama
GENRE.MOVIE.8 Erwachsenen Film/Drama GENRE.MOVIE.8 Erwachsenen Film/Drama
GENRE.MUSIC_DANCE Musik
GENRE.MUSIC_DANCE.0 Musik/Ballet/Tanz GENRE.MUSIC_DANCE.0 Musik/Ballet/Tanz
GENRE.MUSIC_DANCE.1 Rock/Pop GENRE.MUSIC_DANCE.1 Rock/Pop
GENRE.MUSIC_DANCE.2 Klassik GENRE.MUSIC_DANCE.2 Klassik
@@ -62,19 +68,23 @@ GENRE.MUSIC_DANCE.3 Volksmusik
GENRE.MUSIC_DANCE.4 Jazz GENRE.MUSIC_DANCE.4 Jazz
GENRE.MUSIC_DANCE.5 Musical/Oper GENRE.MUSIC_DANCE.5 Musical/Oper
GENRE.MUSIC_DANCE.6 Ballet GENRE.MUSIC_DANCE.6 Ballet
GENRE.NEWS Nachrichten
GENRE.NEWS.0 Nachrichten GENRE.NEWS.0 Nachrichten
GENRE.NEWS.1 Nachrichten/Wetter GENRE.NEWS.1 Nachrichten/Wetter
GENRE.NEWS.2 Nachrichtenmagazin GENRE.NEWS.2 Nachrichtenmagazin
GENRE.NEWS.3 Dokumentation GENRE.NEWS.3 Dokumentation
GENRE.NEWS.4 Diskussion/Interview/Debatte GENRE.NEWS.4 Diskussion/Interview/Debatte
GENRE.SHOW Show
GENRE.SHOW.0 Show/ Gameshow GENRE.SHOW.0 Show/ Gameshow
GENRE.SHOW.1 Gameshow/Quiz GENRE.SHOW.1 Gameshow/Quiz
GENRE.SHOW.2 Varietee GENRE.SHOW.2 Varietee
GENRE.SHOW.3 Talkshow GENRE.SHOW.3 Talkshow
GENRE.SOCIAL_POLITICAL Sozial
GENRE.SOCIAL_POLITICAL.0 Sozial & Politikereignisse/Wirtschaft GENRE.SOCIAL_POLITICAL.0 Sozial & Politikereignisse/Wirtschaft
GENRE.SOCIAL_POLITICAL.1 Magazin/Report/Dokumentation GENRE.SOCIAL_POLITICAL.1 Magazin/Report/Dokumentation
GENRE.SOCIAL_POLITICAL.2 Wirtschaft und Soziales GENRE.SOCIAL_POLITICAL.2 Wirtschaft und Soziales
GENRE.SOCIAL_POLITICAL.3 Besondere Menschen GENRE.SOCIAL_POLITICAL.3 Besondere Menschen
GENRE.SPORTS Sport
GENRE.SPORTS.0 Sport GENRE.SPORTS.0 Sport
GENRE.SPORTS.1 Großereignisse (Olympische Spiele, Weltmeisterschaften usw.) GENRE.SPORTS.1 Großereignisse (Olympische Spiele, Weltmeisterschaften usw.)
GENRE.SPORTS.10 Reiten GENRE.SPORTS.10 Reiten
@@ -87,6 +97,7 @@ GENRE.SPORTS.6 Leichtathletik
GENRE.SPORTS.7 Motorsport GENRE.SPORTS.7 Motorsport
GENRE.SPORTS.8 Wassersport GENRE.SPORTS.8 Wassersport
GENRE.SPORTS.9 Wintersport GENRE.SPORTS.9 Wintersport
GENRE.TRAVEL_HOBBIES Freizeit
GENRE.TRAVEL_HOBBIES.0 Reise & Freizeit GENRE.TRAVEL_HOBBIES.0 Reise & Freizeit
GENRE.TRAVEL_HOBBIES.1 Reisen und Tourismus GENRE.TRAVEL_HOBBIES.1 Reisen und Tourismus
GENRE.TRAVEL_HOBBIES.2 Handwerk GENRE.TRAVEL_HOBBIES.2 Handwerk
@@ -351,6 +362,7 @@ epgviewer.genre Genre
epgviewer.length Spieldauer (Min.) epgviewer.length Spieldauer (Min.)
epgviewer.nodetailed Keine ausführlichen Informationen verfügbar epgviewer.nodetailed Keine ausführlichen Informationen verfügbar
epgviewer.notfound Keine Programminformationen (EPG) gefunden epgviewer.notfound Keine Programminformationen (EPG) gefunden
eventfinder.genre Filter
eventfinder.head EPG-Suche eventfinder.head EPG-Suche
eventfinder.history Frühere Suchen eventfinder.history Frühere Suchen
eventfinder.keyword Suche nach Textpassage eventfinder.keyword Suche nach Textpassage

View File

@@ -20,6 +20,8 @@ EPGPlus.scroll_mode Scroll Mode
EPGPlus.stretch_mode Stretch Mode EPGPlus.stretch_mode Stretch Mode
EPGPlus.swap_mode swap mode EPGPlus.swap_mode swap mode
EPGPlus.view_mode view mode EPGPlus.view_mode view mode
GENRE.ALL off
GENRE.ARTS Arts
GENRE.ARTS.0 arts / culture GENRE.ARTS.0 arts / culture
GENRE.ARTS.1 performing arts GENRE.ARTS.1 performing arts
GENRE.ARTS.10 arts/culture magazines GENRE.ARTS.10 arts/culture magazines
@@ -32,12 +34,14 @@ GENRE.ARTS.6 film/cinema
GENRE.ARTS.7 experimental film/video GENRE.ARTS.7 experimental film/video
GENRE.ARTS.8 broadcasting/press GENRE.ARTS.8 broadcasting/press
GENRE.ARTS.9 new media GENRE.ARTS.9 new media
GENRE.CHILDRENs_PROGRAMMES children
GENRE.CHILDRENs_PROGRAMMES.0 children / juvenile program GENRE.CHILDRENs_PROGRAMMES.0 children / juvenile program
GENRE.CHILDRENs_PROGRAMMES.1 pre-school children's programmes GENRE.CHILDRENs_PROGRAMMES.1 pre-school children's programmes
GENRE.CHILDRENs_PROGRAMMES.2 entertainment programmes for 6 to 14 GENRE.CHILDRENs_PROGRAMMES.2 entertainment programmes for 6 to 14
GENRE.CHILDRENs_PROGRAMMES.3 entertainment programmes for 10 to 16 GENRE.CHILDRENs_PROGRAMMES.3 entertainment programmes for 10 to 16
GENRE.CHILDRENs_PROGRAMMES.4 informational/educational/school programmes GENRE.CHILDRENs_PROGRAMMES.4 informational/educational/school programmes
GENRE.CHILDRENs_PROGRAMMES.5 cartoons/puppets GENRE.CHILDRENs_PROGRAMMES.5 cartoons/puppets
GENRE.DOCUS_MAGAZINES documentation
GENRE.DOCUS_MAGAZINES.0 documentation / magazine GENRE.DOCUS_MAGAZINES.0 documentation / magazine
GENRE.DOCUS_MAGAZINES.1 nature/animals/environment GENRE.DOCUS_MAGAZINES.1 nature/animals/environment
GENRE.DOCUS_MAGAZINES.2 technology/natural sciences GENRE.DOCUS_MAGAZINES.2 technology/natural sciences
@@ -46,6 +50,7 @@ GENRE.DOCUS_MAGAZINES.4 foreign countries/expeditions
GENRE.DOCUS_MAGAZINES.5 social/spiritual sciences GENRE.DOCUS_MAGAZINES.5 social/spiritual sciences
GENRE.DOCUS_MAGAZINES.6 further education GENRE.DOCUS_MAGAZINES.6 further education
GENRE.DOCUS_MAGAZINES.7 languages GENRE.DOCUS_MAGAZINES.7 languages
GENRE.MOVIE movie
GENRE.MOVIE.0 movie/drama GENRE.MOVIE.0 movie/drama
GENRE.MOVIE.1 detective/thriller GENRE.MOVIE.1 detective/thriller
GENRE.MOVIE.2 adventure/western/war GENRE.MOVIE.2 adventure/western/war
@@ -55,6 +60,7 @@ GENRE.MOVIE.5 soap/melodrama/folkloric
GENRE.MOVIE.6 romance GENRE.MOVIE.6 romance
GENRE.MOVIE.7 serious/classical/religious/historical movie/drama GENRE.MOVIE.7 serious/classical/religious/historical movie/drama
GENRE.MOVIE.8 adult movie/drama GENRE.MOVIE.8 adult movie/drama
GENRE.MUSIC_DANCE music
GENRE.MUSIC_DANCE.0 music / ballet / dance GENRE.MUSIC_DANCE.0 music / ballet / dance
GENRE.MUSIC_DANCE.1 rock/pop GENRE.MUSIC_DANCE.1 rock/pop
GENRE.MUSIC_DANCE.2 serious music/classical music GENRE.MUSIC_DANCE.2 serious music/classical music
@@ -62,19 +68,23 @@ GENRE.MUSIC_DANCE.3 folk/traditional music
GENRE.MUSIC_DANCE.4 jazz GENRE.MUSIC_DANCE.4 jazz
GENRE.MUSIC_DANCE.5 musical/opera GENRE.MUSIC_DANCE.5 musical/opera
GENRE.MUSIC_DANCE.6 ballet GENRE.MUSIC_DANCE.6 ballet
GENRE.NEWS news
GENRE.NEWS.0 news GENRE.NEWS.0 news
GENRE.NEWS.1 news/weather report GENRE.NEWS.1 news/weather report
GENRE.NEWS.2 news magazine GENRE.NEWS.2 news magazine
GENRE.NEWS.3 documentary GENRE.NEWS.3 documentary
GENRE.NEWS.4 discussion/interview/debate GENRE.NEWS.4 discussion/interview/debate
GENRE.SHOW Show
GENRE.SHOW.0 Show / Gameshow GENRE.SHOW.0 Show / Gameshow
GENRE.SHOW.1 game show/quiz/contest GENRE.SHOW.1 game show/quiz/contest
GENRE.SHOW.2 variety show GENRE.SHOW.2 variety show
GENRE.SHOW.3 talk show GENRE.SHOW.3 talk show
GENRE.SOCIAL_POLITICAL social
GENRE.SOCIAL_POLITICAL.0 social & politic events / business GENRE.SOCIAL_POLITICAL.0 social & politic events / business
GENRE.SOCIAL_POLITICAL.1 magazines/reports/documentary GENRE.SOCIAL_POLITICAL.1 magazines/reports/documentary
GENRE.SOCIAL_POLITICAL.2 economics/social advisory GENRE.SOCIAL_POLITICAL.2 economics/social advisory
GENRE.SOCIAL_POLITICAL.3 remarkable people GENRE.SOCIAL_POLITICAL.3 remarkable people
GENRE.SPORTS sports
GENRE.SPORTS.0 sports GENRE.SPORTS.0 sports
GENRE.SPORTS.1 special events (Olympic Games,World Cup etc.) GENRE.SPORTS.1 special events (Olympic Games,World Cup etc.)
GENRE.SPORTS.10 equestrian GENRE.SPORTS.10 equestrian
@@ -87,6 +97,7 @@ GENRE.SPORTS.6 athletics
GENRE.SPORTS.7 motor sports GENRE.SPORTS.7 motor sports
GENRE.SPORTS.8 water sports GENRE.SPORTS.8 water sports
GENRE.SPORTS.9 winter sports GENRE.SPORTS.9 winter sports
GENRE.TRAVEL_HOBBIES Leisure
GENRE.TRAVEL_HOBBIES.0 travel & recreation GENRE.TRAVEL_HOBBIES.0 travel & recreation
GENRE.TRAVEL_HOBBIES.1 tourism/travel GENRE.TRAVEL_HOBBIES.1 tourism/travel
GENRE.TRAVEL_HOBBIES.2 handicraft GENRE.TRAVEL_HOBBIES.2 handicraft
@@ -352,6 +363,7 @@ epgviewer.genre Genre
epgviewer.length Length (min.) epgviewer.length Length (min.)
epgviewer.nodetailed No detailed informations available epgviewer.nodetailed No detailed informations available
epgviewer.notfound No EPG found epgviewer.notfound No EPG found
eventfinder.genre Filter
eventfinder.head Search in EPG eventfinder.head Search in EPG
eventfinder.history Search history eventfinder.history Search history
eventfinder.keyword Keyword eventfinder.keyword Keyword

View File

@@ -2310,7 +2310,7 @@ printf("SIevent size: %d\n", (int)sizeof(SIevent));
} }
/* was: commandAllEventsChannelID sendAllEvents */ /* was: commandAllEventsChannelID sendAllEvents */
void CEitManager::getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search, std::string search_text,bool all_chann) void CEitManager::getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search, std::string search_text,bool all_chann, int genre)
{ {
dprintf("sendAllEvents for " PRINTF_CHANNEL_ID_TYPE "\n", serviceUniqueKey); dprintf("sendAllEvents for " PRINTF_CHANNEL_ID_TYPE "\n", serviceUniqueKey);
if(!eList.empty() && search == 0)//skip on search mode if(!eList.empty() && search == 0)//skip on search mode
@@ -2351,6 +2351,13 @@ void CEitManager::getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEve
std::transform(eExtendedText.begin(), eExtendedText.end(), eExtendedText.begin(), tolower); std::transform(eExtendedText.begin(), eExtendedText.end(), eExtendedText.begin(), tolower);
copy = (eExtendedText.find(search_text) != std::string::npos); copy = (eExtendedText.find(search_text) != std::string::npos);
} }
if(copy && genre != 0xFF)
{
if((*e)->classifications.content==0)
copy=false;
if(copy && ((*e)->classifications.content < (genre & 0xf0 ) || (*e)->classifications.content > genre))
copy=false;
}
} }
if(copy) { if(copy) {
for (SItimes::iterator t = (*e)->times.begin(); t != (*e)->times.end(); ++t) for (SItimes::iterator t = (*e)->times.begin(); t != (*e)->times.end(); ++t)

View File

@@ -56,7 +56,7 @@ class CEitManager : public OpenThreads::Thread, public OpenThreads::Mutex
bool Stop(); bool Stop();
void SetConfig(CSectionsdClient::epg_config &cfg) { config = cfg; }; void SetConfig(CSectionsdClient::epg_config &cfg) { config = cfg; };
void getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = "", bool all_chann=false); void getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = "", bool all_chann=false, int genre=0xFF);
void getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next ); void getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next );
bool getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); bool getEPGidShort(event_id_t epgID, CShortEPGData * epgdata);
bool getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); bool getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata);

View File

@@ -102,7 +102,7 @@ CEventList::CEventList()
m_search_epg_item = SEARCH_EPG_TITLE; m_search_epg_item = SEARCH_EPG_TITLE;
m_search_channel_id = 1; m_search_channel_id = 1;
m_search_bouquet_id= 1; m_search_bouquet_id= 1;
m_search_genre = 1;
full_width = width = 0; full_width = width = 0;
height = 0; height = 0;
@@ -1043,7 +1043,8 @@ bool CEventList::findEvents(void)
&m_search_keyword, &m_search_keyword,
&m_search_list, &m_search_list,
&m_search_channel_id, &m_search_channel_id,
&m_search_bouquet_id &m_search_bouquet_id,
&m_search_genre
); );
hide(); hide();
menu.exec(NULL,""); menu.exec(NULL,"");
@@ -1056,7 +1057,7 @@ bool CEventList::findEvents(void)
evtlist.clear(); evtlist.clear();
if(m_search_list == SEARCH_LIST_CHANNEL) if(m_search_list == SEARCH_LIST_CHANNEL)
{ {
CEitManager::getInstance()->getEventsServiceKey(m_search_channel_id, evtlist, m_search_epg_item,m_search_keyword); CEitManager::getInstance()->getEventsServiceKey(m_search_channel_id, evtlist, m_search_epg_item,m_search_keyword,false, m_search_genre);
} }
else if(m_search_list == SEARCH_LIST_BOUQUET) else if(m_search_list == SEARCH_LIST_BOUQUET)
{ {
@@ -1064,7 +1065,7 @@ bool CEventList::findEvents(void)
for(int channel = 0; channel < channel_nr; channel++) for(int channel = 0; channel < channel_nr; channel++)
{ {
channel_id = bouquetList->Bouquets[m_search_bouquet_id]->channelList->getChannelFromIndex(channel)->getChannelID(); channel_id = bouquetList->Bouquets[m_search_bouquet_id]->channelList->getChannelFromIndex(channel)->getChannelID();
CEitManager::getInstance()->getEventsServiceKey(channel_id, evtlist, m_search_epg_item,m_search_keyword); CEitManager::getInstance()->getEventsServiceKey(channel_id, evtlist, m_search_epg_item,m_search_keyword,false, m_search_genre);
} }
} }
else if(m_search_list == SEARCH_LIST_ALL) else if(m_search_list == SEARCH_LIST_ALL)
@@ -1084,7 +1085,7 @@ bool CEventList::findEvents(void)
for (it = v.begin(); it != v.end(); ++it){ for (it = v.begin(); it != v.end(); ++it){
ch_id_map[*it & 0xFFFFFFFFFFFFULL] = *it; ch_id_map[*it & 0xFFFFFFFFFFFFULL] = *it;
} }
CEitManager::getInstance()->getEventsServiceKey(0,evtlist, m_search_epg_item,m_search_keyword, true);//all_chann CEitManager::getInstance()->getEventsServiceKey(0,evtlist, m_search_epg_item,m_search_keyword, true,m_search_genre);//all_chann
if(!evtlist.empty()){ if(!evtlist.empty()){
std::map<t_channel_id, t_channel_id>::iterator map_it; std::map<t_channel_id, t_channel_id>::iterator map_it;
@@ -1184,6 +1185,21 @@ bool CEventFinderMenuHandler::changeNotify(const neutrino_locale_t OptionName, v
return true; return true;
} }
*/ */
const short GENRE_GROUP_COUNT = 11;
const CMenuOptionChooser::keyval GENRE_GROUP[GENRE_GROUP_COUNT] =
{
{ 0xFF, LOCALE_GENRE_ALL },
{ 0x18, LOCALE_GENRE_MOVIE },
{ 0x24, LOCALE_GENRE_NEWS },
{ 0x33, LOCALE_GENRE_SHOW },
{ 0x4B, LOCALE_GENRE_SPORTS },
{ 0x55, LOCALE_GENRE_CHILDRENS_PROGRAMMES },
{ 0x66, LOCALE_GENRE_MUSIC_DANCE },
{ 0x7B, LOCALE_GENRE_ARTS },
{ 0x83, LOCALE_GENRE_SOCIAL_POLITICAL },
{ 0x97, LOCALE_GENRE_DOCUS_MAGAZINES },
{ 0xA7, LOCALE_GENRE_TRAVEL_HOBBIES }
};
#define SEARCH_LIST_OPTION_COUNT 3 #define SEARCH_LIST_OPTION_COUNT 3
const CMenuOptionChooser::keyval SEARCH_LIST_OPTIONS[SEARCH_LIST_OPTION_COUNT] = const CMenuOptionChooser::keyval SEARCH_LIST_OPTIONS[SEARCH_LIST_OPTION_COUNT] =
@@ -1214,7 +1230,9 @@ CEventFinderMenu::CEventFinderMenu( int* event,
std::string* search_keyword, std::string* search_keyword,
int* search_list, int* search_list,
t_channel_id* search_channel_id, t_channel_id* search_channel_id,
t_bouquet_id* search_bouquet_id) t_bouquet_id* search_bouquet_id,
int* search_genre
)
/************************************************************************************************/ /************************************************************************************************/
{ {
m_event = event; m_event = event;
@@ -1223,6 +1241,7 @@ CEventFinderMenu::CEventFinderMenu( int* event,
m_search_list = search_list; m_search_list = search_list;
m_search_channel_id = search_channel_id; m_search_channel_id = search_channel_id;
m_search_bouquet_id = search_bouquet_id; m_search_bouquet_id = search_bouquet_id;
m_search_genre = search_genre;
width = 40; width = 40;
selected = -1; selected = -1;
} }
@@ -1351,10 +1370,13 @@ int CEventFinderMenu::showMenu(void)
CMenuForwarder* mf0 = new CMenuForwarder(LOCALE_EVENTFINDER_KEYWORD, true, *m_search_keyword, &stringInput, NULL, CRCInput::RC_red); CMenuForwarder* mf0 = new CMenuForwarder(LOCALE_EVENTFINDER_KEYWORD, true, *m_search_keyword, &stringInput, NULL, CRCInput::RC_red);
CMenuOptionChooser* mo0 = new CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_LIST, m_search_list, SEARCH_LIST_OPTIONS, SEARCH_LIST_OPTION_COUNT, true, this, CRCInput::convertDigitToKey(shortcut++)); CMenuOptionChooser* mo0 = new CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_LIST, m_search_list, SEARCH_LIST_OPTIONS, SEARCH_LIST_OPTION_COUNT, true, this, CRCInput::convertDigitToKey(shortcut++));
m_search_channelname_mf = new CMenuForwarder("", *m_search_list != CEventList::SEARCH_LIST_ALL, m_search_channelname, this, "#2", CRCInput::convertDigitToKey(shortcut++)); m_search_channelname_mf = new CMenuForwarder("", *m_search_list != CEventList::SEARCH_LIST_ALL, m_search_channelname, this, "#2", CRCInput::convertDigitToKey(shortcut++));
CMenuOptionChooser* mo1 = new CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG, m_search_epg_item, SEARCH_EPG_OPTIONS, SEARCH_EPG_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++)); CMenuOptionChooser* mo1 = new CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG, m_search_epg_item, SEARCH_EPG_OPTIONS, SEARCH_EPG_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++));
CMenuForwarder* mf1 = new CMenuForwarder(LOCALE_EVENTFINDER_START_SEARCH, true, NULL, this, "#1", CRCInput::RC_green); CMenuForwarder* mf1 = new CMenuForwarder(LOCALE_EVENTFINDER_START_SEARCH, true, NULL, this, "#1", CRCInput::RC_green);
CMenuOptionChooser* mgenre = new CMenuOptionChooser(LOCALE_EVENTFINDER_GENRE, m_search_genre, GENRE_GROUP, GENRE_GROUP_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++));
CMenuWidget searchMenu(LOCALE_EVENTFINDER_HEAD, NEUTRINO_ICON_FEATURES, 40); CMenuWidget searchMenu(LOCALE_EVENTFINDER_HEAD, NEUTRINO_ICON_FEATURES, 40);
CMenuForwarder* mf2 = new CMenuForwarder(LOCALE_EVENTFINDER_HISTORY, true, NULL, this, "#history", CRCInput::RC_yellow); CMenuForwarder* mf2 = new CMenuForwarder(LOCALE_EVENTFINDER_HISTORY, true, NULL, this, "#history", CRCInput::RC_yellow);
@@ -1370,6 +1392,8 @@ int CEventFinderMenu::showMenu(void)
searchMenu.addItem(m_search_channelname_mf); searchMenu.addItem(m_search_channelname_mf);
searchMenu.addItem(mo1); searchMenu.addItem(mo1);
searchMenu.addItem(GenericMenuSeparatorLine); searchMenu.addItem(GenericMenuSeparatorLine);
searchMenu.addItem(mgenre);
searchMenu.addItem(GenericMenuSeparatorLine);
searchMenu.addItem(mf2); searchMenu.addItem(mf2);
searchMenu.addItem(moc1); searchMenu.addItem(moc1);

View File

@@ -69,6 +69,7 @@ class CEventList
std::string m_search_keyword; std::string m_search_keyword;
std::string m_search_autokeyword; std::string m_search_autokeyword;
int m_search_list; int m_search_list;
int m_search_genre;
t_channel_id m_search_channel_id; t_channel_id m_search_channel_id;
t_bouquet_id m_search_bouquet_id; t_bouquet_id m_search_bouquet_id;
bool m_showChannel; bool m_showChannel;
@@ -142,6 +143,7 @@ class CEventFinderMenu : public CMenuTarget, CChangeObserver
CMenuForwarder* m_search_channelname_mf; CMenuForwarder* m_search_channelname_mf;
int* m_event; int* m_event;
int* m_search_epg_item; int* m_search_epg_item;
int* m_search_genre;
std::string* m_search_keyword; std::string* m_search_keyword;
int* m_search_list; int* m_search_list;
std::string m_search_channelname; std::string m_search_channelname;
@@ -156,7 +158,9 @@ class CEventFinderMenu : public CMenuTarget, CChangeObserver
std::string* search_keyword, std::string* search_keyword,
int* search_list, int* search_list,
t_channel_id* search_channel_id, t_channel_id* search_channel_id,
t_bouquet_id* search_bouquet_id); t_bouquet_id* search_bouquet_id,
int* search_genre
);
int exec( CMenuTarget* parent, const std::string &actionkey); int exec( CMenuTarget* parent, const std::string &actionkey);
bool changeNotify(const neutrino_locale_t OptionName, void *); bool changeNotify(const neutrino_locale_t OptionName, void *);

View File

@@ -47,6 +47,8 @@ typedef enum
LOCALE_EPGPLUS_STRETCH_MODE, LOCALE_EPGPLUS_STRETCH_MODE,
LOCALE_EPGPLUS_SWAP_MODE, LOCALE_EPGPLUS_SWAP_MODE,
LOCALE_EPGPLUS_VIEW_MODE, LOCALE_EPGPLUS_VIEW_MODE,
LOCALE_GENRE_ALL,
LOCALE_GENRE_ARTS,
LOCALE_GENRE_ARTS_0, LOCALE_GENRE_ARTS_0,
LOCALE_GENRE_ARTS_1, LOCALE_GENRE_ARTS_1,
LOCALE_GENRE_ARTS_10, LOCALE_GENRE_ARTS_10,
@@ -59,12 +61,14 @@ typedef enum
LOCALE_GENRE_ARTS_7, LOCALE_GENRE_ARTS_7,
LOCALE_GENRE_ARTS_8, LOCALE_GENRE_ARTS_8,
LOCALE_GENRE_ARTS_9, LOCALE_GENRE_ARTS_9,
LOCALE_GENRE_CHILDRENS_PROGRAMMES,
LOCALE_GENRE_CHILDRENS_PROGRAMMES_0, LOCALE_GENRE_CHILDRENS_PROGRAMMES_0,
LOCALE_GENRE_CHILDRENS_PROGRAMMES_1, LOCALE_GENRE_CHILDRENS_PROGRAMMES_1,
LOCALE_GENRE_CHILDRENS_PROGRAMMES_2, LOCALE_GENRE_CHILDRENS_PROGRAMMES_2,
LOCALE_GENRE_CHILDRENS_PROGRAMMES_3, LOCALE_GENRE_CHILDRENS_PROGRAMMES_3,
LOCALE_GENRE_CHILDRENS_PROGRAMMES_4, LOCALE_GENRE_CHILDRENS_PROGRAMMES_4,
LOCALE_GENRE_CHILDRENS_PROGRAMMES_5, LOCALE_GENRE_CHILDRENS_PROGRAMMES_5,
LOCALE_GENRE_DOCUS_MAGAZINES,
LOCALE_GENRE_DOCUS_MAGAZINES_0, LOCALE_GENRE_DOCUS_MAGAZINES_0,
LOCALE_GENRE_DOCUS_MAGAZINES_1, LOCALE_GENRE_DOCUS_MAGAZINES_1,
LOCALE_GENRE_DOCUS_MAGAZINES_2, LOCALE_GENRE_DOCUS_MAGAZINES_2,
@@ -73,6 +77,7 @@ typedef enum
LOCALE_GENRE_DOCUS_MAGAZINES_5, LOCALE_GENRE_DOCUS_MAGAZINES_5,
LOCALE_GENRE_DOCUS_MAGAZINES_6, LOCALE_GENRE_DOCUS_MAGAZINES_6,
LOCALE_GENRE_DOCUS_MAGAZINES_7, LOCALE_GENRE_DOCUS_MAGAZINES_7,
LOCALE_GENRE_MOVIE,
LOCALE_GENRE_MOVIE_0, LOCALE_GENRE_MOVIE_0,
LOCALE_GENRE_MOVIE_1, LOCALE_GENRE_MOVIE_1,
LOCALE_GENRE_MOVIE_2, LOCALE_GENRE_MOVIE_2,
@@ -82,6 +87,7 @@ typedef enum
LOCALE_GENRE_MOVIE_6, LOCALE_GENRE_MOVIE_6,
LOCALE_GENRE_MOVIE_7, LOCALE_GENRE_MOVIE_7,
LOCALE_GENRE_MOVIE_8, LOCALE_GENRE_MOVIE_8,
LOCALE_GENRE_MUSIC_DANCE,
LOCALE_GENRE_MUSIC_DANCE_0, LOCALE_GENRE_MUSIC_DANCE_0,
LOCALE_GENRE_MUSIC_DANCE_1, LOCALE_GENRE_MUSIC_DANCE_1,
LOCALE_GENRE_MUSIC_DANCE_2, LOCALE_GENRE_MUSIC_DANCE_2,
@@ -89,19 +95,23 @@ typedef enum
LOCALE_GENRE_MUSIC_DANCE_4, LOCALE_GENRE_MUSIC_DANCE_4,
LOCALE_GENRE_MUSIC_DANCE_5, LOCALE_GENRE_MUSIC_DANCE_5,
LOCALE_GENRE_MUSIC_DANCE_6, LOCALE_GENRE_MUSIC_DANCE_6,
LOCALE_GENRE_NEWS,
LOCALE_GENRE_NEWS_0, LOCALE_GENRE_NEWS_0,
LOCALE_GENRE_NEWS_1, LOCALE_GENRE_NEWS_1,
LOCALE_GENRE_NEWS_2, LOCALE_GENRE_NEWS_2,
LOCALE_GENRE_NEWS_3, LOCALE_GENRE_NEWS_3,
LOCALE_GENRE_NEWS_4, LOCALE_GENRE_NEWS_4,
LOCALE_GENRE_SHOW,
LOCALE_GENRE_SHOW_0, LOCALE_GENRE_SHOW_0,
LOCALE_GENRE_SHOW_1, LOCALE_GENRE_SHOW_1,
LOCALE_GENRE_SHOW_2, LOCALE_GENRE_SHOW_2,
LOCALE_GENRE_SHOW_3, LOCALE_GENRE_SHOW_3,
LOCALE_GENRE_SOCIAL_POLITICAL,
LOCALE_GENRE_SOCIAL_POLITICAL_0, LOCALE_GENRE_SOCIAL_POLITICAL_0,
LOCALE_GENRE_SOCIAL_POLITICAL_1, LOCALE_GENRE_SOCIAL_POLITICAL_1,
LOCALE_GENRE_SOCIAL_POLITICAL_2, LOCALE_GENRE_SOCIAL_POLITICAL_2,
LOCALE_GENRE_SOCIAL_POLITICAL_3, LOCALE_GENRE_SOCIAL_POLITICAL_3,
LOCALE_GENRE_SPORTS,
LOCALE_GENRE_SPORTS_0, LOCALE_GENRE_SPORTS_0,
LOCALE_GENRE_SPORTS_1, LOCALE_GENRE_SPORTS_1,
LOCALE_GENRE_SPORTS_10, LOCALE_GENRE_SPORTS_10,
@@ -114,6 +124,7 @@ typedef enum
LOCALE_GENRE_SPORTS_7, LOCALE_GENRE_SPORTS_7,
LOCALE_GENRE_SPORTS_8, LOCALE_GENRE_SPORTS_8,
LOCALE_GENRE_SPORTS_9, LOCALE_GENRE_SPORTS_9,
LOCALE_GENRE_TRAVEL_HOBBIES,
LOCALE_GENRE_TRAVEL_HOBBIES_0, LOCALE_GENRE_TRAVEL_HOBBIES_0,
LOCALE_GENRE_TRAVEL_HOBBIES_1, LOCALE_GENRE_TRAVEL_HOBBIES_1,
LOCALE_GENRE_TRAVEL_HOBBIES_2, LOCALE_GENRE_TRAVEL_HOBBIES_2,
@@ -379,6 +390,7 @@ typedef enum
LOCALE_EPGVIEWER_LENGTH, LOCALE_EPGVIEWER_LENGTH,
LOCALE_EPGVIEWER_NODETAILED, LOCALE_EPGVIEWER_NODETAILED,
LOCALE_EPGVIEWER_NOTFOUND, LOCALE_EPGVIEWER_NOTFOUND,
LOCALE_EVENTFINDER_GENRE,
LOCALE_EVENTFINDER_HEAD, LOCALE_EVENTFINDER_HEAD,
LOCALE_EVENTFINDER_HISTORY, LOCALE_EVENTFINDER_HISTORY,
LOCALE_EVENTFINDER_KEYWORD, LOCALE_EVENTFINDER_KEYWORD,

View File

@@ -47,6 +47,8 @@ const char * locale_real_names[] =
"EPGPlus.stretch_mode", "EPGPlus.stretch_mode",
"EPGPlus.swap_mode", "EPGPlus.swap_mode",
"EPGPlus.view_mode", "EPGPlus.view_mode",
"GENRE.ALL",
"GENRE.ARTS",
"GENRE.ARTS.0", "GENRE.ARTS.0",
"GENRE.ARTS.1", "GENRE.ARTS.1",
"GENRE.ARTS.10", "GENRE.ARTS.10",
@@ -59,12 +61,14 @@ const char * locale_real_names[] =
"GENRE.ARTS.7", "GENRE.ARTS.7",
"GENRE.ARTS.8", "GENRE.ARTS.8",
"GENRE.ARTS.9", "GENRE.ARTS.9",
"GENRE.CHILDRENs_PROGRAMMES",
"GENRE.CHILDRENs_PROGRAMMES.0", "GENRE.CHILDRENs_PROGRAMMES.0",
"GENRE.CHILDRENs_PROGRAMMES.1", "GENRE.CHILDRENs_PROGRAMMES.1",
"GENRE.CHILDRENs_PROGRAMMES.2", "GENRE.CHILDRENs_PROGRAMMES.2",
"GENRE.CHILDRENs_PROGRAMMES.3", "GENRE.CHILDRENs_PROGRAMMES.3",
"GENRE.CHILDRENs_PROGRAMMES.4", "GENRE.CHILDRENs_PROGRAMMES.4",
"GENRE.CHILDRENs_PROGRAMMES.5", "GENRE.CHILDRENs_PROGRAMMES.5",
"GENRE.DOCUS_MAGAZINES",
"GENRE.DOCUS_MAGAZINES.0", "GENRE.DOCUS_MAGAZINES.0",
"GENRE.DOCUS_MAGAZINES.1", "GENRE.DOCUS_MAGAZINES.1",
"GENRE.DOCUS_MAGAZINES.2", "GENRE.DOCUS_MAGAZINES.2",
@@ -73,6 +77,7 @@ const char * locale_real_names[] =
"GENRE.DOCUS_MAGAZINES.5", "GENRE.DOCUS_MAGAZINES.5",
"GENRE.DOCUS_MAGAZINES.6", "GENRE.DOCUS_MAGAZINES.6",
"GENRE.DOCUS_MAGAZINES.7", "GENRE.DOCUS_MAGAZINES.7",
"GENRE.MOVIE",
"GENRE.MOVIE.0", "GENRE.MOVIE.0",
"GENRE.MOVIE.1", "GENRE.MOVIE.1",
"GENRE.MOVIE.2", "GENRE.MOVIE.2",
@@ -82,6 +87,7 @@ const char * locale_real_names[] =
"GENRE.MOVIE.6", "GENRE.MOVIE.6",
"GENRE.MOVIE.7", "GENRE.MOVIE.7",
"GENRE.MOVIE.8", "GENRE.MOVIE.8",
"GENRE.MUSIC_DANCE",
"GENRE.MUSIC_DANCE.0", "GENRE.MUSIC_DANCE.0",
"GENRE.MUSIC_DANCE.1", "GENRE.MUSIC_DANCE.1",
"GENRE.MUSIC_DANCE.2", "GENRE.MUSIC_DANCE.2",
@@ -89,19 +95,23 @@ const char * locale_real_names[] =
"GENRE.MUSIC_DANCE.4", "GENRE.MUSIC_DANCE.4",
"GENRE.MUSIC_DANCE.5", "GENRE.MUSIC_DANCE.5",
"GENRE.MUSIC_DANCE.6", "GENRE.MUSIC_DANCE.6",
"GENRE.NEWS",
"GENRE.NEWS.0", "GENRE.NEWS.0",
"GENRE.NEWS.1", "GENRE.NEWS.1",
"GENRE.NEWS.2", "GENRE.NEWS.2",
"GENRE.NEWS.3", "GENRE.NEWS.3",
"GENRE.NEWS.4", "GENRE.NEWS.4",
"GENRE.SHOW",
"GENRE.SHOW.0", "GENRE.SHOW.0",
"GENRE.SHOW.1", "GENRE.SHOW.1",
"GENRE.SHOW.2", "GENRE.SHOW.2",
"GENRE.SHOW.3", "GENRE.SHOW.3",
"GENRE.SOCIAL_POLITICAL",
"GENRE.SOCIAL_POLITICAL.0", "GENRE.SOCIAL_POLITICAL.0",
"GENRE.SOCIAL_POLITICAL.1", "GENRE.SOCIAL_POLITICAL.1",
"GENRE.SOCIAL_POLITICAL.2", "GENRE.SOCIAL_POLITICAL.2",
"GENRE.SOCIAL_POLITICAL.3", "GENRE.SOCIAL_POLITICAL.3",
"GENRE.SPORTS",
"GENRE.SPORTS.0", "GENRE.SPORTS.0",
"GENRE.SPORTS.1", "GENRE.SPORTS.1",
"GENRE.SPORTS.10", "GENRE.SPORTS.10",
@@ -114,6 +124,7 @@ const char * locale_real_names[] =
"GENRE.SPORTS.7", "GENRE.SPORTS.7",
"GENRE.SPORTS.8", "GENRE.SPORTS.8",
"GENRE.SPORTS.9", "GENRE.SPORTS.9",
"GENRE.TRAVEL_HOBBIES",
"GENRE.TRAVEL_HOBBIES.0", "GENRE.TRAVEL_HOBBIES.0",
"GENRE.TRAVEL_HOBBIES.1", "GENRE.TRAVEL_HOBBIES.1",
"GENRE.TRAVEL_HOBBIES.2", "GENRE.TRAVEL_HOBBIES.2",
@@ -379,6 +390,7 @@ const char * locale_real_names[] =
"epgviewer.length", "epgviewer.length",
"epgviewer.nodetailed", "epgviewer.nodetailed",
"epgviewer.notfound", "epgviewer.notfound",
"eventfinder.genre",
"eventfinder.head", "eventfinder.head",
"eventfinder.history", "eventfinder.history",
"eventfinder.keyword", "eventfinder.keyword",