summaryrefslogtreecommitdiff
path: root/decoders/timing
diff options
context:
space:
mode:
Diffstat (limited to 'decoders/timing')
-rw-r--r--decoders/timing/pd.py27
1 files changed, 15 insertions, 12 deletions
diff --git a/decoders/timing/pd.py b/decoders/timing/pd.py
index 071c990..1295477 100644
--- a/decoders/timing/pd.py
+++ b/decoders/timing/pd.py
@@ -115,6 +115,7 @@ class Decoder(srd.Decoder):
raise SamplerateError('Cannot decode without samplerate.')
edge = self.options['edge']
avg_period = self.options['avg_period']
+ delta = self.options['delta'] == 'yes'
terse = self.options['terse'] == 'yes'
ss = None
last_n = deque()
@@ -134,21 +135,23 @@ class Decoder(srd.Decoder):
samples = es - ss
t = samples / self.samplerate
- if t > 0:
- last_n.append(t)
- if len(last_n) > avg_period:
- last_n.popleft()
-
if terse:
- self.put(ss, es, self.out_ann, [Ann.TERSE, terse_times(t)])
+ cls, txt = Ann.TERSE, terse_times(t)
+ self.put(ss, es, self.out_ann, [cls, txt])
else:
- self.put(ss, es, self.out_ann, [Ann.TIME, [normalize_time(t)]])
+ cls, txt = Ann.TIME, [normalize_time(t)]
+ self.put(ss, es, self.out_ann, [cls, txt])
if avg_period > 0:
- self.put(ss, es, self.out_ann,
- [Ann.AVG, [normalize_time(sum(last_n) / len(last_n))]])
- if last_t and self.options['delta'] == 'yes':
- self.put(ss, es, self.out_ann,
- [Ann.DELTA, [normalize_time(t - last_t)]])
+ if t > 0:
+ last_n.append(t)
+ if len(last_n) > avg_period:
+ last_n.popleft()
+ average = sum(last_n) / len(last_n)
+ cls, txt = Ann.AVG, normalize_time(average)
+ self.put(ss, es, self.out_ann, [cls, [txt]])
+ if last_t and delta:
+ cls, txt = Ann.DELTA, normalize_time(t - last_t)
+ self.put(ss, es, self.out_ann, [cls, [txt]])
last_t = t
ss = es