+ # Presets...
+ s = ord(inbuf[0])
+ for i in xrange(channels):
+ curbit = (s & (1 << i) != 0)
+ oldbit[i] = curbit
+
+ # Loop over all samples.
+ # TODO: Handle LAs with more/less than 8 channels.
+ for s in inbuf:
+ s = ord(s) # FIXME
+ for i in xrange(channels):
+ curbit = (s & (1 << i) != 0)
+ if (oldbit[i] == 0 and curbit == 1):
+ rising[i] += 1
+ elif (oldbit[i] == 1 and curbit == 0):
+ falling[i] += 1
+ oldbit[i] = curbit
+
+ # Total number of transitions is the sum of rising and falling edges.
+ for i in xrange(channels):
+ transitions[i] = rising[i] + falling[i]
+
+ outbuf += "Rising edges: "
+ for i in xrange(channels):
+ outbuf += str(rising[i]) + " "
+ outbuf += "\nFalling edges: "
+ for i in xrange(channels):
+ outbuf += str(falling[i]) + " "
+ outbuf += "\nTransitions: "
+ for i in xrange(channels):
+ outbuf += str(transitions[i]) + " "
+ outbuf += "\n"