decode: accept annotation rows for -A specs
commit65cd80ade0cc8c569b13abd9a64dbe48b0d8fdfa
authorGerhard Sittig <gerhard.sittig@gmx.net>
Fri, 19 Apr 2019 14:50:39 +0000 (19 16:50 +0200)
committerUwe Hermann <uwe@hermann-uwe.de>
Thu, 9 May 2019 12:58:19 +0000 (9 14:58 +0200)
treef4a1613628d1b05fa2c030ae0580810c5b4293cc
parent4171a0a082c4c41263d9a08944e1c668bdd489e1
decode: accept annotation rows for -A specs

Extend the logic which parses -A annotation selection specs. Lookup
annotation classes first for backwards compatibility. Then lookup rows
when classes don't match.

Users can mix classes and rows in -A specs as they like. This is a
convenience feature, to eliminate the tedium of spelling out many
classes when a row is to be shown. Which is useful to only see the
"summary", the uppermost protocol layer within a protocol decoder, while
the individual bits on lower layers of that same protocol decoder are
not of interest. It's more accessible to specify

  -A ir_rc5=fields
  -A ac97=slots-out
  -A i2c=addr-data

instead of

  -A ir_rc5=startbit1:startbit2:togglebit-0:togglebit-1:address:command
  -A ac97=slot-out-tag:slot-out-cmd-addr:slot-out-cmd-data:slot-out-03:slot-out-04:slot-out-05:slot-out-06:slot-out-07:slot-out-08:slot-out-09:slot-out-10:slot-out-11:slot-out-io-ctrl
  -A i2c=start:repeat-start:stop:ack:nack:address-read:address-write:data-read:data-write

As an additional benefit row specs remain stable across decoder updates
which introduce new annotation classes on existing rows.
decode.c