diff options
author | LarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b> | 2006-05-19 12:41:41 +0000 |
---|---|---|
committer | LarsAC <LarsAC@e10066b5-e1e2-0310-b819-94efdf66514b> | 2006-05-19 12:41:41 +0000 |
commit | 873b44d4cfa3a5344ebdf6ee93bcb021c9d33d6f (patch) | |
tree | 9e75ba91bebd50f706bd7c5e68dfc17839561e39 | |
parent | 96a1fd459b30a9c40305563150d4301649627e5e (diff) | |
download | vdr-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.c | 26 |
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: |