From 819b5f5daebd63444f07f79da8a8191ed607cc88 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 26 Sep 2014 14:21:36 +0400 Subject: [PATCH] gui/moviebrowser.cpp: cleanup, indent code; bug fixes --- src/gui/moviebrowser.cpp | 3100 ++++++++++++++++---------------------- src/gui/moviebrowser.h | 24 +- 2 files changed, 1292 insertions(+), 1832 deletions(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 8aae50b94..86f2df593 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -77,16 +77,12 @@ static CProgressBar *timescale; typedef struct stat64 stat_struct; typedef struct dirent64 dirent_struct; #define my_stat stat64 -static off64_t get_full_len(char * startname); //static off64_t truncate_movie(char * name, off64_t size, int len, int seconds); static off64_t truncate_movie(MI_MOVIE_INFO * minfo); static off64_t cut_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie); static off64_t copy_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie, bool onefile); #define TRACE printf -#define TRACE_1 printf - -#define VLC_URI "vlc://" #define NUMBER_OF_MOVIES_LAST 40 // This is the number of movies shown in last recored and last played list @@ -153,22 +149,22 @@ const neutrino_locale_t m_localizedItemName[MB_INFO_MAX_NUMBER+1] = { LOCALE_MOVIEBROWSER_SHORT_FILENAME, LOCALE_MOVIEBROWSER_SHORT_PATH, - LOCALE_MOVIEBROWSER_SHORT_TITLE , + LOCALE_MOVIEBROWSER_SHORT_TITLE, LOCALE_MOVIEBROWSER_SHORT_SERIE, LOCALE_MOVIEBROWSER_SHORT_INFO1, LOCALE_MOVIEBROWSER_SHORT_GENRE_MAJOR, LOCALE_MOVIEBROWSER_SHORT_GENRE_MINOR, LOCALE_MOVIEBROWSER_SHORT_INFO2, - LOCALE_MOVIEBROWSER_SHORT_PARENTAL_LOCKAGE , - LOCALE_MOVIEBROWSER_SHORT_CHANNEL , + LOCALE_MOVIEBROWSER_SHORT_PARENTAL_LOCKAGE, + LOCALE_MOVIEBROWSER_SHORT_CHANNEL, LOCALE_MOVIEBROWSER_SHORT_BOOK, LOCALE_MOVIEBROWSER_SHORT_QUALITY, LOCALE_MOVIEBROWSER_SHORT_PREVPLAYDATE, LOCALE_MOVIEBROWSER_SHORT_RECORDDATE, LOCALE_MOVIEBROWSER_SHORT_PRODYEAR, LOCALE_MOVIEBROWSER_SHORT_COUNTRY, - LOCALE_MOVIEBROWSER_SHORT_FORMAT , - LOCALE_MOVIEBROWSER_SHORT_AUDIO , + LOCALE_MOVIEBROWSER_SHORT_FORMAT, + LOCALE_MOVIEBROWSER_SHORT_AUDIO, LOCALE_MOVIEBROWSER_SHORT_LENGTH, LOCALE_MOVIEBROWSER_SHORT_SIZE, NONEXISTANT_LOCALE @@ -198,24 +194,24 @@ const neutrino_locale_t m_localizedItemName[MB_INFO_MAX_NUMBER+1] = const int m_defaultRowWidth[MB_INFO_MAX_NUMBER+1] = { - MB_ROW_WIDTH_FILENAME , + MB_ROW_WIDTH_FILENAME, MB_ROW_WIDTH_FILEPATH, MB_ROW_WIDTH_TITLE, MB_ROW_WIDTH_SERIE, MB_ROW_WIDTH_INFO1, - MB_ROW_WIDTH_MAJOR_GENRE , - MB_ROW_WIDTH_MINOR_GENRE , - MB_ROW_WIDTH_INFO2 , - MB_ROW_WIDTH_PARENTAL_LOCKAGE , + MB_ROW_WIDTH_MAJOR_GENRE, + MB_ROW_WIDTH_MINOR_GENRE, + MB_ROW_WIDTH_INFO2, + MB_ROW_WIDTH_PARENTAL_LOCKAGE, MB_ROW_WIDTH_CHANNEL, MB_ROW_WIDTH_BOOKMARK, - MB_ROW_WIDTH_QUALITY , + MB_ROW_WIDTH_QUALITY, MB_ROW_WIDTH_PREVPLAYDATE, - MB_ROW_WIDTH_RECORDDATE , - MB_ROW_WIDTH_PRODDATE , - MB_ROW_WIDTH_COUNTRY , + MB_ROW_WIDTH_RECORDDATE, + MB_ROW_WIDTH_PRODDATE, + MB_ROW_WIDTH_COUNTRY, MB_ROW_WIDTH_GEOMETRIE, - MB_ROW_WIDTH_AUDIO , + MB_ROW_WIDTH_AUDIO, MB_ROW_WIDTH_LENGTH, MB_ROW_WIDTH_SIZE, 0 //MB_ROW_WIDTH_MAX_NUMBER @@ -234,7 +230,7 @@ bool compare_to_lower(const char a, const char b) } // sort operators -bool sortByTitle (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortByTitle(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { if (std::lexicographical_compare(a->epgTitle.begin(), a->epgTitle.end(), b->epgTitle.begin(), b->epgTitle.end(), compare_to_lower)) return true; @@ -242,7 +238,7 @@ bool sortByTitle (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) return false; return a->file.Time < b->file.Time; } -bool sortByGenre (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortByGenre(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { if (std::lexicographical_compare(a->epgInfo1.begin(), a->epgInfo1.end(), b->epgInfo1.begin(), b->epgInfo1.end(), compare_to_lower)) return true; @@ -250,7 +246,7 @@ bool sortByGenre (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) return false; return sortByTitle(a,b); } -bool sortByChannel (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortByChannel(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { if (std::lexicographical_compare(a->epgChannel.begin(), a->epgChannel.end(), b->epgChannel.begin(), b->epgChannel.end(), compare_to_lower)) return true; @@ -258,7 +254,7 @@ bool sortByChannel (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) return false; return sortByTitle(a,b); } -bool sortByFileName (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortByFileName(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { if (std::lexicographical_compare(a->file.getFileName().begin(), a->file.getFileName().end(), b->file.getFileName().begin(), b->file.getFileName().end(), compare_to_lower)) return true; @@ -266,45 +262,45 @@ bool sortByFileName (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) return false; return a->file.Time < b->file.Time; } -bool sortByRecordDate (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortByRecordDate(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { - if(sortDirection) + if (sortDirection) return a->file.Time > b->file.Time ; else return a->file.Time < b->file.Time ; } -bool sortBySize (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortBySize(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { - if(sortDirection) + if (sortDirection) return a->file.Size > b->file.Size; else return a->file.Size < b->file.Size; } -bool sortByAge (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortByAge(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { - if(sortDirection) + if (sortDirection) return a->parentalLockAge > b->parentalLockAge; else return a->parentalLockAge < b->parentalLockAge; } -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) return a->quality > b->quality; else return a->quality < b->quality; } -bool sortByDir (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortByDir(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { - if(sortDirection) + if (sortDirection) return a->dirItNr > b->dirItNr; else return a->dirItNr < b->dirItNr; } -bool sortByLastPlay (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) +bool sortByLastPlay(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) { - if(sortDirection) + if (sortDirection) return a->dateOfLastPlay > b->dateOfLastPlay; else return a->dateOfLastPlay < b->dateOfLastPlay; @@ -312,57 +308,42 @@ bool sortByLastPlay (const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) bool (* const sortBy[MB_INFO_MAX_NUMBER+1])(const MI_MOVIE_INFO* a, const MI_MOVIE_INFO* b) = { - &sortByFileName , //MB_INFO_FILENAME = 0, + &sortByFileName, //MB_INFO_FILENAME = 0, &sortByDir, //MB_INFO_FILEPATH = 1, &sortByTitle, //MB_INFO_TITLE = 2, - NULL, //MB_INFO_SERIE = 3, + NULL, //MB_INFO_SERIE = 3, &sortByGenre, //MB_INFO_INFO1 = 4, - NULL, //MB_INFO_MAJOR_GENRE = 5, - NULL, //MB_INFO_MINOR_GENRE = 6, - NULL, //MB_INFO_INFO2 = 7, - &sortByAge, //MB_INFO_PARENTAL_LOCKAGE = 8, + NULL, //MB_INFO_MAJOR_GENRE = 5, + NULL, //MB_INFO_MINOR_GENRE = 6, + NULL, //MB_INFO_INFO2 = 7, + &sortByAge, //MB_INFO_PARENTAL_LOCKAGE = 8, &sortByChannel, //MB_INFO_CHANNEL = 9, - NULL, //MB_INFO_BOOKMARK = 10, + NULL, //MB_INFO_BOOKMARK = 10, &sortByQuality, //MB_INFO_QUALITY = 11, - &sortByLastPlay, //MB_INFO_PREVPLAYDATE = 12, - &sortByRecordDate, //MB_INFO_RECORDDATE = 13, - NULL, //MB_INFO_PRODDATE = 14, - NULL, //MB_INFO_COUNTRY = 15, - NULL, //MB_INFO_GEOMETRIE = 16, - NULL, //MB_INFO_AUDIO = 17, - NULL, //MB_INFO_LENGTH = 18, + &sortByLastPlay, //MB_INFO_PREVPLAYDATE = 12, + &sortByRecordDate, //MB_INFO_RECORDDATE = 13, + NULL, //MB_INFO_PRODDATE = 14, + NULL, //MB_INFO_COUNTRY = 15, + NULL, //MB_INFO_GEOMETRIE = 16, + NULL, //MB_INFO_AUDIO = 17, + NULL, //MB_INFO_LENGTH = 18, &sortBySize, //MB_INFO_SIZE = 19, - NULL //MB_INFO_MAX_NUMBER = 20 + NULL //MB_INFO_MAX_NUMBER = 20 }; -/************************************************************************ - Public API -************************************************************************/ - -CMovieBrowser::CMovieBrowser(const char* path): configfile ('\t') -{ - m_selectedDir = path; - //addDir(m_selectedDir); - CMovieBrowser(); -} CMovieBrowser::CMovieBrowser(): configfile ('\t') { - //TRACE("$Id: moviebrowser.cpp,v 1.10 2006/09/11 21:11:35 guenther Exp $\r\n"); init(); } CMovieBrowser::~CMovieBrowser() { - //TRACE("[mb] del\r\n"); - //saveSettings(&m_settings); + //TRACE("[mb] del\n"); hide(); m_dir.clear(); m_dirNames.clear(); - for(unsigned int i=0; i < m_vMovieInfo.size(); i++) - { - m_vMovieInfo[i].audioPids.clear(); - } + m_vMovieInfo.clear(); m_vHandleBrowserList.clear(); m_vHandleRecordList.clear(); @@ -379,7 +360,7 @@ CMovieBrowser::~CMovieBrowser() void CMovieBrowser::clearListLines() { - for(int i = 0; i < LF_MAX_ROWS; i++) + for (int i = 0; i < LF_MAX_ROWS; i++) { m_browserListLines.lineArray[i].clear(); m_recordListLines.lineArray[i].clear(); @@ -394,6 +375,7 @@ void CMovieBrowser::clearListLines() void CMovieBrowser::clearSelection() { + //TRACE("[mb]->%s\n", __func__); for (unsigned i = 0; i < m_vMovieInfo.size(); i++) m_vMovieInfo[i].marked = false; @@ -410,11 +392,6 @@ void CMovieBrowser::fileInfoStale(void) // Also release memory buffers, since we have to reload this stuff next time anyhow m_dirNames.clear(); - for(unsigned int i=0; i < m_vMovieInfo.size(); i++) - { - m_vMovieInfo[i].audioPids.clear(); - } - m_vMovieInfo.clear(); m_vHandleBrowserList.clear(); m_vHandleRecordList.clear(); @@ -428,15 +405,14 @@ void CMovieBrowser::init(void) { bool reinit_rows = false; int i = 0; - //TRACE("[mb]->init\r\n"); + //TRACE("[mb]->init\n"); initGlobalSettings(); loadSettings(&m_settings); - //restart_mb_timeout = 0; m_file_info_stale = true; m_seriename_stale = true; - m_pcWindow = CFrameBuffer::getInstance(); + framebuffer = CFrameBuffer::getInstance(); m_pcBrowser = NULL; m_pcLastPlay = NULL; m_pcLastRecord = NULL; @@ -453,7 +429,7 @@ void CMovieBrowser::init(void) m_currentBrowserSelection = 0; m_currentRecordSelection = 0; m_currentPlaySelection = 0; - m_prevBrowserSelection = 0; + m_prevBrowserSelection = 0; m_prevRecordSelection = 0; m_prevPlaySelection = 0; @@ -462,29 +438,29 @@ void CMovieBrowser::init(void) m_parentalLock = m_settings.parentalLock; // check g_setting values - if(m_settings.gui >= MB_GUI_MAX_NUMBER) + if (m_settings.gui >= MB_GUI_MAX_NUMBER) m_settings.gui = MB_GUI_MOVIE_INFO; - if(m_settings.sorting.direction >= MB_DIRECTION_MAX_NUMBER) + if (m_settings.sorting.direction >= MB_DIRECTION_MAX_NUMBER) m_settings.sorting.direction = MB_DIRECTION_DOWN; - if(m_settings.sorting.item >= MB_INFO_MAX_NUMBER) - m_settings.sorting.item = MB_INFO_TITLE; + if (m_settings.sorting.item >= MB_INFO_MAX_NUMBER) + m_settings.sorting.item = MB_INFO_TITLE; - if(m_settings.filter.item >= MB_INFO_MAX_NUMBER) + if (m_settings.filter.item >= MB_INFO_MAX_NUMBER) m_settings.filter.item = MB_INFO_MAX_NUMBER; - if(m_settings.parentalLockAge >= MI_PARENTAL_MAX_NUMBER) + if (m_settings.parentalLockAge >= MI_PARENTAL_MAX_NUMBER) m_settings.parentalLockAge = MI_PARENTAL_OVER18; - if(m_settings.parentalLock >= MB_PARENTAL_LOCK_MAX_NUMBER) + if (m_settings.parentalLock >= MB_PARENTAL_LOCK_MAX_NUMBER) m_settings.parentalLock = MB_PARENTAL_LOCK_OFF; /* convert from old pixel-based to new percent values */ if (m_settings.browserFrameHeight > 100) m_settings.browserFrameHeight = 50; - if(m_settings.browserFrameHeight < MIN_BROWSER_FRAME_HEIGHT ) + if (m_settings.browserFrameHeight < MIN_BROWSER_FRAME_HEIGHT) m_settings.browserFrameHeight = MIN_BROWSER_FRAME_HEIGHT; - if(m_settings.browserFrameHeight > MAX_BROWSER_FRAME_HEIGHT) + if (m_settings.browserFrameHeight > MAX_BROWSER_FRAME_HEIGHT) m_settings.browserFrameHeight = MAX_BROWSER_FRAME_HEIGHT; /* the old code had row widths in pixels, not percent. Check if we have @@ -498,22 +474,6 @@ void CMovieBrowser::init(void) break; } } -#if 0 - /***** Browser List **************/ - if(m_settings.browserRowNr == 0) - { - TRACE(" row error\r\n"); - // init browser row elements if not configured correctly by neutrino.config - m_settings.browserRowNr = 6; - m_settings.browserRowItem[0] = MB_INFO_TITLE; - m_settings.browserRowItem[1] = MB_INFO_INFO1; - m_settings.browserRowItem[2] = MB_INFO_RECORDDATE; - m_settings.browserRowItem[3] = MB_INFO_SIZE; - m_settings.browserRowItem[4] = MB_INFO_PARENTAL_LOCKAGE; - m_settings.browserRowItem[5] = MB_INFO_QUALITY; - reinit_rows = true; - } -#endif if (reinit_rows) { for (i = 0; i < m_settings.browserRowNr; i++) @@ -522,9 +482,8 @@ void CMovieBrowser::init(void) initFrames(); initRows(); - //initDevelopment(); - /* save settings here, because ::exec() will load them again... */ + /* save settings here, because exec() will load them again... */ if (reinit_rows) saveSettings(&m_settings); @@ -532,43 +491,15 @@ void CMovieBrowser::init(void) refreshLastRecordList(); refreshBrowserList(); refreshFilterList(); - g_PicViewer->getSupportedImageFormats(PicExts); + g_PicViewer->getSupportedImageFormats(PicExts); show_mode = MB_SHOW_RECORDS; //FIXME CChannelLogo = NULL; -#if 0 - TRACE_1("Frames\r\n\tScren:\t%3d,%3d,%3d,%3d\r\n\tMain:\t%3d,%3d,%3d,%3d\r\n\tTitle:\t%3d,%3d,%3d,%3d \r\n\tBrowsr:\t%3d,%3d,%3d,%3d \r\n\tPlay:\t%3d,%3d,%3d,%3d \r\n\tRecord:\t%3d,%3d,%3d,%3d\r\n\r\n", - g_settings.screen_StartX, - g_settings.screen_StartY, - g_settings.screen_EndX, - g_settings.screen_EndY, - m_cBoxFrame.iX, - m_cBoxFrame.iY, - m_cBoxFrame.iWidth, - m_cBoxFrame.iHeight, - m_cBoxFrameTitleRel.iX, - m_cBoxFrameTitleRel.iY, - m_cBoxFrameTitleRel.iWidth, - m_cBoxFrameTitleRel.iHeight, - m_cBoxFrameBrowserList.iX, - m_cBoxFrameBrowserList.iY, - m_cBoxFrameBrowserList.iWidth, - m_cBoxFrameBrowserList.iHeight, - m_cBoxFrameLastPlayList.iX, - m_cBoxFrameLastPlayList.iY, - m_cBoxFrameLastPlayList.iWidth, - m_cBoxFrameLastPlayList.iHeight, - m_cBoxFrameLastRecordList.iX, - m_cBoxFrameLastRecordList.iY, - m_cBoxFrameLastRecordList.iWidth, - m_cBoxFrameLastRecordList.iHeight - ); -#endif } void CMovieBrowser::initGlobalSettings(void) { - //TRACE("[mb]->initGlobalSettings\r\n"); + //TRACE("[mb]->initGlobalSettings\n"); m_settings.gui = MB_GUI_MOVIE_INFO; @@ -578,7 +509,7 @@ void CMovieBrowser::initGlobalSettings(void) m_settings.browser_serie_mode = 0; m_settings.serie_auto_create = 0; - m_settings.sorting.item = MB_INFO_TITLE; + m_settings.sorting.item = MB_INFO_TITLE; m_settings.sorting.direction = MB_DIRECTION_DOWN; m_settings.filter.item = MB_INFO_MAX_NUMBER; @@ -594,7 +525,7 @@ void CMovieBrowser::initGlobalSettings(void) m_settings.reload = true; m_settings.remount = false; - for(int i = 0; i < MB_MAX_DIRS; i++) + for (int i = 0; i < MB_MAX_DIRS; i++) { m_settings.storageDir[i] = ""; m_settings.storageDirUsed[i] = 0; @@ -604,14 +535,6 @@ void CMovieBrowser::initGlobalSettings(void) m_settings.browserFrameHeight = 50; /* percent */ m_settings.browserRowNr = 6; -#if 0 - m_settings.browserRowItem[0] = MB_INFO_TITLE; - m_settings.browserRowItem[1] = MB_INFO_INFO1; - m_settings.browserRowItem[2] = MB_INFO_RECORDDATE; - m_settings.browserRowItem[3] = MB_INFO_SIZE; - m_settings.browserRowItem[4] = MB_INFO_PARENTAL_LOCKAGE; - m_settings.browserRowItem[5] = MB_INFO_QUALITY; -#endif m_settings.browserRowItem[0] = MB_INFO_CHANNEL; m_settings.browserRowItem[1] = MB_INFO_TITLE; m_settings.browserRowItem[2] = MB_INFO_RECORDDATE; @@ -638,12 +561,12 @@ void CMovieBrowser::initGlobalSettings(void) void CMovieBrowser::initFrames(void) { - m_pcFontFoot = FOOT_FONT; + m_pcFontFoot = FOOT_FONT; m_pcFontTitle = TITLE_FONT; - //TRACE("[mb]->initFrames\r\n"); - m_cBoxFrame.iWidth = m_pcWindow->getScreenWidthRel(); - m_cBoxFrame.iHeight = m_pcWindow->getScreenHeightRel(); + //TRACE("[mb]->%s\n", __func__); + m_cBoxFrame.iWidth = framebuffer->getScreenWidthRel(); + m_cBoxFrame.iHeight = framebuffer->getScreenHeightRel(); m_cBoxFrame.iX = getScreenStartX(m_cBoxFrame.iWidth); m_cBoxFrame.iY = getScreenStartY(m_cBoxFrame.iHeight); @@ -688,7 +611,7 @@ void CMovieBrowser::initFrames(void) void CMovieBrowser::initRows(void) { - //TRACE("[mb]->initRows\r\n"); + //TRACE("[mb]->%s\n", __func__); /***** Last Play List **************/ m_settings.lastPlayRowNr = 2; @@ -722,35 +645,20 @@ void CMovieBrowser::initRows(void) m_settings.lastRecordRowWidth[4] = m_defaultRowWidth[m_settings.lastRecordRow[4]]; m_settings.lastRecordRowWidth[5] = m_defaultRowWidth[m_settings.lastRecordRow[5]]; } -#if 0 -void CMovieBrowser::initDevelopment(void) -{ - TRACE("[mb]->initDevelopment\r\n"); - std::string name; - name = "/mnt/movies/"; - //addDir(name); - name = "/mnt/record/"; - //addDir(name); - name = "/mnt/nfs/"; - //addDir(name); - -} -#endif void CMovieBrowser::defaultSettings(MB_SETTINGS* /*settings*/) { unlink(MOVIEBROWSER_SETTINGS_FILE); configfile.clear(); - //loadSettings(settings); initGlobalSettings(); } bool CMovieBrowser::loadSettings(MB_SETTINGS* settings) { - //TRACE("CMovieBrowser::loadSettings\r\n"); + //TRACE("[mb]->%s\n", __func__); bool result = configfile.loadConfig(MOVIEBROWSER_SETTINGS_FILE); - if(!result) { - TRACE("CMovieBrowser::loadSettings failed\r\n"); + if (!result) { + TRACE("CMovieBrowser::loadSettings failed\n"); return result; } @@ -771,21 +679,21 @@ bool CMovieBrowser::loadSettings(MB_SETTINGS* settings) settings->parentalLockAge = (MI_PARENTAL_LOCKAGE)configfile.getInt32("mb_parentalLockAge", MI_PARENTAL_OVER18); settings->parentalLock = (MB_PARENTAL_LOCK)configfile.getInt32("mb_parentalLock", MB_PARENTAL_LOCK_ACTIVE); - settings->storageDirRecUsed = (bool)configfile.getInt32("mb_storageDir_rec", true ); - settings->storageDirMovieUsed = (bool)configfile.getInt32("mb_storageDir_movie", true ); + settings->storageDirRecUsed = (bool)configfile.getInt32("mb_storageDir_rec", true); + settings->storageDirMovieUsed = (bool)configfile.getInt32("mb_storageDir_movie", true); - settings->reload = (bool)configfile.getInt32("mb_reload", true ); - settings->remount = (bool)configfile.getInt32("mb_remount", false ); + settings->reload = (bool)configfile.getInt32("mb_reload", true); + settings->remount = (bool)configfile.getInt32("mb_remount", false); - for(int i = 0; i < MB_MAX_DIRS; i++) + for (int i = 0; i < MB_MAX_DIRS; i++) { settings->storageDir[i] = configfile.getString("mb_dir_" + to_string(i), ""); - settings->storageDirUsed[i] = configfile.getInt32("mb_dir_used" + to_string(i), false ); + settings->storageDirUsed[i] = configfile.getInt32("mb_dir_used" + to_string(i), false); } /* these variables are used for the listframes */ - settings->browserFrameHeight = configfile.getInt32("mb_browserFrameHeight", 50); - settings->browserRowNr = configfile.getInt32("mb_browserRowNr", 0); - for(int i = 0; i < MB_MAX_ROWS && i < settings->browserRowNr; i++) + settings->browserFrameHeight = configfile.getInt32("mb_browserFrameHeight", 50); + settings->browserRowNr = configfile.getInt32("mb_browserRowNr", 0); + for (int i = 0; i < MB_MAX_ROWS && i < settings->browserRowNr; i++) { settings->browserRowItem[i] = (MB_INFO_ITEM)configfile.getInt32("mb_browserRowItem_" + to_string(i), MB_INFO_MAX_NUMBER); settings->browserRowWidth[i] = configfile.getInt32("mb_browserRowWidth_" + to_string(i), 50); @@ -804,7 +712,7 @@ bool CMovieBrowser::loadSettings(MB_SETTINGS* settings) if (settings->ytsearch_history_size > settings->ytsearch_history_max) settings->ytsearch_history_size = settings->ytsearch_history_max; settings->ytsearch_history.clear(); - for(int i = 0; i < settings->ytsearch_history_size; i++) { + for (int i = 0; i < settings->ytsearch_history_size; i++) { std::string s = configfile.getString("mb_ytsearch_history_" + to_string(i)); if (s != "") settings->ytsearch_history.push_back(configfile.getString("mb_ytsearch_history_" + to_string(i), "")); @@ -816,7 +724,7 @@ bool CMovieBrowser::loadSettings(MB_SETTINGS* settings) bool CMovieBrowser::saveSettings(MB_SETTINGS* settings) { bool result = true; - TRACE("[mb] saveSettings\r\n"); + TRACE("[mb]->%s\n", __func__); configfile.setInt32("mb_lastPlayMaxItems", settings->lastPlayMaxItems); configfile.setInt32("mb_lastRecordMaxItems", settings->lastRecordMaxItems); @@ -832,8 +740,8 @@ bool CMovieBrowser::saveSettings(MB_SETTINGS* settings) configfile.setString("mb_filter_optionString", settings->filter.optionString); configfile.setInt32("mb_filter_optionVar", settings->filter.optionVar); - configfile.setInt32("mb_storageDir_rec", settings->storageDirRecUsed ); - configfile.setInt32("mb_storageDir_movie", settings->storageDirMovieUsed ); + configfile.setInt32("mb_storageDir_rec", settings->storageDirRecUsed); + configfile.setInt32("mb_storageDir_movie", settings->storageDirMovieUsed); configfile.setInt32("mb_parentalLockAge", settings->parentalLockAge); configfile.setInt32("mb_parentalLock", settings->parentalLock); @@ -841,15 +749,15 @@ bool CMovieBrowser::saveSettings(MB_SETTINGS* settings) configfile.setInt32("mb_reload", settings->reload); configfile.setInt32("mb_remount", settings->remount); - for(int i = 0; i < MB_MAX_DIRS; i++) + for (int i = 0; i < MB_MAX_DIRS; i++) { - configfile.setString("mb_dir_" + to_string(i), settings->storageDir[i] ); - configfile.setInt32("mb_dir_used" + to_string(i), settings->storageDirUsed[i] ); // do not save this so far + configfile.setString("mb_dir_" + to_string(i), settings->storageDir[i]); + configfile.setInt32("mb_dir_used" + to_string(i), settings->storageDirUsed[i]); // do not save this so far } /* these variables are used for the listframes */ configfile.setInt32("mb_browserFrameHeight", settings->browserFrameHeight); configfile.setInt32("mb_browserRowNr",settings->browserRowNr); - for(int i = 0; i < MB_MAX_ROWS && i < settings->browserRowNr; i++) + for (int i = 0; i < MB_MAX_ROWS && i < settings->browserRowNr; i++) { configfile.setInt32("mb_browserRowItem_" + to_string(i), settings->browserRowItem[i]); configfile.setInt32("mb_browserRowWidth_" + to_string(i), settings->browserRowWidth[i]); @@ -870,7 +778,7 @@ bool CMovieBrowser::saveSettings(MB_SETTINGS* settings) configfile.setInt32("mb_ytsearch_history_max", settings->ytsearch_history_max); configfile.setInt32("mb_ytsearch_history_size", settings->ytsearch_history_size); std::list:: iterator it = settings->ytsearch_history.begin(); - for(int i = 0; i < settings->ytsearch_history_size; i++, ++it) + for (int i = 0; i < settings->ytsearch_history_size; i++, ++it) configfile.setString("mb_ytsearch_history_" + to_string(i), *it); if (configfile.getModifiedFlag()) @@ -880,93 +788,83 @@ bool CMovieBrowser::saveSettings(MB_SETTINGS* settings) int CMovieBrowser::exec(CMenuTarget* parent, const std::string & actionKey) { - int returnval = menu_return::RETURN_REPAINT; + int returnval = menu_return::RETURN_REPAINT; - if(actionKey == "loaddefault") - { - defaultSettings(&m_settings); - } - else if(actionKey == "save_options") - { - } - else if(actionKey == "show_movie_info_menu") - { - if(m_movieSelectionHandler != NULL) - return showMovieInfoMenu(m_movieSelectionHandler); - } - else if(actionKey == "save_movie_info") - { - if(m_movieSelectionHandler != NULL) - m_movieInfo.saveMovieInfo( *m_movieSelectionHandler); - } - else if(actionKey == "save_movie_info_all") - { - std::vector * current_list=NULL; + if (actionKey == "loaddefault") + { + defaultSettings(&m_settings); + } + else if (actionKey == "show_movie_info_menu") + { + if (m_movieSelectionHandler != NULL) + return showMovieInfoMenu(m_movieSelectionHandler); + } + else if (actionKey == "save_movie_info") + { + m_movieInfo.saveMovieInfo(*m_movieSelectionHandler); + } + else if (actionKey == "save_movie_info_all") + { + std::vector * current_list=NULL; - if(m_movieSelectionHandler != NULL) - { - if(m_windowFocus == MB_FOCUS_BROWSER) current_list = &m_vHandleBrowserList; - else if(m_windowFocus == MB_FOCUS_LAST_PLAY) current_list = &m_vHandlePlayList; - else if(m_windowFocus == MB_FOCUS_LAST_RECORD) current_list = &m_vHandleRecordList ; + if (m_windowFocus == MB_FOCUS_BROWSER) current_list = &m_vHandleBrowserList; + else if (m_windowFocus == MB_FOCUS_LAST_PLAY) current_list = &m_vHandlePlayList; + else if (m_windowFocus == MB_FOCUS_LAST_RECORD) current_list = &m_vHandleRecordList ; - if(current_list != NULL) - { - CHintBox loadBox(LOCALE_MOVIEBROWSER_HEAD,g_Locale->getText(LOCALE_MOVIEBROWSER_INFO_HEAD_UPDATE)); - loadBox.paint(); - for(unsigned int i = 0; i< current_list->size();i++) - { - if( !((*current_list)[i]->parentalLockAge != 0 && movieInfoUpdateAllIfDestEmptyOnly == true) && - movieInfoUpdateAll[MB_INFO_TITLE] ) - (*current_list)[i]->parentalLockAge = m_movieSelectionHandler->parentalLockAge; + if (current_list == NULL || m_movieSelectionHandler == NULL) + return returnval; - if( !(!(*current_list)[i]->serieName.empty() && movieInfoUpdateAllIfDestEmptyOnly == true) && - movieInfoUpdateAll[MB_INFO_SERIE] ) - (*current_list)[i]->serieName = m_movieSelectionHandler->serieName; + CHintBox loadBox(LOCALE_MOVIEBROWSER_HEAD,g_Locale->getText(LOCALE_MOVIEBROWSER_INFO_HEAD_UPDATE)); + loadBox.paint(); + for (unsigned int i = 0; i< current_list->size();i++) + { + if (!((*current_list)[i]->parentalLockAge != 0 && movieInfoUpdateAllIfDestEmptyOnly == true) && + movieInfoUpdateAll[MB_INFO_TITLE]) + (*current_list)[i]->parentalLockAge = m_movieSelectionHandler->parentalLockAge; - if( !(!(*current_list)[i]->productionCountry.empty() && movieInfoUpdateAllIfDestEmptyOnly == true) && - movieInfoUpdateAll[MB_INFO_COUNTRY] ) - (*current_list)[i]->productionCountry = m_movieSelectionHandler->productionCountry; + if (!(!(*current_list)[i]->serieName.empty() && movieInfoUpdateAllIfDestEmptyOnly == true) && + movieInfoUpdateAll[MB_INFO_SERIE]) + (*current_list)[i]->serieName = m_movieSelectionHandler->serieName; - if( !((*current_list)[i]->genreMajor!=0 && movieInfoUpdateAllIfDestEmptyOnly == true) && - movieInfoUpdateAll[MB_INFO_MAJOR_GENRE] ) - (*current_list)[i]->genreMajor = m_movieSelectionHandler->genreMajor; + if (!(!(*current_list)[i]->productionCountry.empty() && movieInfoUpdateAllIfDestEmptyOnly == true) && + movieInfoUpdateAll[MB_INFO_COUNTRY]) + (*current_list)[i]->productionCountry = m_movieSelectionHandler->productionCountry; - if( !((*current_list)[i]->quality!=0 && movieInfoUpdateAllIfDestEmptyOnly == true) && - movieInfoUpdateAll[MB_INFO_QUALITY] ) - (*current_list)[i]->quality = m_movieSelectionHandler->quality; + if (!((*current_list)[i]->genreMajor!=0 && movieInfoUpdateAllIfDestEmptyOnly == true) && + movieInfoUpdateAll[MB_INFO_MAJOR_GENRE]) + (*current_list)[i]->genreMajor = m_movieSelectionHandler->genreMajor; - m_movieInfo.saveMovieInfo( *((*current_list)[i]) ); - } - loadBox.hide(); - } - } - } - else if(actionKey == "reload_movie_info") - { - loadMovies(false); - updateMovieSelection(); - } - else if(actionKey == "run") - { - if(parent) parent->hide (); - exec(NULL); - } - else if(actionKey == "book_clear_all") - { - if(m_movieSelectionHandler != NULL) - { - m_movieSelectionHandler->bookmarks.start =0; - m_movieSelectionHandler->bookmarks.end =0; - m_movieSelectionHandler->bookmarks.lastPlayStop =0; - for(int i=0; ibookmarks.user[i].name.empty(); - m_movieSelectionHandler->bookmarks.user[i].length =0; - m_movieSelectionHandler->bookmarks.user[i].pos =0; - } - } - } - return returnval; + if (!((*current_list)[i]->quality!=0 && movieInfoUpdateAllIfDestEmptyOnly == true) && + movieInfoUpdateAll[MB_INFO_QUALITY]) + (*current_list)[i]->quality = m_movieSelectionHandler->quality; + + m_movieInfo.saveMovieInfo(*((*current_list)[i])); + } + loadBox.hide(); + } + else if (actionKey == "reload_movie_info") + { + loadMovies(false); + updateMovieSelection(); + } + else if (actionKey == "run") + { + if (parent) parent->hide(); + exec(NULL); + } + else if (actionKey == "book_clear_all") + { + m_movieSelectionHandler->bookmarks.start =0; + m_movieSelectionHandler->bookmarks.end =0; + m_movieSelectionHandler->bookmarks.lastPlayStop =0; + for (int i = 0; i < MI_MOVIE_BOOK_USER_MAX; i++) + { + m_movieSelectionHandler->bookmarks.user[i].name.empty(); + m_movieSelectionHandler->bookmarks.user[i].length =0; + m_movieSelectionHandler->bookmarks.user[i].pos =0; + } + } + return returnval; } int CMovieBrowser::exec(const char* path) @@ -974,16 +872,13 @@ int CMovieBrowser::exec(const char* path) bool res = false; menu_ret = menu_return::RETURN_REPAINT; - TRACE("[mb] start MovieBrowser\r\n"); + TRACE("[mb]->%s\n", __func__); int timeout = -1; int returnDefaultOnTimeout = true; - neutrino_msg_t msg; + neutrino_msg_t msg; neutrino_msg_data_t data; CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD)); - // might be removed, for development it is good to reload the settings at any startup for testing - //loadSettings(&m_settings); - //init(); // FIXME test -> crash loadSettings(&m_settings); initFrames(); @@ -996,38 +891,34 @@ int CMovieBrowser::exec(const char* path) m_selectedDir = path; - if(paint() == false) - return res;// paint failed due to less memory , exit + if (paint() == false) + return menu_ret;// paint failed due to less memory, exit - if ( timeout == -1 ) + if (timeout == -1) timeout = g_settings.timing[SNeutrinoSettings::TIMING_FILEBROWSER]; - uint64_t timeoutEnd = CRCInput::calcTimeoutEnd( timeout ); + uint64_t timeoutEnd = CRCInput::calcTimeoutEnd(timeout); - if(m_settings.remount == true) + if (m_settings.remount == true) { - TRACE("[mb] remount\r\n"); + TRACE("[mb] remount\n"); //umount automount dirs - for(int i = 0; i < NETWORK_NFS_NR_OF_ENTRIES; i++) + for (int i = 0; i < NETWORK_NFS_NR_OF_ENTRIES; i++) { - if(g_settings.network_nfs[i].automount) + if (g_settings.network_nfs[i].automount) umount2(g_settings.network_nfs[i].local_dir.c_str(), MNT_FORCE); } CFSMounter::automount(); } - if(m_file_info_stale == true) - { - TRACE("[mb] reload\r\n"); - + clearSelection(); + if (m_file_info_stale == true) { loadMovies(); - } - else - { - // since we cleared everything above, we have to refresh the list now. + } else { refreshBrowserList(); refreshLastPlayList(); refreshLastRecordList(); + refreshFilterList(); } // get old movie selection and set position in windows @@ -1040,7 +931,6 @@ int CMovieBrowser::exec(const char* path) m_pcLastPlay->setSelectedLine(m_currentPlaySelection); updateMovieSelection(); - //refreshMovieInfo(); refreshTitle(); refreshFoot(); @@ -1051,22 +941,19 @@ int CMovieBrowser::exec(const char* path) bool result; while (loop) { - g_RCInput->getMsgAbsoluteTimeout( &msg, &data, &timeoutEnd ); + g_RCInput->getMsgAbsoluteTimeout(&msg, &data, &timeoutEnd); result = onButtonPress(msg); - if(result == false) + if (result == false) { if (msg == CRCInput::RC_timeout && returnDefaultOnTimeout) { TRACE("[mb] Timerevent\n"); - //if( restart_mb_timeout == 1) - // restart_mb_timeout = 0; - //else loop = false; } - else if(msg == CRCInput::RC_ok) + else if (msg == CRCInput::RC_ok) { - for(unsigned int i = 0; i < m_vMovieInfo.size(); i++) { + for (unsigned int i = 0; i < m_vMovieInfo.size(); i++) { if (m_vMovieInfo[i].marked) { TRACE("[mb] has selected\n"); res = true; @@ -1078,22 +965,22 @@ int CMovieBrowser::exec(const char* path) m_currentStartPos = 0; - if(m_movieSelectionHandler != NULL) + if (m_movieSelectionHandler != NULL) { // If there is any available bookmark, show the bookmark menu - if( m_movieSelectionHandler->bookmarks.lastPlayStop != 0 || + if (m_movieSelectionHandler->bookmarks.lastPlayStop != 0 || m_movieSelectionHandler->bookmarks.start != 0) { - TRACE("[mb] stop: %d start:%d \r\n",m_movieSelectionHandler->bookmarks.lastPlayStop,m_movieSelectionHandler->bookmarks.start); + TRACE("[mb] stop: %d start:%d \n",m_movieSelectionHandler->bookmarks.lastPlayStop,m_movieSelectionHandler->bookmarks.start); m_currentStartPos = showStartPosSelectionMenu(); // display start menu m_currentStartPos = } if (show_mode == MB_SHOW_YT) cYTCache::getInstance()->useCachedCopy(m_movieSelectionHandler); - if(m_currentStartPos >= 0) { + if (m_currentStartPos >= 0) { playing_info = m_movieSelectionHandler; - TRACE("[mb] start pos: %d s\r\n",m_currentStartPos); + TRACE("[mb] start pos: %d s\n",m_currentStartPos); res = true; loop = false; } else @@ -1120,7 +1007,7 @@ int CMovieBrowser::exec(const char* path) else if (msg == CRCInput::RC_sat || msg == CRCInput::RC_favorites) { //FIXME do nothing ? } - else if ( msg == NeutrinoMessages::STANDBY_ON || + else if (msg == NeutrinoMessages::STANDBY_ON || msg == NeutrinoMessages::SHUTDOWN || msg == NeutrinoMessages::SLEEPTIMER) { @@ -1130,28 +1017,28 @@ int CMovieBrowser::exec(const char* path) } else if (CNeutrinoApp::getInstance()->handleMsg(msg, data) & messages_return::cancel_all) { - TRACE("[mb]->exec: getInstance\r\n"); + TRACE("[mb]->exec: getInstance\n"); menu_ret = menu_return::RETURN_EXIT_ALL; loop = false; } } - if ( msg <= CRCInput::RC_MaxRC ) + if (msg <= CRCInput::RC_MaxRC) timeoutEnd = CRCInput::calcTimeoutEnd(timeout); // calcualate next timeout } hide(); - //TRACE(" return %d\r\n",res); + //TRACE(" return %d\n",res); m_prevBrowserSelection = m_currentBrowserSelection; m_prevRecordSelection = m_currentRecordSelection; m_prevPlaySelection = m_currentPlaySelection; - saveSettings(&m_settings); // might be better done in ~CMovieBrowser, but for any reason this does not work if MB is killed by neutrino shutdown + saveSettings(&m_settings); // make stale if we should reload the next time, but not if movie has to be played - if(m_settings.reload == true && res == false) + if (m_settings.reload == true && res == false) { - TRACE("[mb] force reload next time\r\n"); + TRACE("[mb] force reload next time\n"); fileInfoStale(); } @@ -1161,39 +1048,38 @@ int CMovieBrowser::exec(const char* path) void CMovieBrowser::hide(void) { - //TRACE("[mb]->Hide\r\n"); - m_pcWindow->paintBackground(); + //TRACE("[mb]->%s\n", __func__); + framebuffer->paintBackground(); if (m_pcFilter != NULL) - { - m_currentFilterSelection = m_pcFilter->getSelectedLine(); - delete m_pcFilter; - m_pcFilter = NULL; - } + m_currentFilterSelection = m_pcFilter->getSelectedLine(); + + delete m_pcFilter; + m_pcFilter = NULL; + if (m_pcBrowser != NULL) - { m_currentBrowserSelection = m_pcBrowser->getSelectedLine(); - delete m_pcBrowser; - m_pcBrowser = NULL; - } + + delete m_pcBrowser; + m_pcBrowser = NULL; + if (m_pcLastPlay != NULL) - { - m_currentPlaySelection = m_pcLastPlay->getSelectedLine(); - delete m_pcLastPlay; - m_pcLastPlay = NULL; - } + m_currentPlaySelection = m_pcLastPlay->getSelectedLine(); + + delete m_pcLastPlay; + m_pcLastPlay = NULL; + if (m_pcLastRecord != NULL) - { - m_currentRecordSelection = m_pcLastRecord->getSelectedLine(); - delete m_pcLastRecord; - m_pcLastRecord = NULL; - } - if (m_pcInfo != NULL) delete m_pcInfo; + m_currentRecordSelection = m_pcLastRecord->getSelectedLine(); + + delete m_pcLastRecord; + m_pcLastRecord = NULL; + delete m_pcInfo; m_pcInfo = NULL; } int CMovieBrowser::paint(void) { - TRACE("[mb]->Paint\r\n"); + TRACE("[mb]->%s\n", __func__); //CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD)); @@ -1213,7 +1099,7 @@ int CMovieBrowser::paint(void) m_pcInfo = new CTextBox(" ", NULL, CTextBox::TOP | CTextBox::SCROLL, &m_cBoxFrameInfo); - if( m_pcBrowser == NULL || m_pcLastPlay == NULL || + if (m_pcBrowser == NULL || m_pcLastPlay == NULL || m_pcLastRecord == NULL || m_pcInfo == NULL || m_pcFilter == NULL) { TRACE("[mb] paint, ERROR: not enought memory to allocate windows"); @@ -1241,18 +1127,17 @@ int CMovieBrowser::paint(void) void CMovieBrowser::refresh(void) { - TRACE("[mb]->refresh\r\n"); + TRACE("[mb]->%s\n", __func__); refreshTitle(); - if (m_pcBrowser != NULL && m_showBrowserFiles == true ) + if (m_pcBrowser != NULL && m_showBrowserFiles == true) m_pcBrowser->refresh(); - if (m_pcLastPlay != NULL && m_showLastPlayFiles == true ) + if (m_pcLastPlay != NULL && m_showLastPlayFiles == true) m_pcLastPlay->refresh(); if (m_pcLastRecord != NULL && m_showLastRecordFiles == true) m_pcLastRecord->refresh(); if (m_pcInfo != NULL && m_showMovieInfo == true) refreshMovieInfo(); - //m_pcInfo->refresh(); if (m_pcFilter != NULL && m_showFilter == true) m_pcFilter->refresh(); @@ -1267,9 +1152,9 @@ std::string CMovieBrowser::getCurrentDir(void) CFile* CMovieBrowser::getSelectedFile(void) { - //TRACE("[mb]->getSelectedFile: %s\r\n",m_movieSelectionHandler->file.Name.c_str()); + //TRACE("[mb]->%s: %s\n", __func__, m_movieSelectionHandler->file.Name.c_str()); - if(m_movieSelectionHandler != NULL) + if (m_movieSelectionHandler != NULL) return(&m_movieSelectionHandler->file); else return(NULL); @@ -1286,7 +1171,7 @@ bool CMovieBrowser::getSelectedFiles(CFileList &flist, P_MI_MOVIE_LIST &mlist) if (m_windowFocus == MB_FOCUS_LAST_RECORD) handle_list = &m_vHandleRecordList; - for(unsigned int i = 0; i < handle_list->size(); i++) { + for (unsigned int i = 0; i < handle_list->size(); i++) { if ((*handle_list)[i]->marked) { flist.push_back((*handle_list)[i]->file); mlist.push_back((*handle_list)[i]); @@ -1318,88 +1203,80 @@ std::string CMovieBrowser::getScreenshotName(std::string movie) void CMovieBrowser::refreshMovieInfo(void) { -//TRACE("[mb]->refreshMovieInfo m_vMovieInfo.size %d\n", m_vMovieInfo.size()); + TRACE("[mb]->%s m_vMovieInfo.size %d\n", __func__, m_vMovieInfo.size()); //reset text before new init, m_pcInfo must be clean std::string emptytext = " "; - if(m_pcInfo) - m_pcInfo->setText(&emptytext); - - if(m_vMovieInfo.empty()) + m_pcInfo->setText(&emptytext); + + if (m_vMovieInfo.empty() || m_movieSelectionHandler == NULL) return; - - if (m_movieSelectionHandler == NULL) { - // There is no selected element, clear LCD - m_pcInfo->setText(&emptytext); + + std::string fname; + if (show_mode == MB_SHOW_YT) { + fname = m_movieSelectionHandler->tfile; + } else { + fname = getScreenshotName(m_movieSelectionHandler->file.Name); + if ((fname.empty()) && (m_movieSelectionHandler->file.Name.length() > 18)) { + std::string cover = m_movieSelectionHandler->file.Name; + cover.replace((cover.length()-18),15,""); //covername without yyyymmdd_hhmmss + fname = getScreenshotName(cover); + } } - else { - printf("CMovieBrowser::refreshMovieInfo\n"); - std::string fname; - if (show_mode == MB_SHOW_YT) { - fname = m_movieSelectionHandler->tfile; - } else { - fname = getScreenshotName(m_movieSelectionHandler->file.Name); - if((fname.empty()) && (m_movieSelectionHandler->file.Name.length() > 18)) { - std::string cover = m_movieSelectionHandler->file.Name; - cover.replace((cover.length()-18),15,""); //covername without yyyymmdd_hhmmss - fname = getScreenshotName(cover); - } - } - bool logo_ok = (!fname.empty()); - int flogo_w = 0, flogo_h = 0; - if(logo_ok) { - int picw = (int)(((float)16 / (float)9) * (float)m_cBoxFrameInfo.iHeight); - int pich = m_cBoxFrameInfo.iHeight; - g_PicViewer->getSize(fname.c_str(), &flogo_w, &flogo_h); - g_PicViewer->rescaleImageDimensions(&flogo_w, &flogo_h, picw-2, pich-2); + bool logo_ok = (!fname.empty()); + int flogo_w = 0, flogo_h = 0; + if (logo_ok) { + int picw = (int)(((float)16 / (float)9) * (float)m_cBoxFrameInfo.iHeight); + int pich = m_cBoxFrameInfo.iHeight; + g_PicViewer->getSize(fname.c_str(), &flogo_w, &flogo_h); + g_PicViewer->rescaleImageDimensions(&flogo_w, &flogo_h, picw-2, pich-2); #ifdef BOXMODEL_APOLLO - /* align for hw blit */ - flogo_w = ((flogo_w + 3) / 4) * 4; + /* align for hw blit */ + flogo_w = ((flogo_w + 3) / 4) * 4; #endif - } - m_pcInfo->setText(&m_movieSelectionHandler->epgInfo2, logo_ok ? m_cBoxFrameInfo.iWidth-flogo_w-20 : 0); + } + m_pcInfo->setText(&m_movieSelectionHandler->epgInfo2, logo_ok ? m_cBoxFrameInfo.iWidth-flogo_w-20 : 0); - static int logo_w = 0; - static int logo_h = 0; - int logo_w_max = m_cBoxFrameTitleRel.iWidth / 4; + static int logo_w = 0; + static int logo_h = 0; + int logo_w_max = m_cBoxFrameTitleRel.iWidth / 4; -//printf("refreshMovieInfo: EpgId %llx id %llx y %d\n", m_movieSelectionHandler->epgEpgId, m_movieSelectionHandler->epgId, m_cBoxFrameTitleRel.iY); - int lx = m_cBoxFrame.iX+m_cBoxFrameTitleRel.iX+m_cBoxFrameTitleRel.iWidth-logo_w-10; - int ly = m_cBoxFrameTitleRel.iY+m_cBoxFrame.iY+ (m_cBoxFrameTitleRel.iHeight-logo_h)/2; - short pb_hdd_offset = 104; - if (show_mode == MB_SHOW_YT) - pb_hdd_offset = 0; - static uint64_t old_EpgId = 0; - if (CChannelLogo && (old_EpgId != m_movieSelectionHandler->epgEpgId >>16)) { - if (newHeader) - CChannelLogo->clearSavedScreen(); - else - CChannelLogo->hide(); - delete CChannelLogo; - } - if (old_EpgId != m_movieSelectionHandler->epgEpgId >>16) { - CChannelLogo = new CComponentsChannelLogo(0, 0, logo_w_max, m_cBoxFrameTitleRel.iHeight, - m_movieSelectionHandler->epgChannel, m_movieSelectionHandler->epgEpgId >>16); - old_EpgId = m_movieSelectionHandler->epgEpgId >>16; - } + //printf("refreshMovieInfo: EpgId %llx id %llx y %d\n", m_movieSelectionHandler->epgEpgId, m_movieSelectionHandler->epgId, m_cBoxFrameTitleRel.iY); + int lx = m_cBoxFrame.iX+m_cBoxFrameTitleRel.iX+m_cBoxFrameTitleRel.iWidth-logo_w-10; + int ly = m_cBoxFrameTitleRel.iY+m_cBoxFrame.iY+ (m_cBoxFrameTitleRel.iHeight-logo_h)/2; + short pb_hdd_offset = 104; + if (show_mode == MB_SHOW_YT) + pb_hdd_offset = 0; + static uint64_t old_EpgId = 0; + if (CChannelLogo && (old_EpgId != m_movieSelectionHandler->epgEpgId >>16)) { + if (newHeader) + CChannelLogo->clearSavedScreen(); + else + CChannelLogo->hide(); + delete CChannelLogo; + } + if (old_EpgId != m_movieSelectionHandler->epgEpgId >>16) { + CChannelLogo = new CComponentsChannelLogo(0, 0, logo_w_max, m_cBoxFrameTitleRel.iHeight, + m_movieSelectionHandler->epgChannel, m_movieSelectionHandler->epgEpgId >>16); + old_EpgId = m_movieSelectionHandler->epgEpgId >>16; + } - if (CChannelLogo) { - lx = m_cBoxFrame.iX+m_cBoxFrameTitleRel.iX+m_cBoxFrameTitleRel.iWidth-CChannelLogo->getWidth()-10; - ly = m_cBoxFrameTitleRel.iY+m_cBoxFrame.iY+ (m_cBoxFrameTitleRel.iHeight-CChannelLogo->getHeight())/2; - CChannelLogo->setXPos(lx - pb_hdd_offset); - CChannelLogo->setYPos(ly); - CChannelLogo->paint(); - newHeader = false; - } + if (CChannelLogo) { + lx = m_cBoxFrame.iX+m_cBoxFrameTitleRel.iX+m_cBoxFrameTitleRel.iWidth-CChannelLogo->getWidth()-10; + ly = m_cBoxFrameTitleRel.iY+m_cBoxFrame.iY+ (m_cBoxFrameTitleRel.iHeight-CChannelLogo->getHeight())/2; + CChannelLogo->setXPos(lx - pb_hdd_offset); + CChannelLogo->setYPos(ly); + CChannelLogo->paint(); + newHeader = false; + } - if(logo_ok) { - lx = m_cBoxFrameInfo.iX+m_cBoxFrameInfo.iWidth - flogo_w -14; - ly = m_cBoxFrameInfo.iY - 1 + (m_cBoxFrameInfo.iHeight-flogo_h)/2; - g_PicViewer->DisplayImage(fname, lx+2, ly+1, flogo_w, flogo_h, CFrameBuffer::TM_NONE); - m_pcWindow->paintVLineRel(lx, ly, flogo_h+1, COL_WHITE); - m_pcWindow->paintVLineRel(lx+flogo_w+2, ly, flogo_h+2, COL_WHITE); - m_pcWindow->paintHLineRel(lx, flogo_w+2, ly, COL_WHITE); - m_pcWindow->paintHLineRel(lx, flogo_w+2, ly+flogo_h+1, COL_WHITE); - } + if (logo_ok) { + lx = m_cBoxFrameInfo.iX+m_cBoxFrameInfo.iWidth - flogo_w -14; + ly = m_cBoxFrameInfo.iY - 1 + (m_cBoxFrameInfo.iHeight-flogo_h)/2; + g_PicViewer->DisplayImage(fname, lx+2, ly+1, flogo_w, flogo_h, CFrameBuffer::TM_NONE); + framebuffer->paintVLineRel(lx, ly, flogo_h+1, COL_WHITE); + framebuffer->paintVLineRel(lx+flogo_w+2, ly, flogo_h+2, COL_WHITE); + framebuffer->paintHLineRel(lx, flogo_w+2, ly, COL_WHITE); + framebuffer->paintHLineRel(lx, flogo_w+2, ly+flogo_h+1, COL_WHITE); } } @@ -1411,57 +1288,47 @@ void CMovieBrowser::info_hdd_level(bool paint_hdd) struct statfs s; long blocks_percent_used =0; static long tmp_blocks_percent_used = 0; - if(getSelectedFile() != NULL){ + if (getSelectedFile() != NULL) { if (::statfs(getSelectedFile()->Name.c_str(), &s) == 0) { long blocks_used = s.f_blocks - s.f_bfree; blocks_percent_used = (long)(blocks_used * 100.0 / (blocks_used + s.f_bavail) + 0.5); } } - - if(tmp_blocks_percent_used != blocks_percent_used || paint_hdd){ + + if (tmp_blocks_percent_used != blocks_percent_used || paint_hdd) { tmp_blocks_percent_used = blocks_percent_used; const short pbw = 100; const short border = m_cBoxFrameTitleRel.iHeight/4; - CProgressBar pb(m_cBoxFrame.iX+ m_cBoxFrameFootRel.iWidth - pbw - border, m_cBoxFrame.iY+m_cBoxFrameTitleRel.iY + border, pbw, m_cBoxFrameTitleRel.iHeight/2); + CProgressBar pb(m_cBoxFrame.iX+ m_cBoxFrameFootRel.iWidth - pbw - border, m_cBoxFrame.iY+m_cBoxFrameTitleRel.iY + border, pbw, m_cBoxFrameTitleRel.iHeight/2); pb.setType(CProgressBar::PB_REDRIGHT); - pb.setValues( blocks_percent_used, 100); - pb.paint(false); + pb.setValues(blocks_percent_used, 100); + pb.paint(false); } } void CMovieBrowser::refreshLCD(void) { - if(m_vMovieInfo.empty()) return; + if (m_vMovieInfo.empty() || m_movieSelectionHandler == NULL) + return; - //CVFD * lcd = CVFD::getInstance(); - if(m_movieSelectionHandler == NULL) - { - // There is no selected element, clear LCD - //lcd->showMenuText(0, " ", -1, true); // UTF-8 - //lcd->showMenuText(1, " ", -1, true); // UTF-8 - } - else - { - CVFD::getInstance()->showMenuText(0, m_movieSelectionHandler->epgTitle.c_str(), -1, true); // UTF-8 - //lcd->showMenuText(1, m_movieSelectionHandler->epgInfo1.c_str(), -1, true); // UTF-8 - } + CVFD::getInstance()->showMenuText(0, m_movieSelectionHandler->epgTitle.c_str(), -1, true); // UTF-8 } void CMovieBrowser::refreshFilterList(void) { - TRACE("[mb]->refreshFilterList %d\r\n",m_settings.filter.item); + TRACE("[mb]->refreshFilterList %d\n",m_settings.filter.item); std::string string_item; m_FilterLines.rows = 1; m_FilterLines.lineArray[0].clear(); m_FilterLines.rowWidth[0] = 100; - m_FilterLines.lineHeader[0]= ""; + m_FilterLines.lineHeader[0] = ""; - if(m_vMovieInfo.empty()) + if (m_vMovieInfo.empty()) return; // exit here if nothing else is to do - if(m_settings.filter.item == MB_INFO_MAX_NUMBER) + if (m_settings.filter.item == MB_INFO_MAX_NUMBER) { // show Main List string_item = g_Locale->getText(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR); @@ -1478,42 +1345,38 @@ void CMovieBrowser::refreshFilterList(void) std::string tmp = g_Locale->getText(LOCALE_MENU_BACK); m_FilterLines.lineArray[0].push_back(tmp); - if(m_settings.filter.item == MB_INFO_FILEPATH) + if (m_settings.filter.item == MB_INFO_FILEPATH) { - for(unsigned int i =0 ; i < m_dirNames.size() ;i++) - { + for (unsigned int i = 0 ; i < m_dirNames.size(); i++) m_FilterLines.lineArray[0].push_back(m_dirNames[i]); - } } - else if(m_settings.filter.item == MB_INFO_INFO1) + else if (m_settings.filter.item == MB_INFO_INFO1) { - for(unsigned int i = 0; i < m_vMovieInfo.size(); i++) + for (unsigned int i = 0; i < m_vMovieInfo.size(); i++) { bool found = false; - for(unsigned int t = 0; t < m_FilterLines.lineArray[0].size() && found == false; t++) + for (unsigned int t = 0; t < m_FilterLines.lineArray[0].size() && found == false; t++) { - if(strcmp(m_FilterLines.lineArray[0][t].c_str(),m_vMovieInfo[i].epgInfo1.c_str()) == 0) + if (strcmp(m_FilterLines.lineArray[0][t].c_str(),m_vMovieInfo[i].epgInfo1.c_str()) == 0) found = true; } - if(found == false) + if (found == false) m_FilterLines.lineArray[0].push_back(m_vMovieInfo[i].epgInfo1); } } - else if(m_settings.filter.item == MB_INFO_MAJOR_GENRE) + else if (m_settings.filter.item == MB_INFO_MAJOR_GENRE) { - for(int i = 0; i < GENRE_ALL_COUNT; i++) + for (int i = 0; i < GENRE_ALL_COUNT; i++) { std::string tmpl = g_Locale->getText(GENRE_ALL[i].value); m_FilterLines.lineArray[0].push_back(tmpl); } } - else if(m_settings.filter.item == MB_INFO_SERIE) + else if (m_settings.filter.item == MB_INFO_SERIE) { updateSerienames(); - for(unsigned int i = 0; i < m_vHandleSerienames.size(); i++) - { + for (unsigned int i = 0; i < m_vHandleSerienames.size(); i++) m_FilterLines.lineArray[0].push_back(m_vHandleSerienames[i]->serieName); - } } } m_pcFilter->setLines(&m_FilterLines); @@ -1521,32 +1384,31 @@ void CMovieBrowser::refreshFilterList(void) void CMovieBrowser::refreshLastPlayList(void) //P2 { - //TRACE("[mb]->refreshlastPlayList \r\n"); + //TRACE("[mb]->refreshlastPlayList \n"); std::string string_item; // Initialise and clear list array m_playListLines.rows = m_settings.lastPlayRowNr; - for(int row = 0 ;row < m_settings.lastPlayRowNr; row++) + for (int row = 0 ;row < m_settings.lastPlayRowNr; row++) { m_playListLines.lineArray[row].clear(); m_playListLines.rowWidth[row] = m_settings.lastPlayRowWidth[row]; - m_playListLines.lineHeader[row]= g_Locale->getText(m_localizedItemName[m_settings.lastPlayRow[row]]); + m_playListLines.lineHeader[row] = g_Locale->getText(m_localizedItemName[m_settings.lastPlayRow[row]]); } - m_recordListLines.marked.clear(); + m_playListLines.marked.clear(); m_vHandlePlayList.clear(); - if(m_vMovieInfo.empty()) { - if(m_pcLastPlay != NULL) + if (m_vMovieInfo.empty()) { + if (m_pcLastPlay != NULL) m_pcLastPlay->setLines(&m_playListLines); return; // exit here if nothing else is to do } MI_MOVIE_INFO* movie_handle; // prepare Browser list for sorting and filtering - for(unsigned int file=0; file < m_vMovieInfo.size(); file++) + for (unsigned int file = 0; file < m_vMovieInfo.size(); file++) { - if( /*isFiltered(m_vMovieInfo[file]) == false &&*/ - isParentalLock(m_vMovieInfo[file]) == false) + if (isParentalLock(m_vMovieInfo[file]) == false) { movie_handle = &(m_vMovieInfo[file]); m_vHandlePlayList.push_back(movie_handle); @@ -1555,58 +1417,55 @@ void CMovieBrowser::refreshLastPlayList(void) //P2 // sort the not filtered files onSortMovieInfoHandleList(m_vHandlePlayList,MB_INFO_PREVPLAYDATE,MB_DIRECTION_DOWN); - for( int handle=0; handle < (int) m_vHandlePlayList.size() && handle < m_settings.lastPlayMaxItems ;handle++) + for (int handle=0; handle < (int) m_vHandlePlayList.size() && handle < m_settings.lastPlayMaxItems ;handle++) { - for(int row = 0; row < m_settings.lastPlayRowNr ;row++) + for (int row = 0; row < m_settings.lastPlayRowNr ;row++) { - if ( getMovieInfoItem(*m_vHandlePlayList[handle], m_settings.lastPlayRow[row], &string_item) == false) + if (getMovieInfoItem(*m_vHandlePlayList[handle], m_settings.lastPlayRow[row], &string_item) == false) { string_item = "n/a"; - if(m_settings.lastPlayRow[row] == MB_INFO_TITLE) + if (m_settings.lastPlayRow[row] == MB_INFO_TITLE) getMovieInfoItem(*m_vHandlePlayList[handle], MB_INFO_FILENAME, &string_item); } m_playListLines.lineArray[row].push_back(string_item); } - m_playListLines.marked.push_back(m_vHandleBrowserList[handle]->marked); + m_playListLines.marked.push_back(m_vHandlePlayList[handle]->marked); } m_pcLastPlay->setLines(&m_playListLines); m_currentPlaySelection = m_pcLastPlay->getSelectedLine(); // update selected movie if browser is in the focus if (m_windowFocus == MB_FOCUS_LAST_PLAY) - { updateMovieSelection(); - } } void CMovieBrowser::refreshLastRecordList(void) //P2 { - //TRACE("[mb]->refreshLastRecordList \r\n"); + //TRACE("[mb]->refreshLastRecordList \n"); std::string string_item; // Initialise and clear list array m_recordListLines.rows = m_settings.lastRecordRowNr; - for(int row = 0 ;row < m_settings.lastRecordRowNr; row++) + for (int row = 0 ;row < m_settings.lastRecordRowNr; row++) { m_recordListLines.lineArray[row].clear(); m_recordListLines.rowWidth[row] = m_settings.lastRecordRowWidth[row]; - m_recordListLines.lineHeader[row]= g_Locale->getText(m_localizedItemName[m_settings.lastRecordRow[row]]); + m_recordListLines.lineHeader[row] = g_Locale->getText(m_localizedItemName[m_settings.lastRecordRow[row]]); } m_recordListLines.marked.clear(); m_vHandleRecordList.clear(); - if(m_vMovieInfo.empty()) { - if(m_pcLastRecord != NULL) + if (m_vMovieInfo.empty()) { + if (m_pcLastRecord != NULL) m_pcLastRecord->setLines(&m_recordListLines); return; // exit here if nothing else is to do } MI_MOVIE_INFO* movie_handle; // prepare Browser list for sorting and filtering - for(unsigned int file=0; file < m_vMovieInfo.size() ;file++) + for (unsigned int file = 0; file < m_vMovieInfo.size(); file++) { - if( /*isFiltered(m_vMovieInfo[file]) == false &&*/ - isParentalLock(m_vMovieInfo[file]) == false) + if (isParentalLock(m_vMovieInfo[file]) == false) { movie_handle = &(m_vMovieInfo[file]); m_vHandleRecordList.push_back(movie_handle); @@ -1615,19 +1474,19 @@ void CMovieBrowser::refreshLastRecordList(void) //P2 // sort the not filtered files onSortMovieInfoHandleList(m_vHandleRecordList,MB_INFO_RECORDDATE,MB_DIRECTION_DOWN); - for( int handle=0; handle < (int) m_vHandleRecordList.size() && handle < m_settings.lastRecordMaxItems ;handle++) + for (int handle=0; handle < (int) m_vHandleRecordList.size() && handle < m_settings.lastRecordMaxItems ;handle++) { - for(int row = 0; row < m_settings.lastRecordRowNr ;row++) + for (int row = 0; row < m_settings.lastRecordRowNr ;row++) { - if ( getMovieInfoItem(*m_vHandleRecordList[handle], m_settings.lastRecordRow[row], &string_item) == false) + if (getMovieInfoItem(*m_vHandleRecordList[handle], m_settings.lastRecordRow[row], &string_item) == false) { string_item = "n/a"; - if(m_settings.lastRecordRow[row] == MB_INFO_TITLE) + if (m_settings.lastRecordRow[row] == MB_INFO_TITLE) getMovieInfoItem(*m_vHandleRecordList[handle], MB_INFO_FILENAME, &string_item); } m_recordListLines.lineArray[row].push_back(string_item); } - m_recordListLines.marked.push_back(m_vHandleBrowserList[handle]->marked); + m_recordListLines.marked.push_back(m_vHandleRecordList[handle]->marked); } m_pcLastRecord->setLines(&m_recordListLines); @@ -1635,44 +1494,42 @@ void CMovieBrowser::refreshLastRecordList(void) //P2 m_currentRecordSelection = m_pcLastRecord->getSelectedLine(); // update selected movie if browser is in the focus if (m_windowFocus == MB_FOCUS_LAST_RECORD) - { updateMovieSelection(); - } } void CMovieBrowser::refreshBrowserList(void) //P1 { - //TRACE("[mb]->refreshBrowserList \r\n"); + TRACE("[mb]->%s\n", __func__); std::string string_item; // Initialise and clear list array m_browserListLines.rows = m_settings.browserRowNr; - for(int row = 0; row < m_settings.browserRowNr; row++) + for (int row = 0; row < m_settings.browserRowNr; row++) { m_browserListLines.lineArray[row].clear(); m_browserListLines.rowWidth[row] = m_settings.browserRowWidth[row]; - m_browserListLines.lineHeader[row]= g_Locale->getText(m_localizedItemName[m_settings.browserRowItem[row]]); + m_browserListLines.lineHeader[row] = g_Locale->getText(m_localizedItemName[m_settings.browserRowItem[row]]); } m_browserListLines.Icon.clear(); m_browserListLines.marked.clear(); m_vHandleBrowserList.clear(); - if(m_vMovieInfo.empty()) + if (m_vMovieInfo.empty()) { m_currentBrowserSelection = 0; m_movieSelectionHandler = NULL; - if(m_pcBrowser != NULL) + if (m_pcBrowser != NULL) m_pcBrowser->setLines(&m_browserListLines);//FIXME last delete test return; // exit here if nothing else is to do } MI_MOVIE_INFO* movie_handle; // prepare Browser list for sorting and filtering - for(unsigned int file=0; file < m_vMovieInfo.size(); file++) + for (unsigned int file=0; file < m_vMovieInfo.size(); file++) { - if( isFiltered(m_vMovieInfo[file]) == false && - isParentalLock(m_vMovieInfo[file]) == false && - (m_settings.browser_serie_mode == 0 || m_vMovieInfo[file].serieName.empty() || m_settings.filter.item == MB_INFO_SERIE) ) + if (isFiltered(m_vMovieInfo[file]) == false && + isParentalLock(m_vMovieInfo[file]) == false && + (m_settings.browser_serie_mode == 0 || m_vMovieInfo[file].serieName.empty() || m_settings.filter.item == MB_INFO_SERIE)) { movie_handle = &(m_vMovieInfo[file]); m_vHandleBrowserList.push_back(movie_handle); @@ -1681,14 +1538,14 @@ void CMovieBrowser::refreshBrowserList(void) //P1 // sort the not filtered files onSortMovieInfoHandleList(m_vHandleBrowserList,m_settings.sorting.item,MB_DIRECTION_AUTO); - for(unsigned int handle=0; handle < m_vHandleBrowserList.size() ;handle++) + for (unsigned int handle=0; handle < m_vHandleBrowserList.size() ;handle++) { - for(int row = 0; row < m_settings.browserRowNr ;row++) + for (int row = 0; row < m_settings.browserRowNr ;row++) { - if ( getMovieInfoItem(*m_vHandleBrowserList[handle], m_settings.browserRowItem[row], &string_item) == false) + if (getMovieInfoItem(*m_vHandleBrowserList[handle], m_settings.browserRowItem[row], &string_item) == false) { string_item = "n/a"; - if(m_settings.browserRowItem[row] == MB_INFO_TITLE) + if (m_settings.browserRowItem[row] == MB_INFO_TITLE) getMovieInfoItem(*m_vHandleBrowserList[handle], MB_INFO_FILENAME, &string_item); } @@ -1705,34 +1562,31 @@ void CMovieBrowser::refreshBrowserList(void) //P1 m_currentBrowserSelection = m_pcBrowser->getSelectedLine(); // update selected movie if browser is in the focus if (m_windowFocus == MB_FOCUS_BROWSER) - { updateMovieSelection(); - } -} - -void CMovieBrowser::refreshBookmarkList(void) // P3 -{ - //TRACE("[mb]->refreshBookmarkList \r\n"); } void CMovieBrowser::refreshTitle(void) { std::string title = m_textTitle.c_str(); + const char *icon = NEUTRINO_ICON_MOVIEPLAYER; if (show_mode == MB_SHOW_YT) { title = g_Locale->getText(LOCALE_MOVIEPLAYER_YTPLAYBACK); title += " : "; - title += g_Locale->getText(getFeedLocale()); - title += " \"" + m_settings.ytsearch + "\""; + neutrino_locale_t loc = getFeedLocale(); + title += g_Locale->getText(loc); + if (loc == LOCALE_MOVIEBROWSER_YT_RELATED || loc == LOCALE_MOVIEBROWSER_YT_SEARCH) + title += " \"" + m_settings.ytsearch + "\""; + icon = NEUTRINO_ICON_YTPLAY; } - - TRACE("[mb]->refreshTitle : %s\r\n", title.c_str()); + + TRACE("[mb]->refreshTitle : %s\n", title.c_str()); int x = m_cBoxFrameTitleRel.iX + m_cBoxFrame.iX; int y = m_cBoxFrameTitleRel.iY + m_cBoxFrame.iY; int w = m_cBoxFrameTitleRel.iWidth; int h = m_cBoxFrameTitleRel.iHeight; - - CComponentsHeader header(x, y, w, h, title.c_str(), NEUTRINO_ICON_MOVIEPLAYER); + + CComponentsHeader header(x, y, w, h, title.c_str(), icon); header.paint(CC_SAVE_SCREEN_NO); newHeader = true; @@ -1741,7 +1595,7 @@ void CMovieBrowser::refreshTitle(void) int CMovieBrowser::refreshFoot(bool show) { - //TRACE("[mb]->refreshButtonLine \r\n"); + //TRACE("[mb]->refreshButtonLine\n"); int offset = (m_settings.gui != MB_GUI_LAST_PLAY && m_settings.gui != MB_GUI_LAST_RECORD) ? 0 : 2; neutrino_locale_t ok_loc = (m_settings.gui == MB_GUI_FILTER && m_windowFocus == MB_FOCUS_FILTER) ? LOCALE_BOOKMARKMANAGER_SELECT : LOCALE_MOVIEBROWSER_FOOT_PLAY; int ok_loc_len = std::max(g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getRenderWidth(g_Locale->getText(LOCALE_BOOKMARKMANAGER_SELECT), true), @@ -1756,64 +1610,54 @@ int CMovieBrowser::refreshFoot(bool show) len = std::max(len, g_Font[SNeutrinoSettings::FONT_TYPE_INFOBAR_SMALL]->getRenderWidth(g_Locale->getText(m_localizedItemName[i]), true)); sort_text_len += len; - button_label_ext footerButtons[7] = { + button_label_ext footerButtons[] = { { NEUTRINO_ICON_BUTTON_RED, NONEXISTANT_LOCALE, sort_text.c_str(), sort_text_len, false }, { NEUTRINO_ICON_BUTTON_GREEN, NONEXISTANT_LOCALE, filter_text.c_str(), 0, true }, { NEUTRINO_ICON_BUTTON_YELLOW, LOCALE_MOVIEBROWSER_FOOT_FOCUS, NULL, 0, false }, { NEUTRINO_ICON_BUTTON_BLUE, LOCALE_MOVIEBROWSER_FOOT_REFRESH, NULL, 0, false }, { NEUTRINO_ICON_BUTTON_OKAY, ok_loc, NULL, ok_loc_len, false }, { NEUTRINO_ICON_BUTTON_MUTE_SMALL, LOCALE_FILEBROWSER_DELETE, NULL, 0, false }, + { NEUTRINO_ICON_BUTTON_PLAY, LOCALE_FILEBROWSER_MARK, NULL, 0, false }, { NEUTRINO_ICON_BUTTON_MENU_SMALL, LOCALE_MOVIEBROWSER_FOOT_OPTIONS, NULL, 0, false } }; + int cnt = sizeof(footerButtons) / sizeof(button_label_ext); int h; - int res = paintButtons(footerButtons, 7, 0, 0, 0, 0, 0, false, NULL, &h); + int res = paintButtons(footerButtons, cnt, 0, 0, 0, 0, 0, false, NULL, &h); if (show) - paintButtons(footerButtons + offset, 7 - offset, m_cBoxFrame.iX+m_cBoxFrameFootRel.iX, m_cBoxFrame.iHeight - h, m_cBoxFrameFootRel.iWidth, h, m_cBoxFrameFootRel.iWidth); + paintButtons(footerButtons + offset, cnt - offset, m_cBoxFrame.iX+m_cBoxFrameFootRel.iX, m_cBoxFrame.iHeight - h, m_cBoxFrameFootRel.iWidth, h, m_cBoxFrameFootRel.iWidth); return res; } bool CMovieBrowser::onButtonPress(neutrino_msg_t msg) { -// TRACE("[mb]->onButtonPress %d\r\n",msg); - bool result = false; - - result = onButtonPressMainFrame(msg); - if(result == false) +// TRACE("[mb]->onButtonPress %d\n",msg); + bool result = onButtonPressMainFrame(msg); + if (result == false) { // if Main Frame didnot process the button, the focused window may do - switch(m_windowFocus) - { - case MB_FOCUS_BROWSER: - result = onButtonPressBrowserList(msg); - break; - case MB_FOCUS_LAST_PLAY: - result = onButtonPressLastPlayList(msg); - break; - case MB_FOCUS_LAST_RECORD: - result = onButtonPressLastRecordList(msg); - break; - case MB_FOCUS_MOVIE_INFO: - result = onButtonPressMovieInfoList(msg); - break; - case MB_FOCUS_FILTER: - result = onButtonPressFilterList(msg); - break; - default: - break; - } + if (m_windowFocus == MB_FOCUS_BROWSER) + result = onButtonPressBrowserList(msg); + else if (m_windowFocus == MB_FOCUS_LAST_PLAY) + result = onButtonPressLastPlayList(msg); + else if (m_windowFocus == MB_FOCUS_LAST_RECORD) + result = onButtonPressLastRecordList(msg); + else if (m_windowFocus == MB_FOCUS_MOVIE_INFO) + result = onButtonPressMovieInfoList(msg); + else if (m_windowFocus == MB_FOCUS_FILTER) + result = onButtonPressFilterList(msg); } return (result); } bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) { - //TRACE("[mb]->onButtonPressMainFrame: %d\r\n",msg); + //TRACE("[mb]->onButtonPressMainFrame: %d\n",msg); bool result = true; if (msg == CRCInput::RC_home) { - if(m_settings.gui == MB_GUI_FILTER) + if (m_settings.gui == MB_GUI_FILTER) onSetGUIWindow(MB_GUI_MOVIE_INFO); else result = false; @@ -1821,18 +1665,16 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) else if (msg == (neutrino_msg_t)g_settings.key_volumedown) { onSetGUIWindowPrev(); - //refreshMovieInfo(); } else if (msg == (neutrino_msg_t)g_settings.key_volumeup) { onSetGUIWindowNext(); - //refreshMovieInfo(); } else if (msg == CRCInput::RC_green) { - if(m_settings.gui == MB_GUI_MOVIE_INFO) + if (m_settings.gui == MB_GUI_MOVIE_INFO) onSetGUIWindow(MB_GUI_FILTER); - else if(m_settings.gui == MB_GUI_FILTER) + else if (m_settings.gui == MB_GUI_FILTER) onSetGUIWindow(MB_GUI_MOVIE_INFO); // no effect if gui is last play or record } @@ -1848,20 +1690,20 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) loadMovies(); refresh(); } - else if (msg == CRCInput::RC_red ) + else if (msg == CRCInput::RC_red) { - if(m_settings.gui != MB_GUI_LAST_PLAY && m_settings.gui != MB_GUI_LAST_RECORD) + if (m_settings.gui != MB_GUI_LAST_PLAY && m_settings.gui != MB_GUI_LAST_RECORD) { // sorting is not avialable for last play and record do { - if(m_settings.sorting.item + 1 >= MB_INFO_MAX_NUMBER) + if (m_settings.sorting.item + 1 >= MB_INFO_MAX_NUMBER) m_settings.sorting.item = (MB_INFO_ITEM)0; else m_settings.sorting.item = (MB_INFO_ITEM)(m_settings.sorting.item + 1); - }while(sortBy[m_settings.sorting.item] == NULL); + } while (sortBy[m_settings.sorting.item] == NULL); - TRACE("[mb]->new sorting %d,%s\r\n",m_settings.sorting.item,g_Locale->getText(m_localizedItemName[m_settings.sorting.item])); + TRACE("[mb]->new sorting %d,%s\n",m_settings.sorting.item,g_Locale->getText(m_localizedItemName[m_settings.sorting.item])); refreshBrowserList(); refreshFoot(); } @@ -1877,9 +1719,8 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) if (delName == "") delName = m_movieSelectionHandler->file.getFileName(); char buf1[1024]; - memset(buf1, '\0', sizeof(buf1)); - snprintf(buf1, sizeof(buf1)-1, g_Locale->getText(LOCALE_MOVIEBROWSER_ASK_REC_TO_DELETE), delName.c_str()); - if(ShowMsg(LOCALE_RECORDINGMENU_RECORD_IS_RUNNING, buf1, + snprintf(buf1, sizeof(buf1), g_Locale->getText(LOCALE_MOVIEBROWSER_ASK_REC_TO_DELETE), delName.c_str()); + if (ShowMsg(LOCALE_RECORDINGMENU_RECORD_IS_RUNNING, buf1, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrNo) onDelete = false; else { @@ -1897,34 +1738,32 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) } else if (msg == CRCInput::RC_help || msg == CRCInput::RC_info) { - if(m_movieSelectionHandler != NULL) + if (m_movieSelectionHandler != NULL) { m_movieInfo.showMovieInfo(*m_movieSelectionHandler); - //m_movieInfo.printDebugMovieInfo(*m_movieSelectionHandler); //FIXME refresh(); } } else if (msg == CRCInput::RC_setup) { - //if(m_movieSelectionHandler != NULL) - if (show_mode == MB_SHOW_YT) - showYTMenu(); - else - showMenu(m_movieSelectionHandler); + if (show_mode == MB_SHOW_YT) + showYTMenu(); + else + showMenu(m_movieSelectionHandler); } else if (msg == CRCInput::RC_text || msg == CRCInput::RC_radio) { - if((show_mode == MB_SHOW_RECORDS) && - (ShowMsg (LOCALE_MESSAGEBOX_INFO, msg == CRCInput::RC_radio ? "Copy jumps from movie to new file ?" : "Copy jumps from movie to new files ?", CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes)) { + if ((show_mode == MB_SHOW_RECORDS) && + (ShowMsg(LOCALE_MESSAGEBOX_INFO, msg == CRCInput::RC_radio ? "Copy jumps from movie to new file ?" : "Copy jumps from movie to new files ?", CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes)) { CHintBox * hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, "Coping, please wait"); hintBox->paint(); sleep(1); hintBox->hide(); delete hintBox; - m_pcWindow->paintBackground(); // clear screen + framebuffer->paintBackground(); // clear screen off64_t res = copy_movie(m_movieSelectionHandler, &m_movieInfo, msg == CRCInput::RC_radio); //g_RCInput->clearRCMsg(); - if(res == 0) + if (res == 0) ShowMsg(LOCALE_MESSAGEBOX_ERROR, "Copy failed, is there jump bookmarks ? Or check free space.", CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR); else loadMovies(); @@ -1933,21 +1772,21 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) } else if (msg == CRCInput::RC_audio) { #if 0 - if((m_movieSelectionHandler == playing_info) && (NeutrinoMessages::mode_ts == CNeutrinoApp::getInstance()->getMode())) + if ((m_movieSelectionHandler == playing_info) && (NeutrinoMessages::mode_ts == CNeutrinoApp::getInstance()->getMode())) ShowMsg(LOCALE_MESSAGEBOX_ERROR, "Impossible to cut playing movie.", CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR); else #endif - if((show_mode == MB_SHOW_RECORDS) && - (ShowMsg (LOCALE_MESSAGEBOX_INFO, "Cut jumps from movie ?", CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes)) { + if ((show_mode == MB_SHOW_RECORDS) && + (ShowMsg(LOCALE_MESSAGEBOX_INFO, "Cut jumps from movie ?", CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes)) { CHintBox * hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, "Cutting, please wait"); hintBox->paint(); sleep(1); hintBox->hide(); delete hintBox; - m_pcWindow->paintBackground(); // clear screen + framebuffer->paintBackground(); // clear screen off64_t res = cut_movie(m_movieSelectionHandler, &m_movieInfo); //g_RCInput->clearRCMsg(); - if(res == 0) + if (res == 0) ShowMsg(LOCALE_MESSAGEBOX_ERROR, "Cut failed, is there jump bookmarks ? Or check free space.", CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR); else { loadMovies(); @@ -1956,24 +1795,24 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) } } else if (msg == CRCInput::RC_games) { - if((show_mode == MB_SHOW_RECORDS) && m_movieSelectionHandler != NULL) { - if((m_movieSelectionHandler == playing_info) && (NeutrinoMessages::mode_ts == CNeutrinoApp::getInstance()->getMode())) + if ((show_mode == MB_SHOW_RECORDS) && m_movieSelectionHandler != NULL) { + if ((m_movieSelectionHandler == playing_info) && (NeutrinoMessages::mode_ts == CNeutrinoApp::getInstance()->getMode())) ShowMsg(LOCALE_MESSAGEBOX_ERROR, "Impossible to truncate playing movie.", CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR); - else if(m_movieSelectionHandler->bookmarks.end == 0) + else if (m_movieSelectionHandler->bookmarks.end == 0) ShowMsg(LOCALE_MESSAGEBOX_ERROR, "No End bookmark defined!", CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR); else { - if(ShowMsg (LOCALE_MESSAGEBOX_INFO, "Truncate movie ?", CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes) { + if (ShowMsg(LOCALE_MESSAGEBOX_INFO, "Truncate movie ?", CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes) { CHintBox * hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, "Truncating, please wait"); hintBox->paint(); off64_t res = truncate_movie(m_movieSelectionHandler); hintBox->hide(); delete hintBox; g_RCInput->clearRCMsg(); - if(res == 0) + if (res == 0) ShowMsg(LOCALE_MESSAGEBOX_ERROR, "Truncate failed.", CMessageBox::mbrCancel, CMessageBox::mbCancel, NEUTRINO_ICON_ERROR); else { //printf("New movie info: size %lld len %d\n", res, m_movieSelectionHandler->bookmarks.end/60); - m_movieInfo.saveMovieInfo( *m_movieSelectionHandler); + m_movieInfo.saveMovieInfo(*m_movieSelectionHandler); loadMovies(); } refresh(); @@ -1982,7 +1821,7 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) } } else if (msg == CRCInput::RC_favorites) { if (m_movieSelectionHandler != NULL) { - if(ShowMsg (LOCALE_MESSAGEBOX_INFO, "Remove screenshot ?", CMessageBox::mbrNo, CMessageBox:: mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes) { + if (ShowMsg(LOCALE_MESSAGEBOX_INFO, "Remove screenshot ?", CMessageBox::mbrNo, CMessageBox:: mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes) { std::string fname = getScreenshotName(m_movieSelectionHandler->file.Name); if (fname != "") unlink(fname.c_str()); @@ -1992,82 +1831,63 @@ bool CMovieBrowser::onButtonPressMainFrame(neutrino_msg_t msg) } else { - //TRACE("[mb]->onButtonPressMainFrame none\r\n"); + //TRACE("[mb]->onButtonPressMainFrame none\n"); result = false; } return (result); } +void CMovieBrowser::markItem(CListFrame *list) +{ + m_movieSelectionHandler->marked = !m_movieSelectionHandler->marked; + list->setSelectedMarked(m_movieSelectionHandler->marked); + list->scrollLineDown(1); +} + +void CMovieBrowser::scrollBrowserItem(bool next, bool page) +{ + int mode = -1; + if (show_mode == MB_SHOW_YT && next && ytparser.HaveNext() && m_pcBrowser->getSelectedLine() == m_pcBrowser->getLines() - 1) + mode = cYTFeedParser::NEXT; + if (show_mode == MB_SHOW_YT && !next && ytparser.HavePrev() && m_pcBrowser->getSelectedLine() == 0) + mode = cYTFeedParser::PREV; + if (mode >= 0) { + CHintBox loadBox(LOCALE_MOVIEPLAYER_YTPLAYBACK, g_Locale->getText(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES)); + loadBox.paint(); + ytparser.Cleanup(); + loadYTitles(mode, m_settings.ytsearch, m_settings.ytvid); + loadBox.hide(); + refreshBrowserList(); + refreshMovieInfo(); + g_RCInput->clearRCMsg(); + return; + } + if (next) + page ? m_pcBrowser->scrollPageDown(1) : m_pcBrowser->scrollLineDown(1); + else + page ? m_pcBrowser->scrollPageUp(1) : m_pcBrowser->scrollLineUp(1); +} + bool CMovieBrowser::onButtonPressBrowserList(neutrino_msg_t msg) { - //TRACE("[mb]->onButtonPressBrowserList %d\r\n",msg); + //TRACE("[mb]->onButtonPressBrowserList %d\n",msg); bool result = true; - if(msg==CRCInput::RC_up) - { - if (show_mode == MB_SHOW_YT && ytparser.HavePrev() && m_pcBrowser->getSelectedLine() == 0) { - CHintBox loadBox(LOCALE_MOVIEPLAYER_YTPLAYBACK, g_Locale->getText(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES)); - loadBox.paint(); - ytparser.Cleanup(); - loadYTitles(cYTFeedParser::PREV, m_settings.ytsearch, m_settings.ytvid); - loadBox.hide(); - refreshBrowserList(); - refreshMovieInfo(); - } else - m_pcBrowser->scrollLineUp(1); - } + if (msg == CRCInput::RC_up) + scrollBrowserItem(false, false); else if (msg == CRCInput::RC_down) - { - if (show_mode == MB_SHOW_YT && ytparser.HaveNext() && m_pcBrowser->getSelectedLine() == m_pcBrowser->getLines() - 1) { - CHintBox loadBox(LOCALE_MOVIEPLAYER_YTPLAYBACK, g_Locale->getText(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES)); - loadBox.paint(); - ytparser.Cleanup(); - loadYTitles(cYTFeedParser::NEXT, m_settings.ytsearch, m_settings.ytvid); - loadBox.hide(); - refreshBrowserList(); - refreshMovieInfo(); - } else - m_pcBrowser->scrollLineDown(1); - } - else if ((msg == (neutrino_msg_t)g_settings.key_pageup) || (msg == CRCInput::RC_left)) - { - if (show_mode == MB_SHOW_YT && ytparser.HavePrev() && m_pcBrowser->getSelectedLine() == 0) { - CHintBox loadBox(LOCALE_MOVIEPLAYER_YTPLAYBACK, g_Locale->getText(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES)); - loadBox.paint(); - ytparser.Cleanup(); - loadYTitles(cYTFeedParser::PREV, m_settings.ytsearch, m_settings.ytvid); - loadBox.hide(); - refreshBrowserList(); - refreshMovieInfo(); - } else - m_pcBrowser->scrollPageUp(1); - } - else if ((msg == (neutrino_msg_t)g_settings.key_pagedown) || (msg == CRCInput::RC_right)) - { - if (show_mode == MB_SHOW_YT && ytparser.HaveNext() && m_pcBrowser->getSelectedLine() == m_pcBrowser->getLines() - 1) { - CHintBox loadBox(LOCALE_MOVIEPLAYER_YTPLAYBACK, g_Locale->getText(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES)); - loadBox.paint(); - ytparser.Cleanup(); - loadYTitles(cYTFeedParser::NEXT, m_settings.ytsearch, m_settings.ytvid); - loadBox.hide(); - refreshBrowserList(); - refreshMovieInfo(); - } else - m_pcBrowser->scrollPageDown(1); - } + scrollBrowserItem(true, false); + else if (msg == (neutrino_msg_t)g_settings.key_pageup) + scrollBrowserItem(false, true); + else if (msg == (neutrino_msg_t)g_settings.key_pagedown) + scrollBrowserItem(true, true); else if (msg == CRCInput::RC_play) - { - m_movieSelectionHandler->marked = !m_movieSelectionHandler->marked; - m_pcBrowser->setSelectedMarked(m_movieSelectionHandler->marked); - m_pcBrowser->scrollLineDown(1); - } + markItem(m_pcBrowser); else - { - // default result = false; - } - if(result == true) + + if (result == true) updateMovieSelection(); return (result); @@ -2075,37 +1895,23 @@ bool CMovieBrowser::onButtonPressBrowserList(neutrino_msg_t msg) bool CMovieBrowser::onButtonPressLastPlayList(neutrino_msg_t msg) { - //TRACE("[mb]->onButtonPressLastPlayList %d\r\n",msg); + //TRACE("[mb]->onButtonPressLastPlayList %d\n",msg); bool result = true; - if(msg==CRCInput::RC_up) - { + if (msg==CRCInput::RC_up) m_pcLastPlay->scrollLineUp(1); - } else if (msg == CRCInput::RC_down) - { m_pcLastPlay->scrollLineDown(1); - } else if (msg == CRCInput::RC_left) - { m_pcLastPlay->scrollPageUp(1); - } else if (msg == CRCInput::RC_right) - { m_pcLastPlay->scrollPageDown(1); - } else if (msg == CRCInput::RC_play) - { - m_movieSelectionHandler->marked = !m_movieSelectionHandler->marked; - m_pcLastPlay->setSelectedMarked(m_movieSelectionHandler->marked); - m_pcLastPlay->scrollLineDown(1); - } + markItem(m_pcLastPlay); else - { - // default result = false; - } - if(result == true) + + if (result == true) updateMovieSelection(); return (result); @@ -2113,58 +1919,34 @@ bool CMovieBrowser::onButtonPressLastPlayList(neutrino_msg_t msg) bool CMovieBrowser::onButtonPressLastRecordList(neutrino_msg_t msg) { - //TRACE("[mb]->onButtonPressLastRecordList %d\r\n",msg); + //TRACE("[mb]->onButtonPressLastRecordList %d\n",msg); bool result = true; - if(msg==CRCInput::RC_up) - { + if (msg == CRCInput::RC_up) m_pcLastRecord->scrollLineUp(1); - } else if (msg == CRCInput::RC_down) - { m_pcLastRecord->scrollLineDown(1); - } else if (msg == CRCInput::RC_left) - { m_pcLastRecord->scrollPageUp(1); - } else if (msg == CRCInput::RC_right) - { m_pcLastRecord->scrollPageDown(1); - } else if (msg == CRCInput::RC_play) - { - m_movieSelectionHandler->marked = !m_movieSelectionHandler->marked; - m_pcLastRecord->setSelectedMarked(m_movieSelectionHandler->marked); - m_pcLastRecord->scrollLineDown(1); - } + markItem(m_pcLastRecord); else - { - // default result = false; - } - if(result == true) + if (result == true) updateMovieSelection(); return (result); } -bool CMovieBrowser::onButtonPressBookmarkList(neutrino_msg_t /*msg*/) -{ - //TRACE("[mb]->onButtonPressBookmarkList %d\r\n",msg); - bool result = true; - - result = false; - return (result); -} - bool CMovieBrowser::onButtonPressFilterList(neutrino_msg_t msg) { - //TRACE("[mb]->onButtonPressFilterList %d,%d\r\n",msg,m_settings.filter.item); + //TRACE("[mb]->onButtonPressFilterList %d,%d\n",msg,m_settings.filter.item); bool result = true; - if(msg==CRCInput::RC_up) + if (msg==CRCInput::RC_up) { m_pcFilter->scrollLineUp(1); } @@ -2183,18 +1965,18 @@ bool CMovieBrowser::onButtonPressFilterList(neutrino_msg_t msg) else if (msg == CRCInput::RC_ok) { int selected_line = m_pcFilter->getSelectedLine(); - if(m_settings.filter.item == MB_INFO_MAX_NUMBER) + if (m_settings.filter.item == MB_INFO_MAX_NUMBER) { - if(selected_line == 0) m_settings.filter.item = MB_INFO_MAJOR_GENRE; - if(selected_line == 1) m_settings.filter.item = MB_INFO_INFO1; - if(selected_line == 2) m_settings.filter.item = MB_INFO_FILEPATH; - if(selected_line == 3) m_settings.filter.item = MB_INFO_SERIE; + if (selected_line == 0) m_settings.filter.item = MB_INFO_MAJOR_GENRE; + if (selected_line == 1) m_settings.filter.item = MB_INFO_INFO1; + if (selected_line == 2) m_settings.filter.item = MB_INFO_FILEPATH; + if (selected_line == 3) m_settings.filter.item = MB_INFO_SERIE; refreshFilterList(); m_pcFilter->setSelectedLine(0); } else { - if(selected_line == 0) + if (selected_line == 0) { m_settings.filter.item = MB_INFO_MAX_NUMBER; m_settings.filter.optionString = ""; @@ -2231,41 +2013,32 @@ bool CMovieBrowser::onButtonPressFilterList(neutrino_msg_t msg) bool CMovieBrowser::onButtonPressMovieInfoList(neutrino_msg_t msg) { -// TRACE("[mb]->onButtonPressEPGInfoList %d\r\n",msg); +// TRACE("[mb]->onButtonPressEPGInfoList %d\n",msg); bool result = true; - if(msg == CRCInput::RC_up) - { + if (msg == CRCInput::RC_up) m_pcInfo->scrollPageUp(1); - } else if (msg == CRCInput::RC_down) - { m_pcInfo->scrollPageDown(1); - } else - { - // default result = false; - } return (result); } void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler, bool skipAsk) { - //TRACE( "[onDeleteFile] "); + //TRACE("[onDeleteFile] "); int test= movieSelectionHandler.file.Name.find(".ts", movieSelectionHandler.file.Name.length()-3); - if (test < 0) - test= movieSelectionHandler.file.Name.find(".mp4", movieSelectionHandler.file.Name.length()-4); - if(test == -1) + if (test == -1) { // not a TS file, return!!!!! - TRACE( "show_ts_info: not a TS or MP4 file "); + TRACE("show_ts_info: not a TS file "); } else { std::string msg = g_Locale->getText(LOCALE_FILEBROWSER_DODELETE1); - msg += "\r\n "; + msg += "\n "; if (movieSelectionHandler.file.Name.length() > 40) { msg += movieSelectionHandler.file.Name.substr(0,40); @@ -2274,7 +2047,7 @@ void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler, bool skip else msg += movieSelectionHandler.file.Name; - msg += "\r\n "; + msg += "\n "; msg += g_Locale->getText(LOCALE_FILEBROWSER_DODELETE2); if ((skipAsk) || (ShowMsg(LOCALE_FILEBROWSER_DELETE, msg, CMessageBox::mbrYes, CMessageBox::mbYes|CMessageBox::mbNo)==CMessageBox::mbrYes)) { @@ -2282,62 +2055,39 @@ void CMovieBrowser::onDeleteFile(MI_MOVIE_INFO& movieSelectionHandler, bool skip hintBox->paint(); delFile(movieSelectionHandler.file); -#if 1 - int i = 1; - char newpath[1024]; - do { - snprintf(newpath, sizeof(newpath), "%s.%03d", movieSelectionHandler.file.Name.c_str(), i); - if(access(newpath, R_OK)) { - break; - } else { - unlink(newpath); - TRACE(" delete file: %s\r\n", newpath); - } - i++; - } while(1); -#endif std::string fname = getScreenshotName(movieSelectionHandler.file.Name); - if (fname != "") - unlink(fname.c_str()); + if (!fname.empty()) + unlink(fname.c_str()); - CFile file_xml = movieSelectionHandler.file; - if(m_movieInfo.convertTs2XmlName(file_xml.Name)) - { - //delFile(file_xml); + CFile file_xml = movieSelectionHandler.file; + if (m_movieInfo.convertTs2XmlName(file_xml.Name)) unlink(file_xml.Name.c_str()); - } - hintBox->hide(); + delete hintBox; g_RCInput->clearRCMsg(); - m_vMovieInfo.erase( (std::vector::iterator)&movieSelectionHandler); + m_vMovieInfo.erase((std::vector::iterator)&movieSelectionHandler); TRACE("List size: %d\n", (int)m_vMovieInfo.size()); - //if(m_vMovieInfo.empty()) fileInfoStale(); - //if(m_vMovieInfo.empty()) onSetGUIWindow(m_settings.gui); + updateSerienames(); refreshBrowserList(); refreshLastPlayList(); refreshLastRecordList(); refreshMovieInfo(); - - //loadMovies(); // //TODO we might remove the handle from the handle list only, to avoid reload ..... refresh(); } - } + } } void CMovieBrowser::onSetGUIWindow(MB_GUI gui) { + TRACE("[mb]->onSetGUIWindow: gui %d -> %d\n", m_settings.gui, gui); m_settings.gui = gui; - if(gui == MB_GUI_MOVIE_INFO) - { - TRACE("[mb] browser info\r\n"); - // Paint these frames ... - m_showMovieInfo = true; + m_showMovieInfo = true; + if (gui == MB_GUI_MOVIE_INFO) { m_showBrowserFiles = true; - // ... and hide these frames m_showLastRecordFiles = false; m_showLastPlayFiles = false; m_showFilter = false; @@ -2347,19 +2097,12 @@ void CMovieBrowser::onSetGUIWindow(MB_GUI gui) m_pcFilter->hide(); m_pcBrowser->paint(); onSetFocus(MB_FOCUS_BROWSER); - m_pcInfo->paint(); - refreshMovieInfo(); - } - else if(gui == MB_GUI_LAST_PLAY) - { - TRACE("[mb] last play \r\n"); + } else if (gui == MB_GUI_LAST_PLAY) { clearSelection(); - // Paint these frames ... + m_showLastRecordFiles = true; m_showLastPlayFiles = true; - m_showMovieInfo = true; - // ... and hide these frames m_showBrowserFiles = false; m_showFilter = false; @@ -2369,19 +2112,12 @@ void CMovieBrowser::onSetGUIWindow(MB_GUI gui) m_pcLastPlay->paint(); onSetFocus(MB_FOCUS_LAST_PLAY); - m_pcInfo->paint(); - refreshMovieInfo(); - } - else if(gui == MB_GUI_LAST_RECORD) - { - TRACE("[mb] last record \r\n"); + } else if (gui == MB_GUI_LAST_RECORD) { clearSelection(); - // Paint these frames ... + m_showLastRecordFiles = true; m_showLastPlayFiles = true; - m_showMovieInfo = true; - // ... and hide these frames m_showBrowserFiles = false; m_showFilter = false; @@ -2391,185 +2127,118 @@ void CMovieBrowser::onSetGUIWindow(MB_GUI gui) m_pcLastPlay->paint(); onSetFocus(MB_FOCUS_LAST_RECORD); - m_pcInfo->paint(); - refreshMovieInfo(); - } - else if(gui == MB_GUI_FILTER) - { - TRACE("[mb] filter \r\n"); - // Paint these frames ... + } else if (gui == MB_GUI_FILTER) { m_showFilter = true; - // ... and hide these frames + m_showMovieInfo = false; + m_pcInfo->hide(); m_pcFilter->paint(); onSetFocus(MB_FOCUS_FILTER); } + if (m_showMovieInfo) { + m_pcInfo->paint(); + refreshMovieInfo(); + } } void CMovieBrowser::onSetGUIWindowNext(void) { - if(m_settings.gui == MB_GUI_MOVIE_INFO ) - { + if (m_settings.gui == MB_GUI_MOVIE_INFO) onSetGUIWindow(MB_GUI_LAST_PLAY); - } - else if(m_settings.gui == MB_GUI_LAST_PLAY) - { + else if (m_settings.gui == MB_GUI_LAST_PLAY) onSetGUIWindow(MB_GUI_LAST_RECORD); - } else - { onSetGUIWindow(MB_GUI_MOVIE_INFO); - } } void CMovieBrowser::onSetGUIWindowPrev(void) { - if(m_settings.gui == MB_GUI_MOVIE_INFO ) - { + if (m_settings.gui == MB_GUI_MOVIE_INFO) onSetGUIWindow(MB_GUI_LAST_RECORD); - } - else if(m_settings.gui == MB_GUI_LAST_RECORD) - { + else if (m_settings.gui == MB_GUI_LAST_RECORD) onSetGUIWindow(MB_GUI_LAST_PLAY); - } else - { onSetGUIWindow(MB_GUI_MOVIE_INFO); - } } void CMovieBrowser::onSetFocus(MB_FOCUS new_focus) { - //TRACE("[mb]->onSetFocus %d \r\n",new_focus); + TRACE("[mb]->onSetFocus: focus %d -> %d \n", m_windowFocus, new_focus); clearSelection(); m_windowFocus = new_focus; - if(m_windowFocus == MB_FOCUS_BROWSER) - { - m_pcBrowser->showSelection(true); - m_pcLastRecord->showSelection(false); - m_pcLastPlay->showSelection(false); - m_pcFilter->showSelection(false); - //m_pcInfo->showSelection(false); - } - else if(m_windowFocus == MB_FOCUS_LAST_PLAY) - { - m_pcBrowser->showSelection(false); - m_pcLastRecord->showSelection(false); - m_pcLastPlay->showSelection(true); - m_pcFilter->showSelection(false); - //m_pcInfo->showSelection(false); - } - else if(m_windowFocus == MB_FOCUS_LAST_RECORD) - { - m_pcBrowser->showSelection(false); - m_pcLastRecord->showSelection(true); - m_pcLastPlay->showSelection(false); - m_pcFilter->showSelection(false); - //m_pcInfo->showSelection(false); - } - else if(m_windowFocus == MB_FOCUS_MOVIE_INFO) - { - m_pcBrowser->showSelection(false); - m_pcLastRecord->showSelection(false); - m_pcLastPlay->showSelection(false); - m_pcFilter->showSelection(false); - //m_pcInfo->showSelection(true); - } - else if(m_windowFocus == MB_FOCUS_FILTER) - { - m_pcBrowser->showSelection(false); - m_pcLastRecord->showSelection(false); - m_pcLastPlay->showSelection(false); - m_pcFilter->showSelection(true); - //m_pcInfo->showSelection(false); - } + m_pcBrowser->showSelection(false); + m_pcLastRecord->showSelection(false); + m_pcLastPlay->showSelection(false); + m_pcFilter->showSelection(false); + + if (m_windowFocus == MB_FOCUS_BROWSER) + m_pcBrowser->showSelection(true); + else if (m_windowFocus == MB_FOCUS_LAST_PLAY) + m_pcLastPlay->showSelection(true); + else if (m_windowFocus == MB_FOCUS_LAST_RECORD) + m_pcLastRecord->showSelection(true); + else if (m_windowFocus == MB_FOCUS_FILTER) + m_pcFilter->showSelection(true); + updateMovieSelection(); refreshFoot(); } void CMovieBrowser::onSetFocusNext(void) { - //TRACE("[mb]->onSetFocusNext \r\n"); + TRACE("[mb]->onSetFocusNext: gui %d\n", m_settings.gui); - if(m_settings.gui == MB_GUI_FILTER) + if (m_settings.gui == MB_GUI_FILTER) { - if(m_windowFocus == MB_FOCUS_BROWSER) - { - TRACE("[mb] MB_FOCUS_FILTER\r\n"); + if (m_windowFocus == MB_FOCUS_BROWSER) onSetFocus(MB_FOCUS_FILTER); - } else - { - TRACE("[mb] MB_FOCUS_BROWSER\r\n"); onSetFocus(MB_FOCUS_BROWSER); - } } - else if(m_settings.gui == MB_GUI_MOVIE_INFO) + else if (m_settings.gui == MB_GUI_MOVIE_INFO) { - if(m_windowFocus == MB_FOCUS_BROWSER) - { - TRACE("[mb] MB_FOCUS_MOVIE_INFO\r\n"); + if (m_windowFocus == MB_FOCUS_BROWSER) onSetFocus(MB_FOCUS_MOVIE_INFO); - m_windowFocus = MB_FOCUS_MOVIE_INFO; - } else - { - TRACE("[mb] MB_FOCUS_BROWSER\r\n"); onSetFocus(MB_FOCUS_BROWSER); - } } - else if(m_settings.gui == MB_GUI_LAST_PLAY) + else if (m_settings.gui == MB_GUI_LAST_PLAY) { - if(m_windowFocus == MB_FOCUS_MOVIE_INFO) - { + if (m_windowFocus == MB_FOCUS_MOVIE_INFO) onSetFocus(MB_FOCUS_LAST_PLAY); - } - else if(m_windowFocus == MB_FOCUS_LAST_PLAY) - { + else if (m_windowFocus == MB_FOCUS_LAST_PLAY) onSetFocus(MB_FOCUS_MOVIE_INFO); - } } - else if(m_settings.gui == MB_GUI_LAST_RECORD) + else if (m_settings.gui == MB_GUI_LAST_RECORD) { - if(m_windowFocus == MB_FOCUS_MOVIE_INFO) - { + if (m_windowFocus == MB_FOCUS_MOVIE_INFO) onSetFocus(MB_FOCUS_LAST_RECORD); - } - else if(m_windowFocus == MB_FOCUS_LAST_RECORD) - { + else if (m_windowFocus == MB_FOCUS_LAST_RECORD) onSetFocus(MB_FOCUS_MOVIE_INFO); - } } } bool CMovieBrowser::onSortMovieInfoHandleList(std::vector& handle_list, MB_INFO_ITEM sort_item, MB_DIRECTION direction) { - //TRACE("sort: %d\r\n",direction); - if(handle_list.empty()) - return (false); // nothing to sort, return immedately - if(sortBy[sort_item] == NULL) - return (false); + //TRACE("sort: %d\n",direction); + if (handle_list.empty()) + return false; + if (sortBy[sort_item] == NULL) + return false; - if(direction == MB_DIRECTION_AUTO) + if (direction == MB_DIRECTION_AUTO) { - 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_PRODDATE || - sort_item == MB_INFO_SIZE) - { + 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_PRODDATE || sort_item == MB_INFO_SIZE) sortDirection = 1; - } else - { sortDirection = 0; - } } - else if(direction == MB_DIRECTION_UP) + else if (direction == MB_DIRECTION_UP) { sortDirection = 0; } @@ -2578,7 +2247,7 @@ bool CMovieBrowser::onSortMovieInfoHandleList(std::vector& handl sortDirection = 1; } - //TRACE("sort: %d\r\n",sortDirection); + //TRACE("sort: %d\n",sortDirection); sort(handle_list.begin(), handle_list.end(), sortBy[sort_item]); return (true); @@ -2586,32 +2255,32 @@ bool CMovieBrowser::onSortMovieInfoHandleList(std::vector& handl void CMovieBrowser::updateDir(void) { - m_dir.clear(); + m_dir.clear(); #if 0 - // check if there is a movie dir and if we should use it - if(g_settings.network_nfs_moviedir[0] != 0 ) - { - std::string name = g_settings.network_nfs_moviedir; - addDir(name,&m_settings.storageDirMovieUsed); - } + // check if there is a movie dir and if we should use it + if (g_settings.network_nfs_moviedir[0] != 0) + { + std::string name = g_settings.network_nfs_moviedir; + addDir(name,&m_settings.storageDirMovieUsed); + } #endif - // check if there is a record dir and if we should use it - if(!g_settings.network_nfs_recordingdir.empty()) - { - addDir(g_settings.network_nfs_recordingdir, &m_settings.storageDirRecUsed); - cHddStat::getInstance()->statOnce(); - } + // check if there is a record dir and if we should use it + if (!g_settings.network_nfs_recordingdir.empty()) + { + addDir(g_settings.network_nfs_recordingdir, &m_settings.storageDirRecUsed); + cHddStat::getInstance()->statOnce(); + } - for(int i = 0; i < MB_MAX_DIRS; i++) - { - if(!m_settings.storageDir[i].empty()) - addDir(m_settings.storageDir[i],&m_settings.storageDirUsed[i]); - } + for (int i = 0; i < MB_MAX_DIRS; i++) + { + if (!m_settings.storageDir[i].empty()) + addDir(m_settings.storageDir[i],&m_settings.storageDirUsed[i]); + } } void CMovieBrowser::loadAllTsFileNamesFromStorage(void) { - //TRACE("[mb]->loadAllTsFileNamesFromStorage \r\n"); + //TRACE("[mb]->loadAllTsFileNamesFromStorage \n"); int i,size; m_movieSelectionHandler = NULL; @@ -2621,20 +2290,13 @@ void CMovieBrowser::loadAllTsFileNamesFromStorage(void) updateDir(); size = m_dir.size(); - for(i=0; i < size;i++) + for (i=0; i < size;i++) { - if(*m_dir[i].used == true ) + if (*m_dir[i].used == true) loadTsFileNamesFromDir(m_dir[i].name); } TRACE("[mb] Dir%d, Files:%d\n", (int)m_dirNames.size(), (int)m_vMovieInfo.size()); - /* - if(m_vMovieInfo.empty()) - { - std::string msg = g_Locale->getText(LOCALE_MOVIEBROWSER_ERROR_NO_MOVIES); - DisplayErrorMessage(msg.c_str()); - } - */ } /************************************************************************ @@ -2642,7 +2304,7 @@ Note: this function is used recursive, do not add any return within the body due ************************************************************************/ bool CMovieBrowser::loadTsFileNamesFromDir(const std::string & dirname) { - //TRACE("[mb]->loadTsFileNamesFromDir %s\r\n",dirname.c_str()); + //TRACE("[mb]->loadTsFileNamesFromDir %s\n",dirname.c_str()); static int recursive_counter = 0; // recursive counter to be used to avoid hanging bool result = false; @@ -2650,18 +2312,18 @@ bool CMovieBrowser::loadTsFileNamesFromDir(const std::string & dirname) if (recursive_counter > 10) { - TRACE("[mb]loadTsFileNamesFromDir: return->recoursive error\r\n"); + TRACE("[mb]loadTsFileNamesFromDir: return->recoursive error\n"); return (false); // do not go deeper than 10 directories } /* check if directory was already searched once */ int size = m_dirNames.size(); - for(int i = 0; i < size; i++) + for (int i = 0; i < size; i++) { - if(strcmp(m_dirNames[i].c_str(),dirname.c_str()) == 0) + if (strcmp(m_dirNames[i].c_str(),dirname.c_str()) == 0) { // string is identical to previous one - TRACE("[mb]Dir already in list: %s\r\n",dirname.c_str()); + TRACE("[mb]Dir already in list: %s\n",dirname.c_str()); return (false); } } @@ -2669,43 +2331,38 @@ bool CMovieBrowser::loadTsFileNamesFromDir(const std::string & dirname) recursive_counter++; CFileList flist; - if(readDir(dirname, &flist) == true) + if (readDir(dirname, &flist) == true) { MI_MOVIE_INFO movieInfo; - for(unsigned int i = 0; i < flist.size(); i++) + for (unsigned int i = 0; i < flist.size(); i++) { - if( S_ISDIR(flist[i].Mode)) + if (S_ISDIR(flist[i].Mode)) { flist[i].Name += '/'; - //TRACE("[mb] Dir: '%s'\r\n",movieInfo.file.Name.c_str()); + //TRACE("[mb] Dir: '%s'\n",movieInfo.file.Name.c_str()); loadTsFileNamesFromDir(flist[i].Name); } else { int test=flist[i].getFileName().find(".ts",flist[i].getFileName().length()-3); - if( test == -1) + if (test == -1) { - //TRACE("[mb] other file: '%s'\r\n",movieInfo.file.Name.c_str()); + //TRACE("[mb] other file: '%s'\n",movieInfo.file.Name.c_str()); } else { movieInfo.clear(); movieInfo.file.Name = flist[i].Name; - if(m_movieInfo.loadMovieInfo(&movieInfo)) { //FIXME atm we show only ts+xml (records) here + if (m_movieInfo.loadMovieInfo(&movieInfo)) { //FIXME atm we show only ts+xml (records) here movieInfo.file.Mode = flist[i].Mode; - //movieInfo.file.Size = flist[i].Size; - movieInfo.file.Size = get_full_len((char *)flist[i].Name.c_str()); + movieInfo.file.Size = flist[i].Size; movieInfo.file.Time = flist[i].Time; - //TRACE(" N:%s,s:%d,t:%d\r\n",movieInfo.file.getFileName().c_str(),movieInfo.file.Size,movieInfo.file.Time); - //TRACE(" N:%s,s:%d\r\n",movieInfo.file.getFileName().c_str(),movieInfo.file.Size>>20); - //TRACE(" s:%d\r\n",movieInfo.file.getFileName().c_str(),movieInfo.file.Size); - //TRACE(" s:%llu\r\n",movieInfo.file.getFileName().c_str(),movieInfo.file.Size); - if(file_found_in_dir == false) + if (file_found_in_dir == false) { // first file in directory found, add directory to list m_dirNames.push_back(dirname); file_found_in_dir = true; - //TRACE("[mb] new dir: :%s\r\n",dirname); + //TRACE("[mb] new dir: :%s\n",dirname); } movieInfo.dirItNr = m_dirNames.size()-1; m_vMovieInfo.push_back(movieInfo); @@ -2721,28 +2378,9 @@ bool CMovieBrowser::loadTsFileNamesFromDir(const std::string & dirname) } bool CMovieBrowser::readDir(const std::string & dirname, CFileList* flist) -{ - bool result = false; - if (strncmp(dirname.c_str(), VLC_URI, strlen(VLC_URI)) == 0) - { - result = readDir_vlc(dirname, flist); - } - else - { - result = readDir_std(dirname, flist); - } - return(result); -} - -bool CMovieBrowser::readDir_vlc(const std::string & /*dirname*/, CFileList* /*flist*/) -{ - return false; -} - -bool CMovieBrowser::readDir_std(const std::string & dirname, CFileList* flist) { bool result = true; - //TRACE("readDir_std %s\n",dirname.c_str()); + //TRACE("readDir_std %s\n",dirname.c_str()); stat_struct statbuf; dirent_struct **namelist; int n; @@ -2754,15 +2392,15 @@ bool CMovieBrowser::readDir_std(const std::string & dirname, CFileList* flist) return false; } CFile file; - for(int i = 0; i < n;i++) + for (int i = 0; i < n;i++) { - if(namelist[i]->d_name[0] != '.') + if (namelist[i]->d_name[0] != '.') { file.Name = dirname; file.Name += namelist[i]->d_name; // printf("file.Name: '%s', getFileName: '%s' getPath: '%s'\n",file.Name.c_str(),file.getFileName().c_str(),file.getPath().c_str()); - if(my_stat((file.Name).c_str(),&statbuf) != 0) + if (my_stat((file.Name).c_str(),&statbuf) != 0) perror("stat error"); else { @@ -2781,46 +2419,25 @@ bool CMovieBrowser::readDir_std(const std::string & dirname, CFileList* flist) } bool CMovieBrowser::delFile(CFile& file) -{ - bool result = false; - //only std supported yet - if(1) - { - result = delFile_std(file); - } - else - { - result = delFile_vlc(file); - } - return(result); -} - -bool CMovieBrowser::delFile_vlc(CFile& /*file*/) -{ - bool result = false; - return(result); -} - -bool CMovieBrowser::delFile_std(CFile& file) { bool result = true; int err = unlink(file.Name.c_str()); TRACE(" delete file: %s\r\n",file.Name.c_str()); - if(err) - result = false; + if (err) + result = false; return(result); } void CMovieBrowser::updateMovieSelection(void) { - //TRACE("[mb]->updateMovieSelection %d\r\n",m_windowFocus); + //TRACE("[mb]->updateMovieSelection %d\n",m_windowFocus); if (m_vMovieInfo.empty()) return; bool new_selection = false; unsigned int old_movie_selection; - if(m_windowFocus == MB_FOCUS_BROWSER) + if (m_windowFocus == MB_FOCUS_BROWSER) { - if(m_vHandleBrowserList.empty()) + if (m_vHandleBrowserList.empty()) { // There are no elements in the Filebrowser, clear all handles m_currentBrowserSelection = 0; @@ -2831,17 +2448,17 @@ void CMovieBrowser::updateMovieSelection(void) { old_movie_selection = m_currentBrowserSelection; m_currentBrowserSelection = m_pcBrowser->getSelectedLine(); - //TRACE(" sel1:%d\r\n",m_currentBrowserSelection); - if(m_currentBrowserSelection != old_movie_selection) + //TRACE(" sel1:%d\n",m_currentBrowserSelection); + if (m_currentBrowserSelection != old_movie_selection) new_selection = true; - if(m_currentBrowserSelection < m_vHandleBrowserList.size()) + if (m_currentBrowserSelection < m_vHandleBrowserList.size()) m_movieSelectionHandler = m_vHandleBrowserList[m_currentBrowserSelection]; } } - else if(m_windowFocus == MB_FOCUS_LAST_PLAY) + else if (m_windowFocus == MB_FOCUS_LAST_PLAY) { - if(m_vHandlePlayList.empty()) + if (m_vHandlePlayList.empty()) { // There are no elements in the Filebrowser, clear all handles m_currentPlaySelection = 0; @@ -2852,17 +2469,17 @@ void CMovieBrowser::updateMovieSelection(void) { old_movie_selection = m_currentPlaySelection; m_currentPlaySelection = m_pcLastPlay->getSelectedLine(); - //TRACE(" sel2:%d\r\n",m_currentPlaySelection); - if(m_currentPlaySelection != old_movie_selection) + //TRACE(" sel2:%d\n",m_currentPlaySelection); + if (m_currentPlaySelection != old_movie_selection) new_selection = true; - if(m_currentPlaySelection < m_vHandlePlayList.size()) + if (m_currentPlaySelection < m_vHandlePlayList.size()) m_movieSelectionHandler = m_vHandlePlayList[m_currentPlaySelection]; } } - else if(m_windowFocus == MB_FOCUS_LAST_RECORD) + else if (m_windowFocus == MB_FOCUS_LAST_RECORD) { - if(m_vHandleRecordList.empty()) + if (m_vHandleRecordList.empty()) { // There are no elements in the Filebrowser, clear all handles m_currentRecordSelection = 0; @@ -2873,50 +2490,50 @@ void CMovieBrowser::updateMovieSelection(void) { old_movie_selection = m_currentRecordSelection; m_currentRecordSelection = m_pcLastRecord->getSelectedLine(); - //TRACE(" sel3:%d\r\n",m_currentRecordSelection); - if(m_currentRecordSelection != old_movie_selection) + //TRACE(" sel3:%d\n",m_currentRecordSelection); + if (m_currentRecordSelection != old_movie_selection) new_selection = true; - if(m_currentRecordSelection < m_vHandleRecordList.size()) + if (m_currentRecordSelection < m_vHandleRecordList.size()) m_movieSelectionHandler = m_vHandleRecordList[m_currentRecordSelection]; } } - if(new_selection == true) + if (new_selection == true) { - //TRACE("new\r\n"); + //TRACE("new\n"); info_hdd_level(); refreshMovieInfo(); refreshLCD(); } - //TRACE("\r\n"); + //TRACE("\n"); } void CMovieBrowser::updateFilterSelection(void) { - //TRACE("[mb]->updateFilterSelection \r\n"); - if(m_FilterLines.lineArray[0].empty()) return; + //TRACE("[mb]->updateFilterSelection \n"); + if (m_FilterLines.lineArray[0].empty()) return; bool result = true; int selected_line = m_pcFilter->getSelectedLine(); - if(selected_line > 0) + if (selected_line > 0) selected_line--; - if(m_settings.filter.item == MB_INFO_FILEPATH) + if (m_settings.filter.item == MB_INFO_FILEPATH) { m_settings.filter.optionString = m_FilterLines.lineArray[0][selected_line+1]; m_settings.filter.optionVar = selected_line; } - else if(m_settings.filter.item == MB_INFO_INFO1) + else if (m_settings.filter.item == MB_INFO_INFO1) { m_settings.filter.optionString = m_FilterLines.lineArray[0][selected_line+1]; } - else if(m_settings.filter.item == MB_INFO_MAJOR_GENRE) + else if (m_settings.filter.item == MB_INFO_MAJOR_GENRE) { m_settings.filter.optionString = g_Locale->getText(GENRE_ALL[selected_line].value); m_settings.filter.optionVar = GENRE_ALL[selected_line].key; } - else if(m_settings.filter.item == MB_INFO_SERIE) + else if (m_settings.filter.item == MB_INFO_SERIE) { m_settings.filter.optionString = m_FilterLines.lineArray[0][selected_line+1]; } @@ -2924,7 +2541,7 @@ void CMovieBrowser::updateFilterSelection(void) { result = false; } - if(result == true) + if (result == true) { refreshBrowserList(); refreshLastPlayList(); @@ -2935,67 +2552,51 @@ void CMovieBrowser::updateFilterSelection(void) bool CMovieBrowser::addDir(std::string& dirname, int* used) { - if(dirname.empty()) return false; - if(dirname == "/") return false; + if (dirname.empty()) return false; + if (dirname == "/") return false; - MB_DIR newdir; - newdir.name = dirname; + MB_DIR newdir; + newdir.name = dirname; - if(newdir.name.rfind('/') != newdir.name.length()-1 || - newdir.name.length() == 0 || - newdir.name == VLC_URI) + if (newdir.name.rfind('/') != newdir.name.length()-1 || newdir.name.length() == 0) + newdir.name += '/'; + + int size = m_dir.size(); + for (int i = 0; i < size; i++) { - newdir.name += '/'; - } - - int size = m_dir.size(); - for(int i = 0; i < size; i++) - { - if(strcmp(m_dir[i].name.c_str(),newdir.name.c_str()) == 0) + if (strcmp(m_dir[i].name.c_str(),newdir.name.c_str()) == 0) { // string is identical to previous one - TRACE("[mb] Dir already in list: %s\r\n",newdir.name.c_str()); + TRACE("[mb] Dir already in list: %s\n",newdir.name.c_str()); return (false); } } - TRACE("[mb] new Dir: %s\r\n",newdir.name.c_str()); - newdir.used = used; - m_dir.push_back(newdir); - if(*used == true) - { - m_file_info_stale = true; // we got a new Dir, search again for all movies next time - m_seriename_stale = true; - } + TRACE("[mb] new Dir: %s\n",newdir.name.c_str()); + newdir.used = used; + m_dir.push_back(newdir); + if (*used == true) + { + m_file_info_stale = true; // we got a new Dir, search again for all movies next time + m_seriename_stale = true; + } return (true); } void CMovieBrowser::loadMovies(bool doRefresh) { - time_t time_start = time(NULL); - clock_t clock_start = clock()/10000; // CLOCKS_PER_SECOND - //clock_t clock_prev = clock_start; - clock_t clock_act = clock_start; - TRACE("[mb] loadMovies: \n"); - CHintBox loadBox((show_mode == MB_SHOW_YT)?LOCALE_MOVIEPLAYER_YTPLAYBACK:LOCALE_MOVIEBROWSER_HEAD,g_Locale->getText(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES)); + CHintBox loadBox((show_mode == MB_SHOW_YT) ? LOCALE_MOVIEPLAYER_YTPLAYBACK : LOCALE_MOVIEBROWSER_HEAD, g_Locale->getText(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES)); loadBox.paint(); -//clock_act = clock()/10000;TRACE("[mb] *1: time %9ld clock %6ld dclock %6ld*\n",(long)time(NULL),clock_act,clock_act - clock_prev);clock_prev = clock_act; if (show_mode == MB_SHOW_YT) { loadYTitles(m_settings.ytmode, m_settings.ytsearch, m_settings.ytvid); } else { loadAllTsFileNamesFromStorage(); // P1 - //clock_act = clock()/10000;TRACE("[mb] *2: time %9ld clock %6ld dclock %6ld*\n",(long)time(NULL),clock_act,clock_act - clock_prev);clock_prev = clock_act; - //loadAllMovieInfo(); // P1 - //clock_act = clock()/10000;TRACE("[mb] *3: time %9ld clock %6ld dclock %6ld*\n",(long)time(NULL),clock_act,clock_act - clock_prev);clock_prev = clock_act; - m_seriename_stale = true; // we reloded the movie info, so make sure the other list are updated later on as well + m_seriename_stale = true; // we reloded the movie info, so make sure the other list are updated later on as well updateSerienames(); - //clock_act = clock()/10000;TRACE("[mb] *4: time %9ld clock %6ld dclock %6ld*\n",(long)time(NULL),clock_act,clock_act - clock_prev);clock_prev = clock_act; - if(m_settings.serie_auto_create == 1) - { + if (m_settings.serie_auto_create == 1) autoFindSerie(); - } } m_file_info_stale = false; @@ -3003,28 +2604,18 @@ void CMovieBrowser::loadMovies(bool doRefresh) if (doRefresh) { - //clock_act = clock()/10000;TRACE("[mb] *5: time %9ld clock %6ld dclock %6ld*\n",(long)time(NULL),clock_act,clock_act - clock_prev);clock_prev = clock_act; refreshBrowserList(); - //clock_act = clock()/10000;TRACE("[mb] *6: time %9ld clock %6ld dclock %6ld*\n",(long)time(NULL),clock_act,clock_act - clock_prev);clock_prev = clock_act; refreshLastPlayList(); refreshLastRecordList(); refreshFilterList(); - // Suppressed Duplicate call to refresh MovieInfo() at start Moviebrowser - //refreshMovieInfo(); // is done by refreshBrowserList if needed - //clock_act = clock()/10000;TRACE("[mb] *7: time %9ld clock %6ld dclock %6ld*\n",(long)time(NULL),clock_act,clock_act - clock_prev);clock_prev = clock_act; } - - TRACE("[mb] ***Total:time %ld clock %ld***\n",(time(NULL)-time_start), clock_act-clock_start); } void CMovieBrowser::loadAllMovieInfo(void) { - //TRACE("[mb]->loadAllMovieInfo \r\n"); - - for(unsigned int i=0; i < m_vMovieInfo.size();i++) - { - m_movieInfo.loadMovieInfo( &(m_vMovieInfo[i])); - } + //TRACE("[mb]->loadAllMovieInfo \n"); + for (unsigned int i=0; i < m_vMovieInfo.size();i++) + m_movieInfo.loadMovieInfo(&(m_vMovieInfo[i])); } void CMovieBrowser::showHelp(void) @@ -3036,327 +2627,298 @@ void CMovieBrowser::showHelp(void) #define MAX_STRING 30 int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info) { - /********************************************************************/ - /** MovieInfo menu ******************************************************/ + /********************************************************************/ + /** MovieInfo menu ******************************************************/ - /********************************************************************/ - /** bookmark ******************************************************/ - CStringInputSMS* pBookNameInput[MAX_NUMBER_OF_BOOKMARK_ITEMS]; - CIntInput* pBookPosIntInput[MAX_NUMBER_OF_BOOKMARK_ITEMS]; - CIntInput* pBookTypeIntInput[MAX_NUMBER_OF_BOOKMARK_ITEMS]; - CMenuWidget* pBookItemMenu[MAX_NUMBER_OF_BOOKMARK_ITEMS]; + /********************************************************************/ + /** bookmark ******************************************************/ - CIntInput bookStartIntInput (LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.start, 5, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); - CIntInput bookLastIntInput (LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.lastPlayStop, 5, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); - CIntInput bookEndIntInput (LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.end, 5, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); + CIntInput bookStartIntInput(LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.start, 5, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); + CIntInput bookLastIntInput(LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.lastPlayStop, 5, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); + CIntInput bookEndIntInput(LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.end, 5, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); - CMenuWidget bookmarkMenu (LOCALE_MOVIEBROWSER_HEAD , NEUTRINO_ICON_MOVIEPLAYER); + CMenuWidget bookmarkMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - bookmarkMenu.addIntroItems(LOCALE_MOVIEBROWSER_BOOK_HEAD); - bookmarkMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_CLEAR_ALL, true, NULL, this, "book_clear_all",CRCInput::RC_blue)); - bookmarkMenu.addItem(GenericMenuSeparatorLine); - bookmarkMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_MOVIESTART, true, bookStartIntInput.getValue(), &bookStartIntInput)); - bookmarkMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_MOVIEEND, true, bookEndIntInput.getValue(), &bookLastIntInput)); - bookmarkMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_LASTMOVIESTOP, true, bookLastIntInput.getValue(), &bookEndIntInput)); - bookmarkMenu.addItem(GenericMenuSeparatorLine); + bookmarkMenu.addIntroItems(LOCALE_MOVIEBROWSER_BOOK_HEAD); + bookmarkMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_CLEAR_ALL, true, NULL, this, "book_clear_all",CRCInput::RC_blue)); + bookmarkMenu.addItem(GenericMenuSeparatorLine); + bookmarkMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_MOVIESTART, true, bookStartIntInput.getValue(), &bookStartIntInput)); + bookmarkMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_MOVIEEND, true, bookEndIntInput.getValue(), &bookLastIntInput)); + bookmarkMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_LASTMOVIESTOP, true, bookLastIntInput.getValue(), &bookEndIntInput)); + bookmarkMenu.addItem(GenericMenuSeparatorLine); - for(int li =0 ; li < MI_MOVIE_BOOK_USER_MAX && li < MAX_NUMBER_OF_BOOKMARK_ITEMS; li++ ) - { - pBookNameInput[li] = new CStringInputSMS (LOCALE_MOVIEBROWSER_EDIT_BOOK, &movie_info->bookmarks.user[li].name, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_NAME_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_NAME_INFO2, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - pBookPosIntInput[li] = new CIntInput (LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.user[li].pos, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); - pBookTypeIntInput[li] = new CIntInput (LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.user[li].length, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_TYPE_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_TYPE_INFO2); + for (int li =0 ; li < MI_MOVIE_BOOK_USER_MAX && li < MAX_NUMBER_OF_BOOKMARK_ITEMS; li++) + { + CStringInputSMS *pBookNameInput = new CStringInputSMS(LOCALE_MOVIEBROWSER_EDIT_BOOK, &movie_info->bookmarks.user[li].name, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_NAME_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_NAME_INFO2, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + CIntInput *pBookPosIntInput = new CIntInput(LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.user[li].pos, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_POS_INFO2); + CIntInput *pBookTypeIntInput = new CIntInput(LOCALE_MOVIEBROWSER_EDIT_BOOK, (int *)&movie_info->bookmarks.user[li].length, 20, LOCALE_MOVIEBROWSER_EDIT_BOOK_TYPE_INFO1, LOCALE_MOVIEBROWSER_EDIT_BOOK_TYPE_INFO2); - pBookItemMenu[li] = new CMenuWidget(LOCALE_MOVIEBROWSER_BOOK_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - pBookItemMenu[li]->addItem(GenericMenuSeparator); - pBookItemMenu[li]->addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_NAME, true, movie_info->bookmarks.user[li].name,pBookNameInput[li])); - pBookItemMenu[li]->addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_POSITION, true, pBookPosIntInput[li]->getValue(), pBookPosIntInput[li])); - pBookItemMenu[li]->addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_TYPE, true, pBookTypeIntInput[li]->getValue(),pBookTypeIntInput[li])); + CMenuWidget* pBookItemMenu = new CMenuWidget(LOCALE_MOVIEBROWSER_BOOK_HEAD, NEUTRINO_ICON_MOVIEPLAYER); + pBookItemMenu->addItem(GenericMenuSeparator); + pBookItemMenu->addItem(new CMenuDForwarder(LOCALE_MOVIEBROWSER_BOOK_NAME, true, movie_info->bookmarks.user[li].name, pBookNameInput)); + pBookItemMenu->addItem(new CMenuDForwarder(LOCALE_MOVIEBROWSER_BOOK_POSITION, true, pBookPosIntInput->getValue(), pBookPosIntInput)); + pBookItemMenu->addItem(new CMenuDForwarder(LOCALE_MOVIEBROWSER_BOOK_TYPE, true, pBookTypeIntInput->getValue(), pBookTypeIntInput)); - bookmarkMenu.addItem( new CMenuForwarder (movie_info->bookmarks.user[li].name.c_str(), true, pBookPosIntInput[li]->getValue(),pBookItemMenu[li])); - } + bookmarkMenu.addItem(new CMenuDForwarder(movie_info->bookmarks.user[li].name.c_str(), true, pBookPosIntInput->getValue(), pBookItemMenu)); + } -/********************************************************************/ -/** serie******************************************************/ - CStringInputSMS serieUserInput(LOCALE_MOVIEBROWSER_EDIT_SERIE, &movie_info->serieName, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + /********************************************************************/ + /** serie******************************************************/ + CStringInputSMS serieUserInput(LOCALE_MOVIEBROWSER_EDIT_SERIE, &movie_info->serieName, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - CMenuWidget serieMenu (LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - serieMenu.addIntroItems(LOCALE_MOVIEBROWSER_SERIE_HEAD); - serieMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_SERIE_NAME, true, movie_info->serieName,&serieUserInput)); - serieMenu.addItem(GenericMenuSeparatorLine); - for(unsigned int li=0; li < m_vHandleSerienames.size(); li++) - serieMenu.addItem( new CMenuSelector(m_vHandleSerienames[li]->serieName.c_str(), true, movie_info->serieName)); + CMenuWidget serieMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); + serieMenu.addIntroItems(LOCALE_MOVIEBROWSER_SERIE_HEAD); + serieMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_SERIE_NAME, true, movie_info->serieName,&serieUserInput)); + serieMenu.addItem(GenericMenuSeparatorLine); + for (unsigned int li = 0; li < m_vHandleSerienames.size(); li++) + serieMenu.addItem(new CMenuSelector(m_vHandleSerienames[li]->serieName.c_str(), true, movie_info->serieName)); - /********************************************************************/ - /** update movie info ******************************************************/ - for(unsigned int i=0; idirItNr].c_str(),BUFFER_SIZE-1); snprintf(size,BUFFER_SIZE,"%5" PRIu64 "",movie_info->file.Size>>20); - } - CStringInputSMS titelUserInput(LOCALE_MOVIEBROWSER_INFO_TITLE, &movie_info->epgTitle, (movie_info->epgTitle.empty() || (movie_info->epgTitle.size() < MAX_STRING)) ? MAX_STRING:movie_info->epgTitle.size(), NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - //CStringInputSMS titelUserInput(LOCALE_MOVIEBROWSER_INFO_TITLE, &movie_info->epgTitle, MAX_STRING, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - CStringInputSMS channelUserInput(LOCALE_MOVIEBROWSER_INFO_CHANNEL, &movie_info->epgChannel, MAX_STRING, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - CStringInputSMS epgUserInput(LOCALE_MOVIEBROWSER_INFO_INFO1, &movie_info->epgInfo1, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - CDateInput dateUserDateInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movie_info->dateOfLastPlay, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CDateInput recUserDateInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movie_info->file.Time, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CIntInput lengthUserIntInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, (int *)&movie_info->length, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CStringInputSMS countryUserInput(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, &movie_info->productionCountry, 11, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "ABCDEFGHIJKLMNOPQRSTUVWXYZ "); - CIntInput yearUserIntInput(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, (int *)&movie_info->productionDate, 4, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); + CStringInputSMS titelUserInput(LOCALE_MOVIEBROWSER_INFO_TITLE, &movie_info->epgTitle, (movie_info->epgTitle.empty() || (movie_info->epgTitle.size() < MAX_STRING)) ? MAX_STRING:movie_info->epgTitle.size(), NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + CStringInputSMS channelUserInput(LOCALE_MOVIEBROWSER_INFO_CHANNEL, &movie_info->epgChannel, MAX_STRING, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + CStringInputSMS epgUserInput(LOCALE_MOVIEBROWSER_INFO_INFO1, &movie_info->epgInfo1, 20, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); + CDateInput dateUserDateInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movie_info->dateOfLastPlay, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); + CDateInput recUserDateInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movie_info->file.Time, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); + CIntInput lengthUserIntInput(LOCALE_MOVIEBROWSER_INFO_LENGTH, (int *)&movie_info->length, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); + CStringInputSMS countryUserInput(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, &movie_info->productionCountry, 11, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "ABCDEFGHIJKLMNOPQRSTUVWXYZ "); + CIntInput yearUserIntInput(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, (int *)&movie_info->productionDate, 4, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CMenuWidget movieInfoMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER /*,m_cBoxFrame.iWidth*/); //TODO: check + CMenuWidget movieInfoMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - movieInfoMenu.addIntroItems(LOCALE_MOVIEBROWSER_INFO_HEAD); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_SAVE, true, NULL, this, "save_movie_info", CRCInput::RC_red)); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_HEAD_UPDATE, true, NULL, &movieInfoMenuUpdate, NULL, CRCInput::RC_green)); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_HEAD, true, NULL, &bookmarkMenu, NULL, CRCInput::RC_blue)); - movieInfoMenu.addItem(GenericMenuSeparatorLine); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_TITLE, true, movie_info->epgTitle, &titelUserInput,NULL, CRCInput::RC_1)); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_SERIE, true, movie_info->serieName, &serieMenu,NULL, CRCInput::RC_2)); - 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)); - movieInfoMenu.addItem(GenericMenuSeparatorLine); - 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 CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, true, yearUserIntInput.getValue(), &yearUserIntInput,NULL, CRCInput::RC_7)); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, true, movie_info->productionCountry, &countryUserInput,NULL, CRCInput::RC_8)); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_LENGTH, true, lengthUserIntInput.getValue(), &lengthUserIntInput,NULL, CRCInput::RC_9)); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_CHANNEL, true, movie_info->epgChannel, &channelUserInput,NULL, CRCInput::RC_0));//LOCALE_TIMERLIST_CHANNEL - movieInfoMenu.addItem(GenericMenuSeparatorLine); - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PATH, false, dirItNr)); //LOCALE_TIMERLIST_RECORDING_DIR - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PREVPLAYDATE, false, dateUserDateInput.getValue()));//LOCALE_FLASHUPDATE_CURRENTVERSIONDATE - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_RECORDDATE, false, recUserDateInput.getValue()));//LOCALE_FLASHUPDATE_CURRENTVERSIONDATE - movieInfoMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_SIZE, false, size, NULL)); + movieInfoMenu.addIntroItems(LOCALE_MOVIEBROWSER_INFO_HEAD); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_SAVE, true, NULL, this, "save_movie_info", CRCInput::RC_red)); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_HEAD_UPDATE, true, NULL, &movieInfoMenuUpdate, NULL, CRCInput::RC_green)); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_HEAD, true, NULL, &bookmarkMenu, NULL, CRCInput::RC_blue)); + movieInfoMenu.addItem(GenericMenuSeparatorLine); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_TITLE, true, movie_info->epgTitle, &titelUserInput,NULL, CRCInput::RC_1)); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_SERIE, true, movie_info->serieName, &serieMenu,NULL, CRCInput::RC_2)); + 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(GenericMenuSeparatorLine); + 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 CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, true, yearUserIntInput.getValue(), &yearUserIntInput,NULL, CRCInput::RC_7)); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, true, movie_info->productionCountry, &countryUserInput,NULL, CRCInput::RC_8)); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_LENGTH, true, lengthUserIntInput.getValue(), &lengthUserIntInput,NULL, CRCInput::RC_9)); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_CHANNEL, true, movie_info->epgChannel, &channelUserInput,NULL, CRCInput::RC_0));//LOCALE_TIMERLIST_CHANNEL + movieInfoMenu.addItem(GenericMenuSeparatorLine); + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PATH, false, dirItNr)); //LOCALE_TIMERLIST_RECORDING_DIR + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PREVPLAYDATE, false, dateUserDateInput.getValue()));//LOCALE_FLASHUPDATE_CURRENTVERSIONDATE + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_RECORDDATE, false, recUserDateInput.getValue()));//LOCALE_FLASHUPDATE_CURRENTVERSIONDATE + movieInfoMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_SIZE, false, size, NULL)); - int res = movieInfoMenu.exec(NULL,""); + int res = movieInfoMenu.exec(NULL,""); - for(int li =0 ; li < MI_MOVIE_BOOK_USER_MAX && li < MAX_NUMBER_OF_BOOKMARK_ITEMS; li++ ) - { - delete pBookNameInput[li] ; - delete pBookPosIntInput[li] ; - delete pBookTypeIntInput[li]; - delete pBookItemMenu[li]; - } - return res; + return res; } -extern int pinghost (const std::string &hostname, std::string *ip = NULL); bool CMovieBrowser::showMenu(MI_MOVIE_INFO* /*movie_info*/) { - /* first clear screen */ - m_pcWindow->paintBackground(); - int i; -/********************************************************************/ -/** directory menu ******************************************************/ - CDirMenu dirMenu(&m_dir); + /* first clear screen */ + framebuffer->paintBackground(); + int i; + /********************************************************************/ + /** directory menu ******************************************************/ + CDirMenu dirMenu(&m_dir); -/********************************************************************/ -/** options menu **************************************************/ + /********************************************************************/ + /** options menu **************************************************/ -/********************************************************************/ -/** parental lock **************************************************/ - CMenuWidget parentalMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - parentalMenu.addIntroItems(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_HEAD); - parentalMenu.addItem( new CMenuOptionChooser(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_ACTIVATED, (int*)(&m_parentalLock), MESSAGEBOX_PARENTAL_LOCK_OPTIONS, MESSAGEBOX_PARENTAL_LOCK_OPTIONS_COUNT, true )); - parentalMenu.addItem( new CMenuOptionChooser(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_RATE_HEAD, (int*)(&m_settings.parentalLockAge), MESSAGEBOX_PARENTAL_LOCKAGE_OPTIONS, MESSAGEBOX_PARENTAL_LOCKAGE_OPTION_COUNT, true )); + /********************************************************************/ + /** parental lock **************************************************/ + CMenuWidget parentalMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); + parentalMenu.addIntroItems(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_HEAD); + parentalMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_ACTIVATED, (int*)(&m_parentalLock), MESSAGEBOX_PARENTAL_LOCK_OPTIONS, MESSAGEBOX_PARENTAL_LOCK_OPTIONS_COUNT, true)); + parentalMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_RATE_HEAD, (int*)(&m_settings.parentalLockAge), MESSAGEBOX_PARENTAL_LOCKAGE_OPTIONS, MESSAGEBOX_PARENTAL_LOCKAGE_OPTION_COUNT, true)); -/********************************************************************/ -/** optionsVerzeichnisse **************************************************/ - CMenuWidget optionsMenuDir(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - optionsMenuDir.addIntroItems(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD); - optionsMenuDir.addItem( new CMenuOptionChooser(LOCALE_MOVIEBROWSER_USE_REC_DIR, (int*)(&m_settings.storageDirRecUsed), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true )); - optionsMenuDir.addItem( new CMenuForwarder( LOCALE_MOVIEBROWSER_DIR , false ,g_settings.network_nfs_recordingdir)); + /********************************************************************/ + /** optionsVerzeichnisse **************************************************/ + CMenuWidget optionsMenuDir(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); + optionsMenuDir.addIntroItems(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD); + optionsMenuDir.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_USE_REC_DIR, (int*)(&m_settings.storageDirRecUsed), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true)); + optionsMenuDir.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_DIR, false, g_settings.network_nfs_recordingdir)); - optionsMenuDir.addItem( new CMenuOptionChooser(LOCALE_MOVIEBROWSER_USE_MOVIE_DIR, (int*)(&m_settings.storageDirMovieUsed), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true )); - optionsMenuDir.addItem( new CMenuForwarder (LOCALE_MOVIEBROWSER_DIR, false , g_settings.network_nfs_moviedir)); - optionsMenuDir.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_MOVIEBROWSER_DIR_HEAD)); + optionsMenuDir.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_USE_MOVIE_DIR, (int*)(&m_settings.storageDirMovieUsed), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true)); + optionsMenuDir.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_DIR, false, g_settings.network_nfs_moviedir)); + optionsMenuDir.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_MOVIEBROWSER_DIR_HEAD)); - CFileChooser* dirInput[MB_MAX_DIRS]; - CMenuOptionChooser* chooser[MB_MAX_DIRS]; - COnOffNotifier* notifier[MB_MAX_DIRS]; - CMenuForwarder* forwarder[MB_MAX_DIRS]; - for(i=0; iaddItem(forwarder[i]); - chooser[i] = new CMenuOptionChooser(LOCALE_MOVIEBROWSER_USE_DIR , &m_settings.storageDirUsed[i] , MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,notifier[i]); - optionsMenuDir.addItem(chooser[i] ); - optionsMenuDir.addItem(forwarder[i] ); - if(i != (MB_MAX_DIRS - 1)) - optionsMenuDir.addItem(GenericMenuSeparator); - } + COnOffNotifier* notifier[MB_MAX_DIRS]; + for (i = 0; i < MB_MAX_DIRS ; i++) + { + CFileChooser *dirInput = new CFileChooser(&m_settings.storageDir[i]); + CMenuForwarder *forwarder = new CMenuDForwarder(LOCALE_MOVIEBROWSER_DIR, m_settings.storageDirUsed[i], m_settings.storageDir[i], dirInput); + notifier[i] = new COnOffNotifier(); + notifier[i]->addItem(forwarder); + CMenuOptionChooser *chooser = new CMenuOptionChooser(LOCALE_MOVIEBROWSER_USE_DIR, &m_settings.storageDirUsed[i], MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,notifier[i]); + optionsMenuDir.addItem(chooser); + optionsMenuDir.addItem(forwarder); + if (i != (MB_MAX_DIRS - 1)) + optionsMenuDir.addItem(GenericMenuSeparator); + } -/********************************************************************/ -/** optionsMenuBrowser **************************************************/ - CIntInput playMaxUserIntInput(LOCALE_MOVIEBROWSER_LAST_PLAY_MAX_ITEMS, (int *)&m_settings.lastPlayMaxItems, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CIntInput recMaxUserIntInput(LOCALE_MOVIEBROWSER_LAST_RECORD_MAX_ITEMS, (int *)&m_settings.lastRecordMaxItems, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CIntInput browserFrameUserIntInput(LOCALE_MOVIEBROWSER_BROWSER_FRAME_HIGH, (int *)&m_settings.browserFrameHeight, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CIntInput browserRowNrIntInput(LOCALE_MOVIEBROWSER_BROWSER_ROW_NR, (int *)&m_settings.browserRowNr, 1, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - CIntInput* browserRowWidthIntInput[MB_MAX_ROWS]; - for(i=0; igetValue(), browserRowWidthIntInput[i])); - if(igetValue(), browserRowWidthIntInput)); + if (i < MB_MAX_ROWS-1) + optionsMenuBrowser.addItem(GenericMenuSeparator); + } -/********************************************************************/ -/** options **************************************************/ + /********************************************************************/ + /** options **************************************************/ - CMenuWidget optionsMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); + CMenuWidget optionsMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - optionsMenu.addIntroItems(LOCALE_EPGPLUS_OPTIONS); - optionsMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_LOAD_DEFAULT, true, NULL, this, "loaddefault", CRCInput::RC_blue)); - optionsMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_OPTION_BROWSER, true, NULL, &optionsMenuBrowser,NULL, CRCInput::RC_green)); - optionsMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, &optionsMenuDir,NULL, CRCInput::RC_yellow)); - if(m_parentalLock != MB_PARENTAL_LOCK_OFF) - optionsMenu.addItem( new CLockedMenuForwarder(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_HEAD, g_settings.parentallock_pincode, true, true, NULL, &parentalMenu,NULL,CRCInput::RC_red)); - else - optionsMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_HEAD, true, NULL, &parentalMenu,NULL,CRCInput::RC_red)); - optionsMenu.addItem(GenericMenuSeparatorLine); - optionsMenu.addItem( new CMenuOptionChooser(LOCALE_MOVIEBROWSER_RELOAD_AT_START, (int*)(&m_settings.reload), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true )); - optionsMenu.addItem( new CMenuOptionChooser(LOCALE_MOVIEBROWSER_REMOUNT_AT_START, (int*)(&m_settings.remount), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true )); - optionsMenu.addItem(GenericMenuSeparatorLine); - optionsMenu.addItem( new CMenuOptionChooser(LOCALE_MOVIEBROWSER_HIDE_SERIES, (int*)(&m_settings.browser_serie_mode), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true )); - optionsMenu.addItem( new CMenuOptionChooser(LOCALE_MOVIEBROWSER_SERIE_AUTO_CREATE, (int*)(&m_settings.serie_auto_create), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true )); - //optionsMenu.addItem(GenericMenuSeparator); + optionsMenu.addIntroItems(LOCALE_EPGPLUS_OPTIONS); + optionsMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_LOAD_DEFAULT, true, NULL, this, "loaddefault", CRCInput::RC_blue)); + optionsMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_OPTION_BROWSER, true, NULL, &optionsMenuBrowser,NULL, CRCInput::RC_green)); + optionsMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, &optionsMenuDir,NULL, CRCInput::RC_yellow)); + if (m_parentalLock != MB_PARENTAL_LOCK_OFF) + optionsMenu.addItem(new CLockedMenuForwarder(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_HEAD, g_settings.parentallock_pincode, true, true, NULL, &parentalMenu,NULL,CRCInput::RC_red)); + else + optionsMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_HEAD, true, NULL, &parentalMenu,NULL,CRCInput::RC_red)); + optionsMenu.addItem(GenericMenuSeparatorLine); + optionsMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_RELOAD_AT_START, (int*)(&m_settings.reload), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true)); + optionsMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_REMOUNT_AT_START, (int*)(&m_settings.remount), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true)); + optionsMenu.addItem(GenericMenuSeparatorLine); + optionsMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_HIDE_SERIES, (int*)(&m_settings.browser_serie_mode), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true)); + optionsMenu.addItem(new CMenuOptionChooser(LOCALE_MOVIEBROWSER_SERIE_AUTO_CREATE, (int*)(&m_settings.serie_auto_create), MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true)); + //optionsMenu.addItem(GenericMenuSeparator); -/********************************************************************/ -/** main menu ******************************************************/ - CMovieHelp* movieHelp = new CMovieHelp(); - CNFSSmallMenu* nfs = new CNFSSmallMenu(); + /********************************************************************/ + /** main menu ******************************************************/ + CMovieHelp* movieHelp = new CMovieHelp(); + CNFSSmallMenu* nfs = new CNFSSmallMenu(); - CMenuWidget mainMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - mainMenu.addIntroItems(LOCALE_MOVIEBROWSER_MENU_MAIN_HEAD); - mainMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_HEAD, (m_movieSelectionHandler != NULL), NULL, this, "show_movie_info_menu", CRCInput::RC_red)); - mainMenu.addItem(GenericMenuSeparatorLine); - mainMenu.addItem( new CMenuForwarder(LOCALE_EPGPLUS_OPTIONS, true, NULL, &optionsMenu,NULL, CRCInput::RC_green)); - mainMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, &dirMenu, NULL, CRCInput::RC_yellow)); - mainMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES, true, NULL, this, "reload_movie_info", CRCInput::RC_blue)); - //mainMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_NFS_HEAD, true, NULL, nfs, NULL, CRCInput::RC_setup)); - mainMenu.addItem(GenericMenuSeparatorLine); - mainMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_HELP_HEAD, true, NULL, movieHelp, NULL, CRCInput::RC_help)); - //mainMenu.addItem(GenericMenuSeparator); + CMenuWidget mainMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); + mainMenu.addIntroItems(LOCALE_MOVIEBROWSER_MENU_MAIN_HEAD); + mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_HEAD, (m_movieSelectionHandler != NULL), NULL, this, "show_movie_info_menu", CRCInput::RC_red)); + mainMenu.addItem(GenericMenuSeparatorLine); + mainMenu.addItem(new CMenuForwarder(LOCALE_EPGPLUS_OPTIONS, true, NULL, &optionsMenu,NULL, CRCInput::RC_green)); + mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, &dirMenu, NULL, CRCInput::RC_yellow)); + mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES, true, NULL, this, "reload_movie_info", CRCInput::RC_blue)); + //mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_NFS_HEAD, true, NULL, nfs, NULL, CRCInput::RC_setup)); + mainMenu.addItem(GenericMenuSeparatorLine); + mainMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_HELP_HEAD, true, NULL, movieHelp, NULL, CRCInput::RC_help)); + //mainMenu.addItem(GenericMenuSeparator); - mainMenu.exec(NULL, " "); + mainMenu.exec(NULL, " "); - // post menu handling - if (m_parentalLock != MB_PARENTAL_LOCK_OFF_TMP) - m_settings.parentalLock = m_parentalLock; - if(m_settings.browserFrameHeight < MIN_BROWSER_FRAME_HEIGHT ) - m_settings.browserFrameHeight = MIN_BROWSER_FRAME_HEIGHT; - if(m_settings.browserFrameHeight > MAX_BROWSER_FRAME_HEIGHT) - m_settings.browserFrameHeight = MAX_BROWSER_FRAME_HEIGHT; - if (m_settings.browserRowNr > MB_MAX_ROWS ) - m_settings.browserRowNr = MB_MAX_ROWS; - if (m_settings.browserRowNr < 1 ) - m_settings.browserRowNr = 1; - for(i = 0; i < m_settings.browserRowNr; i++) - { - if( m_settings.browserRowWidth[i] > 100) - m_settings.browserRowWidth[i] = 100; - if( m_settings.browserRowWidth[i] < 1) - m_settings.browserRowWidth[i] = 1; - } + // post menu handling + if (m_parentalLock != MB_PARENTAL_LOCK_OFF_TMP) + m_settings.parentalLock = m_parentalLock; + if (m_settings.browserFrameHeight < MIN_BROWSER_FRAME_HEIGHT) + m_settings.browserFrameHeight = MIN_BROWSER_FRAME_HEIGHT; + if (m_settings.browserFrameHeight > MAX_BROWSER_FRAME_HEIGHT) + m_settings.browserFrameHeight = MAX_BROWSER_FRAME_HEIGHT; + if (m_settings.browserRowNr > MB_MAX_ROWS) + m_settings.browserRowNr = MB_MAX_ROWS; + if (m_settings.browserRowNr < 1) + m_settings.browserRowNr = 1; + for (i = 0; i < m_settings.browserRowNr; i++) + { + if (m_settings.browserRowWidth[i] > 100) + m_settings.browserRowWidth[i] = 100; + if (m_settings.browserRowWidth[i] < 1) + m_settings.browserRowWidth[i] = 1; + } - if(dirMenu.isChanged()) - loadMovies(); + if (dirMenu.isChanged()) + loadMovies(); - updateSerienames(); - refreshBrowserList(); - refreshLastPlayList(); - refreshLastRecordList(); - refreshFilterList(); - refreshMovieInfo(); - refresh(); + updateSerienames(); + refreshBrowserList(); + refreshLastPlayList(); + refreshLastRecordList(); + refreshFilterList(); + refreshMovieInfo(); + refresh(); - for(i=0; igetText(LOCALE_UNIT_SHORT_MINUTE); - //TRACE("[mb]->showStartPosSelectionMenu\r\n"); + //TRACE("[mb]->showStartPosSelectionMenu\n"); int pos = -1; int result = 0; int menu_nr= 0; int position[MAX_NUMBER_OF_BOOKMARK_ITEMS] ={0}; - if(m_movieSelectionHandler == NULL) return(result); + if (m_movieSelectionHandler == NULL) return(result); char start_pos[32]; snprintf(start_pos, sizeof(start_pos), "%3d %s",m_movieSelectionHandler->bookmarks.start/60, unit_short_minute); char play_pos[32]; snprintf(play_pos, sizeof(play_pos), "%3d %s",m_movieSelectionHandler->bookmarks.lastPlayStop/60, unit_short_minute); char book[MI_MOVIE_BOOK_USER_MAX][32]; - CMenuWidgetSelection startPosSelectionMenu(LOCALE_MOVIEBROWSER_HEAD , NEUTRINO_ICON_MOVIEPLAYER); + CMenuWidgetSelection startPosSelectionMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); startPosSelectionMenu.enableFade(false); startPosSelectionMenu.addIntroItems(LOCALE_MOVIEBROWSER_START_HEAD, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); int off = startPosSelectionMenu.getItemsCount(); - if(m_movieSelectionHandler->bookmarks.start != 0) + if (m_movieSelectionHandler->bookmarks.start != 0) { startPosSelectionMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_MOVIESTART, true, start_pos)); position[menu_nr++] = m_movieSelectionHandler->bookmarks.start; } - if(m_movieSelectionHandler->bookmarks.lastPlayStop != 0) + if (m_movieSelectionHandler->bookmarks.lastPlayStop != 0) { startPosSelectionMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_LASTMOVIESTOP, true, play_pos)); position[menu_nr++] = m_movieSelectionHandler->bookmarks.lastPlayStop; @@ -3365,17 +2927,17 @@ int CMovieBrowser::showStartPosSelectionMenu(void) // P2 startPosSelectionMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_START_RECORD_START, true,NULL), true); position[menu_nr++] = 0; - for(int i =0 ; i < MI_MOVIE_BOOK_USER_MAX && menu_nr < MAX_NUMBER_OF_BOOKMARK_ITEMS; i++ ) + for (int i = 0; i < MI_MOVIE_BOOK_USER_MAX && menu_nr < MAX_NUMBER_OF_BOOKMARK_ITEMS; i++) { - if( m_movieSelectionHandler->bookmarks.user[i].pos != 0 ) + if (m_movieSelectionHandler->bookmarks.user[i].pos != 0) { - if(m_movieSelectionHandler->bookmarks.user[i].length >= 0) + if (m_movieSelectionHandler->bookmarks.user[i].length >= 0) position[menu_nr] = m_movieSelectionHandler->bookmarks.user[i].pos; else position[menu_nr] = m_movieSelectionHandler->bookmarks.user[i].pos + m_movieSelectionHandler->bookmarks.user[i].length; snprintf(book[i], sizeof(book[i]),"%5d %s",position[menu_nr]/60, unit_short_minute); - startPosSelectionMenu.addItem(new CMenuForwarder (m_movieSelectionHandler->bookmarks.user[i].name.c_str(), true, book[i])); + startPosSelectionMenu.addItem(new CMenuForwarder(m_movieSelectionHandler->bookmarks.user[i].name.c_str(), true, book[i])); menu_nr++; } } @@ -3385,10 +2947,9 @@ int CMovieBrowser::showStartPosSelectionMenu(void) // P2 result = startPosSelectionMenu.getSelectedLine(); result -= off; // sub-text, separator, back, separator-line - if(result >= 0 && result <= MAX_NUMBER_OF_BOOKMARK_ITEMS) - { + if (result >= 0 && result <= MAX_NUMBER_OF_BOOKMARK_ITEMS) pos = position[result]; - } + TRACE("[mb] selected bookmark %d position %d \n", result, pos); return(pos) ; @@ -3397,10 +2958,9 @@ int CMovieBrowser::showStartPosSelectionMenu(void) // P2 bool CMovieBrowser::isParentalLock(MI_MOVIE_INFO& movie_info) { bool result = false; - if(m_parentalLock == MB_PARENTAL_LOCK_ACTIVE && m_settings.parentalLockAge <= movie_info.parentalLockAge ) - { + if (m_parentalLock == MB_PARENTAL_LOCK_ACTIVE && m_settings.parentalLockAge <= movie_info.parentalLockAge) result = true; - } + return (result); } @@ -3411,19 +2971,19 @@ bool CMovieBrowser::isFiltered(MI_MOVIE_INFO& movie_info) switch(m_settings.filter.item) { case MB_INFO_FILEPATH: - if(m_settings.filter.optionVar == movie_info.dirItNr) + if (m_settings.filter.optionVar == movie_info.dirItNr) result = false; break; case MB_INFO_INFO1: - if(strcmp(m_settings.filter.optionString.c_str(),movie_info.epgInfo1.c_str()) == 0) + if (strcmp(m_settings.filter.optionString.c_str(),movie_info.epgInfo1.c_str()) == 0) result = false; break; case MB_INFO_MAJOR_GENRE: - if(m_settings.filter.optionVar == movie_info.genreMajor) + if (m_settings.filter.optionVar == movie_info.genreMajor) result = false; break; case MB_INFO_SERIE: - if(strcmp(m_settings.filter.optionString.c_str(),movie_info.serieName.c_str()) == 0) + if (strcmp(m_settings.filter.optionString.c_str(),movie_info.serieName.c_str()) == 0) result = false; break; break; @@ -3451,14 +3011,14 @@ bool CMovieBrowser::getMovieInfoItem(MI_MOVIE_INFO& movie_info, MB_INFO_ITEM ite *item_string = movie_info.file.getFileName(); break; case MB_INFO_FILEPATH: // = 1, - if(!m_dirNames.empty()) + if (!m_dirNames.empty()) *item_string = m_dirNames[movie_info.dirItNr]; break; case MB_INFO_TITLE: // = 2, *item_string = movie_info.epgTitle; - if(strcmp("not available",movie_info.epgTitle.c_str()) == 0) + if (strcmp("not available",movie_info.epgTitle.c_str()) == 0) result = false; - if(movie_info.epgTitle.empty()) + if (movie_info.epgTitle.empty()) result = false; break; case MB_INFO_SERIE: // = 3, @@ -3468,18 +3028,18 @@ bool CMovieBrowser::getMovieInfoItem(MI_MOVIE_INFO& movie_info, MB_INFO_ITEM ite *item_string = movie_info.epgInfo1; break; case MB_INFO_MAJOR_GENRE: // = 5, - snprintf(str_tmp,MAX_STR_TMP,"%2d",movie_info.genreMajor); + snprintf(str_tmp, sizeof(str_tmp),"%2d",movie_info.genreMajor); *item_string = str_tmp; break; case MB_INFO_MINOR_GENRE: // = 6, - snprintf(str_tmp,MAX_STR_TMP,"%2d",movie_info.genreMinor); + snprintf(str_tmp, sizeof(str_tmp),"%2d",movie_info.genreMinor); *item_string = str_tmp; break; case MB_INFO_INFO2: // = 7, *item_string = movie_info.epgInfo2; break; case MB_INFO_PARENTAL_LOCKAGE: // = 8, - snprintf(str_tmp,MAX_STR_TMP,"%2d",movie_info.parentalLockAge); + snprintf(str_tmp, sizeof(str_tmp),"%2d",movie_info.parentalLockAge); *item_string = str_tmp; break; case MB_INFO_CHANNEL: // = 9, @@ -3487,20 +3047,20 @@ bool CMovieBrowser::getMovieInfoItem(MI_MOVIE_INFO& movie_info, MB_INFO_ITEM ite break; case MB_INFO_BOOKMARK: // = 10, // we just return the number of bookmarks - for(i = 0; i < MI_MOVIE_BOOK_USER_MAX; i++) + for (i = 0; i < MI_MOVIE_BOOK_USER_MAX; i++) { - if(movie_info.bookmarks.user[i].pos != 0) + if (movie_info.bookmarks.user[i].pos != 0) counter++; } *item_string = to_string(counter);; break; case MB_INFO_QUALITY: // = 11, - snprintf(str_tmp,MAX_STR_TMP,"%d",movie_info.quality); + snprintf(str_tmp, sizeof(str_tmp),"%d",movie_info.quality); *item_string = str_tmp; break; case MB_INFO_PREVPLAYDATE: // = 12, tm_tmp = localtime(&movie_info.dateOfLastPlay); - snprintf(str_tmp,MAX_STR_TMP,"%02d.%02d.%02d",tm_tmp->tm_mday,(tm_tmp->tm_mon)+ 1, tm_tmp->tm_year >= 100 ? tm_tmp->tm_year-100 : tm_tmp->tm_year); + snprintf(str_tmp, sizeof(str_tmp),"%02d.%02d.%02d",tm_tmp->tm_mday,(tm_tmp->tm_mon)+ 1, tm_tmp->tm_year >= 100 ? tm_tmp->tm_year-100 : tm_tmp->tm_year); *item_string = str_tmp; break; @@ -3509,12 +3069,12 @@ bool CMovieBrowser::getMovieInfoItem(MI_MOVIE_INFO& movie_info, MB_INFO_ITEM ite *item_string = movie_info.ytdate; } else { tm_tmp = localtime(&movie_info.file.Time); - snprintf(str_tmp,MAX_STR_TMP,"%02d.%02d.%02d",tm_tmp->tm_mday,(tm_tmp->tm_mon) + 1,tm_tmp->tm_year >= 100 ? tm_tmp->tm_year-100 : tm_tmp->tm_year); + snprintf(str_tmp, sizeof(str_tmp),"%02d.%02d.%02d",tm_tmp->tm_mday,(tm_tmp->tm_mon) + 1,tm_tmp->tm_year >= 100 ? tm_tmp->tm_year-100 : tm_tmp->tm_year); *item_string = str_tmp; } break; case MB_INFO_PRODDATE: // = 14, - snprintf(str_tmp,MAX_STR_TMP,"%d",movie_info.productionDate); + snprintf(str_tmp, sizeof(str_tmp),"%d",movie_info.productionDate); *item_string = str_tmp; break; case MB_INFO_COUNTRY: // = 15, @@ -3524,88 +3084,16 @@ bool CMovieBrowser::getMovieInfoItem(MI_MOVIE_INFO& movie_info, MB_INFO_ITEM ite result = false; break; case MB_INFO_AUDIO: // = 17, -#if 1 // MB_INFO_AUDIO test // we just return the number of audiopids - char ltext[10]; - snprintf(ltext, 8,"%d", (int)movie_info.audioPids.size()); - ltext[9] = 0; // just to make sure string is terminated - *item_string = ltext; -#else // MB_INFO_AUDIO test - for(i=0; i < movie_info.audioPids.size() && i < 10; i++) - { - if(movie_info.audioPids[i].epgAudioPidName[0].size() < 2) - { - text[counter++] = '?'; // two chars ??? -> strange name - continue; - } - - // check for Dolby Digital / AC3 Audio audiopids (less than 5.1 is not remarkable) - if( (movie_info.audioPids[i].epgAudioPidName.find("AC3") != -1 ) || - (movie_info.audioPids[i].epgAudioPidName.find("5.1") != -1 )) - { - ac3_found = true; - } - // Check for german audio pids - if( movie_info.audioPids[i].epgAudioPidName[0] == 'D' || // Deutsch - movie_info.audioPids[i].epgAudioPidName[0] == 'd' || - movie_info.audioPids[i].epgAudioPidName[0] == 'G' || // German - movie_info.audioPids[i].epgAudioPidName[0] == 'g' || - movie_info.audioPids[i].epgAudioPidName[0] == 'M' || // for Mono, mono and Stereo, stereo we assume German ;) - movie_info.audioPids[i].epgAudioPidName[0] == 'n' || - (movie_info.audioPids[i].epgAudioPidName[0] == 'S' && movie_info.audioPids[i].epgAudioPidName[1] == 't' ) || - (movie_info.audioPids[i].epgAudioPidName[0] == 's' && movie_info.audioPids[i].epgAudioPidName[1] == 't' )) - { - text[counter++] = 'D'; - continue; - } - // Check for english audio pids - if( movie_info.audioPids[i].epgAudioPidName[0] == 'E' || - movie_info.audioPids[i].epgAudioPidName[0] == 'e') - { - text[counter++] = 'E'; - continue; - } - // Check for french audio pids - if( movie_info.audioPids[i].epgAudioPidName[0] == 'F' || - movie_info.audioPids[i].epgAudioPidName[0] == 'f') - { - text[counter++] = 'F'; - continue; - } - // Check for italian audio pids - if( movie_info.audioPids[i].epgAudioPidName[0] == 'I' || - movie_info.audioPids[i].epgAudioPidName[0] == 'i') - { - text[counter++] = 'I'; - continue; - } - // Check for spanish audio pids - if( movie_info.audioPids[i].epgAudioPidName[0] == 'E' || - movie_info.audioPids[i].epgAudioPidName[0] == 'e' || - movie_info.audioPids[i].epgAudioPidName[0] == 'S' || - movie_info.audioPids[i].epgAudioPidName[0] == 's') - { - text[counter++] = 'S'; - continue; - } - text[counter++] = '?'; // We have not found any language for this pid - } - if(ac3_found == true) - { - text[counter++] = '5'; - text[counter++] = '.'; - text[counter++] = '1'; - } - text[counter] = 0; // terminate string -#endif // MB_INFO_AUDIO test + snprintf(str_tmp, sizeof(str_tmp), "%d", (int)movie_info.audioPids.size()); + *item_string = str_tmp; break; case MB_INFO_LENGTH: // = 18, - //snprintf(str_tmp,MAX_STR_TMP,"%4d",movie_info.length); - snprintf(str_tmp,MAX_STR_TMP,"%dh %dm", movie_info.length/60, movie_info.length%60); + snprintf(str_tmp, sizeof(str_tmp),"%dh %dm", movie_info.length/60, movie_info.length%60); *item_string = str_tmp; break; case MB_INFO_SIZE: // = 19, - snprintf(str_tmp,MAX_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; break; case MB_INFO_MAX_NUMBER: // = 20 @@ -3620,23 +3108,23 @@ bool CMovieBrowser::getMovieInfoItem(MI_MOVIE_INFO& movie_info, MB_INFO_ITEM ite void CMovieBrowser::updateSerienames(void) { - if(m_seriename_stale == false) + if (m_seriename_stale == false) return; - m_vHandleSerienames.clear(); - for(unsigned int i = 0; i < m_vMovieInfo.size(); i++) + m_vHandleSerienames.clear(); + for (unsigned int i = 0; i < m_vMovieInfo.size(); i++) { - if(!m_vMovieInfo[i].serieName.empty()) + if (!m_vMovieInfo[i].serieName.empty()) { // current series name is not empty, lets see if we already have it in the list, and if not save it to the list. bool found = false; - for(unsigned int t = 0; t < m_vHandleSerienames.size() && found == false; t++) + for (unsigned int t = 0; t < m_vHandleSerienames.size() && found == false; t++) { - if(strcmp(m_vHandleSerienames[t]->serieName.c_str(),m_vMovieInfo[i].serieName.c_str()) == 0) + if (strcmp(m_vHandleSerienames[t]->serieName.c_str(),m_vMovieInfo[i].serieName.c_str()) == 0) found = true; } - if(found == false) - m_vHandleSerienames.push_back(&m_vMovieInfo[i]); + if (found == false) + m_vHandleSerienames.push_back(&m_vMovieInfo[i]); } } TRACE("[mb]->updateSerienames: %d\n", (int)m_vHandleSerienames.size()); @@ -3646,30 +3134,30 @@ void CMovieBrowser::updateSerienames(void) void CMovieBrowser::autoFindSerie(void) { - TRACE("autoFindSerie\n"); - updateSerienames(); // we have to make sure that the seriename array is up to date, otherwise this does not work - // if the array is not stale, the function is left immediately - for(unsigned int i = 0; i < m_vMovieInfo.size(); i++) - { - // For all movie infos, which do not have a seriename, we try to find one. - // We search for a movieinfo with seriename, and than we do check if the title is the same - // in case of same title, we assume both belongs to the same serie - //TRACE("%s ",m_vMovieInfo[i].serieName); - if( m_vMovieInfo[i].serieName.empty()) - { - for(unsigned int t=0; t < m_vHandleSerienames.size();t++) - { - //TRACE("%s ",m_vHandleSerienames[i].serieName); - if(m_vMovieInfo[i].epgTitle == m_vHandleSerienames[t]->epgTitle ) - { - //TRACE("x"); - m_vMovieInfo[i].serieName = m_vHandleSerienames[t]->serieName; - break; // we found a maching serie, nothing to do else, leave for(t=0) - } - } - //TRACE("\n"); - } - } + TRACE("autoFindSerie\n"); + updateSerienames(); // we have to make sure that the seriename array is up to date, otherwise this does not work + // if the array is not stale, the function is left immediately + for (unsigned int i = 0; i < m_vMovieInfo.size(); i++) + { + // For all movie infos, which do not have a seriename, we try to find one. + // We search for a movieinfo with seriename, and than we do check if the title is the same + // in case of same title, we assume both belongs to the same serie + //TRACE("%s ",m_vMovieInfo[i].serieName); + if (m_vMovieInfo[i].serieName.empty()) + { + for (unsigned int t=0; t < m_vHandleSerienames.size();t++) + { + //TRACE("%s ",m_vHandleSerienames[i].serieName); + if (m_vMovieInfo[i].epgTitle == m_vHandleSerienames[t]->epgTitle) + { + //TRACE("x"); + m_vMovieInfo[i].serieName = m_vHandleSerienames[t]->serieName; + break; // we found a maching serie, nothing to do else, leave for(t=0) + } + } + //TRACE("\n"); + } + } } void CMovieBrowser::loadYTitles(int mode, std::string search, std::string id) @@ -3721,18 +3209,18 @@ void CMovieBrowser::loadYTitles(int mode, std::string search, std::string id) const CMenuOptionChooser::keyval YT_FEED_OPTIONS[] = { - { cYTFeedParser::MOST_POPULAR_ALL_TIME, LOCALE_MOVIEBROWSER_YT_MOST_POPULAR_ALL_TIME }, - { cYTFeedParser::MOST_POPULAR, LOCALE_MOVIEBROWSER_YT_MOST_POPULAR } + { cYTFeedParser::MOST_POPULAR_ALL_TIME, LOCALE_MOVIEBROWSER_YT_MOST_POPULAR_ALL_TIME }, + { cYTFeedParser::MOST_POPULAR, LOCALE_MOVIEBROWSER_YT_MOST_POPULAR } }; #define YT_FEED_OPTION_COUNT (sizeof(YT_FEED_OPTIONS)/sizeof(CMenuOptionChooser::keyval)) const CMenuOptionChooser::keyval YT_ORDERBY_OPTIONS[] = { - { cYTFeedParser::ORDERBY_PUBLISHED, LOCALE_MOVIEBROWSER_YT_ORDERBY_PUBLISHED }, - { cYTFeedParser::ORDERBY_RELEVANCE, LOCALE_MOVIEBROWSER_YT_ORDERBY_RELEVANCE }, - { cYTFeedParser::ORDERBY_VIEWCOUNT, LOCALE_MOVIEBROWSER_YT_ORDERBY_VIEWCOUNT }, - { cYTFeedParser::ORDERBY_RATING, LOCALE_MOVIEBROWSER_YT_ORDERBY_RATING } + { cYTFeedParser::ORDERBY_PUBLISHED, LOCALE_MOVIEBROWSER_YT_ORDERBY_PUBLISHED }, + { cYTFeedParser::ORDERBY_RELEVANCE, LOCALE_MOVIEBROWSER_YT_ORDERBY_RELEVANCE }, + { cYTFeedParser::ORDERBY_VIEWCOUNT, LOCALE_MOVIEBROWSER_YT_ORDERBY_VIEWCOUNT }, + { cYTFeedParser::ORDERBY_RATING, LOCALE_MOVIEBROWSER_YT_ORDERBY_RATING } }; #define YT_ORDERBY_OPTION_COUNT (sizeof(YT_ORDERBY_OPTIONS)/sizeof(CMenuOptionChooser::keyval)) @@ -3771,7 +3259,7 @@ int CYTCacheSelectorTarget::exec(CMenuTarget* /*parent*/, const std::string & ac cYTCache::getInstance()->remove(&movieBrowser->yt_completed[selected - movieBrowser->yt_completed_offset]); } else if (actionKey == "") { if (movieBrowser->yt_pending_offset && selected >= movieBrowser->yt_pending_offset && selected < movieBrowser->yt_pending_end) { - if(ShowMsg (LOCALE_MOVIEBROWSER_YT_CACHE, g_Locale->getText(LOCALE_MOVIEBROWSER_YT_CANCEL_TRANSFER), CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes) + if (ShowMsg (LOCALE_MOVIEBROWSER_YT_CACHE, g_Locale->getText(LOCALE_MOVIEBROWSER_YT_CANCEL_TRANSFER), CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes) cYTCache::getInstance()->cancel(&movieBrowser->yt_pending[selected - movieBrowser->yt_pending_offset]); else return menu_return::RETURN_NONE; @@ -3799,7 +3287,7 @@ int CYTCacheSelectorTarget::exec(CMenuTarget* /*parent*/, const std::string & ac void CMovieBrowser::refreshYTMenu() { for (u_int item_id = (u_int) yt_menue->getItemsCount() - 1; item_id > yt_menue_end - 1; item_id--) { - CMenuItem* m = yt_menue->getItem(item_id); + CMenuItem* m = yt_menue->getItem(item_id); if (m && !m->isStatic) delete m; yt_menue->removeItem(item_id); @@ -3821,7 +3309,7 @@ void CMovieBrowser::refreshYTMenu() if (!yt_pending.empty()) { yt_menue->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_MOVIEBROWSER_YT_PENDING)); yt_menue->addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_YT_CANCEL, true, NULL, ytcache_selector, "cancel_all")); - yt_menue->addItem(GenericMenuSeparator); + yt_menue->addItem(GenericMenuSeparator); std::string progress; if (dlstart && dltotal && dlnow) { time_t done = time(NULL) - dlstart; @@ -3840,7 +3328,7 @@ void CMovieBrowser::refreshYTMenu() if (!yt_completed.empty()) { yt_menue->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_MOVIEBROWSER_YT_COMPLETED)); yt_menue->addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_YT_CLEAR, true, NULL, ytcache_selector, "completed_clear")); - yt_menue->addItem(GenericMenuSeparator); + yt_menue->addItem(GenericMenuSeparator); int i = 0; yt_completed_offset = yt_menue->getItemsCount(); for (std::vector::iterator it = yt_completed.begin(); it != yt_completed.end(); ++it, ++i) { @@ -3852,7 +3340,7 @@ void CMovieBrowser::refreshYTMenu() if (!yt_failed.empty()) { yt_menue->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_MOVIEBROWSER_YT_FAILED)); yt_menue->addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_YT_CLEAR, true, NULL, ytcache_selector, "failed_clear")); - yt_menue->addItem(GenericMenuSeparator); + yt_menue->addItem(GenericMenuSeparator); int i = 0; yt_failed_offset = yt_menue->getItemsCount(); for (std::vector::iterator it = yt_failed.begin(); it != yt_failed.end(); ++it, ++i) { @@ -3866,19 +3354,19 @@ void CMovieBrowser::refreshYTMenu() class CYTHistory : public CMenuTarget { - private: - int width; - int selected; + private: + int width; + int selected; std::string *search; MB_SETTINGS *settings; - public: - CYTHistory(MB_SETTINGS &_settings, std::string &_search); - int exec(CMenuTarget* parent, const std::string & actionKey); + public: + CYTHistory(MB_SETTINGS &_settings, std::string &_search); + int exec(CMenuTarget* parent, const std::string & actionKey); }; CYTHistory::CYTHistory(MB_SETTINGS &_settings, std::string &_search) { - width = w_max (40, 10); + width = w_max(40, 10); selected = -1; settings = &_settings; search = &_search; @@ -3915,7 +3403,7 @@ int CYTHistory::exec(CMenuTarget* parent, const std::string &actionKey) bool CMovieBrowser::showYTMenu() { - m_pcWindow->paintBackground(); + framebuffer->paintBackground(); CMenuWidget mainMenu(LOCALE_MOVIEPLAYER_YTPLAYBACK, NEUTRINO_ICON_MOVIEPLAYER); mainMenu.addIntroItems(LOCALE_MOVIEBROWSER_OPTION_BROWSER); @@ -4023,7 +3511,7 @@ bool CMovieBrowser::showYTMenu() else ++it; } - if(m_settings.ytsearch_history.empty()) + if (m_settings.ytsearch_history.empty()) m_settings.ytsearch_history_size = 0; else m_settings.ytsearch_history_size = m_settings.ytsearch_history.size(); @@ -4037,7 +3525,7 @@ bool CMovieBrowser::showYTMenu() reload = true; } } - if(rstr != m_settings.ytregion) { + if (rstr != m_settings.ytregion) { m_settings.ytregion = rstr; if (newmode < 0) newmode = m_settings.ytmode; @@ -4055,15 +3543,14 @@ bool CMovieBrowser::showYTMenu() refreshLastPlayList(); refreshLastRecordList(); refreshFilterList(); - //refreshMovieInfo(); refresh(); return true; } -CMenuSelector::CMenuSelector(const char * OptionName, const bool Active , char * OptionValue, int* ReturnInt ,int ReturnIntValue ) : CMenuItem() +CMenuSelector::CMenuSelector(const char * OptionName, const bool Active, char * OptionValue, int* ReturnInt,int ReturnIntValue) : CMenuItem() { height = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); - optionValueString = NULL; + optionValueString = NULL; optionName = OptionName; optionValue = OptionValue; active = Active; @@ -4071,30 +3558,30 @@ CMenuSelector::CMenuSelector(const char * OptionName, const bool Active , char * returnInt = ReturnInt; } -CMenuSelector::CMenuSelector(const char * OptionName, const bool Active , std::string& OptionValue, int* ReturnInt ,int ReturnIntValue ) : CMenuItem() +CMenuSelector::CMenuSelector(const char * OptionName, const bool Active, std::string& OptionValue, int* ReturnInt,int ReturnIntValue) : CMenuItem() { - height = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); - optionValueString = &OptionValue; - optionName = OptionName; - strncpy(buffer,OptionValue.c_str(),BUFFER_MAX-1); - buffer[BUFFER_MAX-1] = 0;// terminate string - optionValue = buffer; - active = Active; - returnIntValue = ReturnIntValue; - returnInt = ReturnInt; + height = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); + optionValueString = &OptionValue; + optionName = OptionName; + strncpy(buffer,OptionValue.c_str(),BUFFER_MAX-1); + buffer[BUFFER_MAX-1] = 0;// terminate string + optionValue = buffer; + active = Active; + returnIntValue = ReturnIntValue; + returnInt = ReturnInt; } int CMenuSelector::exec(CMenuTarget* /*parent*/) { - if(returnInt != NULL) + if (returnInt != NULL) *returnInt= returnIntValue; - if(optionValue != NULL && optionName != NULL) + if (optionValue != NULL && optionName != NULL) { - if(optionValueString == NULL) - strcpy(optionValue,optionName); - else - *optionValueString = optionName; + if (optionValueString == NULL) + strcpy(optionValue,optionName); + else + *optionValueString = optionName; } return menu_return::RETURN_EXIT; } @@ -4151,212 +3638,191 @@ int CMovieHelp::exec(CMenuTarget* /*parent*/, const std::string & /*actionKey*/) //////////////////////////////////////////////// int CFileChooser::exec(CMenuTarget* parent, const std::string & /*actionKey*/) { - if(parent != NULL) - parent->hide(); + if (parent != NULL) + parent->hide(); - CFileBrowser browser; - browser.Dir_Mode=true; - std::string oldPath = *dirPath; - if (browser.exec(dirPath->c_str())) { - *dirPath = browser.getSelectedFile()->Name; - if (check_dir(dirPath->c_str(), true)) - *dirPath = oldPath; - } + CFileBrowser browser; + browser.Dir_Mode=true; + std::string oldPath = *dirPath; + if (browser.exec(dirPath->c_str())) { + *dirPath = browser.getSelectedFile()->Name; + if (check_dir(dirPath->c_str(), true)) + *dirPath = oldPath; + } - return menu_return::RETURN_REPAINT; + return menu_return::RETURN_REPAINT; } CDirMenu::CDirMenu(std::vector* dir_list) { - unsigned int i; - changed = false; - dirList = dir_list; + unsigned int i; + changed = false; + dirList = dir_list; - if( dirList->empty()) - return; + if (dirList->empty()) + return; - for(i = 0; i < MAX_DIR; i++) - dirNfsMountNr[i]=-1; + for (i = 0; i < MAX_DIR; i++) + dirNfsMountNr[i] = -1; - for(i = 0; i < dirList->size() && i < MAX_DIR; i++) - { - for(int nfs = 0; nfs < NETWORK_NFS_NR_OF_ENTRIES; nfs++) - { - int result = -1; - if(!g_settings.network_nfs[nfs].local_dir.empty()) - result = (*dirList)[i].name.compare( 0,g_settings.network_nfs[nfs].local_dir.size(),g_settings.network_nfs[nfs].local_dir) ; -printf("[CDirMenu] (nfs%d) %s == (mb%d) %s (%d)\n",nfs,g_settings.network_nfs[nfs].local_dir.c_str(),i,(*dirList)[i].name.c_str(),result); + for (i = 0; i < dirList->size() && i < MAX_DIR; i++) + { + for (int nfs = 0; nfs < NETWORK_NFS_NR_OF_ENTRIES; nfs++) + { + int result = -1; + if (!g_settings.network_nfs[nfs].local_dir.empty()) + result = (*dirList)[i].name.compare(0,g_settings.network_nfs[nfs].local_dir.size(),g_settings.network_nfs[nfs].local_dir) ; + printf("[CDirMenu] (nfs%d) %s == (mb%d) %s (%d)\n",nfs,g_settings.network_nfs[nfs].local_dir.c_str(),i,(*dirList)[i].name.c_str(),result); - if(result == 0) - { - dirNfsMountNr[i] = nfs; - break; - } - } - } + if (result == 0) + { + dirNfsMountNr[i] = nfs; + break; + } + } + } } int CDirMenu::exec(CMenuTarget* parent, const std::string & actionKey) { - int returnval = menu_return::RETURN_REPAINT; + int returnval = menu_return::RETURN_REPAINT; - if(actionKey == "") - { - if(parent) - parent->hide(); + if (actionKey == "") + { + if (parent) + parent->hide(); - changed = false; - return show(); - } - else if(actionKey.size() == 1) - { - printf("[CDirMenu].exec %s\n",actionKey.c_str()); - int number = atoi(actionKey.c_str()); - if(number < MAX_DIR) - { - if(dirState[number] == DIR_STATE_SERVER_DOWN) - { - printf("try to start server: %s %s\n","ether-wake", g_settings.network_nfs[dirNfsMountNr[number]].mac.c_str()); - if (my_system(2, "ether-wake", g_settings.network_nfs[dirNfsMountNr[number]].mac.c_str()) != 0) - perror("ether-wake failed"); + changed = false; + return show(); + } + else if (actionKey.size() == 1) + { + printf("[CDirMenu].exec %s\n",actionKey.c_str()); + int number = atoi(actionKey.c_str()); + if (number < MAX_DIR) + { + if (dirState[number] == DIR_STATE_SERVER_DOWN) + { + printf("try to start server: %s %s\n","ether-wake", g_settings.network_nfs[dirNfsMountNr[number]].mac.c_str()); + if (my_system(2, "ether-wake", g_settings.network_nfs[dirNfsMountNr[number]].mac.c_str()) != 0) + perror("ether-wake failed"); - dirOptionText[number]="STARTE SERVER"; - } - else if(dirState[number] == DIR_STATE_NOT_MOUNTED) - { - printf("[CDirMenu] try to mount %d,%d\n",number,dirNfsMountNr[number]); - CFSMounter::MountRes res; - res = CFSMounter::mount( g_settings.network_nfs[dirNfsMountNr[number]].ip, - g_settings.network_nfs[dirNfsMountNr[number]].dir, - g_settings.network_nfs[dirNfsMountNr[number]].local_dir, - (CFSMounter::FSType)g_settings.network_nfs[dirNfsMountNr[number]].type , - g_settings.network_nfs[dirNfsMountNr[number]].username, - g_settings.network_nfs[dirNfsMountNr[number]].password, - g_settings.network_nfs[dirNfsMountNr[number]].mount_options1, - g_settings.network_nfs[dirNfsMountNr[number]].mount_options2); - if(res == CFSMounter::MRES_OK) // if mount is successful we set the state to active in any case - { - *(*dirList)[number].used = true; - } - // try to mount - updateDirState(); - changed = true; - } - else if(dirState[number] == DIR_STATE_MOUNTED) - { - if(*(*dirList)[number].used == true) - { - *(*dirList)[number].used = false; - } - else - { - *(*dirList)[number].used = true; - } - //CFSMounter::umount(g_settings.network_nfs_local_dir[dirNfsMountNr[number]]); - updateDirState(); - changed = true; - } - } - } - return returnval; + dirOptionText[number] = "STARTE SERVER"; + } + else if (dirState[number] == DIR_STATE_NOT_MOUNTED) + { + printf("[CDirMenu] try to mount %d,%d\n",number,dirNfsMountNr[number]); + CFSMounter::MountRes res; + res = CFSMounter::mount(g_settings.network_nfs[dirNfsMountNr[number]].ip, + g_settings.network_nfs[dirNfsMountNr[number]].dir, + g_settings.network_nfs[dirNfsMountNr[number]].local_dir, + (CFSMounter::FSType)g_settings.network_nfs[dirNfsMountNr[number]].type, + g_settings.network_nfs[dirNfsMountNr[number]].username, + g_settings.network_nfs[dirNfsMountNr[number]].password, + g_settings.network_nfs[dirNfsMountNr[number]].mount_options1, + g_settings.network_nfs[dirNfsMountNr[number]].mount_options2); + if (res == CFSMounter::MRES_OK) // if mount is successful we set the state to active in any case + *(*dirList)[number].used = true; + + // try to mount + updateDirState(); + changed = true; + } + else if (dirState[number] == DIR_STATE_MOUNTED) + { + if (*(*dirList)[number].used == true) + *(*dirList)[number].used = false; + else + *(*dirList)[number].used = true; + //CFSMounter::umount(g_settings.network_nfs_local_dir[dirNfsMountNr[number]]); + updateDirState(); + changed = true; + } + } + } + return returnval; } +extern int pinghost(const std::string &hostname, std::string *ip = NULL); void CDirMenu::updateDirState(void) { - unsigned int drivefree = 0; - struct statfs s; + unsigned int drivefree = 0; + struct statfs s; - for(unsigned int i = 0; i < dirList->size() && i < MAX_DIR; i++) - { - dirOptionText[i]="UNBEKANNT"; - dirState[i]=DIR_STATE_UNKNOWN; - // 1st ping server -printf("updateDirState: %d: state %d nfs %d\n", i, dirState[i], dirNfsMountNr[i]); - if(dirNfsMountNr[i] != -1) - { - int retvalue = pinghost(g_settings.network_nfs[dirNfsMountNr[i]].ip); - if (retvalue == 0)//LOCALE_PING_UNREACHABLE - { - dirOptionText[i]="Server, offline"; - dirState[i]=DIR_STATE_SERVER_DOWN; - } - else if (retvalue == 1)//LOCALE_PING_OK - { - if(!CFSMounter::isMounted (g_settings.network_nfs[dirNfsMountNr[i]].local_dir)) - { - dirOptionText[i]="Not mounted"; - dirState[i]=DIR_STATE_NOT_MOUNTED; - } - else - { - dirState[i]=DIR_STATE_MOUNTED; - } - } - } - else - { - // not a nfs dir, probably IDE? we accept this so far - dirState[i]=DIR_STATE_MOUNTED; - } - if(dirState[i] == DIR_STATE_MOUNTED) - { - if(*(*dirList)[i].used == true) - { - if (statfs((*dirList)[i].name.c_str(), &s) >= 0 ) - { - drivefree = (s.f_bfree * s.f_bsize)>>30; - char tmp[20]; - snprintf(tmp, 19,"%3d GB free",drivefree); - tmp[19]=0; - dirOptionText[i]=tmp; - } - else - { - dirOptionText[i]="? GB free"; - } - } - else - { - dirOptionText[i] = "Inactive"; - } - } - } + for (unsigned int i = 0; i < dirList->size() && i < MAX_DIR; i++) + { + dirOptionText[i] = "UNBEKANNT"; + dirState[i] = DIR_STATE_UNKNOWN; + // 1st ping server + printf("updateDirState: %d: state %d nfs %d\n", i, dirState[i], dirNfsMountNr[i]); + if (dirNfsMountNr[i] != -1) + { + int retvalue = pinghost(g_settings.network_nfs[dirNfsMountNr[i]].ip); + if (retvalue == 0)//LOCALE_PING_UNREACHABLE + { + dirOptionText[i] = "Server, offline"; + dirState[i] = DIR_STATE_SERVER_DOWN; + } + else if (retvalue == 1)//LOCALE_PING_OK + { + if (!CFSMounter::isMounted(g_settings.network_nfs[dirNfsMountNr[i]].local_dir)) + { + dirOptionText[i] = "Not mounted"; + dirState[i] = DIR_STATE_NOT_MOUNTED; + } + else + { + dirState[i] = DIR_STATE_MOUNTED; + } + } + } + else + { + // not a nfs dir, probably IDE? we accept this so far + dirState[i] = DIR_STATE_MOUNTED; + } + if (dirState[i] == DIR_STATE_MOUNTED) + { + if (*(*dirList)[i].used == true) + { + if (statfs((*dirList)[i].name.c_str(), &s) >= 0) + { + drivefree = (s.f_bfree * s.f_bsize)>>30; + char tmp[20]; + snprintf(tmp, 19,"%3d GB free",drivefree); + dirOptionText[i] = tmp; + } + else + { + dirOptionText[i] = "? GB free"; + } + } + else + { + dirOptionText[i] = "Inactive"; + } + } + } } int CDirMenu::show(void) { - if(dirList->empty()) - return menu_return::RETURN_REPAINT; + if (dirList->empty()) + return menu_return::RETURN_REPAINT; - char tmp[20]; + char tmp[20]; - CMenuWidget dirMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); - dirMenu.addIntroItems(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD); + CMenuWidget dirMenu(LOCALE_MOVIEBROWSER_HEAD, NEUTRINO_ICON_MOVIEPLAYER); + dirMenu.addIntroItems(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD); - updateDirState(); - for(unsigned int i = 0; i < dirList->size() && i < MAX_DIR; i++) - { - snprintf(tmp, sizeof(tmp),"%d",i); - tmp[1]=0; - dirMenu.addItem( new CMenuForwarder ( (*dirList)[i].name.c_str(), (dirState[i] != DIR_STATE_UNKNOWN), dirOptionText[i], this,tmp)); - } - int ret = dirMenu.exec(NULL," "); - return ret; -} - -off64_t get_full_len(char * startname) -{ - off64_t fulllength=0; - struct stat64 s; - char spart[255]; - int part = 0; - - stat64(startname, &s); - do { - fulllength +=s.st_size; - snprintf(spart, sizeof(spart), "%s.%03d", startname, ++part); - } while (!stat64(spart, &s)); - return fulllength; + updateDirState(); + for (unsigned int i = 0; i < dirList->size() && i < MAX_DIR; i++) + { + snprintf(tmp, sizeof(tmp),"%d",i); + dirMenu.addItem(new CMenuForwarder ((*dirList)[i].name.c_str(), (dirState[i] != DIR_STATE_UNKNOWN), dirOptionText[i], this, tmp)); + } + int ret = dirMenu.exec(NULL," "); + return ret; } static void reset_atime(char * path, time_t tt) @@ -4384,7 +3850,7 @@ static off64_t truncate_movie(MI_MOVIE_INFO * minfo) int seconds = minfo->bookmarks.end; off64_t minuteoffset = len ? size / len : MINUTEOFFSET; minuteoffset = (minuteoffset / MP_TS_SIZE) * MP_TS_SIZE; - if(minuteoffset < 10000000 || minuteoffset > 90000000) + if (minuteoffset < 10000000 || minuteoffset > 90000000) minuteoffset = MINUTEOFFSET; off64_t secsize = minuteoffset/60; off64_t secoffset = secsize * seconds; @@ -4393,12 +3859,12 @@ static off64_t truncate_movie(MI_MOVIE_INFO * minfo) //printf("truncate: name %s size %lld len %d sec truncate to %d sec, new size %lld\n", name, size, len, seconds, secoffset); snprintf(spart, sizeof(spart), "%s", name); while (!stat64(spart, &s)) { - if(found) { + if (found) { //printf("truncate: check part %d file %s - TO REMOVE\n", part, spart); unlink(spart); } else { //printf("truncate: check part %d file %s - OK\n", part, spart); - if(secoffset < s.st_size) { + if (secoffset < s.st_size) { tpart = part; found = 1; } else @@ -4406,8 +3872,8 @@ static off64_t truncate_movie(MI_MOVIE_INFO * minfo) } snprintf(spart, sizeof(spart), "%s.%03d", name, ++part); } - if(found) { - if(tpart) + if (found) { + if (tpart) snprintf(spart, sizeof(spart), "%s.%03d", name, tpart); else snprintf(spart, sizeof(spart), "%s", name); @@ -4423,55 +3889,55 @@ printf("truncate: part %s to size %" PRId64 "\n", spart, secoffset); } struct mybook { - off64_t pos; - off64_t len; + off64_t pos; + off64_t len; bool ok; }; #define REAL_CUT 1 static int check_pes_start (unsigned char *packet) { - // PCKT: 47 41 91 37 07 50 3F 14 BF 04 FE B9 00 00 01 EA 00 00 8C ... - if (packet[0] == 0x47 && // sync byte 0x47 - (packet[1] & 0x40)) // pusi == 1 - { - /* good, now we have to check if it is video stream */ - unsigned char *pes = packet + 4; - if (packet[3] & 0x20) // adaptation field is present - pes += packet[4] + 1; + // PCKT: 47 41 91 37 07 50 3F 14 BF 04 FE B9 00 00 01 EA 00 00 8C ... + if (packet[0] == 0x47 && // sync byte 0x47 + (packet[1] & 0x40)) // pusi == 1 + { + /* good, now we have to check if it is video stream */ + unsigned char *pes = packet + 4; + if (packet[3] & 0x20) // adaptation field is present + pes += packet[4] + 1; - if (!memcmp(pes, "\x00\x00\x01", 3) && (pes[3] & 0xF0) == 0xE0) // PES start & video type - { - //return 1; //(pes[4] << 8) | pes[5]; // PES packet len - pes += 4; - while (pes < (packet + 188 - 4)) - if (!memcmp (pes, "\x00\x00\x01\xB8", 4)) // GOP detect - return 1; - else - pes++; - } - } - return 0; + if (!memcmp(pes, "\x00\x00\x01", 3) && (pes[3] & 0xF0) == 0xE0) // PES start & video type + { + //return 1; //(pes[4] << 8) | pes[5]; // PES packet len + pes += 4; + while (pes < (packet + 188 - 4)) + if (!memcmp(pes, "\x00\x00\x01\xB8", 4)) // GOP detect + return 1; + else + pes++; + } + } + return 0; } int find_gop(unsigned char *buf, int r) { - for(int j = 0; j < r/188; j++) { - if(check_pes_start(&buf[188*j])) { + for (int j = 0; j < r/188; j++) { + if (check_pes_start(&buf[188*j])) { return 188*j; } } return -1; } -#if 0 +#if 0 //never used off64_t fake_read(int fd, unsigned char *buf, size_t size, off64_t fsize) { - off64_t cur = lseek64 (fd, 0, SEEK_CUR); + off64_t cur = lseek64(fd, 0, SEEK_CUR); buf[0] = 0x47; if((cur + size) > fsize) - return (fsize - cur); + return(fsize - cur); else return size; } @@ -4479,12 +3945,12 @@ off64_t fake_read(int fd, unsigned char *buf, size_t size, off64_t fsize) #define PSI_SIZE 188*3 static int read_psi(char * spart, unsigned char * buf) { - int srcfd = open (spart, O_RDONLY | O_LARGEFILE); - if(srcfd >= 0) { + int srcfd = open(spart, O_RDONLY | O_LARGEFILE); + if (srcfd >= 0) { /* read psi */ - int r = read (srcfd, buf, PSI_SIZE); + int r = read(srcfd, buf, PSI_SIZE); close(srcfd); - if(r != PSI_SIZE) { + if (r != PSI_SIZE) { perror("read psi"); return -1; } @@ -4502,8 +3968,8 @@ static void save_info(CMovieInfo * cmovie, MI_MOVIE_INFO * minfo, char * dpart, ninfo.bookmarks.end = 0; ninfo.bookmarks.start = 0; ninfo.bookmarks.lastPlayStop = 0; - for(int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) { - if( ninfo.bookmarks.user[book_nr].pos != 0 && ninfo.bookmarks.user[book_nr].length > 0 ) { + for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) { + if (ninfo.bookmarks.user[book_nr].pos != 0 && ninfo.bookmarks.user[book_nr].length > 0) { ninfo.bookmarks.user[book_nr].pos = 0; ninfo.bookmarks.user[book_nr].length = 0; } @@ -4524,14 +3990,14 @@ static void find_new_part(char * npart, char * dpart,size_t dpart_len) int compare_book(const void *x, const void *y) { - struct mybook * px, * py; + struct mybook * px, * py; int dx, dy; - px = (struct mybook*) x; - py = (struct mybook*) y; + px = (struct mybook*) x; + py = (struct mybook*) y; dx = px->pos / (off64_t) 1024; dy = py->pos / (off64_t) 1024; int res = dx - dy; -//printf("SORT: %lld and %lld res %d\n", px->pos, py->pos, res); + //printf("SORT: %lld and %lld res %d\n", px->pos, py->pos, res); return res; } @@ -4542,12 +4008,12 @@ static int get_input(bool * stop) int retval = 0; * stop = false; g_RCInput->getMsg(&msg, &data, 1, false); - if(msg == CRCInput::RC_home) { - if(ShowMsg (LOCALE_MESSAGEBOX_INFO, "Cancel movie cut/split ?", CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes) { + if (msg == CRCInput::RC_home) { + if (ShowMsg(LOCALE_MESSAGEBOX_INFO, "Cancel movie cut/split ?", CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo) == CMessageBox::mbrYes) { * stop = true; } } - if(msg != CRCInput::RC_timeout) + if (msg != CRCInput::RC_timeout) retval |= 1; if (CNeutrinoApp::getInstance()->handleMsg(msg, data) & messages_return::cancel_all) retval |= 2; @@ -4583,7 +4049,7 @@ static off64_t cut_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie) off64_t bpos, bskip; unsigned char * buf = new unsigned char[BUF_SIZE]; - if(buf == 0) { + if (buf == 0) { perror("new"); return 0; } @@ -4591,11 +4057,11 @@ static off64_t cut_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie) CFrameBuffer * frameBuffer = CFrameBuffer::getInstance(); if (! timescale) timescale = new CProgressBar(); - timescale->setType(CProgressBar::PB_TIMESCALE); - int dx = 256; - int x = (((g_settings.screen_EndX- g_settings.screen_StartX)- dx) / 2) + g_settings.screen_StartX; - int y = g_settings.screen_EndY - 50; - frameBuffer->paintBoxRel (x + 40, y+12, 200, 15, COL_INFOBAR_PLUS_0);//TODO: remove unneeded box paints + timescale->setType(CProgressBar::PB_TIMESCALE); + int dx = 256; + int x = (((g_settings.screen_EndX- g_settings.screen_StartX)- dx) / 2) + g_settings.screen_StartX; + int y = g_settings.screen_EndY - 50; + frameBuffer->paintBoxRel(x + 40, y+12, 200, 15, COL_INFOBAR_PLUS_0);//TODO: remove unneeded box paints timescale->setProgress(x + 41, y + 12, 200, 15, percent, 100); timescale->paint(); int len = minfo->length; @@ -4603,55 +4069,55 @@ static off64_t cut_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie) //off64_t secsize = len ? size/len/60 : 511040; off64_t minuteoffset = len ? size / len : MINUTEOFFSET; minuteoffset = (minuteoffset / MP_TS_SIZE) * MP_TS_SIZE; - if(minuteoffset < 5000000 || minuteoffset > 190000000) + if (minuteoffset < 5000000 || minuteoffset > 190000000) minuteoffset = MINUTEOFFSET; off64_t secsize = minuteoffset/60; newsize = size; - if(minfo->bookmarks.start != 0) { - books[bcount].pos = 0; - books[bcount].len = (minfo->bookmarks.start * secsize)/188 * 188; - if(books[bcount].len > SAFE_GOP) - books[bcount].len -= SAFE_GOP; - books[bcount].ok = 1; -printf("cut: start bookmark %d at %" PRId64 " len %" PRId64 "\n", bcount, books[bcount].pos, books[bcount].len); - bcount++; + if (minfo->bookmarks.start != 0) { + books[bcount].pos = 0; + books[bcount].len = (minfo->bookmarks.start * secsize)/188 * 188; + if (books[bcount].len > SAFE_GOP) + books[bcount].len -= SAFE_GOP; + books[bcount].ok = 1; + printf("cut: start bookmark %d at %" PRId64 " len %" PRId64 "\n", bcount, books[bcount].pos, books[bcount].len); + bcount++; } - for(int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) { - if( minfo->bookmarks.user[book_nr].pos != 0 && minfo->bookmarks.user[book_nr].length > 0 ) { + for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) { + if (minfo->bookmarks.user[book_nr].pos != 0 && minfo->bookmarks.user[book_nr].length > 0) { books[bcount].pos = (minfo->bookmarks.user[book_nr].pos * secsize)/188 * 188; books[bcount].len = (minfo->bookmarks.user[book_nr].length * secsize)/188 * 188; - if(books[bcount].len > SAFE_GOP) + if (books[bcount].len > SAFE_GOP) books[bcount].len -= SAFE_GOP; books[bcount].ok = 1; -printf("cut: jump bookmark %d at %" PRId64 " len %" PRId64 " -> skip to %" PRId64 "\n", bcount, books[bcount].pos, books[bcount].len, books[bcount].pos+books[bcount].len); + printf("cut: jump bookmark %d at %" PRId64 " len %" PRId64 " -> skip to %" PRId64 "\n", bcount, books[bcount].pos, books[bcount].len, books[bcount].pos+books[bcount].len); bcount++; } } - if(minfo->bookmarks.end != 0) { - books[bcount].pos = ((off64_t) minfo->bookmarks.end * secsize)/188 * 188; - books[bcount].len = size - books[bcount].pos; - //if(books[bcount].pos > SAFE_GOP) - // books[bcount].pos -= SAFE_GOP; - books[bcount].ok = 1; -printf("cut: end bookmark %d at %" PRId64 "\n", bcount, books[bcount].pos); - bcount++; + if (minfo->bookmarks.end != 0) { + books[bcount].pos = ((off64_t) minfo->bookmarks.end * secsize)/188 * 188; + books[bcount].len = size - books[bcount].pos; + //if (books[bcount].pos > SAFE_GOP) + // books[bcount].pos -= SAFE_GOP; + books[bcount].ok = 1; + printf("cut: end bookmark %d at %" PRId64 "\n", bcount, books[bcount].pos); + bcount++; } -printf("\n"); - if(!bcount){ + printf("\n"); + if (!bcount) { delete [] buf; return 0; } qsort(books, bcount, sizeof(struct mybook), compare_book); - for(i = 0; i < bcount; i++) { - if(books[i].ok) { + for (i = 0; i < bcount; i++) { + if (books[i].ok) { printf("cut: bookmark %d at %" PRId64 " len %" PRId64 " -> skip to %" PRId64 "\n", i, books[i].pos, books[i].len, books[i].pos+books[i].len); newsize -= books[i].len; off64_t curend = books[i].pos + books[i].len; - for(int j = i + 1; j < bcount; j++) { - if((books[j].pos > books[i].pos) && (books[j].pos < curend)) { + for (int j = i + 1; j < bcount; j++) { + if ((books[j].pos > books[i].pos) && (books[j].pos < curend)) { off64_t newend = books[j].pos + books[j].len; - if(newend > curend) { + if (newend > curend) { printf("cut: bad bookmark %d, position %" PRId64 " len %" PRId64 ", ajusting..\n", j, books[j].pos, books[j].len); books[j].pos = curend; books[j].len = newend - curend; @@ -4665,13 +4131,13 @@ printf("\n"); } snprintf(npart, sizeof(npart), "%s", name); char * ptr = strstr(npart+strlen(npart)-3, ".ts"); - if(ptr) + if (ptr) *ptr = 0; - find_new_part(npart, dpart, sizeof(dpart) ); -tt = time(0); -printf("\n********* new file %s expected size %" PRId64 ", start time %s", dpart, newsize, ctime (&tt)); - dstfd = open (dpart, O_CREAT|O_WRONLY|O_TRUNC| O_LARGEFILE, 0644); - if(dstfd < 0) { + find_new_part(npart, dpart, sizeof(dpart)); + tt = time(0); + printf("\n********* new file %s expected size %" PRId64 ", start time %s", dpart, newsize, ctime(&tt)); + dstfd = open(dpart, O_CREAT|O_WRONLY|O_TRUNC| O_LARGEFILE, 0644); + if (dstfd < 0) { perror(dpart); delete [] buf; return 0; @@ -4681,7 +4147,7 @@ printf("\n********* new file %s expected size %" PRId64 ", start time %s", dpart off64_t offset = 0; spos = 0; snprintf(spart, sizeof(spart), "%s", name); - if(read_psi(spart, &psi[0])) { + if (read_psi(spart, &psi[0])) { perror(spart); goto ret_err; } @@ -4689,50 +4155,50 @@ printf("\n********* new file %s expected size %" PRId64 ", start time %s", dpart bpos = books[i].pos; bskip = books[i].len; while (!stat64(spart, &s)) { -printf("cut: open part %d file %s size %" PRId64 " offset %" PRId64 " book pos %" PRId64 "\n", part, spart, s.st_size, offset, bpos); - srcfd = open (spart, O_RDONLY | O_LARGEFILE); - if(srcfd < 0) { + printf("cut: open part %d file %s size %" PRId64 " offset %" PRId64 " book pos %" PRId64 "\n", part, spart, s.st_size, offset, bpos); + srcfd = open(spart, O_RDONLY | O_LARGEFILE); + if (srcfd < 0) { perror(spart); goto ret_err; } - if(offset >= s.st_size) { + if (offset >= s.st_size) { offset -= s.st_size; bpos -= s.st_size; goto next_file; } - lseek64 (srcfd, offset, SEEK_SET); + lseek64(srcfd, offset, SEEK_SET); sdone = offset; - while(true) { + while (true) { off64_t until = bpos; -printf("\ncut: reading from %" PRId64 " to %" PRId64 " (%" PRId64 ") want gop %d\n", sdone, until, until - sdone, need_gop); - while(sdone < until) { + printf("\ncut: reading from %" PRId64 " to %" PRId64 " (%" PRId64 ") want gop %d\n", sdone, until, until - sdone, need_gop); + while (sdone < until) { bool stop; int msg = get_input(&stop); was_cancel = msg & 2; - if(stop) { + if (stop) { close(srcfd); unlink(dpart); retval = 1; goto ret_err; } - if(msg) { + if (msg) { timescale->reset(); - frameBuffer->paintBoxRel (x + 40, y+12, 200, 15, COL_INFOBAR_PLUS_0);//TODO: remove unneeded box paints + frameBuffer->paintBoxRel(x + 40, y+12, 200, 15, COL_INFOBAR_PLUS_0);//TODO: remove unneeded box paints } size_t toread = (until-sdone) > BUF_SIZE ? BUF_SIZE : until - sdone; #if REAL_CUT - r = read (srcfd, buf, toread); + r = read(srcfd, buf, toread); #else - r = fake_read (srcfd, buf, toread, s.st_size); + r = fake_read(srcfd, buf, toread, s.st_size); #endif - if(r > 0) { + if (r > 0) { int wptr = 0; -// FIXME: TEST -if(r != BUF_SIZE) printf("****** short read ? %d\n", r); -if(buf[0] != 0x47) printf("cut: buffer not aligned at %" PRId64 "\n", sdone); - if(need_gop) { + // FIXME: TEST + if (r != BUF_SIZE) printf("****** short read ? %d\n", r); + if (buf[0] != 0x47) printf("cut: buffer not aligned at %" PRId64 "\n", sdone); + if (need_gop) { int gop = find_gop(buf, r); - if(gop >= 0) { + if (gop >= 0) { printf("cut: GOP found at %" PRId64 " offset %d\n", (off64_t)(sdone+gop), gop); newsize -= gop; wptr = gop; @@ -4747,47 +4213,47 @@ if(buf[0] != 0x47) printf("cut: buffer not aligned at %" PRId64 "\n", sdone); timescale->paint(); #if REAL_CUT int wr = write(dstfd, &buf[wptr], r-wptr); - if(wr < (r-wptr)) { + if (wr < (r-wptr)) { perror(dpart); close(srcfd); goto ret_err; } #endif - } else if(sdone < s.st_size) { + } else if (sdone < s.st_size) { /* read error ? */ close(srcfd); perror(spart); goto ret_err; } else { -printf("cut: next file -> sdone %" PRId64 " spos %" PRId64 " bpos %" PRId64 "\n", sdone, spos, bpos); + printf("cut: next file -> sdone %" PRId64 " spos %" PRId64 " bpos %" PRId64 "\n", sdone, spos, bpos); offset = 0; bpos -= sdone; goto next_file; } } -printf("cut: current file pos %" PRId64 " write pos %" PRId64 " book pos %" PRId64 " still to read %" PRId64 "\n", sdone, spos, bpos, sdone - bpos); + printf("cut: current file pos %" PRId64 " write pos %" PRId64 " book pos %" PRId64 " still to read %" PRId64 "\n", sdone, spos, bpos, sdone - bpos); need_gop = 1; offset = bpos + bskip; i++; - while(i < bcount) { - if(books[i].ok) + while (i < bcount) { + if (books[i].ok) break; else i++; } - if(i < bcount) { + if (i < bcount) { bpos = books[i].pos; bskip = books[i].len; } else bpos = size; -printf("cut: next bookmark pos: %" PRId64 " abs %" PRId64 " relative next file pos %" PRId64 " cur file size %" PRId64 "\n", bpos, bpos - tdone, offset, s.st_size); + printf("cut: next bookmark pos: %" PRId64 " abs %" PRId64 " relative next file pos %" PRId64 " cur file size %" PRId64 "\n", bpos, bpos - tdone, offset, s.st_size); bpos -= tdone; /* all books from 0, converting to 0 + total size skipped */ - if(offset >= s.st_size) { + if (offset >= s.st_size) { offset -= s.st_size; bpos -= s.st_size; goto next_file; } - lseek64 (srcfd, offset, SEEK_SET); + lseek64(srcfd, offset, SEEK_SET); sdone = offset; } next_file: @@ -4795,16 +4261,16 @@ next_file: close(srcfd); snprintf(spart, sizeof(spart), "%s.%03d", name, ++part); } - tt1 = time(0); -printf("********* total written %" PRId64 " tooks %ld secs end time %s", spos, tt1-tt, ctime (&tt1)); + tt1 = time(0); + printf("********* total written %" PRId64 " tooks %ld secs end time %s", spos, tt1-tt, ctime(&tt1)); save_info(cmovie, minfo, dpart, spos, secsize); retval = 1; - lseek64 (dstfd, 0, SEEK_SET); + lseek64(dstfd, 0, SEEK_SET); ret_err: close(dstfd); delete [] buf; - if(was_cancel) + if (was_cancel) g_RCInput->postMsg(CRCInput::RC_home, 0); return retval; } @@ -4833,7 +4299,7 @@ static off64_t copy_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie, bool onefi int retval = 0; unsigned char * buf = new unsigned char[BUF_SIZE]; - if(buf == 0) { + if (buf == 0) { perror("new"); return 0; } @@ -4842,77 +4308,77 @@ static off64_t copy_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie, bool onefi off64_t size = minfo->file.Size; off64_t minuteoffset = len ? size / len : MINUTEOFFSET; minuteoffset = (minuteoffset / MP_TS_SIZE) * MP_TS_SIZE; - if(minuteoffset < 5000000 || minuteoffset > 190000000) + if (minuteoffset < 5000000 || minuteoffset > 190000000) minuteoffset = MINUTEOFFSET; off64_t secsize = minuteoffset/60; //off64_t secsize = len ? size/len/60 : 511040; -printf("copy: len %d minute %" PRId64 " second %" PRId64 "\n", len, len ? size/len : 511040*60, secsize); + printf("copy: len %d minute %" PRId64 " second %" PRId64 "\n", len, len ? size/len : 511040*60, secsize); CFrameBuffer * frameBuffer = CFrameBuffer::getInstance(); - if (! timescale) + if (!timescale) timescale = new CProgressBar(); - timescale->setType(CProgressBar::PB_TIMESCALE); - int dx = 256; - int x = (((g_settings.screen_EndX- g_settings.screen_StartX)- dx) / 2) + g_settings.screen_StartX; - int y = g_settings.screen_EndY - 50; - frameBuffer->paintBoxRel (x + 40, y+12, 200, 15, COL_INFOBAR_PLUS_0); //TODO: remove unneeded box paints + timescale->setType(CProgressBar::PB_TIMESCALE); + int dx = 256; + int x = (((g_settings.screen_EndX- g_settings.screen_StartX)- dx) / 2) + g_settings.screen_StartX; + int y = g_settings.screen_EndY - 50; + frameBuffer->paintBoxRel(x + 40, y+12, 200, 15, COL_INFOBAR_PLUS_0); //TODO: remove unneeded box paints timescale->setProgress(x + 41, y + 12, 200, 15, percent, 100); timescale->paint(); newsize = 0; - for(int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) { - if( minfo->bookmarks.user[book_nr].pos != 0 && minfo->bookmarks.user[book_nr].length > 0 ) { + for (int book_nr = 0; book_nr < MI_MOVIE_BOOK_USER_MAX; book_nr++) { + if (minfo->bookmarks.user[book_nr].pos != 0 && minfo->bookmarks.user[book_nr].length > 0) { books[bcount].pos = (minfo->bookmarks.user[book_nr].pos * secsize)/188 * 188; - if(books[bcount].pos > SAFE_GOP) + if (books[bcount].pos > SAFE_GOP) books[bcount].pos -= SAFE_GOP; books[bcount].len = (minfo->bookmarks.user[book_nr].length * secsize)/188 * 188; books[bcount].ok = 1; -printf("copy: jump bookmark %d at %" PRId64 " len %" PRId64 "\n", bcount, books[bcount].pos, books[bcount].len); + printf("copy: jump bookmark %d at %" PRId64 " len %" PRId64 "\n", bcount, books[bcount].pos, books[bcount].len); newsize += books[bcount].len; bcount++; } } - if(!bcount){ + if (!bcount) { delete [] buf; return 0; } -tt = time(0); -printf("********* %d boormarks, to %s file(s), expected size to copy %" PRId64 ", start time %s", bcount, onefile ? "one" : "many", newsize, ctime (&tt)); + tt = time(0); + printf("********* %d boormarks, to %s file(s), expected size to copy %" PRId64 ", start time %s", bcount, onefile ? "one" : "many", newsize, ctime(&tt)); snprintf(npart, sizeof(npart), "%s", name); char * ptr = strstr(npart+strlen(npart)-3, ".ts"); - if(ptr) + if (ptr) *ptr = 0; snprintf(spart, sizeof(spart), "%s", name); - srcfd = open (spart, O_RDONLY | O_LARGEFILE); - if(read_psi(spart, &psi[0])) { + srcfd = open(spart, O_RDONLY | O_LARGEFILE); + if (read_psi(spart, &psi[0])) { perror(spart); goto ret_err; } - for(i = 0; i < bcount; i++) { -printf("\ncopy: processing bookmark %d at %" PRId64 " len %" PRId64 "\n", i, books[i].pos, books[i].len); + for (i = 0; i < bcount; i++) { + printf("\ncopy: processing bookmark %d at %" PRId64 " len %" PRId64 "\n", i, books[i].pos, books[i].len); off64_t bpos = books[i].pos; off64_t bskip = books[i].len; part = 0; snprintf(spart, sizeof(spart), "%s", name); int sres; while (!(sres = stat64(spart, &s))) { - if(bpos >= s.st_size) { + if (bpos >= s.st_size) { bpos -= s.st_size; snprintf(spart, sizeof(spart), "%s.%03d", name, ++part); -//printf("copy: check src part %s\n", spart); + //printf("copy: check src part %s\n", spart); continue; } break; } - if(sres != 0) { + if (sres != 0) { printf("file for bookmark %d with offset %" PRId64 " not found\n", i, books[i].pos); continue; } - if(!dst_done || !onefile) { - find_new_part(npart, dpart, sizeof(dpart) ); - dstfd = open (dpart, O_CREAT|O_WRONLY|O_TRUNC| O_LARGEFILE, 0644); -printf("copy: new file %s fd %d\n", dpart, dstfd); - if(dstfd < 0) { + if (!dst_done || !onefile) { + find_new_part(npart, dpart, sizeof(dpart)); + dstfd = open(dpart, O_CREAT|O_WRONLY|O_TRUNC| O_LARGEFILE, 0644); + printf("copy: new file %s fd %d\n", dpart, dstfd); + if (dstfd < 0) { printf("failed to open %s\n", dpart); goto ret_err;; } @@ -4923,46 +4389,46 @@ printf("copy: new file %s fd %d\n", dpart, dstfd); need_gop = 1; next_file: stat64(spart, &s); -printf("copy: open part %d file %s size %" PRId64 " offset %" PRId64 "\n", part, spart, s.st_size, bpos); - srcfd = open (spart, O_RDONLY | O_LARGEFILE); - if(srcfd < 0) { + printf("copy: open part %d file %s size %" PRId64 " offset %" PRId64 "\n", part, spart, s.st_size, bpos); + srcfd = open(spart, O_RDONLY | O_LARGEFILE); + if (srcfd < 0) { printf("failed to open %s\n", spart); close(dstfd); goto ret_err; } - lseek64 (srcfd, bpos, SEEK_SET); + lseek64(srcfd, bpos, SEEK_SET); sdone = bpos; off64_t until = bpos + bskip; -printf("copy: read from %" PRId64 " to %" PRId64 " read size %d want gop %d\n", bpos, until, BUF_SIZE, need_gop); - while(sdone < until) { + printf("copy: read from %" PRId64 " to %" PRId64 " read size %d want gop %d\n", bpos, until, BUF_SIZE, need_gop); + while (sdone < until) { size_t toread = (until-sdone) > BUF_SIZE ? BUF_SIZE : until - sdone; bool stop; int msg = get_input(&stop); was_cancel = msg & 2; - if(stop) { + if (stop) { close(srcfd); close(dstfd); unlink(dpart); retval = 1; goto ret_err; } - if(msg) { - frameBuffer->paintBoxRel (x + 40, y+12, 200, 15, COL_INFOBAR_PLUS_0);//TODO: remove unneeded box paints + if (msg) { + frameBuffer->paintBoxRel(x + 40, y+12, 200, 15, COL_INFOBAR_PLUS_0);//TODO: remove unneeded box paints timescale->reset(); } #if REAL_CUT - r = read (srcfd, buf, toread); + r = read(srcfd, buf, toread); #else - r = fake_read (srcfd, buf, toread, s.st_size); + r = fake_read(srcfd, buf, toread, s.st_size); #endif - if(r > 0) { + if (r > 0) { int wptr = 0; -// FIXME: TEST -if(r != BUF_SIZE) printf("****** short read ? %d\n", r); -if(buf[0] != 0x47) printf("copy: buffer not aligned at %" PRId64 "\n", sdone); - if(need_gop) { + // FIXME: TEST + if (r != BUF_SIZE) printf("****** short read ? %d\n", r); + if (buf[0] != 0x47) printf("copy: buffer not aligned at %" PRId64 "\n", sdone); + if (need_gop) { int gop = find_gop(buf, r); - if(gop >= 0) { + if (gop >= 0) { printf("cut: GOP found at %" PRId64 " offset %d\n", (off64_t)(sdone+gop), gop); newsize -= gop; wptr = gop; @@ -4979,21 +4445,21 @@ if(buf[0] != 0x47) printf("copy: buffer not aligned at %" PRId64 "\n", sdone); timescale->paint(); #if REAL_CUT int wr = write(dstfd, &buf[wptr], r-wptr); - if(wr < (r-wptr)) { + if (wr < (r-wptr)) { printf("write to %s failed\n", dpart); close(srcfd); close(dstfd); goto ret_err; } #endif - } else if(sdone < s.st_size) { + } else if (sdone < s.st_size) { /* read error ? */ printf("%s: read failed\n", spart); close(srcfd); close(dstfd); goto ret_err; } else { -printf("copy: -> next file, file pos %" PRId64 " written %" PRId64 " left %" PRId64 "\n", sdone, spos, bskip); + printf("copy: -> next file, file pos %" PRId64 " written %" PRId64 " left %" PRId64 "\n", sdone, spos, bskip); bpos = 0; close(srcfd); snprintf(spart, sizeof(spart), "%s.%03d", name, ++part); @@ -5002,23 +4468,23 @@ printf("copy: -> next file, file pos %" PRId64 " written %" PRId64 " left %" PRI } /* while(sdone < until) */ close(srcfd); - if(!onefile) { + if (!onefile) { close(dstfd); save_info(cmovie, minfo, dpart, spos, secsize); -time_t tt1 = time(0); -printf("copy: ********* %s: total written %" PRId64 " took %ld secs\n", dpart, spos, tt1-tt); + time_t tt1 = time(0); + printf("copy: ********* %s: total written %" PRId64 " took %ld secs\n", dpart, spos, tt1-tt); } } /* for all books */ - if(onefile) { + if (onefile) { close(dstfd); save_info(cmovie, minfo, dpart, spos, secsize); -time_t tt1 = time(0); -printf("copy: ********* %s: total written %" PRId64 " took %ld secs\n", dpart, spos, tt1-tt); + time_t tt1 = time(0); + printf("copy: ********* %s: total written %" PRId64 " took %ld secs\n", dpart, spos, tt1-tt); } retval = 1; ret_err: delete [] buf; - if(was_cancel) + if (was_cancel) g_RCInput->postMsg(CRCInput::RC_home, 0); return retval; } diff --git a/src/gui/moviebrowser.h b/src/gui/moviebrowser.h index 86e43a7b3..4c327de7f 100644 --- a/src/gui/moviebrowser.h +++ b/src/gui/moviebrowser.h @@ -263,8 +263,7 @@ class CMovieBrowser : public CMenuTarget int Dirs_Selectable; // for FileBrowser compatibility, not used in MovieBrowser private: // Variables - //CFBWindow* m_pcWindow; - CFrameBuffer * m_pcWindow; + CFrameBuffer * framebuffer; CListFrame* m_pcBrowser; CListFrame* m_pcLastPlay; @@ -298,7 +297,7 @@ class CMovieBrowser : public CMenuTarget unsigned int m_currentRecordSelection; unsigned int m_currentPlaySelection; unsigned int m_currentFilterSelection; - unsigned int m_prevBrowserSelection; + unsigned int m_prevBrowserSelection; unsigned int m_prevRecordSelection; unsigned int m_prevPlaySelection; @@ -337,7 +336,6 @@ class CMovieBrowser : public CMenuTarget std::vector PicExts; std::string getScreenshotName(std::string movie); - //bool restart_mb_timeout; int menu_ret; cYTFeedParser ytparser; @@ -359,7 +357,6 @@ class CMovieBrowser : public CMenuTarget void refreshYTMenu(); public: // Functions //////////////////////////////////////////////////////////7 - CMovieBrowser(const char* path); //P1 CMovieBrowser(); //P1 ~CMovieBrowser(); //P1 int exec(const char* path); //P1 @@ -373,24 +370,21 @@ class CMovieBrowser : public CMenuTarget void fileInfoStale(void); // call this function to force the Moviebrowser to reload all movie information from HD bool readDir(const std::string & dirname, CFileList* flist); - bool readDir_vlc(const std::string & dirname, CFileList* flist); - bool readDir_std(const std::string & dirname, CFileList* flist); bool delFile(CFile& file); - bool delFile_vlc(CFile& file); - bool delFile_std(CFile& file); int getMenuRet() { return menu_ret; } int getMode() { return show_mode; } - void setMode(int mode) { show_mode = mode; } + void setMode(int mode) { + if (show_mode != mode) + m_file_info_stale = true; + show_mode = mode; + } private: //Functions ///// MovieBrowser init /////////////// void init(void); //P1 void initGlobalSettings(void); //P1 void initFrames(void); -#if 0 - void initDevelopment(void); //P1 for development testing only -#endif void initRows(void); void reinit(void); //P1 @@ -403,7 +397,6 @@ class CMovieBrowser : public CMenuTarget void refreshBrowserList(void); //P1 void refreshFilterList(void); //P1 void refreshMovieInfo(void); //P1 - void refreshBookmarkList(void); // P3 int refreshFoot(bool show = true); //P2 void refreshTitle(void); //P2 void refreshInfo(void); // P2 @@ -416,8 +409,9 @@ class CMovieBrowser : public CMenuTarget bool onButtonPressLastPlayList(neutrino_msg_t msg); // P2 bool onButtonPressLastRecordList(neutrino_msg_t msg); // P2 bool onButtonPressFilterList(neutrino_msg_t msg); // P2 - bool onButtonPressBookmarkList(neutrino_msg_t msg); // P3 bool onButtonPressMovieInfoList(neutrino_msg_t msg); // P2 + void markItem(CListFrame *list); + void scrollBrowserItem(bool next, bool page); void onSetFocus(MB_FOCUS new_focus); // P2 void onSetFocusNext(void); // P2 void onSetFocusPrev(void); // P2