From be2514f00947c02f011457094031927bd70d8ecd Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Mon, 10 Jan 2022 17:47:27 +0800 Subject: [PATCH] More flexible conversion of numeric formats --- DSView/pv/data/decode/AnnotationResTable.cpp | 163 +++++++++- DSView/pv/data/decode/AnnotationResTable.h | 30 +- DSView/pv/data/decode/annotation.cpp | 285 ++++++------------ DSView/pv/data/decode/annotation.h | 14 +- DSView/pv/data/decode/decoder.cpp | 4 +- DSView/pv/data/decoderstack.cpp | 3 + DSView/pv/dock/protocoldock.cpp | 20 +- DSView/pv/dock/protocoldock.h | 2 +- DSView/pv/dock/protocolitemlayer.cpp | 18 +- DSView/pv/dsvdef.cpp | 5 +- DSView/pv/dsvdef.h | 3 +- .../decoders => decoders}/0-i2c/__init__.py | 0 .../decoders => decoders}/0-i2c/pd.py | 0 .../decoders => decoders}/0-spi/__init__.py | 0 .../decoders => decoders}/0-spi/pd.py | 0 .../decoders => decoders}/0-uart/__init__.py | 0 .../decoders => decoders}/0-uart/pd.py | 0 .../decoders => decoders}/1-i2c/__init__.py | 0 .../decoders => decoders}/1-i2c/pd.py | 0 .../decoders => decoders}/1-spi/__init__.py | 0 .../decoders => decoders}/1-spi/pd.py | 0 .../decoders => decoders}/1-uart/__init__.py | 0 .../decoders => decoders}/1-uart/pd.py | 0 .../decoders => decoders}/a7105/__init__.py | 0 .../decoders => decoders}/a7105/pd.py | 0 .../decoders => decoders}/ac97/__init__.py | 0 .../decoders => decoders}/ac97/pd.py | 0 .../decoders => decoders}/ad5626/__init__.py | 0 .../decoders => decoders}/ad5626/pd.py | 0 .../decoders => decoders}/ad79x0/__init__.py | 0 .../decoders => decoders}/ad79x0/pd.py | 0 .../decoders => decoders}/ade77xx/__init__.py | 0 .../decoders => decoders}/ade77xx/lists.py | 0 .../decoders => decoders}/ade77xx/pd.py | 0 .../decoders => decoders}/adf435x/__init__.py | 0 .../decoders => decoders}/adf435x/pd.py | 0 .../adns5020/__init__.py | 0 .../decoders => decoders}/adns5020/pd.py | 0 .../decoders => decoders}/adxl345/__init__.py | 0 .../decoders => decoders}/adxl345/lists.py | 0 .../decoders => decoders}/adxl345/pd.py | 0 .../decoders => decoders}/am230x/__init__.py | 0 .../decoders => decoders}/am230x/pd.py | 0 .../amulet_ascii/__init__.py | 0 .../amulet_ascii/lists.py | 0 .../decoders => decoders}/amulet_ascii/pd.py | 0 .../arm_etmv3/__init__.py | 0 .../decoders => decoders}/arm_etmv3/pd.py | 0 .../decoders => decoders}/arm_itm/__init__.py | 0 .../decoders => decoders}/arm_itm/pd.py | 0 .../arm_tpiu/__init__.py | 0 .../decoders => decoders}/arm_tpiu/pd.py | 0 .../atsha204a/__init__.py | 0 .../decoders => decoders}/atsha204a/pd.py | 0 .../decoders => decoders}/aud/__init__.py | 0 .../decoders => decoders}/aud/pd.py | 0 .../decoders => decoders}/avr_isp/__init__.py | 0 .../decoders => decoders}/avr_isp/parts.py | 0 .../decoders => decoders}/avr_isp/pd.py | 0 .../decoders => decoders}/avr_pdi/__init__.py | 0 .../decoders => decoders}/avr_pdi/pd.py | 0 .../decoders => decoders}/caliper/__init__.py | 0 .../decoders => decoders}/caliper/pd.py | 0 .../decoders => decoders}/can/__init__.py | 0 .../decoders => decoders}/can/pd.py | 0 .../decoders => decoders}/cc1101/__init__.py | 0 .../decoders => decoders}/cc1101/lists.py | 0 .../decoders => decoders}/cc1101/pd.py | 0 .../decoders => decoders}/cec/__init__.py | 0 .../decoders => decoders}/cec/pd.py | 0 .../decoders => decoders}/cec/protocoldata.py | 0 .../decoders => decoders}/cfp/__init__.py | 0 .../decoders => decoders}/cfp/pd.py | 0 .../cjtag-oscan0/__init__.py | 0 .../decoders => decoders}/cjtag-oscan0/pd.py | 0 .../decoders => decoders}/common/__init__.py | 0 .../common/plugtrx/__init__.py | 0 .../common/plugtrx/mod.py | 0 .../common/sdcard/__init__.py | 0 .../common/sdcard/mod.py | 0 .../common/srdhelper/__init__.py | 0 .../common/srdhelper/mod.py | 0 .../decoders => decoders}/counter/__init__.py | 0 .../decoders => decoders}/counter/pd.py | 0 .../decoders => decoders}/dali/__init__.py | 0 .../decoders => decoders}/dali/lists.py | 0 .../decoders => decoders}/dali/pd.py | 0 .../decoders => decoders}/dcf77/__init__.py | 0 .../decoders => decoders}/dcf77/pd.py | 0 .../decoders => decoders}/dmx512/__init__.py | 0 .../decoders => decoders}/dmx512/pd.py | 0 .../decoders => decoders}/ds1307/__init__.py | 0 .../decoders => decoders}/ds1307/pd.py | 0 .../decoders => decoders}/ds2408/__init__.py | 0 .../decoders => decoders}/ds2408/pd.py | 0 .../decoders => decoders}/ds243x/__init__.py | 0 .../decoders => decoders}/ds243x/pd.py | 0 .../ds28ea00/__init__.py | 0 .../decoders => decoders}/ds28ea00/pd.py | 0 .../decoders => decoders}/dsi/__init__.py | 0 .../decoders => decoders}/dsi/pd.py | 0 .../decoders => decoders}/edid/__init__.py | 0 .../decoders => decoders}/edid/config | 0 .../decoders => decoders}/edid/pd.py | 0 .../decoders => decoders}/edid/pnpids.txt | 0 .../eeprom24xx/__init__.py | 0 .../decoders => decoders}/eeprom24xx/lists.py | 0 .../decoders => decoders}/eeprom24xx/pd.py | 0 .../eeprom93xx/__init__.py | 0 .../decoders => decoders}/eeprom93xx/pd.py | 0 .../decoders => decoders}/em4100/__init__.py | 0 .../decoders => decoders}/em4100/pd.py | 0 .../decoders => decoders}/em4305/__init__.py | 0 .../decoders => decoders}/em4305/pd.py | 0 .../enc28j60/__init__.py | 0 .../decoders => decoders}/enc28j60/lists.py | 0 .../decoders => decoders}/enc28j60/pd.py | 0 .../decoders => decoders}/flexray/__init__.py | 0 .../decoders => decoders}/flexray/pd.py | 0 .../decoders => decoders}/fsi/__init__.py | 0 .../decoders => decoders}/fsi/pd.py | 0 .../decoders => decoders}/gpib/__init__.py | 0 .../decoders => decoders}/gpib/pd.py | 0 .../graycode/__init__.py | 0 .../decoders => decoders}/graycode/pd.py | 0 .../guess_bitrate/__init__.py | 0 .../decoders => decoders}/guess_bitrate/pd.py | 0 .../decoders => decoders}/hdcp/__init__.py | 0 .../decoders => decoders}/hdcp/pd.py | 0 .../i2cdemux/__init__.py | 0 .../decoders => decoders}/i2cdemux/pd.py | 0 .../i2cfilter/__init__.py | 0 .../decoders => decoders}/i2cfilter/pd.py | 0 .../decoders => decoders}/i2s/__init__.py | 0 .../decoders => decoders}/i2s/pd.py | 0 .../decoders => decoders}/iec/__init__.py | 0 .../decoders => decoders}/iec/pd.py | 0 .../decoders => decoders}/ieee488/__init__.py | 0 .../decoders => decoders}/ieee488/pd.py | 0 .../decoders => decoders}/ir_irmp/__init__.py | 0 .../ir_irmp/irmp_library.py | 0 .../decoders => decoders}/ir_irmp/pd.py | 0 .../decoders => decoders}/ir_nec/__init__.py | 0 .../decoders => decoders}/ir_nec/lists.py | 0 .../decoders => decoders}/ir_nec/pd.py | 0 .../decoders => decoders}/ir_rc5/__init__.py | 0 .../decoders => decoders}/ir_rc5/lists.py | 0 .../decoders => decoders}/ir_rc5/pd.py | 0 .../decoders => decoders}/ir_rc6/__init__.py | 0 .../decoders => decoders}/ir_rc6/pd.py | 0 .../decoders => decoders}/ir_sirc/__init__.py | 0 .../decoders => decoders}/ir_sirc/lists.py | 0 .../decoders => decoders}/ir_sirc/pd.py | 0 .../decoders => decoders}/jitter/__init__.py | 0 .../decoders => decoders}/jitter/pd.py | 0 .../decoders => decoders}/jtag/__init__.py | 0 .../decoders => decoders}/jtag/pd.py | 0 .../jtag_ejtag/__init__.py | 0 .../decoders => decoders}/jtag_ejtag/pd.py | 0 .../jtag_stm32/__init__.py | 0 .../decoders => decoders}/jtag_stm32/pd.py | 0 .../decoders => decoders}/lfast/__init__.py | 0 .../decoders => decoders}/lfast/pd.py | 0 .../decoders => decoders}/lin/__init__.py | 0 .../decoders => decoders}/lin/pd.py | 0 .../decoders => decoders}/lm75/__init__.py | 0 .../decoders => decoders}/lm75/pd.py | 0 .../decoders => decoders}/lpc/__init__.py | 0 .../decoders => decoders}/lpc/pd.py | 0 .../decoders => decoders}/ltc242x/__init__.py | 0 .../decoders => decoders}/ltc242x/pd.py | 0 .../decoders => decoders}/ltc26x7/__init__.py | 0 .../decoders => decoders}/ltc26x7/pd.py | 0 .../maple_bus/__init__.py | 0 .../decoders => decoders}/maple_bus/pd.py | 0 .../decoders => decoders}/max7219/__init__.py | 0 .../decoders => decoders}/max7219/pd.py | 0 .../decoders => decoders}/mcs48/__init__.py | 0 .../decoders => decoders}/mcs48/pd.py | 0 .../decoders => decoders}/mdio/__init__.py | 0 .../decoders => decoders}/mdio/pd.py | 0 .../microwire/__init__.py | 0 .../decoders => decoders}/microwire/pd.py | 0 .../decoders => decoders}/midi/__init__.py | 0 .../decoders => decoders}/midi/lists.py | 0 .../decoders => decoders}/midi/pd.py | 0 .../decoders => decoders}/miller/__init__.py | 0 .../decoders => decoders}/miller/pd.py | 0 .../mipi_dsi/__init__.py | 0 .../decoders => decoders}/mipi_dsi/pd.py | 0 .../mipi_rffe/__init__.py | 0 .../decoders => decoders}/mipi_rffe/pd.py | 0 .../mlx90614/__init__.py | 0 .../decoders => decoders}/mlx90614/pd.py | 0 .../decoders => decoders}/modbus/__init__.py | 0 .../decoders => decoders}/modbus/pd.py | 0 .../decoders => decoders}/morse/__init__.py | 0 .../decoders => decoders}/morse/pd.py | 0 .../mrf24j40/__init__.py | 0 .../decoders => decoders}/mrf24j40/lists.py | 0 .../decoders => decoders}/mrf24j40/pd.py | 0 .../mxc6225xu/__init__.py | 0 .../decoders => decoders}/mxc6225xu/pd.py | 0 .../nes_gamepad/__init__.py | 0 .../decoders => decoders}/nes_gamepad/pd.py | 0 .../nrf24l01/__init__.py | 0 .../decoders => decoders}/nrf24l01/pd.py | 0 .../decoders => decoders}/nrf905/__init__.py | 0 .../decoders => decoders}/nrf905/pd.py | 0 .../numbers_and_state/__init__.py | 0 .../numbers_and_state/pd.py | 0 .../decoders => decoders}/nunchuk/__init__.py | 0 .../decoders => decoders}/nunchuk/pd.py | 0 .../onewire_link/__init__.py | 0 .../decoders => decoders}/onewire_link/pd.py | 0 .../onewire_network/__init__.py | 0 .../onewire_network/pd.py | 0 .../decoders => decoders}/ook/__init__.py | 0 .../decoders => decoders}/ook/pd.py | 0 .../ook_oregon/__init__.py | 0 .../decoders => decoders}/ook_oregon/lists.py | 0 .../decoders => decoders}/ook_oregon/pd.py | 0 .../decoders => decoders}/ook_vis/__init__.py | 0 .../decoders => decoders}/ook_vis/pd.py | 0 .../decoders => decoders}/pan1321/__init__.py | 0 .../decoders => decoders}/pan1321/pd.py | 0 .../parallel/__init__.py | 0 .../decoders => decoders}/parallel/pd.py | 0 .../decoders => decoders}/pca9571/__init__.py | 0 .../decoders => decoders}/pca9571/pd.py | 0 .../decoders => decoders}/pjdl/__init__.py | 0 .../decoders => decoders}/pjdl/pd.py | 0 .../decoders => decoders}/pjon/__init__.py | 0 .../decoders => decoders}/pjon/pd.py | 0 .../decoders => decoders}/ps2/__init__.py | 0 .../decoders => decoders}/ps2/pd.py | 0 .../decoders => decoders}/pwm/__init__.py | 0 .../decoders => decoders}/pwm/pd.py | 0 .../decoders => decoders}/qi/__init__.py | 0 .../decoders => decoders}/qi/pd.py | 0 .../decoders => decoders}/qspi/__init__.py | 0 .../decoders => decoders}/qspi/pd.py | 0 .../rc_encode/__init__.py | 0 .../decoders => decoders}/rc_encode/pd.py | 0 .../decoders => decoders}/rfm12/__init__.py | 0 .../decoders => decoders}/rfm12/pd.py | 0 .../rgb_led_spi/__init__.py | 0 .../decoders => decoders}/rgb_led_spi/pd.py | 0 .../rgb_led_ws281x/__init__.py | 0 .../rgb_led_ws281x/pd.py | 0 .../decoders => decoders}/rtc8564/__init__.py | 0 .../decoders => decoders}/rtc8564/pd.py | 0 .../sae_j1850_vpw/__init__.py | 0 .../decoders => decoders}/sae_j1850_vpw/pd.py | 0 .../decoders => decoders}/sda2506/__init__.py | 0 .../decoders => decoders}/sda2506/pd.py | 0 .../sdcard_sd/__init__.py | 0 .../decoders => decoders}/sdcard_sd/pd.py | 0 .../sdcard_spi/__init__.py | 0 .../decoders => decoders}/sdcard_spi/pd.py | 0 .../decoders => decoders}/sdq/__init__.py | 0 .../decoders => decoders}/sdq/pd.py | 0 .../seven_segment/__init__.py | 0 .../decoders => decoders}/seven_segment/pd.py | 0 .../signature/__init__.py | 0 .../decoders => decoders}/signature/pd.py | 0 .../decoders => decoders}/sipi/__init__.py | 0 .../decoders => decoders}/sipi/pd.py | 0 .../decoders => decoders}/sle44xx/__init__.py | 0 .../decoders => decoders}/sle44xx/pd.py | 0 .../decoders => decoders}/spdif/__init__.py | 0 .../decoders => decoders}/spdif/pd.py | 0 .../spiflash/__init__.py | 0 .../decoders => decoders}/spiflash/lists.py | 0 .../decoders => decoders}/spiflash/pd.py | 0 .../decoders => decoders}/ssi32/__init__.py | 0 .../decoders => decoders}/ssi32/pd.py | 0 .../st25r39xx_spi/__init__.py | 0 .../st25r39xx_spi/lists.py | 0 .../decoders => decoders}/st25r39xx_spi/pd.py | 0 .../decoders => decoders}/st7735/__init__.py | 0 .../decoders => decoders}/st7735/pd.py | 0 .../decoders => decoders}/st7789/__init__.py | 0 .../decoders => decoders}/st7789/pd.py | 0 .../stepper_motor/__init__.py | 0 .../decoders => decoders}/stepper_motor/pd.py | 0 .../decoders => decoders}/swd/__init__.py | 0 .../decoders => decoders}/swd/pd.py | 0 .../decoders => decoders}/swim/__init__.py | 0 .../decoders => decoders}/swim/pd.py | 0 .../decoders => decoders}/t55xx/__init__.py | 0 .../decoders => decoders}/t55xx/pd.py | 0 .../tca6408a/__init__.py | 0 .../decoders => decoders}/tca6408a/pd.py | 0 .../tdm_audio/__init__.py | 0 .../decoders => decoders}/tdm_audio/pd.py | 0 .../decoders => decoders}/timing/__init__.py | 0 .../decoders => decoders}/timing/pd.py | 0 .../decoders => decoders}/tlc5620/__init__.py | 0 .../decoders => decoders}/tlc5620/pd.py | 0 .../usb_packet/__init__.py | 0 .../decoders => decoders}/usb_packet/pd.py | 0 .../usb_power_delivery/__init__.py | 0 .../usb_power_delivery/pd.py | 0 .../usb_request/__init__.py | 0 .../decoders => decoders}/usb_request/pd.py | 0 .../usb_signalling/__init__.py | 0 .../usb_signalling/pd.py | 0 .../decoders => decoders}/wiegand/__init__.py | 0 .../decoders => decoders}/wiegand/pd.py | 0 .../decoders => decoders}/x2444m/__init__.py | 0 .../decoders => decoders}/x2444m/pd.py | 0 .../decoders => decoders}/xfp/__init__.py | 0 .../decoders => decoders}/xfp/pd.py | 0 .../decoders => decoders}/xy2-100/__init__.py | 0 .../decoders => decoders}/xy2-100/pd.py | 0 .../decoders => decoders}/z80/__init__.py | 0 .../decoders => decoders}/z80/pd.py | 0 .../decoders => decoders}/z80/tables.py | 0 doc/decoder.txt | 28 ++ libsigrokdecode4DSL/decoder.c | 14 +- libsigrokdecode4DSL/instance.c | 15 +- libsigrokdecode4DSL/libsigrokdecode.h | 22 +- libsigrokdecode4DSL/session.c | 1 + libsigrokdecode4DSL/srd.c | 3 +- libsigrokdecode4DSL/type_decoder.c | 129 +++++++- qtpro/DSView.pro.user | 4 +- .../tests => test/decode_test}/core.c | 0 .../tests => test/decode_test}/decoder.c | 0 .../tests => test/decode_test}/inst.c | 0 .../tests => test/decode_test}/lib.h | 0 .../tests => test/decode_test}/main.c | 0 .../tests => test/decode_test}/session.c | 0 333 files changed, 489 insertions(+), 274 deletions(-) rename {libsigrokdecode4DSL/decoders => decoders}/0-i2c/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/0-i2c/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/0-spi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/0-spi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/0-uart/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/0-uart/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/1-i2c/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/1-i2c/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/1-spi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/1-spi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/1-uart/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/1-uart/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/a7105/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/a7105/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ac97/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ac97/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ad5626/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ad5626/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ad79x0/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ad79x0/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ade77xx/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ade77xx/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ade77xx/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/adf435x/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/adf435x/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/adns5020/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/adns5020/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/adxl345/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/adxl345/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/adxl345/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/am230x/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/am230x/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/amulet_ascii/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/amulet_ascii/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/amulet_ascii/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/arm_etmv3/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/arm_etmv3/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/arm_itm/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/arm_itm/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/arm_tpiu/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/arm_tpiu/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/atsha204a/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/atsha204a/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/aud/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/aud/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/avr_isp/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/avr_isp/parts.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/avr_isp/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/avr_pdi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/avr_pdi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/caliper/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/caliper/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/can/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/can/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cc1101/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cc1101/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cc1101/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cec/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cec/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cec/protocoldata.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cfp/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cfp/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cjtag-oscan0/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/cjtag-oscan0/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/common/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/common/plugtrx/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/common/plugtrx/mod.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/common/sdcard/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/common/sdcard/mod.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/common/srdhelper/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/common/srdhelper/mod.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/counter/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/counter/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dali/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dali/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dali/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dcf77/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dcf77/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dmx512/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dmx512/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ds1307/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ds1307/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ds2408/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ds2408/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ds243x/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ds243x/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ds28ea00/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ds28ea00/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dsi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/dsi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/edid/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/edid/config (100%) rename {libsigrokdecode4DSL/decoders => decoders}/edid/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/edid/pnpids.txt (100%) rename {libsigrokdecode4DSL/decoders => decoders}/eeprom24xx/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/eeprom24xx/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/eeprom24xx/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/eeprom93xx/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/eeprom93xx/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/em4100/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/em4100/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/em4305/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/em4305/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/enc28j60/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/enc28j60/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/enc28j60/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/flexray/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/flexray/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/fsi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/fsi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/gpib/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/gpib/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/graycode/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/graycode/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/guess_bitrate/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/guess_bitrate/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/hdcp/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/hdcp/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/i2cdemux/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/i2cdemux/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/i2cfilter/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/i2cfilter/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/i2s/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/i2s/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/iec/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/iec/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ieee488/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ieee488/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_irmp/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_irmp/irmp_library.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_irmp/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_nec/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_nec/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_nec/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_rc5/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_rc5/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_rc5/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_rc6/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_rc6/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_sirc/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_sirc/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ir_sirc/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/jitter/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/jitter/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/jtag/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/jtag/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/jtag_ejtag/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/jtag_ejtag/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/jtag_stm32/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/jtag_stm32/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/lfast/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/lfast/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/lin/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/lin/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/lm75/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/lm75/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/lpc/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/lpc/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ltc242x/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ltc242x/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ltc26x7/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ltc26x7/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/maple_bus/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/maple_bus/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/max7219/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/max7219/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mcs48/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mcs48/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mdio/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mdio/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/microwire/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/microwire/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/midi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/midi/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/midi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/miller/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/miller/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mipi_dsi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mipi_dsi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mipi_rffe/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mipi_rffe/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mlx90614/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mlx90614/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/modbus/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/modbus/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/morse/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/morse/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mrf24j40/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mrf24j40/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mrf24j40/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mxc6225xu/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/mxc6225xu/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/nes_gamepad/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/nes_gamepad/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/nrf24l01/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/nrf24l01/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/nrf905/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/nrf905/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/numbers_and_state/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/numbers_and_state/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/nunchuk/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/nunchuk/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/onewire_link/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/onewire_link/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/onewire_network/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/onewire_network/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ook/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ook/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ook_oregon/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ook_oregon/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ook_oregon/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ook_vis/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ook_vis/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pan1321/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pan1321/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/parallel/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/parallel/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pca9571/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pca9571/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pjdl/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pjdl/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pjon/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pjon/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ps2/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ps2/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pwm/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/pwm/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/qi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/qi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/qspi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/qspi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rc_encode/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rc_encode/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rfm12/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rfm12/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rgb_led_spi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rgb_led_spi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rgb_led_ws281x/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rgb_led_ws281x/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rtc8564/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/rtc8564/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sae_j1850_vpw/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sae_j1850_vpw/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sda2506/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sda2506/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sdcard_sd/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sdcard_sd/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sdcard_spi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sdcard_spi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sdq/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sdq/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/seven_segment/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/seven_segment/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/signature/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/signature/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sipi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sipi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sle44xx/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/sle44xx/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/spdif/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/spdif/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/spiflash/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/spiflash/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/spiflash/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ssi32/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/ssi32/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/st25r39xx_spi/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/st25r39xx_spi/lists.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/st25r39xx_spi/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/st7735/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/st7735/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/st7789/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/st7789/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/stepper_motor/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/stepper_motor/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/swd/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/swd/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/swim/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/swim/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/t55xx/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/t55xx/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/tca6408a/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/tca6408a/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/tdm_audio/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/tdm_audio/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/timing/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/timing/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/tlc5620/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/tlc5620/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/usb_packet/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/usb_packet/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/usb_power_delivery/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/usb_power_delivery/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/usb_request/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/usb_request/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/usb_signalling/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/usb_signalling/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/wiegand/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/wiegand/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/x2444m/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/x2444m/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/xfp/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/xfp/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/xy2-100/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/xy2-100/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/z80/__init__.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/z80/pd.py (100%) rename {libsigrokdecode4DSL/decoders => decoders}/z80/tables.py (100%) create mode 100644 doc/decoder.txt rename {libsigrokdecode4DSL/tests => test/decode_test}/core.c (100%) rename {libsigrokdecode4DSL/tests => test/decode_test}/decoder.c (100%) rename {libsigrokdecode4DSL/tests => test/decode_test}/inst.c (100%) rename {libsigrokdecode4DSL/tests => test/decode_test}/lib.h (100%) rename {libsigrokdecode4DSL/tests => test/decode_test}/main.c (100%) rename {libsigrokdecode4DSL/tests => test/decode_test}/session.c (100%) diff --git a/DSView/pv/data/decode/AnnotationResTable.cpp b/DSView/pv/data/decode/AnnotationResTable.cpp index 805129f3..f9be9e16 100644 --- a/DSView/pv/data/decode/AnnotationResTable.cpp +++ b/DSView/pv/data/decode/AnnotationResTable.cpp @@ -21,36 +21,169 @@ #include "AnnotationResTable.h" #include +#include "../../dsvdef.h" + +#define DECODER_MAX_DATA_BLOCK_LEN 25 +#define FORMAT_TMP_BUFFER_SIZE 100 + +const char g_bin_cvt_table[] = "0000000100100011010001010110011110001001101010111100110111101111"; +char g_bin_format_tmp_buffer[FORMAT_TMP_BUFFER_SIZE + 3]; +char g_oct_format_tmp_buffer[FORMAT_TMP_BUFFER_SIZE + 6]; +char g_number_tmp_64[30]; + char* bin2oct_string(char *buf, int size, const char *bin, int len){ + char *wr = buf + size - 1; + *wr = 0; //end flag -AnnotationResTable::AnnotationResTable(){ - + char *rd = (char*)bin + len - 1; //move to last byte + char tmp[3]; + + while (rd >= bin && wr > buf) + { + wr--; + int num = 0; + + while (rd >= bin && num < 3) + { + tmp[2-num] = *rd; + rd--; + num++; + } + + //fill + while (num < 3) + { + tmp[2-num] = '0'; + ++num; + } + + if (strncmp(tmp, "000", 3) == 0) + *wr = '0'; + else if (strncmp(tmp, "001", 3) == 0) + *wr = '1'; + else if (strncmp(tmp, "010", 3) == 0) + *wr = '2'; + else if (strncmp(tmp, "011", 3) == 0) + *wr = '3'; + else if (strncmp(tmp, "100", 3) == 0) + *wr = '4'; + else if (strncmp(tmp, "101", 3) == 0) + *wr = '5'; + else if (strncmp(tmp, "110", 3) == 0) + *wr = '6'; + else if (strncmp(tmp, "111", 3) == 0) + *wr = '7'; + } + + return wr; } -AnnotationResTable::~AnnotationResTable(){ - +long long bin2long_string(const char *bin, int len) +{ + char *rd = (char *)bin + len - 1; //move to last byte + int dex = 0; + long long value = 0; + long long bv = 0; + + while (rd >= bin) + { + if (*rd == '1') + { + bv = 1 << dex; + value += bv; + } + rd--; + ++dex; + } + + return value; } -int AnnotationResTable::MakeIndex(const std::string &key, AnnotationStringList *&ls) + +int AnnotationResTable::MakeIndex(const std::string &key, AnnotationSourceItem* &newItem) { - auto fd =m_indexs.find(key); + auto fd = m_indexs.find(key); if (fd != m_indexs.end()){ return (*fd).second; } - + + AnnotationSourceItem *item = new AnnotationSourceItem(); + m_resourceTable.push_back(item); + + item->cur_display_format = -1; + item->is_numerical = false; + newItem = item; + int dex = m_indexs.size(); m_indexs[key] = dex; - - //make a new string vector - m_resourceTable.push_back(AnnotationStringList()); - ls = &m_resourceTable[dex]; - return dex; } -const AnnotationStringList& AnnotationResTable::GetString(int index){ - int num = m_resourceTable.size(); - assert(index >= 0 && index < num); +AnnotationSourceItem* AnnotationResTable::GetItem(int index){ + assert(index >= 0 && index < m_resourceTable.size()); return m_resourceTable[index]; } + +const char* AnnotationResTable::format_numberic(const char *hex_str, int fmt) +{ + assert(hex_str); + + //flow, convert to oct\dec\bin format + const char *data = hex_str; + if (data[0] == 0 || fmt == DecoderDataFormat::hex){ + return data; + } + + //convert to bin format + char *buf = g_bin_format_tmp_buffer + FORMAT_TMP_BUFFER_SIZE; + *(buf + 1) = 0; //set the end flag + *buf = 0; + + int len = strlen(data); + //buffer is not enough + if (len > DECODER_MAX_DATA_BLOCK_LEN){ + return data; + } + + char *rd = (char*)data + len - 1; //move to last byte + char c = 0; + int dex = 0; + + while (rd >= data) + { + c = *rd; + dex = (int)(c <= '9' ? (c - '0') : (c - 'A' + 10)); + char *ptable = (char*)g_bin_cvt_table + dex * 4; + + buf -= 4; //move to left for 4 bytes + buf[0] = ptable[0]; + buf[1] = ptable[1]; + buf[2] = ptable[2]; + buf[3] = ptable[3]; + + rd--; + } + + //get bin format + if (fmt == DecoderDataFormat::bin){ + return buf; + } + + //get oct format + if (fmt == DecoderDataFormat::oct){ + char *oct_buf = bin2oct_string(g_oct_format_tmp_buffer, + sizeof(g_oct_format_tmp_buffer), buf, len * 4); + return oct_buf; + } + + //64 bit integer + if (fmt == DecoderDataFormat::dec && len * 4 <= 64){ + long long lv = bin2long_string(buf, len *4); + g_number_tmp_64[0] = 0; + sprintf(g_number_tmp_64, "%lld", lv); + return g_number_tmp_64; + } + + return data; +} diff --git a/DSView/pv/data/decode/AnnotationResTable.h b/DSView/pv/data/decode/AnnotationResTable.h index 21639ae5..3d6ea3ed 100644 --- a/DSView/pv/data/decode/AnnotationResTable.h +++ b/DSView/pv/data/decode/AnnotationResTable.h @@ -26,23 +26,27 @@ #include #include -typedef std::vector AnnotationStringList; +struct AnnotationSourceItem +{ + bool is_numerical; + char str_number_hex[18]; //numerical value hex format string + std::vector src_lines; //the origin source string lines + std::vector cvt_lines; //the converted to bin/hex/oct format string lines + int cur_display_format; //current format as bin/ex/oct..., init with -1 +}; -class AnnotationResTable{ - +class AnnotationResTable +{ public: - AnnotationResTable(); + int MakeIndex(const std::string &key, AnnotationSourceItem* &newItem); + AnnotationSourceItem* GetItem(int index); - ~AnnotationResTable(); + inline int GetCount(){ + return m_resourceTable.size();} - int MakeIndex(const std::string &key, AnnotationStringList *&ls); - - const AnnotationStringList& GetString(int index); - - inline int GetCount(){return m_resourceTable.size();} - + static const char* format_numberic(const char *hex_str, int fmt); private: - std::map m_indexs; - std::vector m_resourceTable; + std::map m_indexs; + std::vector m_resourceTable; }; \ No newline at end of file diff --git a/DSView/pv/data/decode/annotation.cpp b/DSView/pv/data/decode/annotation.cpp index 1949e0ec..87c97c65 100755 --- a/DSView/pv/data/decode/annotation.cpp +++ b/DSView/pv/data/decode/annotation.cpp @@ -32,134 +32,84 @@ #include "../../config/appconfig.h" #include "decoderstatus.h" #include "../../dsvdef.h" + + //a find talbe instance +AnnotationResTable annTable; +char sz_format_tmp_buf[50]; -#define DECODER_MAX_DATA_BLOCK_LEN 300 -#define FORMAT_TMP_BUFFER_SIZE 1200 +bool is_hex_number_str(const char *str) +{ + char c = *str; -const char g_bin_cvt_table[] = "0000000100100011010001010110011110001001101010111100110111101111"; -char g_bin_format_tmp_buffer[FORMAT_TMP_BUFFER_SIZE + 3]; -char g_oct_format_tmp_buffer[FORMAT_TMP_BUFFER_SIZE + 6]; -std::vector g_format_ret_vector; - -char* bin2oct_string(char *buf, int size, const char *bin, int len){ - char *wr = buf + size - 1; - *wr = 0; //end flag - - char *rd = (char*)bin + len - 1; //move to last byte - - char tmp[3]; - - while (rd >= bin && wr > buf) - { - wr--; - - int num = 0; - - while (rd >= bin && num < 3) - { - tmp[2-num] = *rd; - rd--; - num++; - } - - //fill - while (num < 3) - { - tmp[2-num] = '0'; - ++num; - } - - - if (strncmp(tmp, "000", 3) == 0) - *wr = '0'; - else if (strncmp(tmp, "001", 3) == 0) - *wr = '1'; - else if (strncmp(tmp, "010", 3) == 0) - *wr = '2'; - else if (strncmp(tmp, "011", 3) == 0) - *wr = '3'; - else if (strncmp(tmp, "100", 3) == 0) - *wr = '4'; - else if (strncmp(tmp, "101", 3) == 0) - *wr = '5'; - else if (strncmp(tmp, "110", 3) == 0) - *wr = '6'; - else if (strncmp(tmp, "111", 3) == 0) - *wr = '7'; - } - - return wr; -} - -long long bin2long_string(const char *bin, int len) -{ - char *rd = (char *)bin + len - 1; //move to last byte - int dex = 0; - long long value = 0; - long long bv = 0; - - while (rd >= bin) + while (c) { - if (*rd == '1') - { - bv = 1 << dex; - value += bv; + if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')){ + c = *str; + str++; + continue; } - rd--; - ++dex; + return false; } - - return value; + + return true; } namespace pv { namespace data { namespace decode { - -//a find talbe instance -AnnotationResTable *Annotation::m_resTable = new AnnotationResTable(); - -Annotation::Annotation(const srd_proto_data *const pdata, DecoderStatus *status) : - _start_sample(pdata->start_sample), - _end_sample(pdata->end_sample) + +Annotation::Annotation(const srd_proto_data *const pdata, DecoderStatus *status) { assert(pdata); const srd_proto_data_annotation *const pda = (const srd_proto_data_annotation*)pdata->data; assert(pda); - _format = pda->ann_class; - _type = pda->ann_type; - _status = status; - - //have numerical - if (_type >= 100 && _type < 200){ - status->m_bNumerical = true; - } - - _strIndex = 0; - - std::string key; + _start_sample = pdata->start_sample; + _end_sample = pdata->end_sample; + _format = pda->ann_class; + _type = pda->ann_type; + _resIndex = 0; + _status = status; + //make resource find key - const char *const *annotations = (char**)pda->ann_text; - while(*annotations) { - const char *ptr = *annotations; - key.append(ptr, strlen(ptr)); + std::string key; + + char **annotations = pda->ann_text; + while(annotations && *annotations) { + key.append(*annotations, strlen(*annotations)); annotations++; } - - AnnotationStringList *annotationArray = NULL; - _strIndex = Annotation::m_resTable->MakeIndex(key, annotationArray); + + if (pda->str_number_hex[0]){ + //append numeric string + key.append(pda->str_number_hex, strlen(pda->str_number_hex)); + } + + AnnotationSourceItem *resItem = NULL; + _resIndex = annTable.MakeIndex(key, resItem); - //save new string lines - if (annotationArray){ - annotations = (char **)pda->ann_text; - while (*annotations) - { - annotationArray->push_back(QString::fromUtf8(*annotations)); - annotations++; + //is a new item + if (resItem != NULL){ + char **annotations = pda->ann_text; + while(annotations && *annotations) { + resItem->src_lines.push_back(QString::fromUtf8(*annotations)); + annotations++; } - } + + //get numerical data + if (pda->str_number_hex[0]){ + strcpy(resItem->str_number_hex, pda->str_number_hex); + resItem->is_numerical = true; + } + else if (resItem->src_lines.size() == 1 && _type >= 100 && _type < 200){ + if (is_hex_number_str(resItem->src_lines[0].toLatin1().data())){ + resItem->is_numerical = true; + } + } + + _status->m_bNumerical |= resItem->is_numerical; + } } Annotation::Annotation() @@ -172,93 +122,52 @@ Annotation::~Annotation() { } - - - + const std::vector& Annotation::annotations() const { assert(_status); - - int fmt = _status->m_format; - const std::vector& vct = Annotation::m_resTable->GetString(_strIndex); - - if (!(_type >= 100 && _type < 200) || fmt == DecoderDataFormat::ascii || fmt == DecoderDataFormat::hex){ - return vct; + + AnnotationSourceItem &resItem = *annTable.GetItem(_resIndex); + + //get origin data, is not a numberical value + if (!resItem.is_numerical){ + return resItem.src_lines; } - if (vct.size() != 1){ - return vct; + + if (resItem.cur_display_format != _status->m_format){ + resItem.cur_display_format = _status->m_format; + resItem.cvt_lines.clear(); + + if (resItem.src_lines.size() > 0) + { + for (QString &rd_src : resItem.src_lines) + { + if (resItem.str_number_hex[0] != 0) + { + QString src = rd_src.replace("{$}", "%s"); + const char *num_str = AnnotationResTable::format_numberic(resItem.str_number_hex, resItem.cur_display_format); + sprintf(sz_format_tmp_buf, src.toLatin1().data(), num_str); + resItem.cvt_lines.push_back(QString(sz_format_tmp_buf)); + } + else + { + const char *src_str = rd_src.toLatin1().data(); + const char *num_str = AnnotationResTable::format_numberic(src_str, resItem.cur_display_format); + if (src_str != num_str) + resItem.cvt_lines.push_back(QString(num_str)); + else + resItem.cvt_lines.push_back(QString(rd_src)); + } + } + } + else{ + const char *num_str = AnnotationResTable::format_numberic(resItem.str_number_hex, resItem.cur_display_format); + resItem.cvt_lines.push_back(QString(num_str)); + } } - //flow, convert to oct\dec\bin format - const char *data = vct[0].toStdString().c_str(); - if (*data == 0 || *data == '['){ - return vct; - } - - //convert to bin format - char *buf = g_bin_format_tmp_buffer + FORMAT_TMP_BUFFER_SIZE; - *(buf + 1) = 0; //set the end flag - *buf = 0; - - int len = strlen(data); - //buffer is not enough - if (len > DECODER_MAX_DATA_BLOCK_LEN){ - return vct; - } - - char *rd = (char*)data + len - 1; //move to last byte - char c = 0; - int dex = 0; - - while (rd >= data) - { - c = *rd; - dex = (int)(c <= '9' ? (c - '0') : (c - 'A' + 10)); - char *ptable = (char*)g_bin_cvt_table + dex * 4; - - buf -= 4; //move to left for 4 bytes - buf[0] = ptable[0]; - buf[1] = ptable[1]; - buf[2] = ptable[2]; - buf[3] = ptable[3]; - - rd--; - } - - std::vector &vct2 = g_format_ret_vector; - if (vct2.size() == 0){ - vct2.push_back(QString()); - } - - //get bin format - if (fmt == DecoderDataFormat::bin){ - vct2[0].clear(); - vct2[0].append(buf); - return vct2; - } - - //get oct format - if (fmt == DecoderDataFormat::oct){ - char *oct_buf = bin2oct_string(g_oct_format_tmp_buffer, - sizeof(g_oct_format_tmp_buffer), buf, len * 4); - vct2[0].clear(); - vct2[0].append(oct_buf); - return vct2; - } - - //64 bit integer - if (fmt == DecoderDataFormat::dec && len * 4 <= 64){ - long long lv = bin2long_string(buf, len *4); - char vbuf[30] = {0}; - sprintf(vbuf, "%lld", lv); - - vct2[0].clear(); - vct2[0].append(vbuf); - return vct2; - } - - return vct2; -} + return resItem.cvt_lines; +} } // namespace decode diff --git a/DSView/pv/data/decode/annotation.h b/DSView/pv/data/decode/annotation.h index 2e8d359e..f2025776 100755 --- a/DSView/pv/data/decode/annotation.h +++ b/DSView/pv/data/decode/annotation.h @@ -66,14 +66,12 @@ public: const std::vector& annotations() const; private: - uint64_t _start_sample; - uint64_t _end_sample; - short _format; - short _type; //100-199: is a numerical value type,can show hex/oct format - short _strIndex; - DecoderStatus *_status; - - static AnnotationResTable * m_resTable; + uint64_t _start_sample; + uint64_t _end_sample; + short _format; + short _type; + short _resIndex; + DecoderStatus *_status; /*a global variable*/ }; } // namespace decode diff --git a/DSView/pv/data/decode/decoder.cpp b/DSView/pv/data/decode/decoder.cpp index 4c2e80f0..81e4f1c7 100755 --- a/DSView/pv/data/decode/decoder.cpp +++ b/DSView/pv/data/decode/decoder.cpp @@ -127,9 +127,7 @@ srd_decoder_inst* Decoder::create_decoder_inst(srd_session *session) GHashTable *const probes = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)g_variant_unref); - for(std::map:: - const_iterator i = _probes.begin(); - i != _probes.end(); i++) + for(auto i = _probes.begin(); i != _probes.end(); i++) { GVariant *const gvar = g_variant_new_int32((*i).second); g_variant_ref_sink(gvar); diff --git a/DSView/pv/data/decoderstack.cpp b/DSView/pv/data/decoderstack.cpp index 9a32a7ab..7b7f3930 100755 --- a/DSView/pv/data/decoderstack.cpp +++ b/DSView/pv/data/decoderstack.cpp @@ -463,6 +463,8 @@ void DecoderStack::decode_data(const uint64_t decode_start, const uint64_t decod { decode_task_status *status = _stask_stauts; + // qDebug()<<"decode start:"< lock(_output_mutex); _samples_decoded = i - decode_start + 1; diff --git a/DSView/pv/dock/protocoldock.cpp b/DSView/pv/dock/protocoldock.cpp index 28cf86b0..9a49da9c 100755 --- a/DSView/pv/dock/protocoldock.cpp +++ b/DSView/pv/dock/protocoldock.cpp @@ -484,6 +484,8 @@ void ProtocolDock::item_clicked(const QModelIndex &index) decoder_stack->set_mark_index((ann.start_sample()+ann.end_sample())/2); _session->show_region(ann.start_sample(), ann.end_sample(), false); + + // qDebug()<resizeRowToContents(index.row()); @@ -652,31 +654,44 @@ void ProtocolDock::search_nxt() _cur_search_index = -1; return; } + int i = 0; uint64_t rowCount = _model_proxy.rowCount(); QModelIndex matchingIndex; pv::data::DecoderModel *decoder_model = _session->get_decoder_model(); + auto decoder_stack = decoder_model->getDecoderStack(); + + if (decoder_stack == NULL){ + qDebug()<<"decoder_stack is null"; + return; + } - auto decoder_stack = decoder_model->getDecoderStack(); do { _cur_search_index++; if (_cur_search_index < 0 || _cur_search_index >= _model_proxy.rowCount()) _cur_search_index = 0; matchingIndex = _model_proxy.mapToSource(_model_proxy.index(floor(_cur_search_index),_model_proxy.filterKeyColumn())); - if (!decoder_stack || !matchingIndex.isValid()) + + if (!matchingIndex.isValid()) break; + + // qDebug()<<"row:"<list_annotation(ann, col, row); row++; }while(ann_valid && (ann.type() < 100 || ann.type() > 999)); + + auto strlist = ann.annotations(); QString source = ann.annotations().at(0); if (ann_valid && source.contains(nxt)) i++; @@ -748,7 +763,6 @@ void ProtocolDock::search_update() search_done(); } _search_edited = false; - //search_done(); } //-------------------IProtocolItemLayerCallback diff --git a/DSView/pv/dock/protocoldock.h b/DSView/pv/dock/protocoldock.h index 2fc198e1..c01245f0 100755 --- a/DSView/pv/dock/protocoldock.h +++ b/DSView/pv/dock/protocoldock.h @@ -117,7 +117,7 @@ private: SigSession *_session; view::View &_view; QSortFilterProxyModel _model_proxy; - double _cur_search_index; + int _cur_search_index; QStringList _str_list; QSplitter *_split_widget; diff --git a/DSView/pv/dock/protocolitemlayer.cpp b/DSView/pv/dock/protocolitemlayer.cpp index 4dfe4cfb..784c2a19 100644 --- a/DSView/pv/dock/protocolitemlayer.cpp +++ b/DSView/pv/dock/protocolitemlayer.cpp @@ -120,20 +120,14 @@ void ProtocolItemLayer::LoadFormatSelect(bool bSingle) m_singleFlag = bSingle; m_bSetting = true; - _format_combox->clear(); - _format_combox->addItem("ascii"); - int dex = 0; + _format_combox->clear(); - if (!bSingle) - { - _format_combox->addItem("dec"); - _format_combox->addItem("hex"); - _format_combox->addItem("oct"); - _format_combox->addItem("bin"); - dex = 2; - } + _format_combox->addItem("hex"); + _format_combox->addItem("dec"); + _format_combox->addItem("oct"); + _format_combox->addItem("bin"); - _format_combox->setCurrentIndex(dex); + _format_combox->setCurrentIndex(0); m_bSetting = false; } diff --git a/DSView/pv/dsvdef.cpp b/DSView/pv/dsvdef.cpp index 0ad7c4ef..35c57072 100644 --- a/DSView/pv/dsvdef.cpp +++ b/DSView/pv/dsvdef.cpp @@ -41,9 +41,6 @@ namespace DecoderDataFormat { int Parse(const char *name){ - if (strcmp(name, "ascii") == 0){ - return (int)ascii; - } if (strcmp(name, "dec") == 0){ return (int)dec; } @@ -56,7 +53,7 @@ namespace DecoderDataFormat if (strcmp(name, "bin") == 0){ return (int)bin; } - return (int)ascii; + return (int)hex; } } diff --git a/DSView/pv/dsvdef.h b/DSView/pv/dsvdef.h index b2b26002..fc209a79 100644 --- a/DSView/pv/dsvdef.h +++ b/DSView/pv/dsvdef.h @@ -49,9 +49,8 @@ namespace DecoderDataFormat { enum _data_format { - ascii = 0, - dec, hex, + dec, oct, bin }; diff --git a/libsigrokdecode4DSL/decoders/0-i2c/__init__.py b/decoders/0-i2c/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/0-i2c/__init__.py rename to decoders/0-i2c/__init__.py diff --git a/libsigrokdecode4DSL/decoders/0-i2c/pd.py b/decoders/0-i2c/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/0-i2c/pd.py rename to decoders/0-i2c/pd.py diff --git a/libsigrokdecode4DSL/decoders/0-spi/__init__.py b/decoders/0-spi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/0-spi/__init__.py rename to decoders/0-spi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/0-spi/pd.py b/decoders/0-spi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/0-spi/pd.py rename to decoders/0-spi/pd.py diff --git a/libsigrokdecode4DSL/decoders/0-uart/__init__.py b/decoders/0-uart/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/0-uart/__init__.py rename to decoders/0-uart/__init__.py diff --git a/libsigrokdecode4DSL/decoders/0-uart/pd.py b/decoders/0-uart/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/0-uart/pd.py rename to decoders/0-uart/pd.py diff --git a/libsigrokdecode4DSL/decoders/1-i2c/__init__.py b/decoders/1-i2c/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/1-i2c/__init__.py rename to decoders/1-i2c/__init__.py diff --git a/libsigrokdecode4DSL/decoders/1-i2c/pd.py b/decoders/1-i2c/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/1-i2c/pd.py rename to decoders/1-i2c/pd.py diff --git a/libsigrokdecode4DSL/decoders/1-spi/__init__.py b/decoders/1-spi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/1-spi/__init__.py rename to decoders/1-spi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/1-spi/pd.py b/decoders/1-spi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/1-spi/pd.py rename to decoders/1-spi/pd.py diff --git a/libsigrokdecode4DSL/decoders/1-uart/__init__.py b/decoders/1-uart/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/1-uart/__init__.py rename to decoders/1-uart/__init__.py diff --git a/libsigrokdecode4DSL/decoders/1-uart/pd.py b/decoders/1-uart/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/1-uart/pd.py rename to decoders/1-uart/pd.py diff --git a/libsigrokdecode4DSL/decoders/a7105/__init__.py b/decoders/a7105/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/a7105/__init__.py rename to decoders/a7105/__init__.py diff --git a/libsigrokdecode4DSL/decoders/a7105/pd.py b/decoders/a7105/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/a7105/pd.py rename to decoders/a7105/pd.py diff --git a/libsigrokdecode4DSL/decoders/ac97/__init__.py b/decoders/ac97/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ac97/__init__.py rename to decoders/ac97/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ac97/pd.py b/decoders/ac97/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ac97/pd.py rename to decoders/ac97/pd.py diff --git a/libsigrokdecode4DSL/decoders/ad5626/__init__.py b/decoders/ad5626/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ad5626/__init__.py rename to decoders/ad5626/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ad5626/pd.py b/decoders/ad5626/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ad5626/pd.py rename to decoders/ad5626/pd.py diff --git a/libsigrokdecode4DSL/decoders/ad79x0/__init__.py b/decoders/ad79x0/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ad79x0/__init__.py rename to decoders/ad79x0/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ad79x0/pd.py b/decoders/ad79x0/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ad79x0/pd.py rename to decoders/ad79x0/pd.py diff --git a/libsigrokdecode4DSL/decoders/ade77xx/__init__.py b/decoders/ade77xx/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ade77xx/__init__.py rename to decoders/ade77xx/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ade77xx/lists.py b/decoders/ade77xx/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ade77xx/lists.py rename to decoders/ade77xx/lists.py diff --git a/libsigrokdecode4DSL/decoders/ade77xx/pd.py b/decoders/ade77xx/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ade77xx/pd.py rename to decoders/ade77xx/pd.py diff --git a/libsigrokdecode4DSL/decoders/adf435x/__init__.py b/decoders/adf435x/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/adf435x/__init__.py rename to decoders/adf435x/__init__.py diff --git a/libsigrokdecode4DSL/decoders/adf435x/pd.py b/decoders/adf435x/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/adf435x/pd.py rename to decoders/adf435x/pd.py diff --git a/libsigrokdecode4DSL/decoders/adns5020/__init__.py b/decoders/adns5020/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/adns5020/__init__.py rename to decoders/adns5020/__init__.py diff --git a/libsigrokdecode4DSL/decoders/adns5020/pd.py b/decoders/adns5020/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/adns5020/pd.py rename to decoders/adns5020/pd.py diff --git a/libsigrokdecode4DSL/decoders/adxl345/__init__.py b/decoders/adxl345/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/adxl345/__init__.py rename to decoders/adxl345/__init__.py diff --git a/libsigrokdecode4DSL/decoders/adxl345/lists.py b/decoders/adxl345/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/adxl345/lists.py rename to decoders/adxl345/lists.py diff --git a/libsigrokdecode4DSL/decoders/adxl345/pd.py b/decoders/adxl345/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/adxl345/pd.py rename to decoders/adxl345/pd.py diff --git a/libsigrokdecode4DSL/decoders/am230x/__init__.py b/decoders/am230x/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/am230x/__init__.py rename to decoders/am230x/__init__.py diff --git a/libsigrokdecode4DSL/decoders/am230x/pd.py b/decoders/am230x/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/am230x/pd.py rename to decoders/am230x/pd.py diff --git a/libsigrokdecode4DSL/decoders/amulet_ascii/__init__.py b/decoders/amulet_ascii/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/amulet_ascii/__init__.py rename to decoders/amulet_ascii/__init__.py diff --git a/libsigrokdecode4DSL/decoders/amulet_ascii/lists.py b/decoders/amulet_ascii/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/amulet_ascii/lists.py rename to decoders/amulet_ascii/lists.py diff --git a/libsigrokdecode4DSL/decoders/amulet_ascii/pd.py b/decoders/amulet_ascii/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/amulet_ascii/pd.py rename to decoders/amulet_ascii/pd.py diff --git a/libsigrokdecode4DSL/decoders/arm_etmv3/__init__.py b/decoders/arm_etmv3/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/arm_etmv3/__init__.py rename to decoders/arm_etmv3/__init__.py diff --git a/libsigrokdecode4DSL/decoders/arm_etmv3/pd.py b/decoders/arm_etmv3/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/arm_etmv3/pd.py rename to decoders/arm_etmv3/pd.py diff --git a/libsigrokdecode4DSL/decoders/arm_itm/__init__.py b/decoders/arm_itm/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/arm_itm/__init__.py rename to decoders/arm_itm/__init__.py diff --git a/libsigrokdecode4DSL/decoders/arm_itm/pd.py b/decoders/arm_itm/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/arm_itm/pd.py rename to decoders/arm_itm/pd.py diff --git a/libsigrokdecode4DSL/decoders/arm_tpiu/__init__.py b/decoders/arm_tpiu/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/arm_tpiu/__init__.py rename to decoders/arm_tpiu/__init__.py diff --git a/libsigrokdecode4DSL/decoders/arm_tpiu/pd.py b/decoders/arm_tpiu/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/arm_tpiu/pd.py rename to decoders/arm_tpiu/pd.py diff --git a/libsigrokdecode4DSL/decoders/atsha204a/__init__.py b/decoders/atsha204a/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/atsha204a/__init__.py rename to decoders/atsha204a/__init__.py diff --git a/libsigrokdecode4DSL/decoders/atsha204a/pd.py b/decoders/atsha204a/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/atsha204a/pd.py rename to decoders/atsha204a/pd.py diff --git a/libsigrokdecode4DSL/decoders/aud/__init__.py b/decoders/aud/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/aud/__init__.py rename to decoders/aud/__init__.py diff --git a/libsigrokdecode4DSL/decoders/aud/pd.py b/decoders/aud/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/aud/pd.py rename to decoders/aud/pd.py diff --git a/libsigrokdecode4DSL/decoders/avr_isp/__init__.py b/decoders/avr_isp/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/avr_isp/__init__.py rename to decoders/avr_isp/__init__.py diff --git a/libsigrokdecode4DSL/decoders/avr_isp/parts.py b/decoders/avr_isp/parts.py similarity index 100% rename from libsigrokdecode4DSL/decoders/avr_isp/parts.py rename to decoders/avr_isp/parts.py diff --git a/libsigrokdecode4DSL/decoders/avr_isp/pd.py b/decoders/avr_isp/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/avr_isp/pd.py rename to decoders/avr_isp/pd.py diff --git a/libsigrokdecode4DSL/decoders/avr_pdi/__init__.py b/decoders/avr_pdi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/avr_pdi/__init__.py rename to decoders/avr_pdi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/avr_pdi/pd.py b/decoders/avr_pdi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/avr_pdi/pd.py rename to decoders/avr_pdi/pd.py diff --git a/libsigrokdecode4DSL/decoders/caliper/__init__.py b/decoders/caliper/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/caliper/__init__.py rename to decoders/caliper/__init__.py diff --git a/libsigrokdecode4DSL/decoders/caliper/pd.py b/decoders/caliper/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/caliper/pd.py rename to decoders/caliper/pd.py diff --git a/libsigrokdecode4DSL/decoders/can/__init__.py b/decoders/can/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/can/__init__.py rename to decoders/can/__init__.py diff --git a/libsigrokdecode4DSL/decoders/can/pd.py b/decoders/can/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/can/pd.py rename to decoders/can/pd.py diff --git a/libsigrokdecode4DSL/decoders/cc1101/__init__.py b/decoders/cc1101/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cc1101/__init__.py rename to decoders/cc1101/__init__.py diff --git a/libsigrokdecode4DSL/decoders/cc1101/lists.py b/decoders/cc1101/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cc1101/lists.py rename to decoders/cc1101/lists.py diff --git a/libsigrokdecode4DSL/decoders/cc1101/pd.py b/decoders/cc1101/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cc1101/pd.py rename to decoders/cc1101/pd.py diff --git a/libsigrokdecode4DSL/decoders/cec/__init__.py b/decoders/cec/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cec/__init__.py rename to decoders/cec/__init__.py diff --git a/libsigrokdecode4DSL/decoders/cec/pd.py b/decoders/cec/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cec/pd.py rename to decoders/cec/pd.py diff --git a/libsigrokdecode4DSL/decoders/cec/protocoldata.py b/decoders/cec/protocoldata.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cec/protocoldata.py rename to decoders/cec/protocoldata.py diff --git a/libsigrokdecode4DSL/decoders/cfp/__init__.py b/decoders/cfp/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cfp/__init__.py rename to decoders/cfp/__init__.py diff --git a/libsigrokdecode4DSL/decoders/cfp/pd.py b/decoders/cfp/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cfp/pd.py rename to decoders/cfp/pd.py diff --git a/libsigrokdecode4DSL/decoders/cjtag-oscan0/__init__.py b/decoders/cjtag-oscan0/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cjtag-oscan0/__init__.py rename to decoders/cjtag-oscan0/__init__.py diff --git a/libsigrokdecode4DSL/decoders/cjtag-oscan0/pd.py b/decoders/cjtag-oscan0/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/cjtag-oscan0/pd.py rename to decoders/cjtag-oscan0/pd.py diff --git a/libsigrokdecode4DSL/decoders/common/__init__.py b/decoders/common/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/common/__init__.py rename to decoders/common/__init__.py diff --git a/libsigrokdecode4DSL/decoders/common/plugtrx/__init__.py b/decoders/common/plugtrx/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/common/plugtrx/__init__.py rename to decoders/common/plugtrx/__init__.py diff --git a/libsigrokdecode4DSL/decoders/common/plugtrx/mod.py b/decoders/common/plugtrx/mod.py similarity index 100% rename from libsigrokdecode4DSL/decoders/common/plugtrx/mod.py rename to decoders/common/plugtrx/mod.py diff --git a/libsigrokdecode4DSL/decoders/common/sdcard/__init__.py b/decoders/common/sdcard/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/common/sdcard/__init__.py rename to decoders/common/sdcard/__init__.py diff --git a/libsigrokdecode4DSL/decoders/common/sdcard/mod.py b/decoders/common/sdcard/mod.py similarity index 100% rename from libsigrokdecode4DSL/decoders/common/sdcard/mod.py rename to decoders/common/sdcard/mod.py diff --git a/libsigrokdecode4DSL/decoders/common/srdhelper/__init__.py b/decoders/common/srdhelper/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/common/srdhelper/__init__.py rename to decoders/common/srdhelper/__init__.py diff --git a/libsigrokdecode4DSL/decoders/common/srdhelper/mod.py b/decoders/common/srdhelper/mod.py similarity index 100% rename from libsigrokdecode4DSL/decoders/common/srdhelper/mod.py rename to decoders/common/srdhelper/mod.py diff --git a/libsigrokdecode4DSL/decoders/counter/__init__.py b/decoders/counter/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/counter/__init__.py rename to decoders/counter/__init__.py diff --git a/libsigrokdecode4DSL/decoders/counter/pd.py b/decoders/counter/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/counter/pd.py rename to decoders/counter/pd.py diff --git a/libsigrokdecode4DSL/decoders/dali/__init__.py b/decoders/dali/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dali/__init__.py rename to decoders/dali/__init__.py diff --git a/libsigrokdecode4DSL/decoders/dali/lists.py b/decoders/dali/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dali/lists.py rename to decoders/dali/lists.py diff --git a/libsigrokdecode4DSL/decoders/dali/pd.py b/decoders/dali/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dali/pd.py rename to decoders/dali/pd.py diff --git a/libsigrokdecode4DSL/decoders/dcf77/__init__.py b/decoders/dcf77/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dcf77/__init__.py rename to decoders/dcf77/__init__.py diff --git a/libsigrokdecode4DSL/decoders/dcf77/pd.py b/decoders/dcf77/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dcf77/pd.py rename to decoders/dcf77/pd.py diff --git a/libsigrokdecode4DSL/decoders/dmx512/__init__.py b/decoders/dmx512/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dmx512/__init__.py rename to decoders/dmx512/__init__.py diff --git a/libsigrokdecode4DSL/decoders/dmx512/pd.py b/decoders/dmx512/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dmx512/pd.py rename to decoders/dmx512/pd.py diff --git a/libsigrokdecode4DSL/decoders/ds1307/__init__.py b/decoders/ds1307/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ds1307/__init__.py rename to decoders/ds1307/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ds1307/pd.py b/decoders/ds1307/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ds1307/pd.py rename to decoders/ds1307/pd.py diff --git a/libsigrokdecode4DSL/decoders/ds2408/__init__.py b/decoders/ds2408/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ds2408/__init__.py rename to decoders/ds2408/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ds2408/pd.py b/decoders/ds2408/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ds2408/pd.py rename to decoders/ds2408/pd.py diff --git a/libsigrokdecode4DSL/decoders/ds243x/__init__.py b/decoders/ds243x/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ds243x/__init__.py rename to decoders/ds243x/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ds243x/pd.py b/decoders/ds243x/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ds243x/pd.py rename to decoders/ds243x/pd.py diff --git a/libsigrokdecode4DSL/decoders/ds28ea00/__init__.py b/decoders/ds28ea00/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ds28ea00/__init__.py rename to decoders/ds28ea00/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ds28ea00/pd.py b/decoders/ds28ea00/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ds28ea00/pd.py rename to decoders/ds28ea00/pd.py diff --git a/libsigrokdecode4DSL/decoders/dsi/__init__.py b/decoders/dsi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dsi/__init__.py rename to decoders/dsi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/dsi/pd.py b/decoders/dsi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/dsi/pd.py rename to decoders/dsi/pd.py diff --git a/libsigrokdecode4DSL/decoders/edid/__init__.py b/decoders/edid/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/edid/__init__.py rename to decoders/edid/__init__.py diff --git a/libsigrokdecode4DSL/decoders/edid/config b/decoders/edid/config similarity index 100% rename from libsigrokdecode4DSL/decoders/edid/config rename to decoders/edid/config diff --git a/libsigrokdecode4DSL/decoders/edid/pd.py b/decoders/edid/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/edid/pd.py rename to decoders/edid/pd.py diff --git a/libsigrokdecode4DSL/decoders/edid/pnpids.txt b/decoders/edid/pnpids.txt similarity index 100% rename from libsigrokdecode4DSL/decoders/edid/pnpids.txt rename to decoders/edid/pnpids.txt diff --git a/libsigrokdecode4DSL/decoders/eeprom24xx/__init__.py b/decoders/eeprom24xx/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/eeprom24xx/__init__.py rename to decoders/eeprom24xx/__init__.py diff --git a/libsigrokdecode4DSL/decoders/eeprom24xx/lists.py b/decoders/eeprom24xx/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/eeprom24xx/lists.py rename to decoders/eeprom24xx/lists.py diff --git a/libsigrokdecode4DSL/decoders/eeprom24xx/pd.py b/decoders/eeprom24xx/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/eeprom24xx/pd.py rename to decoders/eeprom24xx/pd.py diff --git a/libsigrokdecode4DSL/decoders/eeprom93xx/__init__.py b/decoders/eeprom93xx/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/eeprom93xx/__init__.py rename to decoders/eeprom93xx/__init__.py diff --git a/libsigrokdecode4DSL/decoders/eeprom93xx/pd.py b/decoders/eeprom93xx/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/eeprom93xx/pd.py rename to decoders/eeprom93xx/pd.py diff --git a/libsigrokdecode4DSL/decoders/em4100/__init__.py b/decoders/em4100/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/em4100/__init__.py rename to decoders/em4100/__init__.py diff --git a/libsigrokdecode4DSL/decoders/em4100/pd.py b/decoders/em4100/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/em4100/pd.py rename to decoders/em4100/pd.py diff --git a/libsigrokdecode4DSL/decoders/em4305/__init__.py b/decoders/em4305/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/em4305/__init__.py rename to decoders/em4305/__init__.py diff --git a/libsigrokdecode4DSL/decoders/em4305/pd.py b/decoders/em4305/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/em4305/pd.py rename to decoders/em4305/pd.py diff --git a/libsigrokdecode4DSL/decoders/enc28j60/__init__.py b/decoders/enc28j60/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/enc28j60/__init__.py rename to decoders/enc28j60/__init__.py diff --git a/libsigrokdecode4DSL/decoders/enc28j60/lists.py b/decoders/enc28j60/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/enc28j60/lists.py rename to decoders/enc28j60/lists.py diff --git a/libsigrokdecode4DSL/decoders/enc28j60/pd.py b/decoders/enc28j60/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/enc28j60/pd.py rename to decoders/enc28j60/pd.py diff --git a/libsigrokdecode4DSL/decoders/flexray/__init__.py b/decoders/flexray/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/flexray/__init__.py rename to decoders/flexray/__init__.py diff --git a/libsigrokdecode4DSL/decoders/flexray/pd.py b/decoders/flexray/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/flexray/pd.py rename to decoders/flexray/pd.py diff --git a/libsigrokdecode4DSL/decoders/fsi/__init__.py b/decoders/fsi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/fsi/__init__.py rename to decoders/fsi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/fsi/pd.py b/decoders/fsi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/fsi/pd.py rename to decoders/fsi/pd.py diff --git a/libsigrokdecode4DSL/decoders/gpib/__init__.py b/decoders/gpib/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/gpib/__init__.py rename to decoders/gpib/__init__.py diff --git a/libsigrokdecode4DSL/decoders/gpib/pd.py b/decoders/gpib/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/gpib/pd.py rename to decoders/gpib/pd.py diff --git a/libsigrokdecode4DSL/decoders/graycode/__init__.py b/decoders/graycode/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/graycode/__init__.py rename to decoders/graycode/__init__.py diff --git a/libsigrokdecode4DSL/decoders/graycode/pd.py b/decoders/graycode/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/graycode/pd.py rename to decoders/graycode/pd.py diff --git a/libsigrokdecode4DSL/decoders/guess_bitrate/__init__.py b/decoders/guess_bitrate/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/guess_bitrate/__init__.py rename to decoders/guess_bitrate/__init__.py diff --git a/libsigrokdecode4DSL/decoders/guess_bitrate/pd.py b/decoders/guess_bitrate/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/guess_bitrate/pd.py rename to decoders/guess_bitrate/pd.py diff --git a/libsigrokdecode4DSL/decoders/hdcp/__init__.py b/decoders/hdcp/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/hdcp/__init__.py rename to decoders/hdcp/__init__.py diff --git a/libsigrokdecode4DSL/decoders/hdcp/pd.py b/decoders/hdcp/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/hdcp/pd.py rename to decoders/hdcp/pd.py diff --git a/libsigrokdecode4DSL/decoders/i2cdemux/__init__.py b/decoders/i2cdemux/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/i2cdemux/__init__.py rename to decoders/i2cdemux/__init__.py diff --git a/libsigrokdecode4DSL/decoders/i2cdemux/pd.py b/decoders/i2cdemux/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/i2cdemux/pd.py rename to decoders/i2cdemux/pd.py diff --git a/libsigrokdecode4DSL/decoders/i2cfilter/__init__.py b/decoders/i2cfilter/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/i2cfilter/__init__.py rename to decoders/i2cfilter/__init__.py diff --git a/libsigrokdecode4DSL/decoders/i2cfilter/pd.py b/decoders/i2cfilter/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/i2cfilter/pd.py rename to decoders/i2cfilter/pd.py diff --git a/libsigrokdecode4DSL/decoders/i2s/__init__.py b/decoders/i2s/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/i2s/__init__.py rename to decoders/i2s/__init__.py diff --git a/libsigrokdecode4DSL/decoders/i2s/pd.py b/decoders/i2s/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/i2s/pd.py rename to decoders/i2s/pd.py diff --git a/libsigrokdecode4DSL/decoders/iec/__init__.py b/decoders/iec/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/iec/__init__.py rename to decoders/iec/__init__.py diff --git a/libsigrokdecode4DSL/decoders/iec/pd.py b/decoders/iec/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/iec/pd.py rename to decoders/iec/pd.py diff --git a/libsigrokdecode4DSL/decoders/ieee488/__init__.py b/decoders/ieee488/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ieee488/__init__.py rename to decoders/ieee488/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ieee488/pd.py b/decoders/ieee488/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ieee488/pd.py rename to decoders/ieee488/pd.py diff --git a/libsigrokdecode4DSL/decoders/ir_irmp/__init__.py b/decoders/ir_irmp/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_irmp/__init__.py rename to decoders/ir_irmp/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ir_irmp/irmp_library.py b/decoders/ir_irmp/irmp_library.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_irmp/irmp_library.py rename to decoders/ir_irmp/irmp_library.py diff --git a/libsigrokdecode4DSL/decoders/ir_irmp/pd.py b/decoders/ir_irmp/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_irmp/pd.py rename to decoders/ir_irmp/pd.py diff --git a/libsigrokdecode4DSL/decoders/ir_nec/__init__.py b/decoders/ir_nec/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_nec/__init__.py rename to decoders/ir_nec/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ir_nec/lists.py b/decoders/ir_nec/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_nec/lists.py rename to decoders/ir_nec/lists.py diff --git a/libsigrokdecode4DSL/decoders/ir_nec/pd.py b/decoders/ir_nec/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_nec/pd.py rename to decoders/ir_nec/pd.py diff --git a/libsigrokdecode4DSL/decoders/ir_rc5/__init__.py b/decoders/ir_rc5/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_rc5/__init__.py rename to decoders/ir_rc5/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ir_rc5/lists.py b/decoders/ir_rc5/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_rc5/lists.py rename to decoders/ir_rc5/lists.py diff --git a/libsigrokdecode4DSL/decoders/ir_rc5/pd.py b/decoders/ir_rc5/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_rc5/pd.py rename to decoders/ir_rc5/pd.py diff --git a/libsigrokdecode4DSL/decoders/ir_rc6/__init__.py b/decoders/ir_rc6/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_rc6/__init__.py rename to decoders/ir_rc6/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ir_rc6/pd.py b/decoders/ir_rc6/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_rc6/pd.py rename to decoders/ir_rc6/pd.py diff --git a/libsigrokdecode4DSL/decoders/ir_sirc/__init__.py b/decoders/ir_sirc/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_sirc/__init__.py rename to decoders/ir_sirc/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ir_sirc/lists.py b/decoders/ir_sirc/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_sirc/lists.py rename to decoders/ir_sirc/lists.py diff --git a/libsigrokdecode4DSL/decoders/ir_sirc/pd.py b/decoders/ir_sirc/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ir_sirc/pd.py rename to decoders/ir_sirc/pd.py diff --git a/libsigrokdecode4DSL/decoders/jitter/__init__.py b/decoders/jitter/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/jitter/__init__.py rename to decoders/jitter/__init__.py diff --git a/libsigrokdecode4DSL/decoders/jitter/pd.py b/decoders/jitter/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/jitter/pd.py rename to decoders/jitter/pd.py diff --git a/libsigrokdecode4DSL/decoders/jtag/__init__.py b/decoders/jtag/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/jtag/__init__.py rename to decoders/jtag/__init__.py diff --git a/libsigrokdecode4DSL/decoders/jtag/pd.py b/decoders/jtag/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/jtag/pd.py rename to decoders/jtag/pd.py diff --git a/libsigrokdecode4DSL/decoders/jtag_ejtag/__init__.py b/decoders/jtag_ejtag/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/jtag_ejtag/__init__.py rename to decoders/jtag_ejtag/__init__.py diff --git a/libsigrokdecode4DSL/decoders/jtag_ejtag/pd.py b/decoders/jtag_ejtag/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/jtag_ejtag/pd.py rename to decoders/jtag_ejtag/pd.py diff --git a/libsigrokdecode4DSL/decoders/jtag_stm32/__init__.py b/decoders/jtag_stm32/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/jtag_stm32/__init__.py rename to decoders/jtag_stm32/__init__.py diff --git a/libsigrokdecode4DSL/decoders/jtag_stm32/pd.py b/decoders/jtag_stm32/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/jtag_stm32/pd.py rename to decoders/jtag_stm32/pd.py diff --git a/libsigrokdecode4DSL/decoders/lfast/__init__.py b/decoders/lfast/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/lfast/__init__.py rename to decoders/lfast/__init__.py diff --git a/libsigrokdecode4DSL/decoders/lfast/pd.py b/decoders/lfast/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/lfast/pd.py rename to decoders/lfast/pd.py diff --git a/libsigrokdecode4DSL/decoders/lin/__init__.py b/decoders/lin/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/lin/__init__.py rename to decoders/lin/__init__.py diff --git a/libsigrokdecode4DSL/decoders/lin/pd.py b/decoders/lin/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/lin/pd.py rename to decoders/lin/pd.py diff --git a/libsigrokdecode4DSL/decoders/lm75/__init__.py b/decoders/lm75/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/lm75/__init__.py rename to decoders/lm75/__init__.py diff --git a/libsigrokdecode4DSL/decoders/lm75/pd.py b/decoders/lm75/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/lm75/pd.py rename to decoders/lm75/pd.py diff --git a/libsigrokdecode4DSL/decoders/lpc/__init__.py b/decoders/lpc/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/lpc/__init__.py rename to decoders/lpc/__init__.py diff --git a/libsigrokdecode4DSL/decoders/lpc/pd.py b/decoders/lpc/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/lpc/pd.py rename to decoders/lpc/pd.py diff --git a/libsigrokdecode4DSL/decoders/ltc242x/__init__.py b/decoders/ltc242x/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ltc242x/__init__.py rename to decoders/ltc242x/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ltc242x/pd.py b/decoders/ltc242x/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ltc242x/pd.py rename to decoders/ltc242x/pd.py diff --git a/libsigrokdecode4DSL/decoders/ltc26x7/__init__.py b/decoders/ltc26x7/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ltc26x7/__init__.py rename to decoders/ltc26x7/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ltc26x7/pd.py b/decoders/ltc26x7/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ltc26x7/pd.py rename to decoders/ltc26x7/pd.py diff --git a/libsigrokdecode4DSL/decoders/maple_bus/__init__.py b/decoders/maple_bus/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/maple_bus/__init__.py rename to decoders/maple_bus/__init__.py diff --git a/libsigrokdecode4DSL/decoders/maple_bus/pd.py b/decoders/maple_bus/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/maple_bus/pd.py rename to decoders/maple_bus/pd.py diff --git a/libsigrokdecode4DSL/decoders/max7219/__init__.py b/decoders/max7219/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/max7219/__init__.py rename to decoders/max7219/__init__.py diff --git a/libsigrokdecode4DSL/decoders/max7219/pd.py b/decoders/max7219/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/max7219/pd.py rename to decoders/max7219/pd.py diff --git a/libsigrokdecode4DSL/decoders/mcs48/__init__.py b/decoders/mcs48/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mcs48/__init__.py rename to decoders/mcs48/__init__.py diff --git a/libsigrokdecode4DSL/decoders/mcs48/pd.py b/decoders/mcs48/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mcs48/pd.py rename to decoders/mcs48/pd.py diff --git a/libsigrokdecode4DSL/decoders/mdio/__init__.py b/decoders/mdio/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mdio/__init__.py rename to decoders/mdio/__init__.py diff --git a/libsigrokdecode4DSL/decoders/mdio/pd.py b/decoders/mdio/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mdio/pd.py rename to decoders/mdio/pd.py diff --git a/libsigrokdecode4DSL/decoders/microwire/__init__.py b/decoders/microwire/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/microwire/__init__.py rename to decoders/microwire/__init__.py diff --git a/libsigrokdecode4DSL/decoders/microwire/pd.py b/decoders/microwire/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/microwire/pd.py rename to decoders/microwire/pd.py diff --git a/libsigrokdecode4DSL/decoders/midi/__init__.py b/decoders/midi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/midi/__init__.py rename to decoders/midi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/midi/lists.py b/decoders/midi/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/midi/lists.py rename to decoders/midi/lists.py diff --git a/libsigrokdecode4DSL/decoders/midi/pd.py b/decoders/midi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/midi/pd.py rename to decoders/midi/pd.py diff --git a/libsigrokdecode4DSL/decoders/miller/__init__.py b/decoders/miller/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/miller/__init__.py rename to decoders/miller/__init__.py diff --git a/libsigrokdecode4DSL/decoders/miller/pd.py b/decoders/miller/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/miller/pd.py rename to decoders/miller/pd.py diff --git a/libsigrokdecode4DSL/decoders/mipi_dsi/__init__.py b/decoders/mipi_dsi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mipi_dsi/__init__.py rename to decoders/mipi_dsi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/mipi_dsi/pd.py b/decoders/mipi_dsi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mipi_dsi/pd.py rename to decoders/mipi_dsi/pd.py diff --git a/libsigrokdecode4DSL/decoders/mipi_rffe/__init__.py b/decoders/mipi_rffe/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mipi_rffe/__init__.py rename to decoders/mipi_rffe/__init__.py diff --git a/libsigrokdecode4DSL/decoders/mipi_rffe/pd.py b/decoders/mipi_rffe/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mipi_rffe/pd.py rename to decoders/mipi_rffe/pd.py diff --git a/libsigrokdecode4DSL/decoders/mlx90614/__init__.py b/decoders/mlx90614/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mlx90614/__init__.py rename to decoders/mlx90614/__init__.py diff --git a/libsigrokdecode4DSL/decoders/mlx90614/pd.py b/decoders/mlx90614/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mlx90614/pd.py rename to decoders/mlx90614/pd.py diff --git a/libsigrokdecode4DSL/decoders/modbus/__init__.py b/decoders/modbus/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/modbus/__init__.py rename to decoders/modbus/__init__.py diff --git a/libsigrokdecode4DSL/decoders/modbus/pd.py b/decoders/modbus/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/modbus/pd.py rename to decoders/modbus/pd.py diff --git a/libsigrokdecode4DSL/decoders/morse/__init__.py b/decoders/morse/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/morse/__init__.py rename to decoders/morse/__init__.py diff --git a/libsigrokdecode4DSL/decoders/morse/pd.py b/decoders/morse/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/morse/pd.py rename to decoders/morse/pd.py diff --git a/libsigrokdecode4DSL/decoders/mrf24j40/__init__.py b/decoders/mrf24j40/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mrf24j40/__init__.py rename to decoders/mrf24j40/__init__.py diff --git a/libsigrokdecode4DSL/decoders/mrf24j40/lists.py b/decoders/mrf24j40/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mrf24j40/lists.py rename to decoders/mrf24j40/lists.py diff --git a/libsigrokdecode4DSL/decoders/mrf24j40/pd.py b/decoders/mrf24j40/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mrf24j40/pd.py rename to decoders/mrf24j40/pd.py diff --git a/libsigrokdecode4DSL/decoders/mxc6225xu/__init__.py b/decoders/mxc6225xu/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mxc6225xu/__init__.py rename to decoders/mxc6225xu/__init__.py diff --git a/libsigrokdecode4DSL/decoders/mxc6225xu/pd.py b/decoders/mxc6225xu/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/mxc6225xu/pd.py rename to decoders/mxc6225xu/pd.py diff --git a/libsigrokdecode4DSL/decoders/nes_gamepad/__init__.py b/decoders/nes_gamepad/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/nes_gamepad/__init__.py rename to decoders/nes_gamepad/__init__.py diff --git a/libsigrokdecode4DSL/decoders/nes_gamepad/pd.py b/decoders/nes_gamepad/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/nes_gamepad/pd.py rename to decoders/nes_gamepad/pd.py diff --git a/libsigrokdecode4DSL/decoders/nrf24l01/__init__.py b/decoders/nrf24l01/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/nrf24l01/__init__.py rename to decoders/nrf24l01/__init__.py diff --git a/libsigrokdecode4DSL/decoders/nrf24l01/pd.py b/decoders/nrf24l01/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/nrf24l01/pd.py rename to decoders/nrf24l01/pd.py diff --git a/libsigrokdecode4DSL/decoders/nrf905/__init__.py b/decoders/nrf905/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/nrf905/__init__.py rename to decoders/nrf905/__init__.py diff --git a/libsigrokdecode4DSL/decoders/nrf905/pd.py b/decoders/nrf905/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/nrf905/pd.py rename to decoders/nrf905/pd.py diff --git a/libsigrokdecode4DSL/decoders/numbers_and_state/__init__.py b/decoders/numbers_and_state/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/numbers_and_state/__init__.py rename to decoders/numbers_and_state/__init__.py diff --git a/libsigrokdecode4DSL/decoders/numbers_and_state/pd.py b/decoders/numbers_and_state/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/numbers_and_state/pd.py rename to decoders/numbers_and_state/pd.py diff --git a/libsigrokdecode4DSL/decoders/nunchuk/__init__.py b/decoders/nunchuk/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/nunchuk/__init__.py rename to decoders/nunchuk/__init__.py diff --git a/libsigrokdecode4DSL/decoders/nunchuk/pd.py b/decoders/nunchuk/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/nunchuk/pd.py rename to decoders/nunchuk/pd.py diff --git a/libsigrokdecode4DSL/decoders/onewire_link/__init__.py b/decoders/onewire_link/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/onewire_link/__init__.py rename to decoders/onewire_link/__init__.py diff --git a/libsigrokdecode4DSL/decoders/onewire_link/pd.py b/decoders/onewire_link/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/onewire_link/pd.py rename to decoders/onewire_link/pd.py diff --git a/libsigrokdecode4DSL/decoders/onewire_network/__init__.py b/decoders/onewire_network/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/onewire_network/__init__.py rename to decoders/onewire_network/__init__.py diff --git a/libsigrokdecode4DSL/decoders/onewire_network/pd.py b/decoders/onewire_network/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/onewire_network/pd.py rename to decoders/onewire_network/pd.py diff --git a/libsigrokdecode4DSL/decoders/ook/__init__.py b/decoders/ook/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ook/__init__.py rename to decoders/ook/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ook/pd.py b/decoders/ook/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ook/pd.py rename to decoders/ook/pd.py diff --git a/libsigrokdecode4DSL/decoders/ook_oregon/__init__.py b/decoders/ook_oregon/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ook_oregon/__init__.py rename to decoders/ook_oregon/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ook_oregon/lists.py b/decoders/ook_oregon/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ook_oregon/lists.py rename to decoders/ook_oregon/lists.py diff --git a/libsigrokdecode4DSL/decoders/ook_oregon/pd.py b/decoders/ook_oregon/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ook_oregon/pd.py rename to decoders/ook_oregon/pd.py diff --git a/libsigrokdecode4DSL/decoders/ook_vis/__init__.py b/decoders/ook_vis/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ook_vis/__init__.py rename to decoders/ook_vis/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ook_vis/pd.py b/decoders/ook_vis/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ook_vis/pd.py rename to decoders/ook_vis/pd.py diff --git a/libsigrokdecode4DSL/decoders/pan1321/__init__.py b/decoders/pan1321/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pan1321/__init__.py rename to decoders/pan1321/__init__.py diff --git a/libsigrokdecode4DSL/decoders/pan1321/pd.py b/decoders/pan1321/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pan1321/pd.py rename to decoders/pan1321/pd.py diff --git a/libsigrokdecode4DSL/decoders/parallel/__init__.py b/decoders/parallel/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/parallel/__init__.py rename to decoders/parallel/__init__.py diff --git a/libsigrokdecode4DSL/decoders/parallel/pd.py b/decoders/parallel/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/parallel/pd.py rename to decoders/parallel/pd.py diff --git a/libsigrokdecode4DSL/decoders/pca9571/__init__.py b/decoders/pca9571/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pca9571/__init__.py rename to decoders/pca9571/__init__.py diff --git a/libsigrokdecode4DSL/decoders/pca9571/pd.py b/decoders/pca9571/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pca9571/pd.py rename to decoders/pca9571/pd.py diff --git a/libsigrokdecode4DSL/decoders/pjdl/__init__.py b/decoders/pjdl/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pjdl/__init__.py rename to decoders/pjdl/__init__.py diff --git a/libsigrokdecode4DSL/decoders/pjdl/pd.py b/decoders/pjdl/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pjdl/pd.py rename to decoders/pjdl/pd.py diff --git a/libsigrokdecode4DSL/decoders/pjon/__init__.py b/decoders/pjon/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pjon/__init__.py rename to decoders/pjon/__init__.py diff --git a/libsigrokdecode4DSL/decoders/pjon/pd.py b/decoders/pjon/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pjon/pd.py rename to decoders/pjon/pd.py diff --git a/libsigrokdecode4DSL/decoders/ps2/__init__.py b/decoders/ps2/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ps2/__init__.py rename to decoders/ps2/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ps2/pd.py b/decoders/ps2/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ps2/pd.py rename to decoders/ps2/pd.py diff --git a/libsigrokdecode4DSL/decoders/pwm/__init__.py b/decoders/pwm/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pwm/__init__.py rename to decoders/pwm/__init__.py diff --git a/libsigrokdecode4DSL/decoders/pwm/pd.py b/decoders/pwm/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/pwm/pd.py rename to decoders/pwm/pd.py diff --git a/libsigrokdecode4DSL/decoders/qi/__init__.py b/decoders/qi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/qi/__init__.py rename to decoders/qi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/qi/pd.py b/decoders/qi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/qi/pd.py rename to decoders/qi/pd.py diff --git a/libsigrokdecode4DSL/decoders/qspi/__init__.py b/decoders/qspi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/qspi/__init__.py rename to decoders/qspi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/qspi/pd.py b/decoders/qspi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/qspi/pd.py rename to decoders/qspi/pd.py diff --git a/libsigrokdecode4DSL/decoders/rc_encode/__init__.py b/decoders/rc_encode/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rc_encode/__init__.py rename to decoders/rc_encode/__init__.py diff --git a/libsigrokdecode4DSL/decoders/rc_encode/pd.py b/decoders/rc_encode/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rc_encode/pd.py rename to decoders/rc_encode/pd.py diff --git a/libsigrokdecode4DSL/decoders/rfm12/__init__.py b/decoders/rfm12/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rfm12/__init__.py rename to decoders/rfm12/__init__.py diff --git a/libsigrokdecode4DSL/decoders/rfm12/pd.py b/decoders/rfm12/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rfm12/pd.py rename to decoders/rfm12/pd.py diff --git a/libsigrokdecode4DSL/decoders/rgb_led_spi/__init__.py b/decoders/rgb_led_spi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rgb_led_spi/__init__.py rename to decoders/rgb_led_spi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/rgb_led_spi/pd.py b/decoders/rgb_led_spi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rgb_led_spi/pd.py rename to decoders/rgb_led_spi/pd.py diff --git a/libsigrokdecode4DSL/decoders/rgb_led_ws281x/__init__.py b/decoders/rgb_led_ws281x/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rgb_led_ws281x/__init__.py rename to decoders/rgb_led_ws281x/__init__.py diff --git a/libsigrokdecode4DSL/decoders/rgb_led_ws281x/pd.py b/decoders/rgb_led_ws281x/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rgb_led_ws281x/pd.py rename to decoders/rgb_led_ws281x/pd.py diff --git a/libsigrokdecode4DSL/decoders/rtc8564/__init__.py b/decoders/rtc8564/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rtc8564/__init__.py rename to decoders/rtc8564/__init__.py diff --git a/libsigrokdecode4DSL/decoders/rtc8564/pd.py b/decoders/rtc8564/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/rtc8564/pd.py rename to decoders/rtc8564/pd.py diff --git a/libsigrokdecode4DSL/decoders/sae_j1850_vpw/__init__.py b/decoders/sae_j1850_vpw/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sae_j1850_vpw/__init__.py rename to decoders/sae_j1850_vpw/__init__.py diff --git a/libsigrokdecode4DSL/decoders/sae_j1850_vpw/pd.py b/decoders/sae_j1850_vpw/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sae_j1850_vpw/pd.py rename to decoders/sae_j1850_vpw/pd.py diff --git a/libsigrokdecode4DSL/decoders/sda2506/__init__.py b/decoders/sda2506/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sda2506/__init__.py rename to decoders/sda2506/__init__.py diff --git a/libsigrokdecode4DSL/decoders/sda2506/pd.py b/decoders/sda2506/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sda2506/pd.py rename to decoders/sda2506/pd.py diff --git a/libsigrokdecode4DSL/decoders/sdcard_sd/__init__.py b/decoders/sdcard_sd/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sdcard_sd/__init__.py rename to decoders/sdcard_sd/__init__.py diff --git a/libsigrokdecode4DSL/decoders/sdcard_sd/pd.py b/decoders/sdcard_sd/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sdcard_sd/pd.py rename to decoders/sdcard_sd/pd.py diff --git a/libsigrokdecode4DSL/decoders/sdcard_spi/__init__.py b/decoders/sdcard_spi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sdcard_spi/__init__.py rename to decoders/sdcard_spi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/sdcard_spi/pd.py b/decoders/sdcard_spi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sdcard_spi/pd.py rename to decoders/sdcard_spi/pd.py diff --git a/libsigrokdecode4DSL/decoders/sdq/__init__.py b/decoders/sdq/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sdq/__init__.py rename to decoders/sdq/__init__.py diff --git a/libsigrokdecode4DSL/decoders/sdq/pd.py b/decoders/sdq/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sdq/pd.py rename to decoders/sdq/pd.py diff --git a/libsigrokdecode4DSL/decoders/seven_segment/__init__.py b/decoders/seven_segment/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/seven_segment/__init__.py rename to decoders/seven_segment/__init__.py diff --git a/libsigrokdecode4DSL/decoders/seven_segment/pd.py b/decoders/seven_segment/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/seven_segment/pd.py rename to decoders/seven_segment/pd.py diff --git a/libsigrokdecode4DSL/decoders/signature/__init__.py b/decoders/signature/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/signature/__init__.py rename to decoders/signature/__init__.py diff --git a/libsigrokdecode4DSL/decoders/signature/pd.py b/decoders/signature/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/signature/pd.py rename to decoders/signature/pd.py diff --git a/libsigrokdecode4DSL/decoders/sipi/__init__.py b/decoders/sipi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sipi/__init__.py rename to decoders/sipi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/sipi/pd.py b/decoders/sipi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sipi/pd.py rename to decoders/sipi/pd.py diff --git a/libsigrokdecode4DSL/decoders/sle44xx/__init__.py b/decoders/sle44xx/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sle44xx/__init__.py rename to decoders/sle44xx/__init__.py diff --git a/libsigrokdecode4DSL/decoders/sle44xx/pd.py b/decoders/sle44xx/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/sle44xx/pd.py rename to decoders/sle44xx/pd.py diff --git a/libsigrokdecode4DSL/decoders/spdif/__init__.py b/decoders/spdif/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/spdif/__init__.py rename to decoders/spdif/__init__.py diff --git a/libsigrokdecode4DSL/decoders/spdif/pd.py b/decoders/spdif/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/spdif/pd.py rename to decoders/spdif/pd.py diff --git a/libsigrokdecode4DSL/decoders/spiflash/__init__.py b/decoders/spiflash/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/spiflash/__init__.py rename to decoders/spiflash/__init__.py diff --git a/libsigrokdecode4DSL/decoders/spiflash/lists.py b/decoders/spiflash/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/spiflash/lists.py rename to decoders/spiflash/lists.py diff --git a/libsigrokdecode4DSL/decoders/spiflash/pd.py b/decoders/spiflash/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/spiflash/pd.py rename to decoders/spiflash/pd.py diff --git a/libsigrokdecode4DSL/decoders/ssi32/__init__.py b/decoders/ssi32/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ssi32/__init__.py rename to decoders/ssi32/__init__.py diff --git a/libsigrokdecode4DSL/decoders/ssi32/pd.py b/decoders/ssi32/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/ssi32/pd.py rename to decoders/ssi32/pd.py diff --git a/libsigrokdecode4DSL/decoders/st25r39xx_spi/__init__.py b/decoders/st25r39xx_spi/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/st25r39xx_spi/__init__.py rename to decoders/st25r39xx_spi/__init__.py diff --git a/libsigrokdecode4DSL/decoders/st25r39xx_spi/lists.py b/decoders/st25r39xx_spi/lists.py similarity index 100% rename from libsigrokdecode4DSL/decoders/st25r39xx_spi/lists.py rename to decoders/st25r39xx_spi/lists.py diff --git a/libsigrokdecode4DSL/decoders/st25r39xx_spi/pd.py b/decoders/st25r39xx_spi/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/st25r39xx_spi/pd.py rename to decoders/st25r39xx_spi/pd.py diff --git a/libsigrokdecode4DSL/decoders/st7735/__init__.py b/decoders/st7735/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/st7735/__init__.py rename to decoders/st7735/__init__.py diff --git a/libsigrokdecode4DSL/decoders/st7735/pd.py b/decoders/st7735/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/st7735/pd.py rename to decoders/st7735/pd.py diff --git a/libsigrokdecode4DSL/decoders/st7789/__init__.py b/decoders/st7789/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/st7789/__init__.py rename to decoders/st7789/__init__.py diff --git a/libsigrokdecode4DSL/decoders/st7789/pd.py b/decoders/st7789/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/st7789/pd.py rename to decoders/st7789/pd.py diff --git a/libsigrokdecode4DSL/decoders/stepper_motor/__init__.py b/decoders/stepper_motor/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/stepper_motor/__init__.py rename to decoders/stepper_motor/__init__.py diff --git a/libsigrokdecode4DSL/decoders/stepper_motor/pd.py b/decoders/stepper_motor/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/stepper_motor/pd.py rename to decoders/stepper_motor/pd.py diff --git a/libsigrokdecode4DSL/decoders/swd/__init__.py b/decoders/swd/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/swd/__init__.py rename to decoders/swd/__init__.py diff --git a/libsigrokdecode4DSL/decoders/swd/pd.py b/decoders/swd/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/swd/pd.py rename to decoders/swd/pd.py diff --git a/libsigrokdecode4DSL/decoders/swim/__init__.py b/decoders/swim/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/swim/__init__.py rename to decoders/swim/__init__.py diff --git a/libsigrokdecode4DSL/decoders/swim/pd.py b/decoders/swim/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/swim/pd.py rename to decoders/swim/pd.py diff --git a/libsigrokdecode4DSL/decoders/t55xx/__init__.py b/decoders/t55xx/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/t55xx/__init__.py rename to decoders/t55xx/__init__.py diff --git a/libsigrokdecode4DSL/decoders/t55xx/pd.py b/decoders/t55xx/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/t55xx/pd.py rename to decoders/t55xx/pd.py diff --git a/libsigrokdecode4DSL/decoders/tca6408a/__init__.py b/decoders/tca6408a/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/tca6408a/__init__.py rename to decoders/tca6408a/__init__.py diff --git a/libsigrokdecode4DSL/decoders/tca6408a/pd.py b/decoders/tca6408a/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/tca6408a/pd.py rename to decoders/tca6408a/pd.py diff --git a/libsigrokdecode4DSL/decoders/tdm_audio/__init__.py b/decoders/tdm_audio/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/tdm_audio/__init__.py rename to decoders/tdm_audio/__init__.py diff --git a/libsigrokdecode4DSL/decoders/tdm_audio/pd.py b/decoders/tdm_audio/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/tdm_audio/pd.py rename to decoders/tdm_audio/pd.py diff --git a/libsigrokdecode4DSL/decoders/timing/__init__.py b/decoders/timing/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/timing/__init__.py rename to decoders/timing/__init__.py diff --git a/libsigrokdecode4DSL/decoders/timing/pd.py b/decoders/timing/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/timing/pd.py rename to decoders/timing/pd.py diff --git a/libsigrokdecode4DSL/decoders/tlc5620/__init__.py b/decoders/tlc5620/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/tlc5620/__init__.py rename to decoders/tlc5620/__init__.py diff --git a/libsigrokdecode4DSL/decoders/tlc5620/pd.py b/decoders/tlc5620/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/tlc5620/pd.py rename to decoders/tlc5620/pd.py diff --git a/libsigrokdecode4DSL/decoders/usb_packet/__init__.py b/decoders/usb_packet/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/usb_packet/__init__.py rename to decoders/usb_packet/__init__.py diff --git a/libsigrokdecode4DSL/decoders/usb_packet/pd.py b/decoders/usb_packet/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/usb_packet/pd.py rename to decoders/usb_packet/pd.py diff --git a/libsigrokdecode4DSL/decoders/usb_power_delivery/__init__.py b/decoders/usb_power_delivery/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/usb_power_delivery/__init__.py rename to decoders/usb_power_delivery/__init__.py diff --git a/libsigrokdecode4DSL/decoders/usb_power_delivery/pd.py b/decoders/usb_power_delivery/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/usb_power_delivery/pd.py rename to decoders/usb_power_delivery/pd.py diff --git a/libsigrokdecode4DSL/decoders/usb_request/__init__.py b/decoders/usb_request/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/usb_request/__init__.py rename to decoders/usb_request/__init__.py diff --git a/libsigrokdecode4DSL/decoders/usb_request/pd.py b/decoders/usb_request/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/usb_request/pd.py rename to decoders/usb_request/pd.py diff --git a/libsigrokdecode4DSL/decoders/usb_signalling/__init__.py b/decoders/usb_signalling/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/usb_signalling/__init__.py rename to decoders/usb_signalling/__init__.py diff --git a/libsigrokdecode4DSL/decoders/usb_signalling/pd.py b/decoders/usb_signalling/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/usb_signalling/pd.py rename to decoders/usb_signalling/pd.py diff --git a/libsigrokdecode4DSL/decoders/wiegand/__init__.py b/decoders/wiegand/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/wiegand/__init__.py rename to decoders/wiegand/__init__.py diff --git a/libsigrokdecode4DSL/decoders/wiegand/pd.py b/decoders/wiegand/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/wiegand/pd.py rename to decoders/wiegand/pd.py diff --git a/libsigrokdecode4DSL/decoders/x2444m/__init__.py b/decoders/x2444m/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/x2444m/__init__.py rename to decoders/x2444m/__init__.py diff --git a/libsigrokdecode4DSL/decoders/x2444m/pd.py b/decoders/x2444m/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/x2444m/pd.py rename to decoders/x2444m/pd.py diff --git a/libsigrokdecode4DSL/decoders/xfp/__init__.py b/decoders/xfp/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/xfp/__init__.py rename to decoders/xfp/__init__.py diff --git a/libsigrokdecode4DSL/decoders/xfp/pd.py b/decoders/xfp/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/xfp/pd.py rename to decoders/xfp/pd.py diff --git a/libsigrokdecode4DSL/decoders/xy2-100/__init__.py b/decoders/xy2-100/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/xy2-100/__init__.py rename to decoders/xy2-100/__init__.py diff --git a/libsigrokdecode4DSL/decoders/xy2-100/pd.py b/decoders/xy2-100/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/xy2-100/pd.py rename to decoders/xy2-100/pd.py diff --git a/libsigrokdecode4DSL/decoders/z80/__init__.py b/decoders/z80/__init__.py similarity index 100% rename from libsigrokdecode4DSL/decoders/z80/__init__.py rename to decoders/z80/__init__.py diff --git a/libsigrokdecode4DSL/decoders/z80/pd.py b/decoders/z80/pd.py similarity index 100% rename from libsigrokdecode4DSL/decoders/z80/pd.py rename to decoders/z80/pd.py diff --git a/libsigrokdecode4DSL/decoders/z80/tables.py b/decoders/z80/tables.py similarity index 100% rename from libsigrokdecode4DSL/decoders/z80/tables.py rename to decoders/z80/tables.py diff --git a/doc/decoder.txt b/doc/decoder.txt new file mode 100644 index 00000000..542a084f --- /dev/null +++ b/doc/decoder.txt @@ -0,0 +1,28 @@ +sigrokdecode module's types + +output types: + 1.OUTPUT_ANN + 2.OUTPUT_PYTHON + 3.OUTPUT_BINARY + 4.OUTPUT_META + +default sample rate name: SRD_CONF_SAMPLERATE,value is 10000 + +sigrokdecode.Decoder methods: + +class Decoder{ + PyObject* put(PyObject *self, PyObject *args); + PyObject* register(PyObject *self, PyObject *args,PyObject *kwargs); + PyObject* wait(PyObject *self, PyObject *args); + PyObject* has_channel(PyObject *self, PyObject *args); +} + + +c can call's method of python: + 1.reset + 2.start + 3.decode + 4.metadata + + + diff --git a/libsigrokdecode4DSL/decoder.c b/libsigrokdecode4DSL/decoder.c index 4906b5d9..809cb25b 100755 --- a/libsigrokdecode4DSL/decoder.c +++ b/libsigrokdecode4DSL/decoder.c @@ -40,7 +40,10 @@ /** @cond PRIVATE */ -/* The list of loaded protocol decoders. */ +/* + The list of loaded protocol decoders. + Is srd_decoder* type +*/ static GSList *pd_list = NULL; /* srd.c */ @@ -719,6 +722,7 @@ SRD_API int srd_decoder_load(const char *module_name) d = g_malloc0(sizeof(struct srd_decoder)); fail_txt = NULL; + //Load module from python script file,module_name is a sub directory d->py_mod = py_import_by_name(module_name); if (!d->py_mod) { fail_txt = "import by name failed"; @@ -731,13 +735,19 @@ SRD_API int srd_decoder_load(const char *module_name) goto err_out; } - /* Get the 'Decoder' class as Python object. */ + /* + Get the 'Decoder' class as Python object. + Here, Decoder is python class type + */ d->py_dec = PyObject_GetAttrString(d->py_mod, "Decoder"); if (!d->py_dec) { fail_txt = "no 'Decoder' attribute in imported module"; goto except_out; } + /* + Here, Decoder is c class type + */ py_basedec = PyObject_GetAttrString(mod_sigrokdecode, "Decoder"); if (!py_basedec) { fail_txt = "no 'Decoder' attribute in sigrokdecode(3)"; diff --git a/libsigrokdecode4DSL/instance.c b/libsigrokdecode4DSL/instance.c index 5d96701f..1b3d5df7 100755 --- a/libsigrokdecode4DSL/instance.c +++ b/libsigrokdecode4DSL/instance.c @@ -379,9 +379,10 @@ SRD_API struct srd_decoder_inst *srd_inst_new(struct srd_session *sess, di->py_pinvalues = NULL; di->dec_num_channels = g_slist_length(di->decoder->channels) + g_slist_length(di->decoder->opt_channels); + if (di->dec_num_channels) { - di->dec_channelmap = - g_malloc(sizeof(int) * di->dec_num_channels); + di->dec_channelmap = g_malloc(sizeof(int) * di->dec_num_channels); + for (i = 0; i < di->dec_num_channels; i++) di->dec_channelmap[i] = i; @@ -913,7 +914,8 @@ static gboolean all_terms_match(struct srd_decoder_inst *di, return TRUE; } -static gboolean find_match(struct srd_decoder_inst *di) +static gboolean +find_match(struct srd_decoder_inst *di) { uint64_t j; GSList *l, *cond; @@ -1059,9 +1061,11 @@ static gpointer di_thread(gpointer data) * "Regular" termination of the decode() method is not expected. */ //Py_IncRef(di->py_inst); + //srd_err("start call decode()"); srd_dbg("%s: Calling decode().", di->inst_id); py_res = PyObject_CallMethod(di->py_inst, "decode", NULL); srd_dbg("%s: decode() terminated.", di->inst_id); + //srd_err("end call decode()"); if (!py_res) di->decoder_state = SRD_ERR; @@ -1210,7 +1214,10 @@ SRD_PRIV int srd_inst_decode(struct srd_decoder_inst *di, abs_start_samplenum, abs_end_samplenum, abs_end_samplenum - abs_start_samplenum, inbuflen, di->inst_id); - /* If this is the first call, start the worker thread. */ + /* + If this is the first call, start the worker thread. + One session may be have more decoder,so more thread will be created + */ if (!di->thread_handle) { srd_dbg("No worker thread for this decoder stack " "exists yet, creating one: %s.", di->inst_id); diff --git a/libsigrokdecode4DSL/libsigrokdecode.h b/libsigrokdecode4DSL/libsigrokdecode.h index 77d8a216..9bc23973 100755 --- a/libsigrokdecode4DSL/libsigrokdecode.h +++ b/libsigrokdecode4DSL/libsigrokdecode.h @@ -32,7 +32,10 @@ extern "C" { struct srd_session { int session_id; - /* List of decoder instances. */ + /* + List of decoder instances. + srd_decoder_inst* type + */ GSList *di_list; /* List of frontend callbacks to receive decoder output. */ @@ -257,14 +260,16 @@ struct srd_decoder_inst { struct srd_decoder *decoder; struct srd_session *sess; void *py_inst; - void *py_pinvalues; + void *py_pinvalues; /* is a python duple type, like (1,0,255,255)*/ char *inst_id; - GSList *pd_output; + GSList *pd_output; /* srd_pd_output* type */ int dec_num_channels; int *dec_channelmap; GSList *next_di; - /** List of conditions a PD wants to wait for. */ + /** List of conditions a PD wants to wait for. + * Type is srd_term* of GSList* + */ GSList *condition_list; /** Array of booleans denoting which conditions matched. */ @@ -291,7 +296,9 @@ struct srd_decoder_inst { /** Absolute current sample matched conditions. */ gboolean abs_cur_matched; - /** Array of "old" (previous sample) pin values. */ + /** Array of "old" (previous sample) pin values. + * Type of uint8_t + */ GArray *old_pins_array; /** Handle for this PD stack's worker thread. */ @@ -339,8 +346,9 @@ struct srd_proto_data { }; struct srd_proto_data_annotation { int ann_class; - int ann_type; - char **ann_text; + int ann_type; + char str_number_hex[18]; //numerical value hex format string + char **ann_text; //text string lines }; struct srd_proto_data_binary { int bin_class; diff --git a/libsigrokdecode4DSL/session.c b/libsigrokdecode4DSL/session.c index e60a9da1..32597486 100755 --- a/libsigrokdecode4DSL/session.c +++ b/libsigrokdecode4DSL/session.c @@ -269,6 +269,7 @@ SRD_API int srd_session_send(struct srd_session *sess, if (!sess) return SRD_ERR_ARG; + //foreach srd_decoder_inst* stack for (d = sess->di_list; d; d = d->next) { if ((ret = srd_inst_decode(d->data, abs_start_samplenum, abs_end_samplenum, inbuf, inbuf_const, inbuflen, error)) != SRD_OK) diff --git a/libsigrokdecode4DSL/srd.c b/libsigrokdecode4DSL/srd.c index b070ab24..5a43b98e 100755 --- a/libsigrokdecode4DSL/srd.c +++ b/libsigrokdecode4DSL/srd.c @@ -255,7 +255,7 @@ SRD_API int srd_init(const char *path) PyEval_InitThreads(); /* Release the GIL (ignore return value, we don't need it here). */ - (void)PyEval_SaveThread(); + PyEval_SaveThread(); max_session_id = 0; @@ -359,6 +359,7 @@ SRD_PRIV int srd_decoder_searchpath_add(const char *path) PyGILState_Release(gstate); + //append the directory to search list searchpaths = g_slist_prepend(searchpaths, g_strdup(path)); return SRD_OK; diff --git a/libsigrokdecode4DSL/type_decoder.c b/libsigrokdecode4DSL/type_decoder.c index d4b9782b..86599c6b 100755 --- a/libsigrokdecode4DSL/type_decoder.c +++ b/libsigrokdecode4DSL/type_decoder.c @@ -53,6 +53,91 @@ static void release_annotation(struct srd_proto_data_annotation *pda) g_strfreev(pda->ann_text); } +static int py_parse_ann_data(PyObject *list_obj, char ***out_strv, int list_size, char *hex_str_buf) +{ + PyObject *py_item, *py_bytes; + char **strv, *str; + PyGILState_STATE gstate; + int ret = SRD_ERR_PYTHON; + int ijmp = 0; + int text_num = 0; + PyObject* text_items[10]; + PyObject *py_tmp; + PyObject *py_numobj = NULL; + int i; + long long lv; + + gstate = PyGILState_Ensure(); + + str = NULL; + strv = NULL; + + //get annotation text count + for (i = 0; i < list_size; i++){ + py_tmp = PyList_GetItem(list_obj, i); + + //is a string + if (PyUnicode_Check(py_tmp)){ + text_items[text_num] = py_tmp; + text_num++; + } + else if (PyLong_Check(py_tmp)){ + py_numobj = py_tmp; + } + } + + if (py_numobj == NULL && text_num == 0){ + srd_err("list element type must be string or numberical"); + goto err; + } + + if (py_numobj != NULL){ + lv = PyLong_AsLongLong(py_numobj); + sprintf(hex_str_buf, "%02llX", lv); + } + + //have no text, only one numberical + if (text_num == 0){ + PyGILState_Release(gstate); + return SRD_OK; + } + + //more annotation text + strv = g_try_new0(char *, text_num + 1); + if (!strv) { + srd_err("Failed to allocate result string vector."); + ret = SRD_ERR_MALLOC; + goto err; + } + + for (i = 0; i < text_num; i++) { + py_bytes = PyUnicode_AsUTF8String(text_items[i]); + if (!py_bytes) + goto err; + + str = g_strdup(PyBytes_AsString(py_bytes)); + Py_DECREF(py_bytes); + if (!str) + goto err; + + strv[i] = str; + } + + *out_strv = strv; + PyGILState_Release(gstate); + return SRD_OK; + +err: + if (strv) + g_strfreev(strv); + srd_exception_catch(NULL, "Failed to obtain string item"); + PyGILState_Release(gstate); + return ret; +} + +/* + @obj is the fourth param from python calls put() +*/ static int convert_annotation(struct srd_decoder_inst *di, PyObject *obj, struct srd_proto_data *pdata) { @@ -62,6 +147,9 @@ static int convert_annotation(struct srd_decoder_inst *di, PyObject *obj, char **ann_text; gpointer ann_type_ptr; PyGILState_STATE gstate; + int ann_size; + + pda = pdata->data; gstate = PyGILState_Ensure(); @@ -96,27 +184,37 @@ static int convert_annotation(struct srd_decoder_inst *di, PyObject *obj, // "annotation class %d.", di->decoder->name, ann_class); // return SRD_ERR_PYTHON; // } - if (ann_class >= g_slist_length(di->decoder->ann_types)) { + if (ann_class >= g_slist_length(di->decoder->ann_types) || ann_class < 0) { srd_err("Protocol decoder %s submitted data to unregistered " "annotation class %d.", di->decoder->name, ann_class); goto err; } ann_type_ptr = g_slist_nth_data(di->decoder->ann_types, ann_class); - /* Second element must be a list. */ + /* + Second element must be a list. + */ py_tmp = PyList_GetItem(obj, 1); if (!PyList_Check(py_tmp)) { srd_err("Protocol decoder %s submitted annotation list, but " "second element was not a list.", di->decoder->name); goto err; } - if (py_strseq_to_char(py_tmp, &ann_text) != SRD_OK) { + + ann_size = PyList_Size(py_tmp); + if (ann_size == 0){ + srd_err("Protocol decoder %s, put() param, the annotation list is empty.", di->decoder->name); + goto err; + } + + pda->str_number_hex[0] = 0; + ann_text = NULL; + if (py_parse_ann_data(py_tmp, &ann_text, ann_size, pda->str_number_hex) != SRD_OK) { srd_err("Protocol decoder %s submitted annotation list, but " "second element was malformed.", di->decoder->name); goto err; } - - pda = pdata->data; + pda->ann_class = ann_class; pda->ann_type = GPOINTER_TO_INT(ann_type_ptr); pda->ann_text = ann_text; @@ -334,7 +432,7 @@ static PyObject *Decoder_put(PyObject *self, PyObject *args) struct srd_pd_callback *cb; PyGILState_STATE gstate; - py_data = NULL; + py_data = NULL; //the fourth param from python gstate = PyGILState_Ensure(); @@ -394,17 +492,20 @@ static PyObject *Decoder_put(PyObject *self, PyObject *args) case SRD_OUTPUT_PYTHON: for (l = di->next_di; l; l = l->next) { next_di = l->data; + srd_spew("Instance %s put %" PRIu64 "-%" PRIu64 " %s " "on oid %d (%s) to instance %s.", di->inst_id, start_sample, end_sample, output_type_name(pdo->output_type), output_id, pdo->proto_id, next_di->inst_id); + if (!(py_res = PyObject_CallMethod( next_di->py_inst, "decode", "KKO", start_sample, end_sample, py_data))) { srd_exception_catch(NULL, "Calling %s decode() failed", next_di->inst_id); } + Py_XDECREF(py_res); } if ((cb = srd_pd_output_callback_find(di->sess, pdo->output_type))) { @@ -459,6 +560,9 @@ err: return NULL; } +/* + return output info index +*/ static PyObject *Decoder_register(PyObject *self, PyObject *args, PyObject *kwargs) { @@ -612,7 +716,9 @@ static int get_current_pinvalues(const struct srd_decoder_inst *di) for (i = 0; i < di->dec_num_channels; i++) { /* A channelmap value of -1 means "unused optional channel". */ if (di->dec_channelmap[i] == -1) { - /* Value of unused channel is 0xff, instead of 0 or 1. */ + /* Value of unused channel is 0xff, instead of 0 or 1. + Done set -1 by srd_inst_channel_set_all() + */ PyTuple_SetItem(di->py_pinvalues, i, PyLong_FromLong(0xff)); } else { if (*(di->inbuf + i) == NULL) { @@ -905,6 +1011,7 @@ static PyObject *Decoder_wait(PyObject *self, PyObject *args) while (!di->got_new_samples && !di->want_wait_terminate) g_cond_wait(&di->got_new_samples_cond, &di->data_mutex); + /* * Check whether any of the current condition(s) match. * Arrange for termination requests to take a code path which @@ -915,7 +1022,7 @@ static PyObject *Decoder_wait(PyObject *self, PyObject *args) found_match = FALSE; /* Ignore return value for now, should never be negative. */ - (void)process_samples_until_condition_match(di, &found_match); + process_samples_until_condition_match(di, &found_match); Py_END_ALLOW_THREADS @@ -940,7 +1047,7 @@ static PyObject *Decoder_wait(PyObject *self, PyObject *args) Py_INCREF(di->py_pinvalues); return (PyObject *)di->py_pinvalues; } - + /* No match, reset state for the next chunk. */ di->got_new_samples = FALSE; di->handled_all_samples = TRUE; @@ -1032,12 +1139,16 @@ err: static PyMethodDef Decoder_methods[] = { { "put", Decoder_put, METH_VARARGS, "Accepts a dictionary with the following keys: startsample, endsample, data" }, + { "register", (PyCFunction)Decoder_register, METH_VARARGS|METH_KEYWORDS, "Register a new output stream" }, + { "wait", Decoder_wait, METH_VARARGS, "Wait for one or more conditions to occur" }, + { "has_channel", Decoder_has_channel, METH_VARARGS, "Report whether a channel was supplied" }, + {NULL, NULL, 0, NULL} }; diff --git a/qtpro/DSView.pro.user b/qtpro/DSView.pro.user index 7ba4c464..6fe947fc 100644 --- a/qtpro/DSView.pro.user +++ b/qtpro/DSView.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -314,7 +314,7 @@ false true - /home/lala/workdir/DSView/build-DSView-unknown-Debug + /home/lala/workdir/DSView-build/bin 1 diff --git a/libsigrokdecode4DSL/tests/core.c b/test/decode_test/core.c similarity index 100% rename from libsigrokdecode4DSL/tests/core.c rename to test/decode_test/core.c diff --git a/libsigrokdecode4DSL/tests/decoder.c b/test/decode_test/decoder.c similarity index 100% rename from libsigrokdecode4DSL/tests/decoder.c rename to test/decode_test/decoder.c diff --git a/libsigrokdecode4DSL/tests/inst.c b/test/decode_test/inst.c similarity index 100% rename from libsigrokdecode4DSL/tests/inst.c rename to test/decode_test/inst.c diff --git a/libsigrokdecode4DSL/tests/lib.h b/test/decode_test/lib.h similarity index 100% rename from libsigrokdecode4DSL/tests/lib.h rename to test/decode_test/lib.h diff --git a/libsigrokdecode4DSL/tests/main.c b/test/decode_test/main.c similarity index 100% rename from libsigrokdecode4DSL/tests/main.c rename to test/decode_test/main.c diff --git a/libsigrokdecode4DSL/tests/session.c b/test/decode_test/session.c similarity index 100% rename from libsigrokdecode4DSL/tests/session.c rename to test/decode_test/session.c