Screeansaver: add optional random images

This commit is contained in:
2015-12-27 19:46:14 +01:00
parent 6952d85ae9
commit ff667dfef3
8 changed files with 22 additions and 1 deletions

View File

@@ -1442,6 +1442,12 @@ void COsdSetup::showOsdScreensaverSetup(CMenuWidget *menu_screensaver)
mf->setHint("", LOCALE_MENU_HINT_SCREENSAVER_DIR);
menu_screensaver->addItem(mf);
screensaverNotifier->addItem(mf);
// screensaver random mode
CMenuOptionChooser* oc = new CMenuOptionChooser(LOCALE_SCREENSAVER_RANDOM, &g_settings.screensaver_random, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true);
oc->setHint("", LOCALE_MENU_HINT_SCREENSAVER_RANDOM);
menu_screensaver->addItem(oc);
screensaverNotifier->addItem(oc);
}
void COsdSetup::paintWindowSize(int w, int h)

View File

@@ -234,7 +234,11 @@ void CScreenSaver::PaintPicture()
dprintf(DEBUG_INFO, "[CScreenSaver] %s - %d : %s\n", __func__, __LINE__, v_bg_files.at(index).c_str());
m_viewer->ShowImage(v_bg_files.at(index).c_str(), false /*unscaled*/);
index++;
if (!g_settings.screensaver_random)
index++;
else
index = rand() % v_bg_files.size();
if(index == v_bg_files.size())
index = 0;
}