summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2006-01-29 19:05:18 +0000
committerAndreas Brachold <vdr07@deltab.de>2006-01-29 19:05:18 +0000
commit9eb107e0b73ebdc46e1f126d8612961fed28a19b (patch)
treea74d32923af52056e526a3dbd103a77254a352f2
parent58239a47c37e4b4aaf6c85402949bbd7f34647ed (diff)
downloadvdr-plugin-image-9eb107e0b73ebdc46e1f126d8612961fed28a19b.tar.gz
vdr-plugin-image-9eb107e0b73ebdc46e1f126d8612961fed28a19b.tar.bz2
- Add service wrapper
- Remove unnecessary DVBDIR from Makefile - Rename README.de to LIESMICH
-rw-r--r--HISTORY7
-rw-r--r--LIESMICH (renamed from README.DE)0
-rw-r--r--Makefile3
-rw-r--r--image.c54
-rw-r--r--liboutput/Makefile2
5 files changed, 61 insertions, 5 deletions
diff --git a/HISTORY b/HISTORY
index 6c05976..18933bc 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,6 +1,13 @@
VDR Plugin 'image' Revision History
-----------------------------------
+2006-01-29
+- Remove unnecessary DVBDIR from Makefile
+- Rename README.de to LIESMICH
+
+2006-01-27
+- Add service wrapper. (provided by Holger Brunn)
+
2006-01-22
- Updated Spanish translations. (Thanks to Jesús Bravo Álvarez)
diff --git a/README.DE b/LIESMICH
index 8a72561..8a72561 100644
--- a/README.DE
+++ b/LIESMICH
diff --git a/Makefile b/Makefile
index 93c13a3..07e1b9b 100644
--- a/Makefile
+++ b/Makefile
@@ -42,7 +42,6 @@ CXXFLAGS ?= -fPIC -O2 -Wall -Woverloaded-virtual
### The directory environment:
-DVBDIR = ../../../../DVB
VDRDIR = ../../..
LIBDIR = ../../lib
TMPDIR = /tmp
@@ -86,7 +85,7 @@ DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
DEFINES += -D_GNU_SOURCE
LIBS += liboutput/liboutput.a libimage/libimage.a
-INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include -I.
+INCLUDES += -I$(VDRDIR)/include -I.
ifdef FFMDIR
INCLUDES += -I$(FFMDIR)/libavcodec -I$(FFMDIR)/libavutil
diff --git a/image.c b/image.c
index 29a45a6..6ddca0f 100644
--- a/image.c
+++ b/image.c
@@ -32,6 +32,7 @@
#include "setup-image.h"
#include "data-image.h"
#include "menu-image.h"
+#include "control-image.h"
#include "i18n.h"
#include "commands.h"
#include "liboutput/encode.h"
@@ -41,7 +42,11 @@ static const char *DESCRIPTION = "A Image Viewer plugin";
static const char *MAINMENUENTRY = "Image";
class cPluginImage : public cPlugin {
+ cDirItem* m_pServiceDirItem;
+ cFileSource* m_pServiceFileSource;
+
public:
+ cPluginImage();
virtual ~cPluginImage();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return tr(DESCRIPTION); }
@@ -52,7 +57,10 @@ public:
virtual cOsdMenu *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name, const char *Value);
- };
+ virtual bool Service(const char *Id, void *Data);
+private:
+ void RemoveServiceSource();
+};
bool cPluginImage::SetupParse(const char *szName, const char *szValue)
{
@@ -117,11 +125,30 @@ bool cPluginImage::Start(void)
return true;
}
+cPluginImage::cPluginImage()
+{
+ m_pServiceDirItem = NULL;
+ m_pServiceFileSource = NULL;
+}
+
cPluginImage::~cPluginImage()
{
cEncode::UnRegister();
+ RemoveServiceSource();
}
+void cPluginImage::RemoveServiceSource()
+{
+ if(m_pServiceDirItem) {
+ delete m_pServiceDirItem;
+ m_pServiceDirItem = NULL;
+ }
+ if(m_pServiceFileSource)
+ {
+ delete m_pServiceFileSource;
+ m_pServiceFileSource = NULL;
+ }
+}
cOsdMenu *cPluginImage::MainMenuAction(void)
{
@@ -133,5 +160,30 @@ cMenuSetupPage *cPluginImage::SetupMenu(void)
return new cMenuSetupImage;
}
+bool cPluginImage::Service(const char *Id, void *Data = NULL)
+{
+ if (Id && strcmp(Id, "Image-ShowImage-v1.0") == 0) {
+ if (Data == NULL)
+ return true;
+ char* Basedir=strdup((char*)Data);
+ char* Name=strrchr(Basedir, '/');
+ if(Name==NULL)
+ return false;
+ *Name++='\0';
+ RemoveServiceSource();
+ m_pServiceFileSource=new cFileSource(Basedir, "called via Service()", false);
+ m_pServiceDirItem=new cDirItem(m_pServiceFileSource, NULL, Name, itFile);
+ cSlideShow *newss = new cSlideShow(m_pServiceDirItem);
+ free(Basedir);
+ if(newss->Load() && newss->Count()) {
+ cImageControl::SetSlideShow(newss);
+ return true;
+ }
+ delete newss;
+ RemoveServiceSource();
+ }
+ return false;
+}
+
VDRPLUGINCREATOR(cPluginImage); // Don't touch this!
diff --git a/liboutput/Makefile b/liboutput/Makefile
index 142e784..126cfc8 100644
--- a/liboutput/Makefile
+++ b/liboutput/Makefile
@@ -4,8 +4,6 @@
# $Id$
VDRDIR = ../../../..
-DVBDIR = ../../../../../DVB
-#FFMDIR = ../../../../../ffmpeg
### The C++ compiler and options: