- movieinfo/moviebrowser: add (better) rating feature

This commit is contained in:
svenhoefer
2016-03-22 22:04:51 +01:00
parent d8e3ecfa1d
commit 87dcc80502
8 changed files with 71 additions and 12 deletions

View File

@@ -1692,6 +1692,7 @@ moviebrowser.info_prevplaydate Letzte Wiedergabe
moviebrowser.info_prodcountry Land moviebrowser.info_prodcountry Land
moviebrowser.info_prodyear Jahr moviebrowser.info_prodyear Jahr
moviebrowser.info_quality Qualität moviebrowser.info_quality Qualität
moviebrowser.info_rating Bewertung
moviebrowser.info_recorddate Aufnahmedatum moviebrowser.info_recorddate Aufnahmedatum
moviebrowser.info_serie Serie moviebrowser.info_serie Serie
moviebrowser.info_size Dateigröße (MB) moviebrowser.info_size Dateigröße (MB)
@@ -1741,6 +1742,7 @@ moviebrowser.short_path Pfad
moviebrowser.short_prevplaydate Zuletzt moviebrowser.short_prevplaydate Zuletzt
moviebrowser.short_prodyear Jahr moviebrowser.short_prodyear Jahr
moviebrowser.short_quality Qualität moviebrowser.short_quality Qualität
moviebrowser.short_rating Vote
moviebrowser.short_recorddate Datum moviebrowser.short_recorddate Datum
moviebrowser.short_serie Serie moviebrowser.short_serie Serie
moviebrowser.short_size Größe moviebrowser.short_size Größe

View File

@@ -1692,6 +1692,7 @@ moviebrowser.info_prevplaydate Last play date
moviebrowser.info_prodcountry Country moviebrowser.info_prodcountry Country
moviebrowser.info_prodyear Year moviebrowser.info_prodyear Year
moviebrowser.info_quality Quality moviebrowser.info_quality Quality
moviebrowser.info_rating Rating
moviebrowser.info_recorddate Record date moviebrowser.info_recorddate Record date
moviebrowser.info_serie Serie moviebrowser.info_serie Serie
moviebrowser.info_size File size (MB) moviebrowser.info_size File size (MB)
@@ -1741,6 +1742,7 @@ moviebrowser.short_path Path
moviebrowser.short_prevplaydate Last moviebrowser.short_prevplaydate Last
moviebrowser.short_prodyear Year moviebrowser.short_prodyear Year
moviebrowser.short_quality * (quality) moviebrowser.short_quality * (quality)
moviebrowser.short_rating Vote
moviebrowser.short_recorddate Date moviebrowser.short_recorddate Date
moviebrowser.short_serie Serie moviebrowser.short_serie Serie
moviebrowser.short_size MB moviebrowser.short_size MB

View File

@@ -86,7 +86,7 @@ typedef struct dirent64 dirent_struct;
#define NUMBER_OF_MOVIES_LAST 40 // This is the number of movies shown in last recored and last played list #define NUMBER_OF_MOVIES_LAST 40 // This is the number of movies shown in last recored and last played list
#define MOVIE_SMSKEY_TIMEOUT 800 #define MOVIE_SMSKEY_TIMEOUT 800
#define MESSAGEBOX_BROWSER_ROW_ITEM_COUNT 20 #define MESSAGEBOX_BROWSER_ROW_ITEM_COUNT 21
const CMenuOptionChooser::keyval MESSAGEBOX_BROWSER_ROW_ITEM[MESSAGEBOX_BROWSER_ROW_ITEM_COUNT] = const CMenuOptionChooser::keyval MESSAGEBOX_BROWSER_ROW_ITEM[MESSAGEBOX_BROWSER_ROW_ITEM_COUNT] =
{ {
{ MB_INFO_FILENAME, LOCALE_MOVIEBROWSER_INFO_FILENAME }, { MB_INFO_FILENAME, LOCALE_MOVIEBROWSER_INFO_FILENAME },
@@ -108,7 +108,8 @@ const CMenuOptionChooser::keyval MESSAGEBOX_BROWSER_ROW_ITEM[MESSAGEBOX_BROWSER_
{ MB_INFO_GEOMETRIE, LOCALE_MOVIEBROWSER_INFO_VIDEOFORMAT }, { MB_INFO_GEOMETRIE, LOCALE_MOVIEBROWSER_INFO_VIDEOFORMAT },
{ MB_INFO_AUDIO, LOCALE_MOVIEBROWSER_INFO_AUDIO }, { MB_INFO_AUDIO, LOCALE_MOVIEBROWSER_INFO_AUDIO },
{ MB_INFO_LENGTH, LOCALE_MOVIEBROWSER_INFO_LENGTH }, { MB_INFO_LENGTH, LOCALE_MOVIEBROWSER_INFO_LENGTH },
{ MB_INFO_SIZE, LOCALE_MOVIEBROWSER_INFO_SIZE } { MB_INFO_SIZE, LOCALE_MOVIEBROWSER_INFO_SIZE },
{ MB_INFO_RATING, LOCALE_MOVIEBROWSER_INFO_RATING }
}; };
#define MESSAGEBOX_YES_NO_OPTIONS_COUNT 2 #define MESSAGEBOX_YES_NO_OPTIONS_COUNT 2
@@ -167,6 +168,7 @@ const neutrino_locale_t m_localizedItemName[MB_INFO_MAX_NUMBER+1] =
LOCALE_MOVIEBROWSER_SHORT_AUDIO, LOCALE_MOVIEBROWSER_SHORT_AUDIO,
LOCALE_MOVIEBROWSER_SHORT_LENGTH, LOCALE_MOVIEBROWSER_SHORT_LENGTH,
LOCALE_MOVIEBROWSER_SHORT_SIZE, LOCALE_MOVIEBROWSER_SHORT_SIZE,
LOCALE_MOVIEBROWSER_SHORT_RATING,
NONEXISTANT_LOCALE NONEXISTANT_LOCALE
}; };
@@ -191,6 +193,7 @@ const neutrino_locale_t m_localizedItemName[MB_INFO_MAX_NUMBER+1] =
#define MB_ROW_WIDTH_AUDIO 8 #define MB_ROW_WIDTH_AUDIO 8
#define MB_ROW_WIDTH_LENGTH 10 #define MB_ROW_WIDTH_LENGTH 10
#define MB_ROW_WIDTH_SIZE 12 #define MB_ROW_WIDTH_SIZE 12
#define MB_ROW_WIDTH_RATING 5
const int m_defaultRowWidth[MB_INFO_MAX_NUMBER+1] = const int m_defaultRowWidth[MB_INFO_MAX_NUMBER+1] =
{ {
@@ -214,6 +217,7 @@ const int m_defaultRowWidth[MB_INFO_MAX_NUMBER+1] =
MB_ROW_WIDTH_AUDIO, MB_ROW_WIDTH_AUDIO,
MB_ROW_WIDTH_LENGTH, MB_ROW_WIDTH_LENGTH,
MB_ROW_WIDTH_SIZE, MB_ROW_WIDTH_SIZE,
MB_ROW_WIDTH_RATING,
0 //MB_ROW_WIDTH_MAX_NUMBER 0 //MB_ROW_WIDTH_MAX_NUMBER
}; };
static MI_MOVIE_INFO* playing_info; static MI_MOVIE_INFO* playing_info;
@@ -283,6 +287,13 @@ bool sortByAge(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b)
else else
return a->parentalLockAge < b->parentalLockAge; return a->parentalLockAge < b->parentalLockAge;
} }
bool sortByRating(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b)
{
if (sortDirection)
return a->rating > b->rating;
else
return a->rating < b->rating;
}
bool sortByQuality(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) bool sortByQuality(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b)
{ {
if (sortDirection) if (sortDirection)
@@ -328,7 +339,8 @@ bool (* const sortBy[MB_INFO_MAX_NUMBER+1])(const MI_MOVIE_INFO* a, const MI_MOV
NULL, //MB_INFO_AUDIO = 17, NULL, //MB_INFO_AUDIO = 17,
NULL, //MB_INFO_LENGTH = 18, NULL, //MB_INFO_LENGTH = 18,
&sortBySize, //MB_INFO_SIZE = 19, &sortBySize, //MB_INFO_SIZE = 19,
NULL //MB_INFO_MAX_NUMBER = 20 &sortByRating, //MB_INFO_RATING = 20,
NULL //MB_INFO_MAX_NUMBER = 21
}; };
CMovieBrowser::CMovieBrowser(): configfile ('\t') CMovieBrowser::CMovieBrowser(): configfile ('\t')
@@ -849,6 +861,10 @@ int CMovieBrowser::exec(CMenuTarget* parent, const std::string & actionKey)
movieInfoUpdateAll[MB_INFO_MAJOR_GENRE]) movieInfoUpdateAll[MB_INFO_MAJOR_GENRE])
(*current_list)[i]->genreMajor = m_movieSelectionHandler->genreMajor; (*current_list)[i]->genreMajor = m_movieSelectionHandler->genreMajor;
if (!((*current_list)[i]->rating!=0 && movieInfoUpdateAllIfDestEmptyOnly == true) &&
movieInfoUpdateAll[MB_INFO_RATING])
(*current_list)[i]->rating = m_movieSelectionHandler->rating;
if (!((*current_list)[i]->quality!=0 && movieInfoUpdateAllIfDestEmptyOnly == true) && if (!((*current_list)[i]->quality!=0 && movieInfoUpdateAllIfDestEmptyOnly == true) &&
movieInfoUpdateAll[MB_INFO_QUALITY]) movieInfoUpdateAll[MB_INFO_QUALITY])
(*current_list)[i]->quality = m_movieSelectionHandler->quality; (*current_list)[i]->quality = m_movieSelectionHandler->quality;
@@ -2526,7 +2542,8 @@ bool CMovieBrowser::onSortMovieInfoHandleList(std::vector<MI_MOVIE_INFO*>& handl
{ {
if (sort_item == MB_INFO_QUALITY || sort_item == MB_INFO_PARENTAL_LOCKAGE || if (sort_item == MB_INFO_QUALITY || sort_item == MB_INFO_PARENTAL_LOCKAGE ||
sort_item == MB_INFO_PREVPLAYDATE || sort_item == MB_INFO_RECORDDATE || sort_item == MB_INFO_PREVPLAYDATE || sort_item == MB_INFO_RECORDDATE ||
sort_item == MB_INFO_PRODDATE || sort_item == MB_INFO_SIZE) sort_item == MB_INFO_PRODDATE || sort_item == MB_INFO_SIZE ||
sort_item == MB_INFO_RATING)
sortDirection = 1; sortDirection = 1;
else else
sortDirection = 0; sortDirection = 0;
@@ -2944,6 +2961,11 @@ void CMovieBrowser::showHelp(void)
help.exec(NULL,NULL); help.exec(NULL,NULL);
} }
static std::string rateFormat(int i)
{
return to_string(i/10) + "," + to_string(i%10);
}
#define MAX_STRING 30 #define MAX_STRING 30
int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info) int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info)
{ {
@@ -3008,12 +3030,13 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info)
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_TITLE, &movieInfoUpdateAll[MB_INFO_TITLE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_1)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_TITLE, &movieInfoUpdateAll[MB_INFO_TITLE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_1));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_INFO1, &movieInfoUpdateAll[MB_INFO_INFO1], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_2)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_INFO1, &movieInfoUpdateAll[MB_INFO_INFO1], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_2));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_SERIE, &movieInfoUpdateAll[MB_INFO_SERIE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_3)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_SERIE, &movieInfoUpdateAll[MB_INFO_SERIE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_3));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_QUALITY, &movieInfoUpdateAll[MB_INFO_QUALITY], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_4)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_RATING, &movieInfoUpdateAll[MB_INFO_RATING], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_4));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE, &movieInfoUpdateAll[MB_INFO_PARENTAL_LOCKAGE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_5)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_QUALITY, &movieInfoUpdateAll[MB_INFO_QUALITY], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_5));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR, &movieInfoUpdateAll[MB_INFO_MAJOR_GENRE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_6)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE, &movieInfoUpdateAll[MB_INFO_PARENTAL_LOCKAGE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_6));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, &movieInfoUpdateAll[MB_INFO_PRODDATE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_7)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR, &movieInfoUpdateAll[MB_INFO_MAJOR_GENRE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_7));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, &movieInfoUpdateAll[MB_INFO_COUNTRY], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_8)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, &movieInfoUpdateAll[MB_INFO_PRODDATE], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_8));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movieInfoUpdateAll[MB_INFO_LENGTH], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_9)); movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, &movieInfoUpdateAll[MB_INFO_COUNTRY], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_9));
movieInfoMenuUpdate.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movieInfoUpdateAll[MB_INFO_LENGTH], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_0));
/********************************************************************/ /********************************************************************/
/** movieInfo ******************************************************/ /** movieInfo ******************************************************/
@@ -3034,6 +3057,9 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info)
CIntInput lengthUserIntInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, (int *)&movie_info->length, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); CIntInput lengthUserIntInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, (int *)&movie_info->length, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
CIntInput yearUserIntInput(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, (int *)&movie_info->productionDate, 4, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); CIntInput yearUserIntInput(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, (int *)&movie_info->productionDate, 4, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
CMenuOptionNumberChooser *rate = new CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_RATING, &movie_info->rating, true, 0, 100, NULL);
rate->setNumberFormat(rateFormat);
CMenuWidget movieInfoMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); CMenuWidget movieInfoMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER);
movieInfoMenu.addIntroItems(LOCALE_MOVIEBROWSER_INFO_HEAD); movieInfoMenu.addIntroItems(LOCALE_MOVIEBROWSER_INFO_HEAD);
@@ -3046,6 +3072,7 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info)
movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_INFO1, (movie_info->epgInfo1.size() <= MAX_STRING) /*true*/, movie_info->epgInfo1, &epgUserInput,NULL, CRCInput::RC_3)); movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_INFO1, (movie_info->epgInfo1.size() <= MAX_STRING) /*true*/, movie_info->epgInfo1, &epgUserInput,NULL, CRCInput::RC_3));
movieInfoMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR, &movie_info->genreMajor, GENRE_ALL, GENRE_ALL_COUNT, true,NULL, CRCInput::RC_4, "", true)); movieInfoMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR, &movie_info->genreMajor, GENRE_ALL, GENRE_ALL_COUNT, true,NULL, CRCInput::RC_4, "", true));
movieInfoMenu.addItem(GenericMenuSeparatorLine); movieInfoMenu.addItem(GenericMenuSeparatorLine);
movieInfoMenu.addItem(rate);
movieInfoMenu.addItem(new CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_QUALITY,&movie_info->quality,true,0,3, NULL)); movieInfoMenu.addItem(new CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_QUALITY,&movie_info->quality,true,0,3, NULL));
movieInfoMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE, &movie_info->parentalLockAge, MESSAGEBOX_PARENTAL_LOCKAGE_OPTIONS, MESSAGEBOX_PARENTAL_LOCKAGE_OPTION_COUNT, true,NULL, CRCInput::RC_6)); movieInfoMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE, &movie_info->parentalLockAge, MESSAGEBOX_PARENTAL_LOCKAGE_OPTIONS, MESSAGEBOX_PARENTAL_LOCKAGE_OPTION_COUNT, true,NULL, CRCInput::RC_6));
movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, true, yearUserIntInput.getValue(), &yearUserIntInput,NULL, CRCInput::RC_7)); movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, true, yearUserIntInput.getValue(), &yearUserIntInput,NULL, CRCInput::RC_7));
@@ -3507,7 +3534,14 @@ bool CMovieBrowser::getMovieInfoItem(MI_MOVIE_INFO& movie_info, MB_INFO_ITEM ite
snprintf(str_tmp, sizeof(str_tmp),"%4" PRIu64 "",movie_info.file.Size>>20); snprintf(str_tmp, sizeof(str_tmp),"%4" PRIu64 "",movie_info.file.Size>>20);
*item_string = str_tmp; *item_string = str_tmp;
break; break;
case MB_INFO_MAX_NUMBER: // = 20 case MB_INFO_RATING: // = 20,
if (movie_info.rating)
{
snprintf(str_tmp, sizeof(str_tmp),"%d,%d",movie_info.rating/10, movie_info.rating%10);
*item_string = str_tmp;
}
break;
case MB_INFO_MAX_NUMBER: // = 21
default: default:
*item_string=""; *item_string="";
result = false; result = false;

View File

@@ -114,7 +114,8 @@ typedef enum
MB_INFO_AUDIO = 17, MB_INFO_AUDIO = 17,
MB_INFO_LENGTH = 18, MB_INFO_LENGTH = 18,
MB_INFO_SIZE = 19, MB_INFO_SIZE = 19,
MB_INFO_MAX_NUMBER = 20 // MUST be allways the last item in the list MB_INFO_RATING = 20,
MB_INFO_MAX_NUMBER = 21 // MUST be allways the last item in the list
}MB_INFO_ITEM; }MB_INFO_ITEM;

View File

@@ -193,6 +193,7 @@ bool CMovieInfo::encodeMovieInfoXml(std::string * extMessage, MI_MOVIE_INFO * mo
XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_LENGTH, movie_info->length); XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_LENGTH, movie_info->length);
XML_ADD_TAG_STRING(*extMessage, MI_XML_TAG_PRODUCT_COUNTRY, movie_info->productionCountry); XML_ADD_TAG_STRING(*extMessage, MI_XML_TAG_PRODUCT_COUNTRY, movie_info->productionCountry);
XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_PRODUCT_DATE, movie_info->productionDate); XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_PRODUCT_DATE, movie_info->productionDate);
XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_RATING, movie_info->rating);
XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_QUALITY, movie_info->quality); XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_QUALITY, movie_info->quality);
XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_PARENTAL_LOCKAGE, movie_info->parentalLockAge); XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_PARENTAL_LOCKAGE, movie_info->parentalLockAge);
XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_DATE_OF_LAST_PLAY, movie_info->dateOfLastPlay); XML_ADD_TAG_UNSIGNED(*extMessage, MI_XML_TAG_DATE_OF_LAST_PLAY, movie_info->dateOfLastPlay);
@@ -364,6 +365,7 @@ bool CMovieInfo::parseXmlTree(char */*text*/, MI_MOVIE_INFO * /*movie_info*/)
XML_GET_DATA_STRING(xam1, MI_XML_TAG_PRODUCT_COUNTRY, movie_info->productionCountry); XML_GET_DATA_STRING(xam1, MI_XML_TAG_PRODUCT_COUNTRY, movie_info->productionCountry);
//if(!strcmp(xam1->GetType(), MI_XML_TAG_PRODUCT_COUNTRY)) if(xam1->GetData() != NULL)strncpy(movie_info->productionCountry, xam1->GetData(),4); //if(!strcmp(xam1->GetType(), MI_XML_TAG_PRODUCT_COUNTRY)) if(xam1->GetData() != NULL)strncpy(movie_info->productionCountry, xam1->GetData(),4);
XML_GET_DATA_INT(xam1, MI_XML_TAG_PRODUCT_DATE, movie_info->productionDate); XML_GET_DATA_INT(xam1, MI_XML_TAG_PRODUCT_DATE, movie_info->productionDate);
XML_GET_DATA_INT(xam1, MI_XML_TAG_RATING, movie_info->rating);
XML_GET_DATA_INT(xam1, MI_XML_TAG_QUALITIY, movie_info->quality); XML_GET_DATA_INT(xam1, MI_XML_TAG_QUALITIY, movie_info->quality);
XML_GET_DATA_INT(xam1, MI_XML_TAG_QUALITY, movie_info->quality); XML_GET_DATA_INT(xam1, MI_XML_TAG_QUALITY, movie_info->quality);
XML_GET_DATA_INT(xam1, MI_XML_TAG_PARENTAL_LOCKAGE, movie_info->parentalLockAge); XML_GET_DATA_INT(xam1, MI_XML_TAG_PARENTAL_LOCKAGE, movie_info->parentalLockAge);
@@ -421,6 +423,15 @@ void CMovieInfo::showMovieInfo(MI_MOVIE_INFO & movie_info)
print_buffer += movie_info.epgChannel; print_buffer += movie_info.epgChannel;
print_buffer += "\n"; print_buffer += "\n";
} }
if (movie_info.rating != 0) {
print_buffer += g_Locale->getText(LOCALE_MOVIEBROWSER_INFO_RATING);
print_buffer += ": ";
print_buffer += to_string(movie_info.rating / 10);
print_buffer += ",";
print_buffer += to_string(movie_info.rating % 10);
print_buffer += "/10";
print_buffer += "\n";
}
if (movie_info.quality != 0) { if (movie_info.quality != 0) {
print_buffer += g_Locale->getText(LOCALE_MOVIEBROWSER_INFO_QUALITY); print_buffer += g_Locale->getText(LOCALE_MOVIEBROWSER_INFO_QUALITY);
print_buffer += ": "; print_buffer += ": ";
@@ -516,6 +527,7 @@ void CMovieInfo::printDebugMovieInfo(MI_MOVIE_INFO & movie_info)
TRACE(" genreMajor: \t\t%d\r\n", movie_info.genreMajor); //genreMajor; TRACE(" genreMajor: \t\t%d\r\n", movie_info.genreMajor); //genreMajor;
TRACE(" genreMinor: \t\t%d\r\n", movie_info.genreMinor); //genreMinor; TRACE(" genreMinor: \t\t%d\r\n", movie_info.genreMinor); //genreMinor;
TRACE(" length: \t\t%d\r\n", movie_info.length); // (minutes) TRACE(" length: \t\t%d\r\n", movie_info.length); // (minutes)
TRACE(" rating: \t\t%d,%d\r\n", movie_info.rating / 10, movie_info.rating % 10); // user rating (like IMDb rating; 75 means 7.5/10)
TRACE(" quality: \t\t%d\r\n", movie_info.quality); // (3 stars: classics, 2 stars: very good, 1 star: good, 0 stars: OK) TRACE(" quality: \t\t%d\r\n", movie_info.quality); // (3 stars: classics, 2 stars: very good, 1 star: good, 0 stars: OK)
TRACE(" productionCount:\t>%s<\r\n", movie_info.productionCountry.c_str()); TRACE(" productionCount:\t>%s<\r\n", movie_info.productionCountry.c_str());
TRACE(" productionDate: \t%d\r\n", movie_info.productionDate); // (Year) years since 1900 TRACE(" productionDate: \t%d\r\n", movie_info.productionDate); // (Year) years since 1900
@@ -660,6 +672,7 @@ bool CMovieInfo::parseXmlQuickFix(std::string &_text, MI_MOVIE_INFO * movie_info
GET_XML_DATA_STRING(text, pos, MI_XML_TAG_PRODUCT_COUNTRY, movie_info->productionCountry) GET_XML_DATA_STRING(text, pos, MI_XML_TAG_PRODUCT_COUNTRY, movie_info->productionCountry)
GET_XML_DATA_INT(text, pos, MI_XML_TAG_PRODUCT_DATE, movie_info->productionDate) GET_XML_DATA_INT(text, pos, MI_XML_TAG_PRODUCT_DATE, movie_info->productionDate)
GET_XML_DATA_INT(text, pos, MI_XML_TAG_PARENTAL_LOCKAGE, movie_info->parentalLockAge) GET_XML_DATA_INT(text, pos, MI_XML_TAG_PARENTAL_LOCKAGE, movie_info->parentalLockAge)
GET_XML_DATA_INT(text, pos, MI_XML_TAG_RATING, movie_info->rating)
GET_XML_DATA_INT(text, pos, MI_XML_TAG_QUALITIY, movie_info->quality) GET_XML_DATA_INT(text, pos, MI_XML_TAG_QUALITIY, movie_info->quality)
GET_XML_DATA_INT(text, pos, MI_XML_TAG_QUALITY, movie_info->quality) GET_XML_DATA_INT(text, pos, MI_XML_TAG_QUALITY, movie_info->quality)
GET_XML_DATA_INT(text, pos, MI_XML_TAG_DATE_OF_LAST_PLAY, movie_info->dateOfLastPlay) GET_XML_DATA_INT(text, pos, MI_XML_TAG_DATE_OF_LAST_PLAY, movie_info->dateOfLastPlay)
@@ -863,6 +876,7 @@ void MI_MOVIE_INFO::clear(void)
genreMajor = 0; //genreMajor; genreMajor = 0; //genreMajor;
genreMinor = 0; //genreMinor; genreMinor = 0; //genreMinor;
length = 0; // (minutes) length = 0; // (minutes)
rating = 0; // (like IMDb rating)
quality = 0; // (3 stars: classics, 2 stars: very good, 1 star: good, 0 stars: OK) quality = 0; // (3 stars: classics, 2 stars: very good, 1 star: good, 0 stars: OK)
productionDate = 0; // (Year) years since 1900 productionDate = 0; // (Year) years since 1900
parentalLockAge = 0; // MI_PARENTAL_LOCKAGE (0,6,12,16,18) parentalLockAge = 0; // MI_PARENTAL_LOCKAGE (0,6,12,16,18)

View File

@@ -89,6 +89,7 @@
#define MI_XML_TAG_LENGTH "length" #define MI_XML_TAG_LENGTH "length"
#define MI_XML_TAG_PRODUCT_COUNTRY "productioncountry" #define MI_XML_TAG_PRODUCT_COUNTRY "productioncountry"
#define MI_XML_TAG_PRODUCT_DATE "productiondate" #define MI_XML_TAG_PRODUCT_DATE "productiondate"
#define MI_XML_TAG_RATING "rating"
#define MI_XML_TAG_QUALITY "quality" #define MI_XML_TAG_QUALITY "quality"
#define MI_XML_TAG_QUALITIY "qualitiy" // just to keep compatibility to older xml-files #define MI_XML_TAG_QUALITIY "qualitiy" // just to keep compatibility to older xml-files
#define MI_XML_TAG_PARENTAL_LOCKAGE "parentallockage" #define MI_XML_TAG_PARENTAL_LOCKAGE "parentallockage"
@@ -160,6 +161,7 @@ class MI_MOVIE_INFO
int genreMajor; // see showEPG class for more info, usually filled by EPG int genreMajor; // see showEPG class for more info, usually filled by EPG
char genreMinor; // genreMinor not used so far char genreMinor; // genreMinor not used so far
int length; // movie length in minutes, usually filled by EPG int length; // movie length in minutes, usually filled by EPG
int rating; // user rating (like IMDb rating; 75 means 7.5/10)
int quality; // user classification (3 stars: classics, 2 stars: very good, 1 star: good, 0 stars: OK) int quality; // user classification (3 stars: classics, 2 stars: very good, 1 star: good, 0 stars: OK)
int productionDate; // user defined Country (not from EPG yet, but might be possible) int productionDate; // user defined Country (not from EPG yet, but might be possible)
int parentalLockAge; // used for age rating(0:never,6,12,16,18 years,99:always), usually filled by EPG (if available) int parentalLockAge; // used for age rating(0:never,6,12,16,18 years,99:always), usually filled by EPG (if available)

View File

@@ -1719,6 +1719,7 @@ typedef enum
LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY,
LOCALE_MOVIEBROWSER_INFO_PRODYEAR, LOCALE_MOVIEBROWSER_INFO_PRODYEAR,
LOCALE_MOVIEBROWSER_INFO_QUALITY, LOCALE_MOVIEBROWSER_INFO_QUALITY,
LOCALE_MOVIEBROWSER_INFO_RATING,
LOCALE_MOVIEBROWSER_INFO_RECORDDATE, LOCALE_MOVIEBROWSER_INFO_RECORDDATE,
LOCALE_MOVIEBROWSER_INFO_SERIE, LOCALE_MOVIEBROWSER_INFO_SERIE,
LOCALE_MOVIEBROWSER_INFO_SIZE, LOCALE_MOVIEBROWSER_INFO_SIZE,
@@ -1768,6 +1769,7 @@ typedef enum
LOCALE_MOVIEBROWSER_SHORT_PREVPLAYDATE, LOCALE_MOVIEBROWSER_SHORT_PREVPLAYDATE,
LOCALE_MOVIEBROWSER_SHORT_PRODYEAR, LOCALE_MOVIEBROWSER_SHORT_PRODYEAR,
LOCALE_MOVIEBROWSER_SHORT_QUALITY, LOCALE_MOVIEBROWSER_SHORT_QUALITY,
LOCALE_MOVIEBROWSER_SHORT_RATING,
LOCALE_MOVIEBROWSER_SHORT_RECORDDATE, LOCALE_MOVIEBROWSER_SHORT_RECORDDATE,
LOCALE_MOVIEBROWSER_SHORT_SERIE, LOCALE_MOVIEBROWSER_SHORT_SERIE,
LOCALE_MOVIEBROWSER_SHORT_SIZE, LOCALE_MOVIEBROWSER_SHORT_SIZE,

View File

@@ -1719,6 +1719,7 @@ const char * locale_real_names[] =
"moviebrowser.info_prodcountry", "moviebrowser.info_prodcountry",
"moviebrowser.info_prodyear", "moviebrowser.info_prodyear",
"moviebrowser.info_quality", "moviebrowser.info_quality",
"moviebrowser.info_rating",
"moviebrowser.info_recorddate", "moviebrowser.info_recorddate",
"moviebrowser.info_serie", "moviebrowser.info_serie",
"moviebrowser.info_size", "moviebrowser.info_size",
@@ -1768,6 +1769,7 @@ const char * locale_real_names[] =
"moviebrowser.short_prevplaydate", "moviebrowser.short_prevplaydate",
"moviebrowser.short_prodyear", "moviebrowser.short_prodyear",
"moviebrowser.short_quality", "moviebrowser.short_quality",
"moviebrowser.short_rating",
"moviebrowser.short_recorddate", "moviebrowser.short_recorddate",
"moviebrowser.short_serie", "moviebrowser.short_serie",
"moviebrowser.short_size", "moviebrowser.short_size",