summaryrefslogtreecommitdiff
path: root/coreengine/viewdisplayvolume.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreengine/viewdisplayvolume.c')
-rw-r--r--coreengine/viewdisplayvolume.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/coreengine/viewdisplayvolume.c b/coreengine/viewdisplayvolume.c
new file mode 100644
index 0000000..2764a67
--- /dev/null
+++ b/coreengine/viewdisplayvolume.c
@@ -0,0 +1,52 @@
+#include "viewdisplayvolume.h"
+
+/************************************************************************************
+* cViewVolume
+************************************************************************************/
+
+cViewVolume::cViewVolume(void) {
+ viewId = eViewType::DisplayVolume;
+ viewName = strdup("displayvolume");
+ numViewElements = (int)eVeDisplayVolume::count;
+ viewElements = new cViewElement*[numViewElements];
+ for (int i=0; i < numViewElements; i++) {
+ viewElements[i] = NULL;
+ }
+ SetViewElements();
+ ClearVariables();
+ veVolume = NULL;
+}
+
+cViewVolume::~cViewVolume() {
+}
+
+void cViewVolume::SetViewElements(void) {
+ viewElementNames.insert(pair<string, int>("background", (int)eVeDisplayVolume::background));
+ viewElementNames.insert(pair<string, int>("volume", (int)eVeDisplayVolume::volume));
+}
+
+void cViewVolume::SetViewElementObjects(void) {
+ if (!viewElements[(int)eVeDisplayVolume::volume])
+ return;
+ veVolume = dynamic_cast<cVeVolume*>(viewElements[(int)eVeDisplayVolume::volume]);
+}
+
+void cViewVolume::ClearVariables(void) {
+ init = true;
+}
+
+void cViewVolume::SetVolume(int current, int total, bool mute) {
+ if (veVolume)
+ veVolume->Set(current, total, mute);
+}
+
+void cViewVolume::Flush(void) {
+ if (init) {
+ sdOsd.LockFlush();
+ Render((int)eVeDisplayVolume::background);
+ }
+ Render((int)eVeDisplayVolume::volume);
+ cView::Flush();
+}
+
+