diff -ruN image-0.2.3/menu-image.c image-0.2.3-mg/menu-image.c --- image-0.2.3/menu-image.c 2004-07-29 18:51:58.000000000 +0200 +++ image-0.2.3-mg/menu-image.c 2005-10-04 22:40:20.000000000 +0200 @@ -27,6 +27,7 @@ #include #include #include +#include #include #include "image.h" @@ -37,6 +38,7 @@ #include "i18n.h" #include +#include // --- cMenuImageBrowse --------------------------------------------------------- @@ -88,24 +90,31 @@ char *name = lastselect->Path(); char *full = source->BuildName(name); cDirItem *item = cMenuBrowse::GetSelected(); - if(item) { - - //FIXME use a nonblocking way - //OSD_InfoMsg(tr("Building SlideShow...")); - - cSlideShow *newss = new cSlideShow(item); - if(newss->Load() && newss->Count()) { - - cImageControl::SetSlideShow(newss); - state = osEnd; - } - else { - OSD_ErrorMsg(tr("No Files!")); - delete newss; - state = osContinue; - } - lastselect = NULL; - } + if(item) + { + + //FIXME use a nonblocking way + //OSD_InfoMsg(tr("Building SlideShow...")); + + // check, whether we can use a different plugin for replay + if( !cPluginManager::CallFirstService( "ReplayDirectoryImages", dirname(full) ) ) + { + + cSlideShow *newss = new cSlideShow(item); + if(newss->Load() && newss->Count()) + { + cImageControl::SetSlideShow(newss); + state = osEnd; + } + else + { + OSD_ErrorMsg(tr("No Files!")); + delete newss; + state = osContinue; + } + lastselect = NULL; + } + } free(full); free(name); }