Merge branch 'master' of git.opendreambox.org:/git/enigma2
[enigma2.git] / lib / python / Components / Scanner.py
index 860918c034d75add219167a8ca64a971476f639c..86a5431d6279de86d5c1311831f744b878a76354 100644 (file)
@@ -24,6 +24,20 @@ def getType(file):
                        return "application/x-debian-package"
                elif ext == "ogg":
                        return "application/ogg"
+               elif ext == "flac":
+                       return "audio/x-flac"
+               elif ext == "dmpkg":
+                       return "application/x-dream-package"
+               elif ext == "nfi":
+                       return "application/x-dream-image"
+               elif ext == "ts":
+                       return "video/MP2T"
+               elif ext == "iso":
+                       return "video/x-dvd-iso"
+               elif file[-12:].lower() == "video_ts.ifo":
+                       return "video/x-dvd"
+               elif ext == "dat" and file[-11:-6].lower() == "avseq":
+                       return "video/x-vcd"
        return type
 
 class Scanner:
@@ -72,7 +86,7 @@ class ScanFile:
        def __init__(self, path, mimetype = None, size = None, autodetect = True):
                self.path = path
                if mimetype is None and autodetect:
-                       (self.mimetype, _) = guess_type(path)
+                       self.mimetype = getType(path)
                else:
                        self.mimetype = mimetype
                self.size = size
@@ -119,13 +133,21 @@ def scanDevice(mountpoint):
        # convert to list
        paths_to_scan = list(paths_to_scan)
 
+       from Components.Harddisk import harddiskmanager 
+       blockdev = mountpoint.rstrip("/").rsplit('/',1)[-1]
+       error, blacklisted, removable, is_cdrom, partitions, medium_found = harddiskmanager.getBlockDevInfo(blockdev)
+
        # now scan the paths
        for p in paths_to_scan:
                path = os_path.join(mountpoint, p.path)
 
                for root, dirs, files in os_walk(path):
                        for f in files:
-                               sfile = ScanFile(os_path.join(root, f))
+                               path = os_path.join(root, f)
+                               if is_cdrom and path.endswith(".wav") and path[-13:-6] == ("/track-"):
+                                       sfile = ScanFile(path,"audio/x-cda")
+                               else:
+                                       sfile = ScanFile(path)
                                for s in scanner:
                                        s.handleFile(res, sfile)