diff options
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | skinnopacity.c | 5 | ||||
-rw-r--r-- | status.c | 14 | ||||
-rw-r--r-- | status.h | 24 |
4 files changed, 44 insertions, 2 deletions
@@ -65,7 +65,8 @@ endif ### The object files (add further files here): OBJS = $(PLUGIN).o config.o detailview.o displaychannel.o displaymenu.o displaymenuview.o displaymessage.o displayreplay.o displaytracks.o displayvolume.o displaychannelview.o fontmanager.o \ - geometrymanager.o imagecache.o imagemagickwrapper.o imagescaler.o helpers.o imageloader.o menudetailview.o menuitem.o messagebox.o nopacity.o setup.o textwindow.o timers.o volumebox.o + geometrymanager.o imagecache.o imagemagickwrapper.o imagescaler.o helpers.o imageloader.o menudetailview.o menuitem.o messagebox.o nopacity.o setup.o status.o textwindow.o timers.o \ + volumebox.o ### The main target: diff --git a/skinnopacity.c b/skinnopacity.c index ece13bb..205af1b 100644 --- a/skinnopacity.c +++ b/skinnopacity.c @@ -10,7 +10,7 @@ #include "config.h" #include "nopacity.h" #include "setup.h" - +#include "status.h" #if defined(APIVERSNUM) && APIVERSNUM < 10734 #error "VDR-1.7.34 API version or greater is required!" @@ -49,10 +49,12 @@ public: cPluginNopacity::cPluginNopacity(void) { + statusMonitor = NULL; } cPluginNopacity::~cPluginNopacity() { + delete statusMonitor; } const char *cPluginNopacity::CommandLineHelp(void) @@ -106,6 +108,7 @@ bool cPluginNopacity::Start(void) { } else dsyslog("nopacity: TrueColor OSD found"); + statusMonitor = new cNopacityStatusMonitor; return new cNopacity(); } diff --git a/status.c b/status.c new file mode 100644 index 0000000..2464a49 --- /dev/null +++ b/status.c @@ -0,0 +1,14 @@ +/* + * status.c: Keeping track of several VDR status settings + */ + +#include "status.h" + +cNopacityStatusMonitor *statusMonitor; + +void cNopacityStatusMonitor::SetVolume(int volume, bool absolute) +{ // The volume has been set to the given value, either + // absolutely or relative to the current volume. + + Volume = absolute ? volume : Volume + volume; +} diff --git a/status.h b/status.h new file mode 100644 index 0000000..2484006 --- /dev/null +++ b/status.h @@ -0,0 +1,24 @@ +/* + * status.h: Keeping track of several VDR status settings + */ + +#ifndef __STATUS_H_ +#define __STATUS_H_ + +#include <vdr/status.h> + +class cNopacityStatusMonitor : public cStatus +{ +private: + int Volume = 0; +protected: + virtual void SetVolume(int Volume, bool Absolute); +public: + cNopacityStatusMonitor(void) {}; + ~cNopacityStatusMonitor(void) {}; + int GetVolume(void) { return Volume; }; +}; + +extern cNopacityStatusMonitor *statusMonitor; + +#endif |