def test_short(self): self.failUnlessEqual(cdata.short_le(self.ZERO(2)), 0) self.failUnlessEqual(cdata.short_le(self.LEONE(2)), 1) self.failUnlessEqual(cdata.short_le(self.BEONE(2)), 256) self.failUnlessEqual(cdata.short_le(self.NEGONE(2)), -1) self.assertTrue(cdata.short_le is cdata.int16_le) self.failUnlessEqual(cdata.short_be(self.ZERO(2)), 0) self.failUnlessEqual(cdata.short_be(self.LEONE(2)), 256) self.failUnlessEqual(cdata.short_be(self.BEONE(2)), 1) self.failUnlessEqual(cdata.short_be(self.NEGONE(2)), -1) self.assertTrue(cdata.short_be is cdata.int16_be)
def __init__(self, fileobj): header = fileobj.read(28) if len(header) != 28 or not header.startswith("wvpk"): raise WavPackHeaderError("not a WavPack file") samples = cdata.uint_le(header[12:16]) flags = cdata.uint_le(header[24:28]) self.version = cdata.short_le(header[8:10]) self.channels = bool(flags & 4) or 2 self.sample_rate = RATES[(flags >> 23) & 0xF] self.length = float(samples) / self.sample_rate