diff options
author | lordjaxom <lordjaxom> | 2004-05-23 00:35:46 +0000 |
---|---|---|
committer | lordjaxom <lordjaxom> | 2004-05-23 00:35:46 +0000 |
commit | d309055320433e5fd899de53dc688d679609e6db (patch) | |
tree | ee3c3c97b3881f1e35e0da745b9571d11c0b6ac2 /display.c | |
download | vdr-plugin-text2skin-d309055320433e5fd899de53dc688d679609e6db.tar.gz vdr-plugin-text2skin-d309055320433e5fd899de53dc688d679609e6db.tar.bz2 |
- Initial revision.v0.0.1-pre1
Diffstat (limited to 'display.c')
-rw-r--r-- | display.c | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/display.c b/display.c new file mode 100644 index 0000000..395205d --- /dev/null +++ b/display.c @@ -0,0 +1,236 @@ +/* + * $Id: display.c,v 1.1.1.1 2004/05/23 00:08:03 lordjaxom Exp $ + */ + +#include "display.h" +#include "data.h" +#include "render.h" + +// --- cText2SkinDisplayChannel ----------------------------------------------- + +cText2SkinDisplayChannel::cText2SkinDisplayChannel(cText2SkinData *Data, bool WithInfo) { + printf("cText2SkinDisplayChannel\n"); + mData = Data; + mWithInfo = WithInfo; + mRender = new cText2SkinRender(mData, sectionChannel); + mDirty = false; +} + +cText2SkinDisplayChannel::~cText2SkinDisplayChannel() { + delete mRender; +} + +void cText2SkinDisplayChannel::SetChannel(const cChannel *Channel, int Number) { + printf("SetChannel\n"); + if (mRender->mChannel != Channel || mRender->mNumber != Number) { + mRender->mChannel = Channel; + mRender->mNumber = Number; + mDirty = true; + } +} + +void cText2SkinDisplayChannel::SetEvents(const cEvent *Present, const cEvent *Following) { + if (mRender->mPresent != Present || mRender->mFollowing != Following) { + mRender->mPresent = Present; + mRender->mFollowing = Following; + mDirty = true; + } +} + +void cText2SkinDisplayChannel::Flush(void) { + if (mDirty) { + printf("real flush\n"); + mRender->Flush(); + mDirty = false; + } +} + +// --- cText2SkinDisplayVolume ------------------------------------------------ + +cText2SkinDisplayVolume::cText2SkinDisplayVolume(cText2SkinData *Data) { + printf("cText2SkinDisplayVolume\n"); + mData = Data; + mRender = new cText2SkinRender(mData, sectionVolume); + mDirty = false; +} + +cText2SkinDisplayVolume::~cText2SkinDisplayVolume() { + delete mRender; +} + +void cText2SkinDisplayVolume::SetVolume(int Current, int Total, bool Mute) { + if (mRender->mVolumeCurrent != Current || mRender->mVolumeTotal != Total || mRender->mVolumeMute != Mute) { + mRender->mVolumeCurrent = Current; + mRender->mVolumeTotal = Total; + mRender->mVolumeMute = Mute; + mDirty = true; + } +} + +void cText2SkinDisplayVolume::Flush(void) { + if (mDirty) { + printf("real flush\n"); + mRender->Flush(); + mDirty = false; + } +} + +// --- cText2SkinDisplayReplay ------------------------------------------------ + +cText2SkinDisplayReplay::cText2SkinDisplayReplay(cText2SkinData *Data, bool ModeOnly) { + printf("cText2SkinDisplayVolume\n"); + mData = Data; + mRender = new cText2SkinRender(mData, ModeOnly ? sectionReplayMode : sectionReplay); + mDirty = false; +} + +cText2SkinDisplayReplay::~cText2SkinDisplayReplay() { + delete mRender; +} + +void cText2SkinDisplayReplay::SetTitle(const char *Title) { + if (mRender->mReplayTitle != Title) { + mRender->mReplayTitle = Title; + mDirty = true; + } +} + +void cText2SkinDisplayReplay::SetMode(bool Play, bool Forward, int Speed) { + if (mRender->mReplayPlay != Play || mRender->mReplayPlay != Forward || mRender->mReplaySpeed != Speed) { + mRender->mReplayPlay = Play; + mRender->mReplayForward = Forward; + mRender->mReplaySpeed = Speed; + mDirty = true; + } +} + +void cText2SkinDisplayReplay::SetProgress(int Current, int Total) { + if (mRender->mReplayCurrent != Current || mRender->mReplayTotal != Total) { + mRender->mReplayCurrent = Current; + mRender->mReplayTotal = Total; + mDirty = true; + } +} + +void cText2SkinDisplayReplay::SetCurrent(const char *Current) { +} + +void cText2SkinDisplayReplay::SetTotal(const char *Total) { +} + +void cText2SkinDisplayReplay::SetJump(const char *Jump) { + if (mRender->mReplayJump != Jump) { + mRender->mReplayJump = NULL; + mDirty = true; + } +} + +void cText2SkinDisplayReplay::Flush(void) { + if (mDirty) { + printf("real flush\n"); + mRender->Flush(); + mDirty = false; + } +} + +// --- cText2SkinDisplayMessage ----------------------------------------------- + +cText2SkinDisplayMessage::cText2SkinDisplayMessage(cText2SkinData *Data) { + printf("cText2SkinDisplayMessage\n"); + mData = Data; + mRender = new cText2SkinRender(mData, sectionMessage); + mDirty = false; +} + +cText2SkinDisplayMessage::~cText2SkinDisplayMessage() { + delete mRender; +} + +void cText2SkinDisplayMessage::SetMessage(eMessageType Type, const char *Text) { + if (mRender->mMessageType != Type || mRender->mMessageText != Text) { + mRender->mMessageType = Type; + mRender->mMessageText = Text; + mDirty = true; + } +} + +void cText2SkinDisplayMessage::Flush(void) { + if (mDirty) { + printf("real flush\n"); + mRender->Flush(); + mDirty = false; + } +} + +// --- cText2SkinDisplayMenu -------------------------------------------------- + +cText2SkinDisplayMenu::cText2SkinDisplayMenu(cText2SkinData *Data) { + printf("cText2SkinDisplayMenu\n"); + mData = Data; + mRender = new cText2SkinRender(mData, sectionMenu); + mDirty = false; + mMaxItems = 0; + + cText2SkinItem *area = mData->Get(itemMenuArea); + cText2SkinItem *item = mData->Get(itemMenuItem); + if (area && item) + mMaxItems = area->Height() / item->Height(); + else + esyslog("ERROR: text2skin: Skin is missing the items MenuArea and/or MenuItem"); +} + +cText2SkinDisplayMenu::~cText2SkinDisplayMenu() { + delete mRender; +} + +void cText2SkinDisplayMenu::Clear(void) { + mRender->mItems.clear(); + mRender->mCurrent = -1; + mDirty = true; +} + +void cText2SkinDisplayMenu::SetTitle(const char *Title) { + if (mRender->mTitle != Title) { + mRender->mTitle = Title; + mDirty = true; + } +} + +void cText2SkinDisplayMenu::SetButtons(const char *Red, const char *Green, const char *Yellow, const char *Blue) { +} + +void cText2SkinDisplayMenu::SetMessage(eMessageType Type, const char *Text) { +} + +void cText2SkinDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable) { + cText2SkinRender::MenuItem item = { Text, Selectable }; + if ((int)mRender->mItems.size() <= Index) { + mRender->mItems.push_back(item); + mDirty = true; + } else if (mRender->mItems[Index] != item) { + mRender->mItems[Index] = item; + mDirty = true; + } + if (Current && mRender->mCurrent != Index) { + mRender->mCurrent = Index; + mDirty = true; + } +} + +void cText2SkinDisplayMenu::SetEvent(const cEvent *Event) { +} + +void cText2SkinDisplayMenu::SetRecording(const cRecording *Recording) { +} + +void cText2SkinDisplayMenu::SetText(const char *Text, bool FixedFont) { +} + +void cText2SkinDisplayMenu::Flush(void) { + if (mDirty) { + printf("real flush\n"); + mRender->Flush(); + mDirty = false; + } +} + |