Author: dmeyer
Date: Fri Dec 15 19:13:54 2006
New Revision: 2240

Modified:
   trunk/metadata/src/__init__.py
   trunk/metadata/src/disc/audio.py
   trunk/metadata/src/disc/cdinfo.py
   trunk/metadata/src/disc/core.py
   trunk/metadata/src/disc/data.py
   trunk/metadata/src/disc/dvd.py
   trunk/metadata/src/disc/vcd.py
   trunk/metadata/src/factory.py

Log:
Bufixes

Modified: trunk/metadata/src/__init__.py
==============================================================================
--- trunk/metadata/src/__init__.py      (original)
+++ trunk/metadata/src/__init__.py      Fri Dec 15 19:13:54 2006
@@ -38,7 +38,7 @@
 
 # import factory code for kaa.metadata access
 from factory import *
-from disc.cdinfo import getid
+from disc.cdinfo import get_id as get_discid
 from mediainfo import Media, MEDIA_AUDIO, MEDIA_VIDEO, MEDIA_IMAGE, \
      MEDIA_AV, MEDIA_SUBTITLE, MEDIA_CONTAINER, MEDIA_DIRECTORY, MEDIA_DISC, \
      MEDIA_GAME

Modified: trunk/metadata/src/disc/audio.py
==============================================================================
--- trunk/metadata/src/disc/audio.py    (original)
+++ trunk/metadata/src/disc/audio.py    Fri Dec 15 19:13:54 2006
@@ -50,7 +50,7 @@
         core.Disc.__init__(self)
         self.offset = 0
         # check disc
-        if self.is_disc(self, device) != 1:
+        if self.is_disc(device) != 1:
             raise core.ParseError()
 
         self.query(device)
@@ -61,7 +61,7 @@
 
     def query(self, device):
 
-        cdromfd = cdinfo.audiocd_id(device)
+        cdromfd = cdinfo.audiocd_open(device)
         disc_id = cdinfo.audiocd_id(cdromfd)
 
         if kaa.metadata.USE_NETWORK:

Modified: trunk/metadata/src/disc/cdinfo.py
==============================================================================
--- trunk/metadata/src/disc/cdinfo.py   (original)
+++ trunk/metadata/src/disc/cdinfo.py   Fri Dec 15 19:13:54 2006
@@ -9,8 +9,11 @@
 from fcntl import ioctl
 
 # cdrom module
-import _cdrom
-
+try:
+    import _cdrom
+except ImportError:
+    _cdrom = None
+    
 # get logging object
 log = logging.getLogger('metadata')
 
@@ -48,15 +51,15 @@
     return [discid, last] + track_frames[:-1] + [ track_frames[-1] / 75 ]
 
 
-def audiocd_toc_header(self, device):
+def audiocd_toc_header(device):
     return _cdrom.toc_header(device)
 
 
-def audiocd_toc_entry(self, device):
-    return _cdrom.toc_entry(device)
+def audiocd_toc_entry(device, track):
+    return _cdrom.toc_entry(device, track)
 
 
-def audiocd_leadout(self, device):
+def audiocd_leadout(device):
     return _cdrom.leadout(device)
 
 
@@ -163,10 +166,14 @@
 
 _id_cache = {}
 
-def getid(device, handle_mix=0):
+def get_id(device, handle_mix=0):
     """
     return the disc id of the device or None if no disc is there
     """
+    if not _cdrom:
+        log.debug("kaa.metadata not compiled with CDROM support")
+        return 0, None
+        
     global _id_cache
     try:
         if _id_cache[device][0] + 0.9 > time.time():

Modified: trunk/metadata/src/disc/core.py
==============================================================================
--- trunk/metadata/src/disc/core.py     (original)
+++ trunk/metadata/src/disc/core.py     Fri Dec 15 19:13:54 2006
@@ -43,6 +43,7 @@
 
 EXTENSION_DEVICE = mediainfo.EXTENSION_DEVICE
 EXTENSION_DIRECTORY = mediainfo.EXTENSION_DIRECTORY
+ParseError = mediainfo.ParseError
 
 # get logging object
 log = logging.getLogger('metadata')
@@ -55,7 +56,7 @@
     media = mediainfo.MEDIA_DISC
     
     def is_disc(self, device):
-        (type, self.id) = cdinfo.cdrom_disc_id(device, handle_mix=1)
+        (type, self.id) = cdinfo.get_id(device, handle_mix=1)
         if type != 2:
             if type == 4:
                 self.mixed = 1

Modified: trunk/metadata/src/disc/data.py
==============================================================================
--- trunk/metadata/src/disc/data.py     (original)
+++ trunk/metadata/src/disc/data.py     Fri Dec 15 19:13:54 2006
@@ -35,7 +35,7 @@
 class DataDisc(core.Disc):
     def __init__(self,device):
         core.Disc.__init__(self)
-        if self.is_disc(self, device) != 2:
+        if self.is_disc(device) != 2:
             raise core.ParseError()
         self.offset = 0
         self.mime = 'unknown/unknown'

Modified: trunk/metadata/src/disc/dvd.py
==============================================================================
--- trunk/metadata/src/disc/dvd.py      (original)
+++ trunk/metadata/src/disc/dvd.py      Fri Dec 15 19:13:54 2006
@@ -41,8 +41,11 @@
 
 # kaa.metadata.disc imports
 import core
-import _ifoparser
-
+try:
+    import _ifoparser
+except ImportError:
+    _ifoparser = None
+    
 # get logging object
 log = logging.getLogger('metadata')
 
@@ -137,6 +140,9 @@
 
 
     def _parse(self, device):
+        if not _ifoparser:
+            log.debug("kaa.metadata not compiled with DVD support")
+            raise core.ParseError()
         info = _ifoparser.parse(device)
         if not info:
             raise core.ParseError()
@@ -158,7 +164,7 @@
 
 
     def parseDisc(self, device):
-        if self.is_disc(self, device) != 2:
+        if self.is_disc(device) != 2:
             raise core.ParseError()
 
         # brute force reading of the device to find out if it is a DVD

Modified: trunk/metadata/src/disc/vcd.py
==============================================================================
--- trunk/metadata/src/disc/vcd.py      (original)
+++ trunk/metadata/src/disc/vcd.py      Fri Dec 15 19:13:54 2006
@@ -31,7 +31,7 @@
 
 # kaa.metadata.disc imports
 import core
-import cdrom
+import cdinfo
 
 class VCD(core.Disc):
     def __init__(self,device):
@@ -46,7 +46,7 @@
 
     def parseDisc(self, device):
         type = None
-        if self.is_disc(self, device) != 2:
+        if self.is_disc(device) != 2:
             raise core.ParseError()
 
         # brute force reading of the device to find out if it is a VCD
@@ -67,7 +67,7 @@
 
         # read the tracks to generate the title list
         device = open(device)
-        (first, last) = cdrom.toc_header(device)
+        (first, last) = cdinfo.audio_toc_header(device)
 
         lmin = 0
         lsec = 0
@@ -75,9 +75,9 @@
         num = 0
         for i in range(first, last + 2):
             if i == last + 1:
-                min, sec, frames = cdrom.leadout(device)
+                min, sec, frames = cdinfo.audio_leadout(device)
             else:
-                min, sec, frames = cdrom.toc_entry(device, i)
+                min, sec, frames = cdinfo.audio_toc_entry(device, i)
             if num:
                 vi = core.VideoStream()
                 # XXX add more static information here, it's also possible

Modified: trunk/metadata/src/factory.py
==============================================================================
--- trunk/metadata/src/factory.py       (original)
+++ trunk/metadata/src/factory.py       Fri Dec 15 19:13:54 2006
@@ -132,26 +132,10 @@
         import video.mkv
         import misc.xml
 
-        # import some disc modules (may fail)
-        try:
-            import disc.vcd
-            import disc.audio
-        except ImportError, e:
-            # looks like cdrom.so was not created
-            if log.level < 30:
-                log.error(e)
-
-        try:
-            import disc.dvd
-        except ImportError, e:
-            if log.level < 30:
-                log.error(e)
-
-        try:
-            import disc.data
-        except ImportError, e:
-            if log.level < 30:
-                log.error(e)
+        import disc.vcd
+        import disc.audio
+        import disc.dvd
+        import disc.data
 
         import audio.mp3
         import audio.webradio
@@ -322,13 +306,10 @@
                 return self.create_from_url(name)
             if not os.path.exists(name):
                 return None
-            try:
-                if (os.uname()[0] == 'FreeBSD' and \
-                    stat.S_ISCHR(os.stat(name)[stat.ST_MODE])) \
-                    or stat.S_ISBLK(os.stat(name)[stat.ST_MODE]):
-                    return self.create_from_device(name)
-            except AttributeError:
-                pass
+            if (os.uname()[0] == 'FreeBSD' and \
+                stat.S_ISCHR(os.stat(name)[stat.ST_MODE])) \
+                or stat.S_ISBLK(os.stat(name)[stat.ST_MODE]):
+                return self.create_from_device(name)
             if os.path.isdir(name):
                 return self.create_from_directory(name)
             return self.create_from_filename(name, force)

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to