summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b>2006-05-19 12:41:41 +0000
committerLarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b>2006-05-19 12:41:41 +0000
commit873b44d4cfa3a5344ebdf6ee93bcb021c9d33d6f (patch)
tree9e75ba91bebd50f706bd7c5e68dfc17839561e39
parent96a1fd459b30a9c40305563150d4301649627e5e (diff)
downloadvdr-plugin-muggle-873b44d4cfa3a5344ebdf6ee93bcb021c9d33d6f.tar.gz
vdr-plugin-muggle-873b44d4cfa3a5344ebdf6ee93bcb021c9d33d6f.tar.bz2
Added code to pick correct images for GD
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@957 e10066b5-e1e2-0310-b819-94efdf66514b
-rw-r--r--mg_image_provider.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/mg_image_provider.c b/mg_image_provider.c
index 94a7230..6eb43bd 100644
--- a/mg_image_provider.c
+++ b/mg_image_provider.c
@@ -61,6 +61,8 @@ int picture_select( struct dirent const *entry )
string mgImageProvider::getImagePath( string &source )
{
+ // returns converted image name, writes source image name into source argument reference
+
string fname="";
source = "";
@@ -70,6 +72,8 @@ string mgImageProvider::getImagePath( string &source )
{
fname = m_converted_images[ m_image_index ];
}
+
+ // here we could mangle the original name to add an extension such as -s200
source = m_image_list[ m_image_index ];
// wrap to beginning of list when all images are displayed
@@ -154,6 +158,12 @@ bool mgImageProvider::extractImagesFromDatabase( mgItemGd *item )
return false;
}
+ // cut -00.jpg part from file
+ int pos = file.find('-');
+ string file_rex_s = file.substr( 0, pos+1 );
+ file_rex_s += "[0-9]*.jpg";
+ // now file_rex contains a regular expression we can test for to obtain valid images
+
bool result = false;
char *dir[2];
@@ -164,13 +174,19 @@ bool mgImageProvider::extractImagesFromDatabase( mgItemGd *item )
if( fts )
{
FTSENT *ftsent;
- regex_t path_rex;
+ regex_t path_rex, file_rex;
if( regcomp( &path_rex, "[0-9][0-9]", REG_NOSUB ) )
{
mgDebug( 1, "mgImageProvider::extractImagesFromDatabase: Error compiling dir regex. Not using GD images." );
return false;
}
+
+ if( regcomp( &file_rex, file_rex_s.c_str(), REG_NOSUB ) )
+ {
+ mgDebug( 1, "mgImageProvider::extractImagesFromDatabase: Error compiling file regex. Not using GD images." );
+ return false;
+ }
while( (ftsent = fts_read(fts)) != NULL )
{
@@ -226,8 +242,12 @@ bool mgImageProvider::extractImagesFromDatabase( mgItemGd *item )
}
else
{
- m_image_list.push_back( string( ftsent->fts_path ) );
- mgDebug( 1, "Found image %s", ftsent->fts_path );
+ if( regexec( &file_rex, ftsent->fts_name, 0, NULL, 0 ) )
+ { // an image matching the GD database entry
+ string img = string( ftsent->fts_path );
+ m_image_list.push_back( img );
+ mgDebug( 1, "Found image %s", ftsent->fts_path );
+ }
}
} break;
case FTS_NS: