diff options
author | louis <louis.braun@gmx.de> | 2016-01-26 18:32:38 +0100 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2016-01-26 18:32:38 +0100 |
commit | 809fbda03c5014ba9cd361f5113d1d717cd41ea6 (patch) | |
tree | 264bbc5640375f1bcb165fc7f4a3e595adcc26ca /coreengine/viewdisplaytracks.c | |
parent | 196dd7eb9965a405bb16b51dc870fbbb31aeef87 (diff) | |
download | vdr-plugin-skindesigner-809fbda03c5014ba9cd361f5113d1d717cd41ea6.tar.gz vdr-plugin-skindesigner-809fbda03c5014ba9cd361f5113d1d717cd41ea6.tar.bz2 |
Version 0.8.0 beta
Diffstat (limited to 'coreengine/viewdisplaytracks.c')
-rw-r--r-- | coreengine/viewdisplaytracks.c | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/coreengine/viewdisplaytracks.c b/coreengine/viewdisplaytracks.c new file mode 100644 index 0000000..15ff584 --- /dev/null +++ b/coreengine/viewdisplaytracks.c @@ -0,0 +1,122 @@ +#include "viewdisplaytracks.h"
+#include "../config.h"
+
+/************************************************************************************
+* cViewTracks
+************************************************************************************/
+
+cViewTracks::cViewTracks(void) {
+ ClearVariables();
+ viewId = eViewType::DisplayTracks;
+ viewName = strdup("displayaudiotracks");
+ numViewElements = (int)eVeDisplayTracks::count;
+ viewElements = new cViewElement*[numViewElements];
+ for (int i=0; i < numViewElements; i++) {
+ viewElements[i] = NULL;
+ }
+ viewList = NULL;
+ veBackground = NULL;
+ veHeader = NULL;
+ SetViewElements();
+}
+
+cViewTracks::~cViewTracks() {
+}
+
+void cViewTracks::SetViewElements(void) {
+ viewElementNames.insert(pair<string, int>("background", (int)eVeDisplayTracks::background));
+ viewElementNames.insert(pair<string, int>("header", (int)eVeDisplayTracks::header));
+}
+
+void cViewTracks::SetViewElementObjects(void) {
+ if (viewElements[(int)eVeDisplayTracks::background])
+ veBackground = dynamic_cast<cVeDtBackground*>(viewElements[(int)eVeDisplayTracks::background]);
+ if (viewElements[(int)eVeDisplayTracks::header])
+ veHeader = dynamic_cast<cVeDtHeader*>(viewElements[(int)eVeDisplayTracks::header]);
+}
+
+void cViewTracks::ClearVariables(void) {
+ init = true;
+ change = true;
+}
+
+void cViewTracks::Close(void) {
+ delete fader;
+ fader = NULL;
+ if (FadeTime() > 0) {
+ fader = new cAnimation((cFadable*)this, false);
+ fader->Fade();
+ delete fader;
+ fader = NULL;
+ }
+ for (int i=0; i < numViewElements; i++) {
+ if (viewElements[i]) {
+ viewElements[i]->Close();
+ }
+ }
+ if (viewList) {
+ viewList->Close();
+ }
+ ClearVariables();
+ sdOsd.DeleteOsd();
+}
+
+void cViewTracks::AddViewList(cViewList *viewList) {
+ this->viewList = dynamic_cast<cViewListAudioTracks*>(viewList);
+}
+
+void cViewTracks::PreCache(void) {
+ cView::PreCache();
+ if (viewList) {
+ viewList->SetContainer(0, 0, attribs->Width(), attribs->Height());
+ viewList->SetGlobals(globals);
+ viewList->PreCache();
+ }
+}
+
+void cViewTracks::SetTitle(const char *title) {
+ if (veHeader)
+ veHeader->SetTitle(title);
+ change = true;
+}
+
+void cViewTracks::SetNumtracks(int numTracks) {
+ if (veBackground)
+ veBackground->Set(numTracks);
+ if (veHeader)
+ veHeader->SetNumtracks(numTracks);
+ if (viewList)
+ viewList->SetNumtracks(numTracks);
+}
+
+void cViewTracks::SetAudiochannel(int audioChannel) {
+ if (veHeader)
+ veHeader->SetAudiochannel(audioChannel);
+ change = true;
+}
+
+void cViewTracks::SetTracks(const char * const *tracks) {
+ if (viewList)
+ viewList->SetTracks(tracks);
+ change = true;
+}
+
+void cViewTracks::SetCurrentTrack(int index) {
+ if (viewList)
+ viewList->SetCurrentTrack(index);
+ change = true;
+}
+
+void cViewTracks::Flush(void) {
+ if (init) {
+ sdOsd.LockFlush();
+ Render((int)eVeDisplayTracks::background);
+ }
+ if (change) {
+ Render((int)eVeDisplayTracks::header);
+ if (viewList)
+ viewList->Draw();
+ change = false;
+ }
+ cView::Flush();
+}
|