summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-07-17 17:37:16 +0200
committerlouis <louis.braun@gmx.de>2015-07-17 17:37:16 +0200
commitc4b49c6cb41a965bf50e7f31f57b7cfd8627dd77 (patch)
treeb1a94e2f83d11f90a40348598a878bdcb3af4d0c /config.c
parent10e37f6b8e8c946cecfefbaae8b14369e695d8e9 (diff)
downloadvdr-plugin-skindesigner-c4b49c6cb41a965bf50e7f31f57b7cfd8627dd77.tar.gz
vdr-plugin-skindesigner-c4b49c6cb41a965bf50e7f31f57b7cfd8627dd77.tar.bz2
added version check for skinrepositiries
Diffstat (limited to 'config.c')
-rw-r--r--config.c38
1 files changed, 37 insertions, 1 deletions
diff --git a/config.c b/config.c
index eb178ce..fb8abee 100644
--- a/config.c
+++ b/config.c
@@ -330,7 +330,43 @@ void cDesignerConfig::SetSkinSetupParameters(void) {
void cDesignerConfig::ReadSkinRepos(void) {
skinRepos.Init(*installerSkinPath);
skinRepos.Read(*installerSkinPath);
- dsyslog("skindesigner: read %d skinrepositories from %s", skinRepos.Count(), *skinPath);
+ dsyslog("skindesigner: read %d skinrepositories from %s", skinRepos.Count(), *installerSkinPath);
+}
+
+bool cDesignerConfig::CheckVersion(string name, string &neededVersion) {
+ cSkinRepo *repo = skinRepos.GetRepo(name);
+ if (!repo)
+ return false;
+ neededVersion = repo->MinSDVersion();
+
+ splitstring minVer(neededVersion.c_str());
+ vector<string> tokensMinVer = minVer.split('.', 1);
+ if (tokensMinVer.size() != 3) {
+ esyslog("skindesigner: incorrect minimumskindesignerversion definition: %s", neededVersion.c_str());
+ return false;
+ }
+ splitstring ver(version.c_str());
+ vector<string> tokensVer = ver.split('.', 1);
+ if (tokensVer.size() != 3) {
+ esyslog("skindesigner: incorrect version definition: %s", version.c_str());
+ return false;
+ }
+
+ int minVerMajor = atoi(tokensMinVer[0].c_str());
+ int minVerMinor = atoi(tokensMinVer[1].c_str());
+ int minVerMikro = atoi(tokensMinVer[2].c_str());
+ int verMajor = atoi(tokensVer[0].c_str());
+ int verMinor = atoi(tokensVer[1].c_str());
+ int verMikro = atoi(tokensVer[2].c_str());
+
+ if (minVerMajor > verMajor) {
+ return false;
+ } else if (minVerMinor > verMinor) {
+ return false;
+ } else if (minVerMikro > verMikro) {
+ return false;
+ }
+ return true;
}
bool cDesignerConfig::SkinInstalled(string name) {