mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-08 06:08:36 +02:00
- movieinfo/moviebrowser: add (better) rating feature
This commit is contained in:
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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)
|
||||||
|
@@ -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)
|
||||||
|
@@ -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,
|
||||||
|
@@ -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",
|
||||||
|
Reference in New Issue
Block a user