diff -ruN vcd-0.0.6c/vcd.c vcd-0.0.6c-work/vcd.c --- vcd-0.0.6c/vcd.c 2003-11-24 19:48:28.000000000 +0100 +++ vcd-0.0.6c-work/vcd.c 2004-06-18 12:20:09.178647561 +0200 @@ -175,7 +175,11 @@ } } else - Interface->Info(tr("No VideoCD detected")); +#if VDRVERSNUM >= 10307 + Skins.Message(mtInfo, tr("No VideoCD detected")); +#else + Interface->Info(tr("No VideoCD detected")); +#endif } else { if (VcdSetupData.PlaySequenceReplay && psd_size) { @@ -186,7 +190,11 @@ } } else - Interface->Info(tr("No disc inserted")); +#if VDRVERSNUM >= 10307 + Skins.Message(mtInfo, tr("No disc inserted")); +#else + Interface->Info(tr("No disc inserted")); +#endif return NULL; } diff -ruN vcd-0.0.6c/vcd_menu_control.c vcd-0.0.6c-work/vcd_menu_control.c --- vcd-0.0.6c/vcd_menu_control.c 2003-11-01 14:19:38.000000000 +0100 +++ vcd-0.0.6c-work/vcd_menu_control.c 2004-06-18 12:20:09.181647311 +0200 @@ -33,6 +33,9 @@ cMenuSpiControl::cMenuSpiControl(void) : cVcdViewerControl(spi, vcd) { +#if VDRVERSNUM >= 10307 + display = NULL; +#endif visible = modeOnly = false; } @@ -61,7 +64,11 @@ void cMenuSpiControl::Hide(void) { if (visible) { +#if VDRVERSNUM >= 10307 + delete display; +#else Interface->Close(); +#endif needsFastResponse = visible = false; modeOnly = false; } @@ -106,7 +113,7 @@ class cVcdProgressBar : public cBitmap { protected: int total; - int Pos(int p) { return p * width / total; } + int Pos(int p) { return p * cBitmap::Width() / total; } public: cVcdProgressBar(int Width, int Height, int Current, int Total); }; @@ -114,12 +121,14 @@ cVcdProgressBar::cVcdProgressBar(int Width, int Height, int Current, int Total) :cBitmap(Width, Height, 2) { +#if VDRVERSNUM < 10307 total = Total; if (total > 0) { int p = Pos(Current); Fill(0, 0, p, Height - 1, clrGreen); Fill(p + 1, 0, Width - 1, Height - 1, clrWhite); } +#endif } @@ -133,6 +142,9 @@ cMenuVcdControl::cMenuVcdControl(void) : cVcdPlayerControl(track, vcd) { +#if VDRVERSNUM >= 10307 + display = NULL; +#endif visible = modeOnly = shown = displayFrames = false; timeoutShow = 0; timeSearchActive = false; @@ -183,7 +195,11 @@ void cMenuVcdControl::Hide(void) { if (visible) { +#if VDRVERSNUM >= 10307 + delete display; +#else Interface->Close(); +#endif needsFastResponse = visible = false; modeOnly = false; } @@ -191,6 +207,7 @@ void cMenuVcdControl::DisplayAtBottom(const char *s) { +#if VDRVERSNUM < 10307 if (s) { int w = cOsd::WidthInCells(s); int d = max(Width() - w, 0) / 2; @@ -201,6 +218,7 @@ } else Interface->Fill(12, 2, Width() - 22, 1, clrBackground); +#endif } void cMenuVcdControl::ShowMode(void) @@ -219,7 +237,11 @@ Interface->Open(9, -1); Interface->Clear(); XXX*/ +#if VDRVERSNUM >= 10307 + display = Skins.Current()->DisplayReplay(false); +#else Interface->Open(0, -1); //XXX remove when displaying replay mode differently +#endif visible = modeOnly = true; } @@ -235,9 +257,13 @@ if (p) *p = Speed > 0 ? '1' + Speed - 1 : ' '; +#if VDRVERSNUM >= 10307 + display->SetMode(Play, Forward, Speed); +#else eDvbFont OldFont = Interface->SetFont(fontFix); DisplayAtBottom(buf); Interface->SetFont(OldFont); +#endif } } } @@ -248,19 +274,35 @@ if (GetIndex(Current, Total) && Total > 0) { if (!visible) { +#if VDRVERSNUM >= 10307 + display = Skins.Current()->DisplayReplay(false); +#else Interface->Open(Setup.OSDwidth, -3); +#endif needsFastResponse = visible = true; } if (Initial) { +#if VDRVERSNUM < 10307 Interface->Clear(); +#endif lastCurrent = lastTotal = -1; } if (title) +#if VDRVERSNUM >= 10307 + display->SetTitle(title); +#else Interface->Write(0, 0, title); +#endif if (Total != lastTotal) { +#if VDRVERSNUM >= 10307 + display->SetTotal(IndexToHMSF(Total)); + if (!Initial) + Skins.Flush(); +#else Interface->Write(-7, 2, IndexToHMSF(Total)); if (!Initial) Interface->Flush(); +#endif } if (Current != lastCurrent || Total != lastTotal) { #ifdef DEBUG_OSD @@ -268,13 +310,24 @@ Interface->Fill(0, 1, p, 1, clrGreen); Interface->Fill(p, 1, Width() - p, 1, clrWhite); #else +#if VDRVERSNUM >= 10307 + display->SetProgress(Current, Total); + if (!Initial) + Skins.Flush(); +#else cVcdProgressBar ProgressBar(Width() * cOsd::CellWidth(), cOsd::LineHeight(), Current, Total); Interface->SetBitmap(0, cOsd::LineHeight(), ProgressBar); if (!Initial) Interface->Flush(); #endif +#endif +#if VDRVERSNUM >= 10307 + display->SetCurrent(IndexToHMSF(Current, displayFrames)); + Skins.Flush(); +#else Interface->Write(0, 2, IndexToHMSF(Current, displayFrames)); Interface->Flush(); +#endif lastCurrent = Current; } lastTotal = Total; @@ -298,7 +351,11 @@ char cm10 = timeSearchPos > 1 ? m10 : '-'; char cm1 = timeSearchPos > 0 ? m1 : '-'; sprintf(buf + len, "%c%c:%c%c", ch10, ch1, cm10, cm1); +#if VDRVERSNUM >= 10307 + display->SetJump(buf); +#else DisplayAtBottom(buf); +#endif } void cMenuVcdControl::TimeSearchProcess(eKeys Key) @@ -451,8 +508,10 @@ } if (DoShowMode) ShowMode(); +#if VDRVERSNUM < 10307 if (DisplayedFrames && !displayFrames) Interface->Fill(0, 2, 11, 1, clrBackground); +#endif return osContinue; } diff -ruN vcd-0.0.6c/vcd_menu_control.h vcd-0.0.6c-work/vcd_menu_control.h --- vcd-0.0.6c/vcd_menu_control.h 2003-10-21 22:01:57.000000000 +0200 +++ vcd-0.0.6c-work/vcd_menu_control.h 2004-06-18 12:20:09.183647144 +0200 @@ -18,6 +18,9 @@ class cMenuSpiControl : public cVcdViewerControl { private: +#if VDRVERSNUM >= 10307 + cSkinDisplayReplay *display; +#endif bool visible, modeOnly; static int spi; static cVcd *vcd; @@ -34,6 +37,9 @@ class cMenuVcdControl : public cVcdPlayerControl { private: +#if VDRVERSNUM >= 10307 + cSkinDisplayReplay *display; +#endif bool visible, modeOnly, shown, displayFrames; time_t timeoutShow; bool timeSearchActive, timeSearchHide; diff -ruN vcd-0.0.6c/vcd_psd.h vcd-0.0.6c-work/vcd_psd.h --- vcd-0.0.6c/vcd_psd.h 2003-10-22 13:21:17.000000000 +0200 +++ vcd-0.0.6c-work/vcd_psd.h 2004-06-18 12:20:09.185646977 +0200 @@ -14,7 +14,12 @@ #define __VCD_PSD_H +#include +#if VDRVERSNUM >= 10307 +#include +#else #include +#endif #include "vcd_func.h"