gui/moviebrowser: caching fixes

Conflicts:
	src/gui/moviebrowser.cpp


Origin commit data
------------------
Branch: ni/coolstream
Commit: 891170490e
Author: martii <m4rtii@gmx.de>
Date: 2013-11-16 (Sat, 16 Nov 2013)



------------------
This commit was generated by Migit
This commit is contained in:
martii
2013-11-16 12:23:48 +01:00
committed by [CST] Focus
parent 070b342de4
commit b94bd9697b
5 changed files with 101 additions and 37 deletions

View File

@@ -1100,6 +1100,7 @@ int CMovieBrowser::exec(const char* path)
}
else if ((show_mode == MB_SHOW_YT) && (msg == CRCInput::RC_record) && m_movieSelectionHandler)
{
m_movieSelectionHandler->source = (show_mode == MB_SHOW_YT) ? MI_MOVIE_INFO::YT : MI_MOVIE_INFO::NK;
if (cYTCache::getInstance()->addToCache(m_movieSelectionHandler)) {
const char *format = g_Locale->getText(LOCALE_MOVIEBROWSER_YT_CACHE_ADD);
char buf[1024];
@@ -3762,27 +3763,29 @@ neutrino_locale_t CMovieBrowser::getFeedLocale(void)
int CYTCacheSelectorTarget::exec(CMenuTarget* /*parent*/, const std::string & actionKey)
{
MI_MOVIE_INFO::miSource source = (movieBrowser->show_mode == MB_SHOW_YT) ? MI_MOVIE_INFO::YT : MI_MOVIE_INFO::NK;
int selected = movieBrowser->yt_menue->getSelected();
if (actionKey == "cancel_all") {
cYTCache::getInstance()->cancelAll();
cYTCache::getInstance()->cancelAll(source);
} else if (actionKey == "completed_clear") {
cYTCache::getInstance()->clearCompleted();
cYTCache::getInstance()->clearCompleted(source);
} else if (actionKey == "failed_clear") {
cYTCache::getInstance()->clearFailed();
} else if (actionKey == "rc_spkr" && selected >= movieBrowser->yt_pending_offset && selected < movieBrowser->yt_completed_offset) {
cYTCache::getInstance()->clearFailed(source);
} else if (actionKey == "rc_spkr" && movieBrowser->yt_pending_offset && selected >= movieBrowser->yt_pending_offset && selected < movieBrowser->yt_pending_end) {
cYTCache::getInstance()->cancel(&movieBrowser->yt_pending[selected - movieBrowser->yt_pending_offset]);
} else if (actionKey == "rc_spkr" && selected >= movieBrowser->yt_completed_offset && selected < movieBrowser->yt_failed_offset) {
} else if (actionKey == "rc_spkr" && movieBrowser->yt_completed_offset && selected >= movieBrowser->yt_completed_offset && selected < movieBrowser->yt_completed_end) {
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_completed_offset) {
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)
cYTCache::getInstance()->cancel(&movieBrowser->yt_pending[selected - movieBrowser->yt_pending_offset]);
else
return menu_return::RETURN_NONE;
} else if (movieBrowser->yt_completed_offset && selected >= movieBrowser->yt_completed_offset && selected < movieBrowser->yt_failed_offset) {
} else if (movieBrowser->yt_completed_offset && selected >= movieBrowser->yt_completed_offset && selected < movieBrowser->yt_completed_end) {
// FIXME -- anything sensible to do here?
return menu_return::RETURN_NONE;
} else if (movieBrowser->yt_failed_offset && selected >= movieBrowser->yt_failed_offset && selected < movieBrowser->yt_menue->getItemsCount()){
} else if (movieBrowser->yt_failed_offset && selected >= movieBrowser->yt_failed_offset && selected < movieBrowser->yt_failed_end){
cYTCache::getInstance()->clearFailed(&movieBrowser->yt_failed[selected - movieBrowser->yt_failed_offset]);
cYTCache::getInstance()->addToCache(&movieBrowser->yt_failed[selected - movieBrowser->yt_failed_offset]);
const char *format = g_Locale->getText(LOCALE_MOVIEBROWSER_YT_CACHE_ADD);
@@ -3808,13 +3811,17 @@ void CMovieBrowser::refreshYTMenu()
delete m;
yt_menue->removeItem(item_id);
}
yt_pending = cYTCache::getInstance()->getPending();
yt_completed = cYTCache::getInstance()->getCompleted();
yt_failed = cYTCache::getInstance()->getFailed();
MI_MOVIE_INFO::miSource source = (show_mode == MB_SHOW_YT) ? MI_MOVIE_INFO::YT : MI_MOVIE_INFO::NK;
yt_pending = cYTCache::getInstance()->getPending(source);
yt_completed = cYTCache::getInstance()->getCompleted(source);
yt_failed = cYTCache::getInstance()->getFailed(source);
yt_pending_offset = 0;
yt_completed_offset = 0;
yt_failed_offset = 0;
yt_pending_end = 0;
yt_completed_end = 0;
yt_failed_end = 0;
if (!yt_pending.empty()) {
yt_menue->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_MOVIEBROWSER_YT_PENDING));
@@ -3825,6 +3832,7 @@ void CMovieBrowser::refreshYTMenu()
for (std::vector<MI_MOVIE_INFO>::iterator it = yt_pending.begin(); it != yt_pending.end(); ++it, ++i) {
yt_menue->addItem(new CMenuForwarder((*it).file.Name.c_str(), true, NULL, ytcache_selector));
}
yt_pending_end = yt_menue->getItemsCount();
}
if (!yt_completed.empty()) {
@@ -3836,6 +3844,7 @@ void CMovieBrowser::refreshYTMenu()
for (std::vector<MI_MOVIE_INFO>::iterator it = yt_completed.begin(); it != yt_completed.end(); ++it, ++i) {
yt_menue->addItem(new CMenuForwarder((*it).file.Name.c_str(), true, NULL, ytcache_selector));
}
yt_completed_end = yt_menue->getItemsCount();
}
if (!yt_failed.empty()) {
@@ -3847,6 +3856,7 @@ void CMovieBrowser::refreshYTMenu()
for (std::vector<MI_MOVIE_INFO>::iterator it = yt_failed.begin(); it != yt_failed.end(); ++it, ++i) {
yt_menue->addItem(new CMenuForwarder((*it).file.Name.c_str(), true, NULL, ytcache_selector));
}
yt_failed_end = yt_menue->getItemsCount();
}
CFrameBuffer::getInstance()->Clear(); // due to possible width change