mirror of
				https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
				synced 2023-10-19 15:58:31 +00:00 
			
		
		
		
	Added support for SVG channellogos
This commit is contained in:
		
							
								
								
									
										1
									
								
								config.c
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								config.c
									
									
									
									
									
								
							| @@ -7,7 +7,6 @@ cDesignerConfig::cDesignerConfig() { | ||||
|     skinPathSet = false; | ||||
|     logoPathSet = false; | ||||
|     //Common | ||||
|     logoExtension = "png"; | ||||
|     numLogosPerSizeInitial = 30; | ||||
|     limitLogoCache = 1; | ||||
|     numLogosMax = 200; | ||||
|   | ||||
							
								
								
									
										1
									
								
								config.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								config.h
									
									
									
									
									
								
							| @@ -43,7 +43,6 @@ public: | ||||
|     void SetOSDFonts(void); | ||||
|     bool OsdFontsChanged(void); | ||||
|     cString GetSkinRessourcePath(void); | ||||
|     cString logoExtension; | ||||
|     cString skinPath; | ||||
|     cString logoPath; | ||||
|     cString epgImagePath; | ||||
|   | ||||
| @@ -140,27 +140,18 @@ bool cImageCache::LogoExists(string channelID) { | ||||
|     if (!channel) | ||||
|         return false; | ||||
|     string logoLower = StrToLowerCase(channel->Name()); | ||||
|     string logoExt = *config.logoExtension; | ||||
|     bool logoExists = FileExists(logoPath.c_str(), logoLower, logoExt); | ||||
|     if (logoExists) { | ||||
|         return true; | ||||
|     } | ||||
|     logoExists = FileExists(logoPath.c_str(), channelID, logoExt); | ||||
|     if (logoExists) { | ||||
|         return true; | ||||
|     } | ||||
|     return false;     | ||||
|  | ||||
|     return (FileExists(logoPath.c_str(), logoLower, "svg") || | ||||
|             FileExists(logoPath.c_str(), logoLower, "png") || | ||||
|             FileExists(logoPath.c_str(), channelID, "svg") || | ||||
|             FileExists(logoPath.c_str(), channelID, "png")); | ||||
| } | ||||
|  | ||||
| bool cImageCache::SeparatorLogoExists(string name) { | ||||
|     string separatorPath = *cString::sprintf("%sseparatorlogos/", logoPath.c_str()); | ||||
|     string nameLower = StrToLowerCase(name.c_str()); | ||||
|     string logoExt = *config.logoExtension; | ||||
|     bool logoExists = FileExists(separatorPath, nameLower, logoExt); | ||||
|     if (logoExists) { | ||||
|         return true; | ||||
|     } | ||||
|     return false;     | ||||
|  | ||||
|     return FileExists(separatorPath, nameLower, "png"); | ||||
| } | ||||
|  | ||||
| void cImageCache::CacheIcon(eImageType type, string name, int width, int height) { | ||||
| @@ -329,21 +320,23 @@ bool cImageCache::LoadLogo(const cChannel *channel) { | ||||
|         return false; | ||||
|     string channelID = StrToLowerCase(*(channel->GetChannelID().ToString())); | ||||
|     string logoLower = StrToLowerCase(channel->Name()); | ||||
|     bool success = false; | ||||
|  | ||||
|     if (FileExists(logoPath.c_str(), channelID.c_str(), *config.logoExtension)) | ||||
|         return LoadImage(logoPath.c_str(), channelID.c_str(), *config.logoExtension); | ||||
|  | ||||
|     if (FileExists(logoPath.c_str(), logoLower.c_str(), *config.logoExtension)) | ||||
|         return LoadImage(logoPath.c_str(), logoLower.c_str(), *config.logoExtension); | ||||
|     if (FileExists(logoPath.c_str(), channelID.c_str(), "svg")) | ||||
|         return LoadImage(logoPath.c_str(), channelID.c_str(), "svg"); | ||||
|     if (FileExists(logoPath.c_str(), channelID.c_str(), "png")) | ||||
|         return LoadImage(logoPath.c_str(), channelID.c_str(), "png"); | ||||
|     if (FileExists(logoPath.c_str(), logoLower.c_str(), "svg")) | ||||
|         return LoadImage(logoPath.c_str(), logoLower.c_str(), "svg"); | ||||
|     if (FileExists(logoPath.c_str(), logoLower.c_str(), "png")) | ||||
|         return LoadImage(logoPath.c_str(), logoLower.c_str(), "png"); | ||||
|  | ||||
|     return false; | ||||
| } | ||||
|  | ||||
| bool cImageCache::LoadSeparatorLogo(string name) { | ||||
|     cString separatorPath = cString::sprintf("%sseparatorlogos/", logoPath.c_str()); | ||||
|     string separatorPath = *cString::sprintf("%sseparatorlogos/", logoPath.c_str()); | ||||
|     string nameLower = StrToLowerCase(name.c_str()); | ||||
|     return LoadImage(*separatorPath, nameLower.c_str(), *config.logoExtension); | ||||
|     return LoadImage(separatorPath, nameLower.c_str(), "png"); | ||||
| } | ||||
|  | ||||
| bool cImageCache::LoadSkinpart(string name) { | ||||
|   | ||||
| @@ -101,7 +101,6 @@ void cImageLoader::DeterminateChannelLogoSize(int &width, int &height) { | ||||
|     else | ||||
|         logoPath = config.logoPath; | ||||
|  | ||||
|     cString logoExt = config.logoExtension; | ||||
|     DIR *folder = NULL; | ||||
|     struct dirent *file; | ||||
|     folder = opendir(logoPath); | ||||
| @@ -109,7 +108,8 @@ void cImageLoader::DeterminateChannelLogoSize(int &width, int &height) { | ||||
|         return; | ||||
|  | ||||
|     while ( (file = readdir(folder)) ) { | ||||
|         if (endswith(file->d_name, *logoExt)) { | ||||
|         if (endswith(file->d_name, ".png") || | ||||
|             endswith(file->d_name, ".svg")) { | ||||
|             std::stringstream filePath; | ||||
|             filePath << *logoPath << file->d_name; | ||||
|             if (LoadImage(filePath.str().c_str())) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user