コード例 #1
0
ファイル: test_cddb.py プロジェクト: peter1010/cd_rip
 def test_freedb_disc_id(self):
     disc = Disc()
     self.assertEqual(
         freedb.freedb_disc_id(disc),
         "0003e800"
     )
     tracks = [Track() for i in range(5)]
     for i, tobj in enumerate(tracks):
         tobj.offset = i*1001+801
     disc.tracks = tracks
     self.assertEqual(
         freedb.freedb_disc_id(disc),
         "2003e805"
     )
コード例 #2
0
 def _read_discid(self, devname=DEVICE, fps=DEF_FPS):
     """Perform a cd-discid call"""
     info, is_musicbrainz = call_cd_discid(devname)
     if info is None:
         return False
     if is_musicbrainz:
         num_tracks = int(info[0])
         offsets = [int(x) for x in info[1:-1]]
         disc_len = int(info[-1])
     else:
         ### TO REMOVE, A cross-check
         disc_id = info[0]
         try:
             import rip_lib.freedb as freedb
             assert disc_id == freedb.freedb_disc_id(self)
         except ImportError:
             pass
         ###
         num_tracks = int(info[1])
         offsets = [int(x) for x in info[2:-1]]
         disc_len = fps * int(info[-1])
     assert num_tracks == len(offsets)
     lengths = [offsets[i+1] - offsets[i] \
         for i in range(num_tracks-1)
     ]
     lengths.append(disc_len - offsets[-1])
     self.lead_in = offsets[0]
     for i, offset in enumerate(offsets):
         track = self.add_track(i+1, offset)
         track.length = lengths[i]
         logger.debug("Length=%i", lengths[i])
     assert disc_len == self.calc_disc_len()
     return True