From 809fbda03c5014ba9cd361f5113d1d717cd41ea6 Mon Sep 17 00:00:00 2001 From: louis Date: Tue, 26 Jan 2016 18:32:38 +0100 Subject: Version 0.8.0 beta --- coreengine/viewdisplaytracks.c | 122 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 coreengine/viewdisplaytracks.c (limited to 'coreengine/viewdisplaytracks.c') 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("background", (int)eVeDisplayTracks::background)); + viewElementNames.insert(pair("header", (int)eVeDisplayTracks::header)); +} + +void cViewTracks::SetViewElementObjects(void) { + if (viewElements[(int)eVeDisplayTracks::background]) + veBackground = dynamic_cast(viewElements[(int)eVeDisplayTracks::background]); + if (viewElements[(int)eVeDisplayTracks::header]) + veHeader = dynamic_cast(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(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(); +} -- cgit v1.2.3