Index: xbmc/ApplicationMessenger.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/ApplicationMessenger.cpp,v retrieving revision 1.21 diff -u -r1.21 ApplicationMessenger.cpp --- xbmc/ApplicationMessenger.cpp 30 Nov 2004 21:34:09 -0000 1.21 +++ xbmc/ApplicationMessenger.cpp 3 Feb 2005 08:38:37 -0000 @@ -283,6 +283,32 @@ SendMessage(tMsg); } +void CApplicationMessenger::PictureListShow(vector filenames) +{ + CGUIWindowSlideShow *pSlideShow = (CGUIWindowSlideShow *)m_gWindowManager.GetWindow(WINDOW_SLIDESHOW); + if (!pSlideShow) return; + + // stop playing file + if(g_application.IsPlayingVideo()) g_application.StopPlaying(); + + if (m_gWindowManager.GetActiveWindow() == WINDOW_FULLSCREEN_VIDEO) + m_gWindowManager.PreviousWindow(); + + g_application.ResetScreenSaver(); + g_application.ResetScreenSaverWindow(); + + g_graphicsContext.Lock(); + pSlideShow->Reset(); + if (m_gWindowManager.GetActiveWindow() != WINDOW_SLIDESHOW) + m_gWindowManager.ActivateWindow(WINDOW_SLIDESHOW); + + for (int i = 0; i < filenames.size(); i++) + pSlideShow->Add(filenames[i]); + pSlideShow->Select(filenames[0]); + pSlideShow->StartSlideShow(); + g_graphicsContext.Unlock(); +} + void CApplicationMessenger::Shutdown() { ThreadMessage tMsg = {TMSG_SHUTDOWN}; Index: xbmc/ApplicationMessenger.h =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/ApplicationMessenger.h,v retrieving revision 1.8 diff -u -r1.8 ApplicationMessenger.h --- xbmc/ApplicationMessenger.h 8 Nov 2004 16:16:26 -0000 1.8 +++ xbmc/ApplicationMessenger.h 3 Feb 2005 07:24:40 -0000 @@ -55,6 +55,7 @@ void PlayListPlayerNext(); void PlayListPlayerPrevious(); void PictureShow(string filename); + void PictureListShow(vector filenames); void Shutdown(); void Restart(); void RebootToDashBoard(); Index: xbmc/lib/libPython/xbmcmodule/xbmcmodule.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/lib/libPython/xbmcmodule/xbmcmodule.cpp,v retrieving revision 1.18 diff -u -r1.18 xbmcmodule.cpp --- xbmc/lib/libPython/xbmcmodule/xbmcmodule.cpp 2 Dec 2004 10:08:44 -0000 1.18 +++ xbmc/lib/libPython/xbmcmodule/xbmcmodule.cpp 3 Feb 2005 08:29:59 -0000 @@ -250,6 +250,54 @@ return PyInt_FromLong((long)(cputemp + cpudec / 1000.0f)); } + PyDoc_STRVAR(showImage__doc__, + "showImage(filename) -- Display an image file.\n" + "\n" + "example:\n" + " - showImage('e:\\images\\foo.jpg')\n"); + + PyObject* XBMC_ShowImage(PyObject *self, PyObject *args) + { + char *cLine; + if (!PyArg_ParseTuple(args, "s", &cLine)) return NULL; + + g_applicationMessenger.PictureShow( cLine ); + + Py_INCREF(Py_None); + return Py_None; + } + + PyDoc_STRVAR(showImageList__doc__, + "showImageList(filename) -- Display a series of image files.\n" + "\n" + "example:\n" + " - showImageList(['e:\\images\\foo.jpg', 'e:\\images\\bar.jpg'])\n"); + + PyObject* XBMC_ShowImageList(PyObject *self, PyObject *args) + { + PyObject* ArgsList = NULL; + if (!PyArg_ParseTuple(args, "O", &ArgsList)) return NULL; + + if (!PyList_Check(ArgsList)) return NULL; + + vector imagelist; + for (int i = 0; i < PyList_Size(ArgsList); i++) + { + PyObject* TmpStr = PyList_GetItem(ArgsList, i); + if (!PyString_Check(TmpStr)) + return NULL; + + string str = PyString_AsString(TmpStr); + CLog::Log(LOGDEBUG, str.c_str()); + imagelist.push_back( str ); + } + + g_applicationMessenger.PictureListShow( imagelist ); + + Py_INCREF(Py_None); + return Py_None; + } + // define c functions to be used in python here PyMethodDef xbmcMethods[] = { {"output", (PyCFunction)XBMC_Output, METH_VARARGS, output__doc__}, @@ -268,6 +316,9 @@ {"getFreeMem", (PyCFunction)XBMC_GetFreeMem, METH_VARARGS, getFreeMem__doc__}, {"getCpuTemp", (PyCFunction)XBMC_GetCpuTemp, METH_VARARGS, getCpuTemp__doc__}, + {"showImage", (PyCFunction)XBMC_ShowImage, METH_VARARGS, showImage__doc__}, + {"showImageList", (PyCFunction)XBMC_ShowImageList, METH_VARARGS, showImageList__doc__}, + {NULL, NULL, 0, NULL} };