mirror of
				https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
				synced 2023-10-19 15:58:31 +00:00 
			
		
		
		
	compatibility to vdr 2.3.8
This commit is contained in:
		
							
								
								
									
										34
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -67,9 +67,9 @@ Version 0.0.3 | ||||
| - fixed Bug that displaychannel was not shown after closing displaymenu with | ||||
|   "backspace" (with active menuorg plugin) | ||||
| - fixed Bug with menuselection Patch | ||||
| - added tokens {month}, {monthname} and {year} in displaymenutimers listitem and  | ||||
| - added tokens {month}, {monthname} and {year} in displaymenutimers listitem and | ||||
|   currentitem | ||||
| - added dedicated tokens for posters and banners in <srapercontent> in  | ||||
| - added dedicated tokens for posters and banners in <srapercontent> in | ||||
|   displaychannel and displayreplay | ||||
| - added Plugin Interface | ||||
| - fixed crash when clearing a message in displaychannel and displayreplay | ||||
| @@ -81,7 +81,7 @@ Version 0.0.4 | ||||
|  | ||||
| Version 0.0.5 | ||||
|  | ||||
| - added {channelnumber} and {channelname} Tokens in displaymenudetailepg  | ||||
| - added {channelnumber} and {channelname} Tokens in displaymenudetailepg | ||||
|   detailheader | ||||
| - fixed {hasicon} Token in displaymenu header | ||||
| - added {newmails} Token in displaychannel statusinfo, mailbox plugin | ||||
| @@ -111,7 +111,7 @@ Version 0.0.8 | ||||
| Version 0.1.0 | ||||
|  | ||||
| - fixed display of color buttons in detailed views | ||||
| - fixed possible Nullpointer access in displaymenurootview  | ||||
| - fixed possible Nullpointer access in displaymenurootview | ||||
| - added currentschedule viewelement in displaymenumain | ||||
| - fixed bug that wrong channel was shown in header of whatson | ||||
|   if entering from whatsonnow | ||||
| @@ -180,7 +180,7 @@ Version 0.1.6 | ||||
|   adds its vakues and potentially overrides valués from globals.xml | ||||
| - check icons, menuicons and skinparts additionally directly in skin folder | ||||
|   to allow default images which can be used for all skins | ||||
| - fixed bug that setup variables are sometimes not identified in case two  | ||||
| - fixed bug that setup variables are sometimes not identified in case two | ||||
|   or more skin names start identically | ||||
|  | ||||
| Version 0.2.0 | ||||
| @@ -195,7 +195,7 @@ Version 0.2.1 | ||||
| - some more nopacity optimizations - thanx@utility | ||||
| - added possibiliy to use submenus in the skin setup menus | ||||
| - reloading active skin directly after closing setup menu so that | ||||
|   changes of setup parameters are immediately in use  | ||||
|   changes of setup parameters are immediately in use | ||||
|  | ||||
| Version 0.2.2 | ||||
|  | ||||
| @@ -260,7 +260,7 @@ Version 0.3.3 | ||||
|   no signal information will be fetched to improve performance. | ||||
|  | ||||
| Version 0.3.4 | ||||
|    | ||||
|  | ||||
| - fixed backward compatibility to VDR version < 2.1.1 where | ||||
|   cRecording::IsInUse() was introduced | ||||
| - automatically detect type of image if no file extension is available | ||||
| @@ -270,7 +270,7 @@ Version 0.4.0 | ||||
|  | ||||
| - fixed bug that time was not correctly drawn if a submenu implements | ||||
|   its own time display | ||||
| - fixed bug that date was drawn every flush in displayreplay  | ||||
| - fixed bug that date was drawn every flush in displayreplay | ||||
| - fixed bug in metrixhd timers menu | ||||
| - fixed bug that datetime was not correctly drawn if a submenu implements | ||||
|   its own datetime display | ||||
| @@ -290,7 +290,7 @@ Version 0.4.2 | ||||
| - fixed bug that string tokens are not evaluated in area conditions | ||||
| - added possibility to draw a debug grid in views | ||||
| - added more info if debugImage is activted in config | ||||
| - added possibility for blinking images, texts, rectangles, ellipses  | ||||
| - added possibility for blinking images, texts, rectangles, ellipses | ||||
|   and slopes | ||||
| - adapted libskindesignerapi makefile for LCLBLD | ||||
|  | ||||
| @@ -376,7 +376,7 @@ Version 0.5.3 | ||||
| - added SVG Template parsing | ||||
| - fixed memory leak when creating fonts | ||||
| - fixed crash using animated images in plugins | ||||
| - added banner to displaymenuschedulescurrentview and  | ||||
| - added banner to displaymenuschedulescurrentview and | ||||
|   displaymenureplaycurrentview | ||||
| - immplemented areacontainers to group areas | ||||
| - fixed bug displaying pixmaps with transparency | ||||
| @@ -406,10 +406,10 @@ Version 0.6.2 | ||||
| Version 0.6.3 | ||||
|  | ||||
| - implemented horizontal menus | ||||
|   For displaying horizontal menus with VDR <= 2.2.x a VDR  | ||||
|   patch is required (see /patches/vdr-2.2.0_horizontal_menu.patch  | ||||
|   in the plugin source directory). Without this patch the keys  | ||||
|   left/right and up/down are not toggled in horizontal menus.  | ||||
|   For displaying horizontal menus with VDR <= 2.2.x a VDR | ||||
|   patch is required (see /patches/vdr-2.2.0_horizontal_menu.patch | ||||
|   in the plugin source directory). Without this patch the keys | ||||
|   left/right and up/down are not toggled in horizontal menus. | ||||
|   With VDR >= 2.3.1 this patch is not needed anymore. | ||||
| - added possibility to add conditions to <menuitems> elements | ||||
| - added possibility to define a viewelement several times with | ||||
| @@ -418,7 +418,7 @@ Version 0.6.3 | ||||
| - added "valign" option in <drawtextbox>. If the box height is set | ||||
|   and the text does not need the complete height, with valign="center" | ||||
|   the text can be placed horizontally centered inside the box borders. | ||||
| - implemented optional horizontal main-, recordings- and  | ||||
| - implemented optional horizontal main-, recordings- and | ||||
|   weatherforecast menu in metrixhd | ||||
|  | ||||
| Version 0.7.0 | ||||
| @@ -431,3 +431,7 @@ Version 0.7.1 | ||||
| - added possibility to define help texts for skin setup parameters | ||||
|  | ||||
| Version 0.7.2 | ||||
|  | ||||
| Version 1.2.4 (horchi) | ||||
|  | ||||
| - added compatibility to vdr 2.3.8 | ||||
|   | ||||
| @@ -83,13 +83,13 @@ cCond::cCond(const cCond &other) { | ||||
|         compareStrValue = strdup(other.compareStrValue); | ||||
| } | ||||
|  | ||||
| cCond::~cCond(void) {  | ||||
|     free(expr);  | ||||
| cCond::~cCond(void) { | ||||
|     free(expr); | ||||
|     free(compareStrValue); | ||||
| } | ||||
|  | ||||
| void cCond::Debug(void) { | ||||
|     esyslog("skindesigner:              cond %s, operation %s, type %d", expr,  | ||||
|     esyslog("skindesigner:              cond %s, operation %s, type %d", expr, | ||||
|                                                             (operation == eCondOp::tAnd) ? "++" : "||", | ||||
|                                                             (int)type); | ||||
|     if (constant) | ||||
| @@ -138,15 +138,15 @@ bool cCondition::True(void) { | ||||
|     for (cCond *c = conds.First(); c; c = conds.Next(c)) { | ||||
|         bool condTrue = true; | ||||
|         //evaluate condition | ||||
|         if (c->constant)  | ||||
|         if (c->constant) | ||||
|         { | ||||
|             condTrue = c->isTrue; | ||||
|         }  | ||||
|         else if (c->type == eCondType::token)  | ||||
|         } | ||||
|         else if (c->type == eCondType::token) | ||||
|         { | ||||
|             if (c->tokenType == eCondTokenType::inttoken) { | ||||
|                 int tokenVal = tokenContainer->IntToken(c->tokenIndex); | ||||
|                 condTrue = (tokenVal > 0) ? true : false;                 | ||||
|                 condTrue = (tokenVal > 0) ? true : false; | ||||
|             } else if (c->tokenType == eCondTokenType::stringtoken) { | ||||
|                 char *tokenVal = tokenContainer->StringToken(c->tokenIndex); | ||||
|                 if (tokenVal) | ||||
| @@ -159,8 +159,8 @@ bool cCondition::True(void) { | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|         }  | ||||
|         else if (c->type == eCondType::negtoken)  | ||||
|         } | ||||
|         else if (c->type == eCondType::negtoken) | ||||
|         { | ||||
|             if (c->tokenType == eCondTokenType::inttoken) { | ||||
|                 int tokenVal = tokenContainer->IntToken(c->tokenIndex); | ||||
| @@ -177,7 +177,7 @@ bool cCondition::True(void) { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         else if (c->type == eCondType::lowerInt || c->type == eCondType::equalInt || c->type == eCondType::notequalInt || c->type == eCondType::greaterInt)  | ||||
|         else if (c->type == eCondType::lowerInt || c->type == eCondType::equalInt || c->type == eCondType::notequalInt || c->type == eCondType::greaterInt) | ||||
|         { | ||||
|             if (c->tokenType == eCondTokenType::inttoken) { | ||||
|                 int tokenVal = tokenContainer->IntToken(c->tokenIndex); | ||||
| @@ -219,7 +219,7 @@ bool cCondition::True(void) { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         else if (c->type == eCondType::isset || c->type == eCondType::empty)  | ||||
|         else if (c->type == eCondType::isset || c->type == eCondType::empty) | ||||
|         { | ||||
|             if (c->tokenType == eCondTokenType::stringtoken) { | ||||
|                 char *tokenVal = tokenContainer->StringToken(c->tokenIndex); | ||||
| @@ -251,7 +251,7 @@ bool cCondition::True(void) { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         else if (c->type == eCondType::equalString || c->type == eCondType::notEqualString || c->type == eCondType::contains || c->type == eCondType::notContains)  | ||||
|         else if (c->type == eCondType::equalString || c->type == eCondType::notEqualString || c->type == eCondType::contains || c->type == eCondType::notContains) | ||||
|         { | ||||
|             if (c->tokenType == eCondTokenType::stringtoken) { | ||||
|                 char *tokenVal = tokenContainer->StringToken(c->tokenIndex); | ||||
| @@ -284,7 +284,7 @@ bool cCondition::True(void) { | ||||
|         if (c->operation == eCondOp::tAnd) { | ||||
|             ok = ok && condTrue; | ||||
|         } else if (c->operation == eCondOp::tOr) { | ||||
|             ok = ok || condTrue;                 | ||||
|             ok = ok || condTrue; | ||||
|         } | ||||
|     } | ||||
|     return ok; | ||||
| @@ -470,8 +470,8 @@ void cCondition::SetTokenIndex(cCond *c, const char *token) { | ||||
| /****************************************************************** | ||||
| * cSummand | ||||
| ******************************************************************/ | ||||
| cSummand::cSummand(const char *summand) {  | ||||
|     this->summand = strdup(summand);  | ||||
| cSummand::cSummand(const char *summand) { | ||||
|     this->summand = strdup(summand); | ||||
| } | ||||
|  | ||||
| cSummand::cSummand(const cSummand &other) { | ||||
| @@ -485,7 +485,7 @@ cSummand::cSummand(const cSummand &other) { | ||||
| } | ||||
|  | ||||
| cSummand::~cSummand(void) { | ||||
|     free(summand);  | ||||
|     free(summand); | ||||
| } | ||||
|  | ||||
| void cSummand::Debug(void) { | ||||
| @@ -564,7 +564,7 @@ bool cNumericExpr::CacheStatic(void) { | ||||
|         value = atoi(expr); | ||||
|         return true; | ||||
|     } | ||||
|      | ||||
|  | ||||
|     //check if expression is a percent expression | ||||
|     if (PercentValue(expr)) { | ||||
|         return true; | ||||
| @@ -676,7 +676,7 @@ int cNumericExpr::Calculate(void) { | ||||
|             if (f->multiplication) | ||||
|                 factor *= fac; | ||||
|             else if (fac) | ||||
|                 factor /= fac;             | ||||
|                 factor /= fac; | ||||
|         } | ||||
|         if (s->positive) | ||||
|             result += factor; | ||||
| @@ -722,7 +722,7 @@ bool cNumericExpr::IsNumericExpression(const char *e) { | ||||
|         else | ||||
|             return false; | ||||
|     } | ||||
|     return true;     | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| bool cNumericExpr::PercentValue(const char *e) { | ||||
| @@ -762,7 +762,7 @@ char *cNumericExpr::ReplacePercentValue(char *e) { | ||||
|     if (horizontal) { | ||||
|         sprintf(replacement, "%.5f*{areawidth}", percentVal); | ||||
|     } else { | ||||
|         sprintf(replacement, "%.5f*{areaheight}", percentVal);         | ||||
|         sprintf(replacement, "%.5f*{areaheight}", percentVal); | ||||
|     } | ||||
|  | ||||
|     int len = strlen(replacement) + 1; | ||||
| @@ -888,7 +888,7 @@ void cNumericExpr::CreateFactors(void) { | ||||
|             f->constValue = EvaluateExpressionDouble(sum); | ||||
|             s->factors.Add(f); | ||||
|             free(sum); | ||||
|             continue;             | ||||
|             continue; | ||||
|         } | ||||
|         bool multiplication = true; | ||||
|         char *fac = strtok(sum, delimiterFac); | ||||
| @@ -906,7 +906,7 @@ void cNumericExpr::CreateFactors(void) { | ||||
|                 } else if (SetReferenceFactor(f, fac)) { | ||||
|                     f->multiplication = multiplication; | ||||
|                     s->factors.Add(f); | ||||
|                 } else if (SetGeometryFactor(f, fac)) {  | ||||
|                 } else if (SetGeometryFactor(f, fac)) { | ||||
|                     f->multiplication = multiplication; | ||||
|                     s->factors.Add(f); | ||||
|                 } else { | ||||
| @@ -961,7 +961,7 @@ bool cNumericExpr::SetReferenceFactor(cFactor *f, char *tokenName) { | ||||
|         f->type = eFactorType::widthref; | ||||
|     } else if (startswith(tokenName, "{height(") && endswith(tokenName, ")}")) { | ||||
|         start = 8; | ||||
|         f->type = eFactorType::heightref;     | ||||
|         f->type = eFactorType::heightref; | ||||
|     } | ||||
|  | ||||
|     if (start == 0) | ||||
| @@ -986,7 +986,7 @@ bool cNumericExpr::SetGeometryFactor(cFactor *f, char *tokenName) { | ||||
|         f->type = eFactorType::columnwidth; | ||||
|         ok = true; | ||||
|     } else if (!strcmp(tokenName, "{rowheight}")) { | ||||
|         f->type = eFactorType::rowheight;         | ||||
|         f->type = eFactorType::rowheight; | ||||
|         ok = true; | ||||
|     } | ||||
|     return ok; | ||||
| @@ -1007,7 +1007,7 @@ void cNumericExpr::ConsolidateSummand(void) { | ||||
|                 s = constSummand; | ||||
|             } | ||||
|         } | ||||
|     }     | ||||
|     } | ||||
| } | ||||
|  | ||||
| void cNumericExpr::ConsolidateFactors(void) { | ||||
| @@ -1020,7 +1020,7 @@ void cNumericExpr::ConsolidateFactors(void) { | ||||
|                 } else { | ||||
|                     if (f->multiplication) | ||||
|                         constFactor->constValue *= f->constValue; | ||||
|                     else  | ||||
|                     else | ||||
|                         constFactor->constValue /= f->constValue; | ||||
|                     s->factors.Del(f); | ||||
|                     f = constFactor; | ||||
| @@ -1042,7 +1042,7 @@ cColor::cColor(const char *expression) { | ||||
| cColor::cColor(const cColor &other) { | ||||
|     globals = other.globals; | ||||
|     expr = strdup(other.expr); | ||||
|     value = other.value;     | ||||
|     value = other.value; | ||||
| } | ||||
|  | ||||
| cColor::~cColor(void) { | ||||
| @@ -1442,7 +1442,7 @@ bool cTextExpr::ParsePrintfToken(cTextToken *t) { | ||||
|     strncpy(buffer, startExpr+1, expLen); | ||||
|     buffer[expLen] = '\0'; | ||||
|     t->printfExpr = strdup(buffer); | ||||
|      | ||||
|  | ||||
|     //find variables | ||||
|     char *startVar = strchr(t->constValue, ','); | ||||
|     if (!startVar) | ||||
| @@ -1525,7 +1525,7 @@ void cTextExpr::DeterminatePrintfToken(cTextToken *t) { | ||||
|             } | ||||
|         } else if (t->printfVarIndices[i].type == ePrintfVarType::looptoken  && loopInfo && loopInfo->row >= 0) { | ||||
|             if (tokenContainer->LoopToken(loopInfo->index, loopInfo->row, t->printfVarIndices[i].index)) { | ||||
|                 results.push_back(atoi(tokenContainer->LoopToken(loopInfo->index, loopInfo->row, t->printfVarIndices[i].index)));                 | ||||
|                 results.push_back(atoi(tokenContainer->LoopToken(loopInfo->index, loopInfo->row, t->printfVarIndices[i].index))); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| @@ -1611,8 +1611,8 @@ char *cTextExpr::CopyTextPart(char *start, char *stop, bool incLastChar) { | ||||
|     } else { | ||||
|         //search end of text | ||||
|         char *p = start; | ||||
|         while (*p) | ||||
|             len++; p++; | ||||
|         while (*p) { | ||||
|            len++; p++; } | ||||
|         len++; | ||||
|     } | ||||
|     val = (char*)malloc(len+1); | ||||
|   | ||||
| @@ -69,7 +69,7 @@ void cSDDisplayMenu::SetMessage(eMessageType Type, const char *Text) { | ||||
|         view->SetMessage(Type, Text); | ||||
| } | ||||
|  | ||||
| bool cSDDisplayMenu::SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch) { | ||||
| bool cSDDisplayMenu::SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch, bool TimerActive) { | ||||
|     if (!view) | ||||
|         return false; | ||||
|     if (Index == 0) { | ||||
|   | ||||
| @@ -23,7 +23,8 @@ public: | ||||
|     virtual void SetTitle(const char *Title); | ||||
|     virtual void SetButtons(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL); | ||||
|     virtual void SetMessage(eMessageType Type, const char *Text); | ||||
|     virtual bool SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch); | ||||
|     virtual bool SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch, bool TimerActive); | ||||
|     virtual bool SetItemEvent(const cEvent *Event, int Index, bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch) { return SetItemEvent(Event, Index, Current, Selectable, Channel, WithDate, TimerMatch, true); } | ||||
|     virtual bool SetItemTimer(const cTimer *Timer, int Index, bool Current, bool Selectable); | ||||
|     virtual bool SetItemChannel(const cChannel *Channel, int Index, bool Current, bool Selectable, bool WithProvider); | ||||
|     virtual bool SetItemRecording(const cRecording *Recording, int Index, bool Current, bool Selectable, int Level, int Total, int New); | ||||
|   | ||||
| @@ -20,7 +20,7 @@ | ||||
| #endif | ||||
|  | ||||
|  | ||||
| static const char *VERSION        = "1.2.3"; | ||||
| static const char *VERSION        = "1.2.4"; | ||||
| static const char *DESCRIPTION    = trNOOP("Skin Designer"); | ||||
|  | ||||
| class cPluginSkinDesigner : public cPlugin, public skindesignerapi::SkindesignerAPI { | ||||
| @@ -114,7 +114,7 @@ bool cPluginSkinDesigner::Start(void) { | ||||
|     cImageImporterSVG::InitLibRSVG(); | ||||
|     cGlobalTimers::StartRefreshThread(); | ||||
|     bool trueColorAvailable = true; | ||||
|      | ||||
|  | ||||
|     if (!cOsdProvider::SupportsTrueColor()) { | ||||
|         esyslog("skindesigner: No TrueColor OSD found! Using default Skin LCARS!"); | ||||
|         trueColorAvailable = false; | ||||
| @@ -221,7 +221,7 @@ const char **cPluginSkinDesigner::SVDRPHelpPages(void) { | ||||
| } | ||||
|  | ||||
| cString cPluginSkinDesigner::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) { | ||||
|      | ||||
|  | ||||
|     cSkinDesigner *activeSkin = NULL; | ||||
|     cSkinDesigner *availableSkin = NULL; | ||||
|     config.InitSkinRefsIterator(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user