summaryrefslogtreecommitdiff
path: root/views/displayvolumeview.c
diff options
context:
space:
mode:
Diffstat (limited to 'views/displayvolumeview.c')
-rw-r--r--views/displayvolumeview.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/views/displayvolumeview.c b/views/displayvolumeview.c
new file mode 100644
index 0000000..e3700dd
--- /dev/null
+++ b/views/displayvolumeview.c
@@ -0,0 +1,55 @@
+#define __STL_CONFIG_H
+#include <vdr/menu.h>
+#include "displayvolumeview.h"
+
+cDisplayVolumeView::cDisplayVolumeView(cTemplateView *tmplView) : cView(tmplView) {
+ volumeLast = -1;
+ muteLast = false;
+ DeleteOsdOnExit();
+ SetFadeTime(tmplView->GetNumericParameter(ptFadeTime));
+}
+
+cDisplayVolumeView::~cDisplayVolumeView() {
+ CancelSave();
+ FadeOut();
+}
+
+bool cDisplayVolumeView::createOsd(void) {
+ cRect osdSize = tmplView->GetOsdSize();
+ bool ok = CreateOsd(cOsd::OsdLeft() + osdSize.X(),
+ cOsd::OsdTop() + osdSize.Y(),
+ osdSize.Width(),
+ osdSize.Height());
+ return ok;
+}
+
+void cDisplayVolumeView::DrawBackground(void) {
+ map < string, string > stringTokens;
+ map < string, int > intTokens;
+ DrawViewElement(veBackground, &stringTokens, &intTokens);
+}
+
+void cDisplayVolumeView::DrawVolume(int current, int total, bool mute) {
+ if ((volumeLast == current) && (muteLast == mute))
+ return;
+ volumeLast = current;
+ muteLast = mute;
+
+ map < string, string > stringTokens;
+ map < string, int > intTokens;
+
+ intTokens.insert(pair<string,int>("volume", current));
+ intTokens.insert(pair<string,int>("maxvolume", total));
+ intTokens.insert(pair<string,int>("volumepercent", (double)current *100 / (double)total));
+ intTokens.insert(pair<string,int>("mute", mute));
+
+ ClearViewElement(veVolume);
+ DrawViewElement(veVolume, &stringTokens, &intTokens);
+}
+
+void cDisplayVolumeView::Action(void) {
+ SetInitFinished();
+ FadeIn();
+ DoFlush();
+ cView::Action();
+}