summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--menu.c47
1 files changed, 22 insertions, 25 deletions
diff --git a/menu.c b/menu.c
index 76871f77..73b983cd 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c,v 1.63 2009-05-31 21:43:04 phintuka Exp $
+ * $Id: menu.c,v 1.64 2009-06-01 14:04:42 phintuka Exp $
*
*/
@@ -377,36 +377,33 @@ bool cMenuBrowseFiles::ScanDir(const char *DirName)
} else if(m_Mode == ShowImages && xc.IsImageFile(buffer)) {
Add(new cFileListItem(e->d_name, false));
+ // DVD image (.iso)
+ } else if (m_Mode == ShowFiles && xc.IsDvdImage(buffer)) {
+ Add(new cFileListItem(e->d_name, false, false, false, true));
+
// video
} else if (m_Mode == ShowFiles && xc.IsVideoFile(buffer)) {
- bool resume = false, subs = false, dvd = false;
- char *pos = strrchr(e->d_name, '.');
cString subfile;
-
- if(pos) {
- // .iso image -> dvd
- if(pos && !strcasecmp(pos, ".iso"))
- dvd = true;
-
- // separate subtitles ?
- subfile = cString::sprintf("%s/%s____", DirName, e->d_name);
- char *p = strrchr(subfile, '.');
- if( p ) {
- int i;
- for(i=0; xc.s_subExts[i] && !subs; i++) {
- strcpy(p, xc.s_subExts[i]);
- if (stat(subfile, &st) == 0)
- subs = true;
- }
- }
- }
+ cString resumefile;
+
+ // separate subtitles ?
+ cString basename = cString::sprintf("%s/%s", DirName, e->d_name);
+ const char *p = strrchr(basename, '.');
+ if (p)
+ basename.Truncate(p - basename);
+ int i;
+ for(i=0; xc.s_subExts[i] && !*subfile; i++) {
+ cString tmp = cString::sprintf("%s%s", *basename, xc.s_subExts[i]);
+ if (stat(tmp, &st) == 0)
+ subfile = tmp;
+ }
// resume file ?
- buffer = cString::sprintf("%s/%s.resume", DirName, e->d_name);
- if (stat(buffer, &st) == 0)
- resume = true;
+ resumefile = cString::sprintf("%s/%s.resume", DirName, e->d_name);
+ if (stat(resumefile, &st) != 0)
+ resumefile = NULL;
- Add(new cFileListItem(e->d_name, false, resume, subs?*subfile:NULL, dvd));
+ Add(new cFileListItem(e->d_name, false, *resumefile, subfile));
}
}
}