X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=decoders%2Fi2s%2Fpd.py;h=bfb2c9e9f71b3952551d46499a957b7066c663ff;hb=5c723a57ebf09047b0fad0adab0f99c20e1b7d99;hp=474c6066c4612e68df8e1495aa922087f6d2db89;hpb=7f214f533f4ce67f5f6e603784fd5b37809791b6;p=libsigrokdecode.git diff --git a/decoders/i2s/pd.py b/decoders/i2s/pd.py index 474c606..bfb2c9e 100644 --- a/decoders/i2s/pd.py +++ b/decoders/i2s/pd.py @@ -33,9 +33,6 @@ Packet: : integer ''' -class SamplerateError(Exception): - pass - class Decoder(srd.Decoder): api_version = 3 id = 'i2s' @@ -60,6 +57,9 @@ class Decoder(srd.Decoder): ) def __init__(self): + self.reset() + + def reset(self): self.samplerate = None self.oldws = 1 self.bitcount = 0 @@ -89,12 +89,12 @@ class Decoder(srd.Decoder): self.put(self.ss_block, self.samplenum, self.out_ann, data) def report(self): - # Calculate the sample rate. samplerate = '?' if self.ss_block is not None and \ self.first_sample is not None and \ - self.ss_block > self.first_sample: + self.ss_block > self.first_sample and \ + self.samplerate: samplerate = '%d' % (self.samplesreceived * self.samplerate / (self.ss_block - self.first_sample)) @@ -118,15 +118,13 @@ class Decoder(srd.Decoder): h += b'\x20\x00' # Bits per sample (32) # Data subchunk h += b'data' - h += b'\xff\xff\x00\x00' # Subchunk size (65535 bytes) TODO + h += b'\xff\xff\xff\xff' # Subchunk size (4G bytes) TODO return h def wav_sample(self, sample): - return struct.pack('I', self.data) + return struct.pack('