summaryrefslogtreecommitdiff
path: root/libskindesignerapi/osdelements.c
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-04-02 15:09:41 +0200
committerlouis <louis.braun@gmx.de>2015-04-02 15:09:41 +0200
commite48aa00164f0c6a86792ae32577d12f5c9c597cb (patch)
tree200981b469eafeb9e1ec3f7b26e6439ea05fc0de /libskindesignerapi/osdelements.c
parent9d3d613013212237a2a09ca913b2b52aba90c3b6 (diff)
downloadvdr-plugin-skindesigner-e48aa00164f0c6a86792ae32577d12f5c9c597cb.tar.gz
vdr-plugin-skindesigner-e48aa00164f0c6a86792ae32577d12f5c9c597cb.tar.bz2
introduced libskindesignerapi
Diffstat (limited to 'libskindesignerapi/osdelements.c')
-rw-r--r--libskindesignerapi/osdelements.c203
1 files changed, 203 insertions, 0 deletions
diff --git a/libskindesignerapi/osdelements.c b/libskindesignerapi/osdelements.c
new file mode 100644
index 0000000..74524d7
--- /dev/null
+++ b/libskindesignerapi/osdelements.c
@@ -0,0 +1,203 @@
+#include "osdelements.h"
+
+/**********************************************************************
+* cOsdElement
+**********************************************************************/
+skindesignerapi::cOsdElement::cOsdElement(skindesignerapi::ISkinDisplayPlugin *view) {
+ this->view = view;
+}
+
+skindesignerapi::cOsdElement::~cOsdElement() {
+}
+
+void skindesignerapi::cOsdElement::ClearTokens(void) {
+ stringTokens.clear();
+ intTokens.clear();
+ loopTokens.clear();
+}
+
+void skindesignerapi::cOsdElement::AddStringToken(string key, string value) {
+ stringTokens.insert(pair<string,string>(key, value));
+}
+
+void skindesignerapi::cOsdElement::AddIntToken(string key, int value) {
+ intTokens.insert(pair<string,int>(key, value));
+}
+
+void skindesignerapi::cOsdElement::AddLoopToken(string loopName, map<string, string> &tokens) {
+ map<string, vector<map<string, string> > >::iterator hitLoop = loopTokens.find(loopName);
+ if (hitLoop == loopTokens.end()) {
+ vector<map<string, string> > tokenVector;
+ tokenVector.push_back(tokens);
+ loopTokens.insert(pair<string, vector<map<string, string> > >(loopName, tokenVector));
+ } else {
+ vector<map<string, string> > *tokenVector = &hitLoop->second;
+ tokenVector->push_back(tokens);
+ }
+}
+
+bool skindesignerapi::cOsdElement::ChannelLogoExists(string channelId) {
+ return view->ChannelLogoExists(channelId);
+}
+
+string skindesignerapi::cOsdElement::GetEpgImagePath(void) {
+ return view->GetEpgImagePath();
+}
+
+
+/**********************************************************************
+* cViewElement
+**********************************************************************/
+skindesignerapi::cViewElement::cViewElement(skindesignerapi::ISkinDisplayPlugin *view, int viewElementID) : cOsdElement(view) {
+ this->viewElementID = viewElementID;
+}
+
+skindesignerapi::cViewElement::~cViewElement() {
+}
+
+void skindesignerapi::cViewElement::Clear(void) {
+ if (!view)
+ return;
+ view->ClearViewElement(viewElementID);
+}
+
+void skindesignerapi::cViewElement::Display(void) {
+ if (!view)
+ return;
+ view->SetViewElementIntTokens(&intTokens);
+ view->SetViewElementStringTokens(&stringTokens);
+ view->SetViewElementLoopTokens(&loopTokens);
+ view->DisplayViewElement(viewElementID);
+}
+
+/**********************************************************************
+* cViewGrid
+**********************************************************************/
+skindesignerapi::cViewGrid::cViewGrid(skindesignerapi::ISkinDisplayPlugin *view, int viewGridID) : cOsdElement(view) {
+ this->viewGridID = viewGridID;
+}
+
+skindesignerapi::cViewGrid::~cViewGrid() {
+}
+
+void skindesignerapi::cViewGrid::SetGrid(long gridID, double x, double y, double width, double height) {
+ if (!view)
+ return;
+ view->SetGrid(viewGridID, gridID, x, y, width, height, &intTokens, &stringTokens);
+}
+
+void skindesignerapi::cViewGrid::SetCurrent(long gridID, bool current) {
+ if (!view)
+ return;
+ view->SetGridCurrent(viewGridID, gridID, current);
+}
+
+void skindesignerapi::cViewGrid::MoveGrid(long gridID, double x, double y, double width, double height) {
+ if (!view)
+ return;
+ view->SetGrid(viewGridID, gridID, x, y, width, height, NULL, NULL);
+}
+
+void skindesignerapi::cViewGrid::Delete(long gridID) {
+ if (!view)
+ return;
+ view->DeleteGrid(viewGridID, gridID);
+}
+
+void skindesignerapi::cViewGrid::Clear(void) {
+ if (!view)
+ return;
+ view->ClearGrids(viewGridID);
+}
+
+void skindesignerapi::cViewGrid::Display(void) {
+ if (!view)
+ return;
+ view->DisplayGrids(viewGridID);
+}
+
+/**********************************************************************
+* cViewTab
+**********************************************************************/
+skindesignerapi::cViewTab::cViewTab(skindesignerapi::ISkinDisplayPlugin *view) : cOsdElement(view) {
+}
+
+skindesignerapi::cViewTab::~cViewTab() {
+}
+
+void skindesignerapi::cViewTab::Init(void) {
+ view->SetTabIntTokens(&intTokens);
+ view->SetTabStringTokens(&stringTokens);
+ view->SetTabLoopTokens(&loopTokens);
+ view->SetTabs();
+}
+
+void skindesignerapi::cViewTab::Left(void) {
+ view->TabLeft();
+}
+
+void skindesignerapi::cViewTab::Right(void) {
+ view->TabRight();
+}
+
+void skindesignerapi::cViewTab::Up(void) {
+ view->TabUp();
+}
+
+void skindesignerapi::cViewTab::Down(void) {
+ view->TabDown();
+}
+
+void skindesignerapi::cViewTab::Display(void) {
+ if (!view)
+ return;
+ view->DisplayTabs();
+}
+
+/**********************************************************************
+* cOsdView
+**********************************************************************/
+skindesignerapi::cOsdView::cOsdView(skindesignerapi::ISkinDisplayPlugin *displayPlugin) {
+ this->displayPlugin = displayPlugin;
+}
+
+skindesignerapi::cOsdView::~cOsdView() {
+ delete displayPlugin;
+}
+
+void skindesignerapi::cOsdView::Deactivate(bool hide) {
+ if (!displayPlugin)
+ return;
+ displayPlugin->Deactivate(hide);
+}
+
+void skindesignerapi::cOsdView::Activate(void) {
+ if (!displayPlugin)
+ return;
+ displayPlugin->Activate();
+}
+
+skindesignerapi::cViewElement *skindesignerapi::cOsdView::GetViewElement(int viewElementID) {
+ if (!displayPlugin)
+ return NULL;
+ return new cViewElement(displayPlugin, viewElementID);
+}
+
+skindesignerapi::cViewGrid *skindesignerapi::cOsdView::GetViewGrid(int viewGridID) {
+ if (!displayPlugin)
+ return NULL;
+ displayPlugin->InitGrids(viewGridID);
+ return new cViewGrid(displayPlugin, viewGridID);
+}
+
+skindesignerapi::cViewTab *skindesignerapi::cOsdView::GetViewTabs(void) {
+ if (!displayPlugin)
+ return NULL;
+ return new cViewTab(displayPlugin);
+}
+
+void skindesignerapi::cOsdView::Display(void) {
+ if (!displayPlugin)
+ return;
+ displayPlugin->Flush();
+}