#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(); }