allow gstreamer to signalize missing plugins to the gui (requires reconfiguring enigm...
[enigma2.git] / lib / python / Components / Scanner.py
index 860918c..5a26a7d 100644 (file)
@@ -16,6 +16,7 @@ def getExtension(file):
 
 def getType(file):
        (type, _) = guess_type(file)
+       print "guessed type:", type
        if type is None:
                # Detect some mimetypes unknown to dm7025
                # TODO: do mimetypes.add_type once should be better
@@ -24,6 +25,18 @@ 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 == "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 +85,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
@@ -118,6 +131,10 @@ def scanDevice(mountpoint):
 
        # convert to list
        paths_to_scan = list(paths_to_scan)
+       
+       from Components.Harddisk import harddiskmanager 
+       blockdev = mountpoint.split('/')[2]
+       error, blacklisted, removable, is_cdrom, partitions = harddiskmanager.getBlockDevInfo(blockdev)
 
        # now scan the paths
        for p in paths_to_scan:
@@ -125,7 +142,11 @@ def scanDevice(mountpoint):
 
                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)