-0.1.1 (2013-01-xx)
+0.5.3 (2019-12-11)
------------------
- * Note: This release does NOT change the libsigrokdecode public C API. This
- means existing libsigrokdecode frontends should not require any changes.
- However, individual PDs and their output changed, which may require
- some adaptations on the user's side in some cases.
+Note: This release does NOT change the libsigrokdecode public C API in
+incompatible ways. This means existing frontends should not require any
+changes. However, individual PDs and their output changed, which may
+require some adaptations on the user's side in some cases.
+
+ * New supported protocol decoders:
+ - lin Local Interconnect Network (LIN) protocol
+ - x2444m Xicor X2444M/P nonvolatile static RAM protocol
+ - ds2408 1-Wire 8-channel addressable switch
+ - cc1101 Low-power sub-1GHz RF transceiver chip
+ - enc28j60 Microchip ENC28J60 10Base-T Ethernet controller protocol
+ - pca9571 NXP PCA9571 8-bit I²C output expander
+ - seven_segment 7-segment display protocol
+ - amulet_ascii Amulet Technologies LCD controller ASCII protocol
+ - tdm_audio TDM multi-channel audio protocol
+ - signature Annotate signature of logic patterns
+ - nes_gamepad NES gamepad button states
+ - flexray Automotive network communications protocol
+ - ir_rc6 RC-6 infrared remote control protocol
+ - ieee488 IEEE-488 General Purpose Interface Bus (GPIB/HPIB or IEC)
+ - hdcp HDCP protocol over HDMI
+ * All decoders must implement a reset() method now. It should reset all
+ PD-internal state and will be called when the decoder is restarted from
+ scratch (by frontends) with new data.
+ * Fix various memory leaks and bad memory accesses (e.g. bug #1374).
+ * Build system: Add support for Python 3.8 (bug #1438).
+ * Various compiler warning fixes.
+ * Slightly more detailed and easier to read log messages in some places.
+ * Fix incorrect decoder 'output' metadata.
+ * Improve annotation row ordering in various PDs.
+ * ook:
+ - Fix two typos causing decode issues.
+ * uart:
+ - Add support for break condition detection.
+ - Add 'FRAME' Python output type that communicates frame validity.
+ - Add '[rx|tx]_packet_delimiter' options.
+ - Add '[rx|tx]_packet_len' options.
+ - Communicate periods of idle frames to stacked decoders.
+ - Add 'ignore' parity type, remove unsupported 'check_parity' option.
+ - Shorten/rename various decoder option names.
+ * spiflash:
+ - Add support for Winbond W25Q80DV and Atmel AT25xxx.
+ - Add support for the chip erase commands (CE, CE2).
+ - Add support for write enable state tracking.
+ - Remember write protection latch from status registers.
+ - Fix WRSR incorrectly using MISO for register decodes.
+ - Add "EEPROM" to descriptions to increase discoverability in UIs.
+ * i2s:
+ - Fix incorrect channel assignment.
+ - Fix usage of the incorrect edge for the data sampling.
+ * ds1307:
+ - Fix incorrect unit for frequencies above 1Hz.
+ - Fix incorrect AM/PM flag handling.
+ * ir_rc5:
+ - Fix an incorrect command value.
+ - Massively improve performance via proper self.wait() usage.
+ * onewire_network:
+ - Add support for the 'Resume ROM' command.
+ - Add a 'Disable Test Mode' command for DS2408.
+ * sdcard_spi:
+ - Add support for CMD24 including payload data (bug #1365).
+ - Fix duplicated 'End bit' annotation emission.
+ - Fix incorrect handling of CMD17 (bug #1377).
+ - Add "Card is busy" annotations for CMD24 (bug #1376).
+ * spi:
+ - Add support for "transfer" annotations.
+ * atsha204a:
+ - Add support for ATECC508A.
+ - Display OtherData parameter correctly when Verify command is executed
+ in Validate mode.
+ - Only call output_tx_bytes() when the bytes buffer is not empty.
+ * usb_request:
+ - Append OUT data only if it has been ACK'd.
+ - Always keep IN and OUT transfers separate. In case the transfer is an
+ IN transfer, set the high bit as used in the endpoint descriptors (i.e.
+ 0x81 is IN enpoint 1, 0x01 is OUT endpoint 1).
+ - Use separate annotation rows for IN, OUT and CONTROL (bug #1046).
+ - Allow configuration of BULK IN transfer display via an option.
+ * modbus:
+ - Make C->S and S->C configurable via options.
+ - Add a 'framegap' option.
+ * mrf24j40:
+ - Add RX/TX frame annotations.
+ - Add TX retries/fails and CCAFAIL support.
+ * eeprom93xx:
+ - Add ASCII format support.
+ - Add OUTPUT_BINARY support.
+ * can:
+ - Add CAN-FD support.
+ - Add new 'fast_bitrate' option.
+ - More robust sample point position for low sample rates.
+ * gpib, iec:
+ - Removed in favor of the new ieee488 decoder.
+ * ir_nec:
+ - Fix decoder when running it multiple times (bug #1243).
+
+0.5.2 (2018-09-12)
+------------------
+
+Note: This release does NOT change the libsigrokdecode public C API in
+incompatible ways. This means existing frontends should not require any
+changes. However, individual PDs and their output changed, which may
+require some adaptations on the user's side in some cases.
+
+ * New supported protocol decoders:
+ - mcs48 Intel MCS-48 external memory access protocol
+ - st7735 Sitronix ST7735 TFT controller protocol
+ - atsha204a Microchip ATSHA204A CryptoAuthentication device
+ - cfp 100 Gigabit C form-factor pluggable (CFP) protocol
+ - jtag_ejtag MIPS EJTAG protocol
+ - swim STM8 Single Wire Interface Module (SWIM) protocol
+ - cec HDMI Consumer Electronics Control (CEC) protocol
+ - miller Miller encoding protocol
+ - ook On-off keying protocol
+ - ook_oregon Oregon Scientific weather sensor protocol
+ - ook_vis OOK visualisation in various formats
+ * Various minor performance improvements in the backend.
+ * Fix an issue causing decoder termination to take a long time.
+ * Fix multiple self.put() memory leaks (bug #329).
+ * Fix multiple memory leaks reported by scan-build.
+ * Show a backtrace when the decode aborts due to an error (bug #1158).
+ * Perform the log level check for non-default handlers as well (bug #698).
+ * Fix multiple compiler warnings.
+ * Compiler: Add -Wshadow -Wformat=2 -Wno-format-nonliteral -Wfloat-equal.
+ * Build system: Add Python 3.7 support.
+ * Fix a 'make install' issue that happens with Python >= 3.7.
+ * Add two missing Python GIL release operations.
+ * libsigrokdecode API changes:
+ - Add the srd_log_callback_get() API call.
+ - Add the SRD_ERR_TERM_REQ error code.
+ * dcf77:
+ - Annotate invalid dow and month fields, do not abort execution (bug #1173).
+ - Annotate unexpected bit numbers and values, do not abort execution.
+ * spiflash:
+ - Add basic Adesto AT45DBxx support (WRITE1/2, STATUS).
+ - Add Adesto AT45DB161E metadata.
+ * jtag:
+ - Fix shifting of registers (bug #1066).
+ * jtag_stm32:
+ - Fix handling of boundary scan TAP and incorrect state transitions.
+ * eeprom24xx:
+ - Add ON Semi CAT24C256 and CAT24M01 support.
+ * counter:
+ - Emit wider annotations to improve readability in UIs (bug #1210).
+ - Add support for user specified initial counter values (bug #1229).
+ - Add an option to ignore a certain number of edges.
+ - Let the user decide how to handle the initial dead_cycles state.
+ * mdio:
+ - Accept MDIO READ without previous ADDRESS command (bug #1258).
+ * edid:
+ - Add support for extension blocks.
+ - Various annotation improvements.
+ * spi:
+ - Fix an issue causing an AttributeError during certain decodes.
+ * usb_power_delivery:
+ - Emit more details in annotations (power, PDO type, RDO info).
+ - Add PPS support.
+ - Add better USB Power Delivery 3.0 support.
+
+0.5.1 (2018-04-12)
+------------------
+
+Note: This release does NOT change the libsigrokdecode public C API in
+incompatible ways. This means existing frontends should not require any
+changes. However, individual PDs and their output changed, which may
+require some adaptations on the user's side in some cases.
+
+ * New supported protocol decoders:
+ - ac97 Audio and modem control for PC systems
+ - ds243x Maxim DS243x series 1-Wire EEPROM protocol
+ - maple_bus Maple bus peripheral protocol for SEGA Dreamcast
+ - morse Demodulated morse code protocol
+ - graycode Accumulate rotary encoder increments, timing statistics
+ - counter Count number of edges
+ - sda2506 Serial nonvolatile 1-Kbit EEPROM
+ - rc_encode PT2262/HX2262/SC5262 remote control encoder protocol
+ * Updated build requirements:
+ - libglib >= 2.34
+ * New API calls:
+ - srd_searchpaths_get(): Retrieve PD search paths.
+ - srd_session_terminate_reset(): Terminate currently executing decoders
+ in a session, reset internal state. Allows re-using a session.
+ * can:
+ - Introduce clock synchronization (bug #990).
+ - Fix incorrect stuff bit handling (bug #1085).
+ * i2c:
+ - Don't drop the first sample of input data.
+ - Make input samplerate optional (bug #1076).
+ * i2s:
+ - Binary output: Make 32-bit WAV files, set file size to 4GB.
+ - Fix unportable use of struct.pack().
+ - Make samplerate meta data optional.
+ * stepper_motor:
+ - Make samplerate meta data optional.
+ * pwm:
+ - Fixup sample numbers for binary output.
+ * onewire_network:
+ - Fixup start samplenumber for annotations.
+ * lpc:
+ - Improve robustness when decoding unexpected input data.
+ * ir_nec:
+ - Make timing margin relative.
+ - Optionally accept input signals that include the carrier.
+ * usb_request:
+ - Handle CONTROL transfer protocol stalls.
+ * usb_power_delivery:
+ - Enforce numerical order of RDO/PDO flag annotations, enforce check
+ order for start-of-packet sequences (bug #1090).
+ * parallel:
+ - Cope with sparse input maps, assume zero for unconnected pins (bug #1088).
+ - Unbreak and improve "word" de-multiplexing.
+ - Implement consistent number formatting.
+ - Expand 'wordsize' description (bits vs cycles).
+ * spi:
+ - Cope when a sample rate of 0 was configured (bug #1118).
+ * Acquire/release the Python GIL where needed to avoid threading issues.
+ This allows frontends to call libsigrokdecode API functions from different
+ threads without running into issues.
+ * Convert all protocol decoders to PD API version 3.
+ * Support for the old PD API version 2 has been removed.
+ * Unbreak the execution of Decoder.wait() with empty condition.
+ * self.wait(): Accept more forms of "unconditional wait" (None, no args).
+ * Fix a compiler warning on Mac OS X.
+ * configure.ac: Add missing PKG_PROG_PKG_CONFIG and AC_C_BIGENDIAN.
+ * Add a reset() method to all PDs which resets internal variable state.
+ * Clarify and improve channel mapping debug output.
+ * Print decoder and system search paths in debug output.
+ * Drop overly verbose log messages about (un)loading PDs.
+ * HACKING: Prefer git pull requests over mailing list patches.
+
+0.5.0 (2017-06-12)
+------------------
+
+Note: This release DOES change the libsigrokdecode public C API. This
+means it is NOT backwards-compatible and frontends will need updates.
+
+ * New supported protocol decoders:
+ - ade77xx Poly phase multifunction energy metering IC protocol
+ - adf435x Wideband synthesizer with integrated VCO
+ - aud Renesas/Hitachi Advanced User Debugger (AUD) protocol
+ - avr_pdi Atmel proprietary interface for the ATxmega MCU
+ - dali DALI lighting control protocol
+ - dsi DSI lighting control protocol
+ - dmx512 Professional lighting control protocol
+ - eeprom93xx 93xx series Microwire EEPROM protocol (bug #931)
+ - em4305 EM4205/EM4305 100-150kHz RFID protocol
+ - gpib IEEE-488 GPIB / HPIB protocol
+ - iec Commodore serial IEEE-488 (IEC) bus protocol
+ - microwire 3-wire, half-duplex, synchronous serial bus (bug #931)
+ - ps2 PS/2 keyboard/mouse interface
+ - rgb_led_ws281x RGB LED string protocol (WS281x)
+ - ssi32 Synchronous Serial Interface (32bit) protocol
+ - t55xx T55xx 100-150kHz RFID protocol
+ - wiegand Wiegand interface for electronic entry systems
+ * Add support for the new query-based PD v3 decoder API.
+ - Decoders using PD v3 API can benefit from both readability improvements
+ as well as performance improvements. Up to 10x speedup has been measured
+ in some situations (depends a lot on the decoder, the amount of data,
+ the amount of edges in the signals, and the amount of oversampling).
+ - The majority of all decoders have been converted to PD API v3.
+ - For the time being, both APIs (2 and 3) will remain supported until all
+ decoders have been converted to API version 3. Then, support for API
+ version 2 will be dropped.
+ * Add support for specifying the (assumed) initial pin states before the
+ first sample that is being decoded. This can be set to 0/low, 1/high, or
+ to "use the same value as in the first sample".
+ * Add support for adding multiple instances of a decoder (bug #868).
+ * Introduce a decoders/common facility for code shared between PDs (bug #804).
+ * Supply metadata to all stacked decoders, not just low-level ones (bug #664).
+ * Various Doxygen/documentation improvements.
+ * Factor out a srd_decoder_apiver() internal helper function.
+ * srd_inst_decode(): Return SRD_ERR_ARG if unitsize is 0.
+ * Print error messages when decoders fail load time checks (bug #704).
+ * Fix multiple valgrind warnings (memory leaks and such).
+ * Build system: Sort PD list alphabetically in "make install".
+ * mdio:
+ - Replace PD with a new implementation that also supports Clause 22 and 45.
+ - Improve annotations slightly.
+ * xfp:
+ - Move various constants to common/plugtrx for reusability purposes.
+ * sdcard_{sd,spi}:
+ - Move various constants to common/sdcard for reusability purposes.
+ * usb_request:
+ - Drop hardcoded samplerate (workaround for the fixed bug #664).
+ * spiflash:
+ - Handle CS# transitions, allow variable-length transfers.
+ - Handle "Fast Read Dual I/O" commands.
+ - Add a "format" decoder option.
+ - Implement Release Power-down / Device ID (0xAB) command (bug #845).
+ - Remove hardcoded Macronix references.
+ - Add initial FIDELIX FM25Q32 metadata/support.
+ - Implement WRSR, RDSR2 commands.
+ - Various annotation improvements.
+ * timing:
+ - Add frequency and averaging support.
+ - Disable averaging feature if it's set to zero.
+ - Add edge-edge mode and delta calculation.
+ * midi:
+ - Decode note names and percussion names (e.g. 'G2', 'Tambourine').
+ - Decode instrument names and drum_kit names (e.g. 'GS Orchestra Kit').
+ - Handle Polyphonic Pressure / Aftertouch (message 0xAn).
+ - Handle Program Change (message 0xCn).
+ - Handle Channel Pressure / Aftertouch (message 0xDn).
+ - Handle Channel Mode (message 0xBn mm where mm is 120 through 127).
+ - Handle System Common messages (message 0xF1 through 0xF6), including
+ full time code decoding.
+ - SysEx decoding now decodes the 1-3 byte manufacturer field, payload
+ is now displayed as hex.
+ - 'undefined' fields now display the value (e.g. 'undefined 0xf4').
+ - Add 'MSB' and 'LSB' to many control_functions entries.
+ - Fix "trapped in state X" bug with handle_channel_msg_generic(),
+ though this might be dead code.
+ - Fix bug in sysex_manufacturer_ids; 1-byte manufacturers were not
+ tuples due to missing comma.
+ - Fix bug in SysEx state machine; 0xF7 now sent to handle_sysex_msg().
+ - Annotations: Provide multiple string versions (shorter and longer ones).
+ - chromatic_notes in list.py was off by 1 octave.
+ - Handle "Running Status" where status byte can be omitted.
+ - SysEx message can be terminated by status byte, not just EOX.
+ - Handle SysReal messages that interrupt in-progress message transmission.
+ - Identify and print garbage / truncated data.
+ - Add 2 new annotations: text-sysreal-verbose and text-error.
+ * usb_power_delivery:
+ - Drop problematic exception in us2samples() function (bug #758).
+ * uart:
+ - Fix a bug in the output for stacked PDs (when there's RX/TX overlap).
+ - Various output formatting improvements (e.g. for ASCII and octal).
+ - Skip frames with invalid start bits.
+ - Emit 2 bytes for 9-bit UART binary output (bug #708).
+ - Default to hex format datavalue annotations.
+ * spi:
+ - Fix binary output for wordsizes > 8 (bug #686).
+ * sdcard_sd:
+ - Don't try to decode commands that are not yet supported.
+ - Always show CMD argument in hex.
+ - Fix incorrect CMD8 annotations.
+ * can:
+ - Add warnings for various invalid bits and fields.
+ - Skip stuff bit inspection where not applicable (bug #656).
+ * eeprom24xx:
+ - Add Xicor X24C02 support.
+ * onewire_link:
+ - Replace PD with a new, improved implementation (bugs #666, #926).
+ - Overdrive speed is now detected automatically.
+ - Some no longer needed decoder options have been dropped.
+ * Various decoders:
+ - Fix some incorrect PD license metadata fields.
+ - Fix typos, whitespace issues and random other cosmetics in some PDs.
+ - Use consistent __init__() format across all PDs.
+ - Move some duplicated code snippets/lists to decoders/common.
+ * Rename the maxim_ds28ea00 decoder to ds28ea00.
+ * Show library versions in the debug output.
+ * configure: Also check for Python 3.6.
+ * configure summary: Show build type (static/shared) and linker flags.
+ * Remove FSF postal address from boiler plate license text.
+ * HACKING: Update URL to Linux kernel coding style.
+
+0.4.0 (2016-01-29)
+------------------
+
+Note: This release DOES change the libsigrokdecode public C API. This
+means it is NOT backwards-compatible and frontends will need updates.
+
+ * New supported protocol decoders:
+ - adns5020 Bidirectional command and data over an SPI-like protocol
+ - am230x Aosong AM230x/DHTxx/RHTxx humidity/temperature sensor
+ - arm_etmv3 Decode ETM instruction trace packets
+ - arm_itm Trace data from Cortex-M / ARMv7m ITM module
+ - arm_tpiu Filter TPIU formatted trace data into separate streams
+ - eeprom24xx 24xx series I²C EEPROM protocol
+ - em4100 EM4100 100-150kHz RFID protocol
+ - jitter Retrieves the timing jitter between two digital signals
+ - max7219 8-digit LED display driver
+ - mdio Half-duplex sync serial bus for MII management (MAC/PHY)
+ - modbus Modbus RTU protocol for industrial applications
+ - mrf24j40 IEEE 802.15.4 2.4 GHz RF tranceiver chip
+ - nrf24l01 2.4GHz transceiver chip
+ - pwm Analog level encoded in duty cycle percentage
+ - qi Async serial protocol for Qi charger receivers
+ - rfm12 HopeRF RFM12 wireless transceiver control protocol
+ - sdcard_sd Secure Digital card (SD mode) low-level protocol
+ - spdif Serial bus for connecting digital audio devices
+ - stepper_motor Absolute position and movement speed from step/dir
+ - swd Two-wire protocol for debug access to ARM CPUs
+ - tca6408a Texas Instruments TCA6408A 8-bit I²C I/O expander
+ - timing Calculate time between edges
+ - usb_power_delivery USB Power Delivery protocol
+ - usb_request USB (low-speed and full-speed) transaction/request protocol
+ * The 'mx25lxx05d' decoder was renamed to 'spiflash' and made more generic.
+ * arm_itm:
+ - Use objdump instead of addr2line (bug #564).
+ * can:
+ - Emit bit value annotations.
+ - Improve stuff bit annotation placement.
+ * ds1307:
+ - Emit per-bit annotations for registers.
+ - Add more annotation classes (and annotation rows).
+ - Handle register 0x07 (control register).
+ - Handle SRAM register accesses.
+ - Correctly handle address wrap-around.
+ - Warn about (and ignore) non-DS1307 traffic.
+ * edid:
+ - Handle more EDID structure sections.
+ - Add annotation rows.
+ * jitter:
+ - Avoid Unicode string literals (bug #569).
+ * jtag:
+ - Fix/enable OUTPUT_PYTHON output.
+ - Add more annotations, fix a SHIFT-IR/-DR issue.
+ * jtag_stm32:
+ - Fix incorrect handling of registers.
+ - Decode more fields, improve IDCODE handling.
+ - Decode IDCODE contents as strings (not just hex values).
+ * midi:
+ - Fix two incorrect sample numbers.
+ - Update for a change (emit databyte/bits at the same time) in the uart PD.
+ * mrf24j40:
+ - Fix a register address typo.
+ * nunchuk:
+ - Fix inverted button press logic.
+ * pan1321:
+ - Update for a change (emit databyte/bits at the same time) in the uart PD.
+ * onewire_link:
+ - Fix a bug when the samplerate is too low for the PD (bug #357).
+ * parallel:
+ - Enforce that at least one pin must be provided.
+ * pwm:
+ - Avoid Unicode string literals (bug #569).
+ * spi:
+ - OUTPUT_PYTHON docs: Fix order of MISO/MOSI data items.
+ - Tell stacked decoders about missing CS# signal.
+ - Add binary output facilities for MISO/MOSI (bug #424).
+ - Don't decode data lines if CS# isn't asserted (bug #559).
+ - Add a 'TRANSFER' output type.
+ * spiflash:
+ - Implement FAST READ command.
+ - Add a 'chip' option in preparation for supporting more devices.
+ - Fix incorrect 'inputs' field.
+ * tlc5620:
+ - Fix incorrect DAC selection decode, add more annotations.
+ - Only decode the last 11 bits, ignore the rest.
+ - Properly handle LOAD and LDAC based operations.
+ - Handle the case of less than 11 bits in a command.
+ - Add options for per-DAC Vref, show voltages.
+ * uart:
+ - Add signal inversion options 'invert_tx' and 'invert_rx'.
+ - Emit databyte and bits list at the same time to simplify stacked PDs.
+ - Improve sample positions at high data rates.
+ - Handle framing errors better.
+ - Performance-optimize handling of samples when TX and RX are both idle.
+ * usb_packet:
+ - Fix incorrect DATA*/MDATA handling (bug #623).
+ - Handle invalid packets more gracefully (bug #186).
+ - Calculate and check CRC5/CRC16.
+ - Handle errors from usb_signalling.
+ - Handle PREamble transmissions.
+ * usb_request:
+ - Handle transmission timeouts.
+ - Handle PREamble transmissions.
+ * usb_signalling:
+ - Track USB symbol width to compensate frequency errors.
+ - Detect bit stuffing errors.
+ - Handle symbol errors in EOP state.
+ - Use explicit positions for packet start/end (avoids glitches).
+ - Decode RESET and Keep-Alive signalling conditions.
+ - Add option to automatically set signalling speed.
+ - Fix SOP detection after an error condition.
+ - Add signalling states needed after LS PREamble PID.
+ - Detect PREamble PID.
+ * Drop the PD testing framework. It's in the 'sigrok-test' repository now
+ (and is not meant for "end users" or distro packages anyway; it's a pure
+ developer tool/system). This also fixes some PD test related build issues.
+ * Makefile.am: Use libtool's -no-undefined option (fixes MinGW shared build).
+ * Support loading decoders stored in ZIP files.
+ * Updated build requirements:
+ - libglib >= 2.28.0
+ - Drop obsolete (optional) dependencies: python3-coverage, libsigrok.
+ * README: Use clearer descriptions for the dependencies.
+ * Remove all references to the obsolete sigrok-commits mailing list.
+ * Fix incorrect doxygen comment for srd_decoder_list() function (bug #378).
+ * configure.ac:
+ - Fix a shell portability issue ("==" vs. "=").
+ - Use AM_CFLAGS instead of CFLAGS.
+ - Only link the 'check' library into the unit tests (not the lib).
+ * Unit tests:
+ - Fix out-of-tree build.
+ * libsigrokdecode.pc (pkg-config) file:
+ - Fix an issue related to the Python lib dependencies.
+ - Publish decodersdir variable.
+ * Add "-git-<hash>" suffix to development version numbers.
+ * Pass unitsize per sample chunk (bug #352).
+ * Modernize the whole autotools setup.
+ * Build with _POSIX_C_SOURCE=200112L per default.
+ * Build: Show CC and CFLAGS in configuration summary.
+ * Also look for decoders in XDG data directories.
+ * Restrict Python code to stable ABI subset (PEP 384).
+ * Fix various memory leaks.
+ * Fix an issue with PDs not being properly removed upon unload.
+ * Don't let Python override signal handlers (bug #461).
+ * configure: Also check for Python 3.5 (bug #739).
+
+0.3.0 (2014-05-06)
+------------------
+
+Note: This release DOES change the libsigrokdecode public C API. This
+means it is NOT backwards-compatible and frontends will need updates.
+
+ * New supported protocol decoders:
+ - guess_bitrate Guess the bitrate/baudrate of a signal
+ - ir_nec NEC infrared remote control protocol
+ - ir_rc5 RC-5 infrared remote control protocol
+ - midi Musical Instrument Digital Interface
+ - parallel Parallel synchronous bus decoder
+ - rgb_led_spi RGB LED string decoder (SPI)
+ - xfp 10 Gigabit Small Form Factor Pluggable Module
+ - z80 Zilog Z80 microprocessor disassembly
+ * Add support for annotation rows, i.e. groups of annotation classes that
+ are supposed to be displayed on the same GUI "row" together.
+ * Add support for the new OUTPUT_BINARY feature, which allows PDs to output
+ decoded data in various file formats (for loading and further processing
+ in other tools, or for direct live piping into other tools).
+ * Add support for the OUTPUT_META output type. This is used by PDs for
+ reporting various data points to the frontends, allowing them to perform
+ various post-processing and statistics tasks on them (e.g. simple counts,
+ average/mean values, min/max values, and so on).
+ * The OUTPUT_PROTO output type is now called OUTPUT_PYTHON.
+ * All protocol decoders:
+ - Bump the 'api_version' field of all decoders to 2. They are no longer
+ compatible (and cannot be used with) older libsigrokdecode versions.
+ - Updates to emit proper annotation classes, annotation sample numbers,
+ and annotation rows for GUI usage (bugs #146, #148, #150, #151, #154,
+ #155, #162, #147, #163, #168, #156, #309, and #344).
+ - Longer and shorter annotations are now supplied for GUI usage (frontends
+ can for example always show the longest annotation per zoom-level).
+ - Extensive protocol information has been moved from the PDs to the wiki.
+ Example: http://sigrok.org/wiki/Protocol_decoder:Uart
+ - Use correct I²C / I²S names in user-visible texts (not I2C/I2S).
+ * dcf77:
+ - Fix a bug in the handling of DCF77 bit 0.
+ - Drop handling of the 'PON' pin, this is not DCF77 related (bug #153).
+ - Fix the data parity check (bug #157).
+ * i2c:
+ - Fix corner case that can yield issues when using triggers on LAs.
+ - Drop unneeded 'addressing' option.
+ - Output bit-exact annotations and data for use by stacked PDs.
+ * i2s:
+ - Add OUTPUT_BINARY support for dumping the decoded data in WAV format.
+ * lpc:
+ - Various fixes to make the PD work better (or at all).
+ - Fix the handling of optional channels.
+ - Make the RESET# pin optional.
+ * onewire_link:
+ - Split 'reset' and 'presence' annotations.
+ * pan1321:
+ - Support the JSEC, JPRO, JAAC, and JSDA commands.
+ - Various internal fixes and improvements.
+ * parallel:
+ - Fix internal use of the obsolete 'metadata' parameter (bug #202).
+ * rtc8564:
+ - Properly handle register 0x06 (weekday) and the 'century' bit.
+ * sdcard_spi:
+ - Emit bit-exact annotations for the register fields that need them.
+ - Fix a Python issue with duplicate keys in a dict (bug #191).
+ * spi:
+ - Either MISO or MOSI can be optional now, but not both (bug #175).
+ - The CS# pin is optional now. If the pin is supplied, it is honored
+ (decoding only happens when the pin is asserted). Otherwise decoding will
+ use every CLK edge, regardless of CS# state or CS# existence (bug #152).
+ - Rename the 'SCK' pin to the more common 'CLK'.
+ - Output bit-exact annotations and data for use by stacked PDs.
+ - Fix a bug occurring when only MOSI (but not MISO) was supplied.
+ * transitioncounter:
+ - Drop the obsolete 'transitioncounter' dummy protocol decoder.
+ * uart:
+ - Fix corner case that can yield issues when using triggers on LAs.
+ - Use 'T' for stop bits and 'P' for parity bits (shortest annotations).
+ - Add a data format selection option.
+ - Annotations for RX and TX are now emitted in different annotation rows.
+ - Either the RX or TX signal can be optional now (but not both).
+ - Fix incorrectly displayed characters (bug #201).
+ - Add support for OUTPUT_BINARY output for RX, TX, or both.
+ - Output bit-exact annotations and data for use by stacked PDs.
+ * uart_dump:
+ - Drop the obsolete 'uart_dump' decoder (the feature is now included
+ in the 'uart' protocol decoder itself via OUTPUT_BINARY).
+ * usb_packet:
+ - The 'usb_protocol' decoder has been renamed to 'usb_packet'.
+ - Various bugfixes and decoding improvements.
+ * usb_signalling:
+ - Fix decoding of individual bits, sample in the middle of bits (bug #158).
+ * libsigrokdecode API changes overview:
+ - Add srd_session_new(), srd_session_destroy(), and a session context.
+ - Add srd_session_metadata_set().
+ - The name 'probe' has been renamed to 'channel' everywhere.
+ - The lib no longer defineѕ names with _t suffix (POSIX reserved).
+ - Drop the obsolete SRD_MAX_NUM_PROBES.
+ - Add the SRD_CONF_SAMPLERATE config key.
+ - Please see the Doxygen API documentation for further details.
+ * Protocol decoder API:
+ - Metadata is passed to PDs at runtime now (not at decoder start).
+ PDs now have a new optional metadata() method to receive it.
+ - Output types are now registered via Decoder.register(), not Decoder.add().
+ - The report() method is now obsolete. This kind of information will be
+ passed to the frontends via the OUTPUT_META output type, allowing the
+ frontends to perform various post-processing and statistics tasks.
+ - PDs can now define BINARY_OUTPUT types via the 'binary' tuple.
+ - PDs can now define annotation rows via the 'annotation_rows' tuple.
+ - PD options are now a tuple of dicts. Each option is a dict containing
+ the keys 'id', 'desc', 'def', and 'values'. Valid option types are
+ UTF-8 strings, integers, and floats (bugs #254, #306, #317, #165).
+ - Channels, optional channels, and annotations are now tuples (not lists).
+ - Only load PDs of API version 2, all other versions are incompatible.
+ * srd_inst_channel_set_all(): Report an error if not all channels required
+ by the respective protocol decoder have been supplied.
+ * Remove some internal limitations to max. 64 channels (bug #120).
+ * Add a unit test suite framework for libsigrokdecode ('make check').
+ * Add a protocol decoder test-suite framework for developers (tests/pdtest).
+ * Various bugfixes:
+ - srd_inst_option_set(): Properly return an error on exceptions.
+ - srd_inst_option_set(): Fix setting of instance options, caused by class
+ variable clobbering or releasing borrowed references (bugs #170, #174).
+ - srd_decoder_load(): Error out upon invalid module names (bug #176).
+ - srd_decoder_load(): Don't try to load an already loaded PD twice.
+ - srd_decoder_load_all(): Avoid issues without prior srd_init() (bug #178).
+ - srd_decoder_doc_get(): Fix an issue in the unit test suite (bug #179).
+ - srd_pd_output_callback_add(): Honor cb_data value (bug #143).
+ - Fix issues with PDs not getting the samplerate (bugs #97, #132, #166).
+ - Don't incorrectly decrease a borrowed reference (bug #177).
+ - Fix various memory leaks and segfault conditions.
+ * Build system:
+ - Use pkg-config (not python3-config) to check for Python libs.
+ This enables (better) libsigrokdecode cross-compile support.
+ - PDs no longer have an extra Makefile.am, and 'make install' now
+ happens via a Python script.
+ - configure: Clearly mark required and optional libs.
+ - Fix an issue with DESTDIR support (bug #215).
+ - Add the HACKING file to the tarball.
+ * Updated or new build-time and runtime requirements:
+ - Python >= 3.2 (required)
+ - check >= 0.9.4 (optional, only needed for the libsigrokdecode testsuite)
+ - libsigrok >= 0.3.0 (optional, only needed for the developer PD testsuite)
+ - python3-coverage (optional, only needed for the developer PD testsuite)
+ * New 'make install'-time requirement:
+ - Python >= 3.2 (required)
+
+0.2.0 (2013-05-04)
+------------------
+
+Note: This release DOES change the libsigrokdecode public C API. This
+means it is NOT backwards-compatible and frontends will need updates.
+
+ * New supported protocol decoders:
+ - Dallas DS1307 RTC
+ * Library: Decoders now expose their options via the GSList *options field
+ in struct srd_decoder.
+ * API related changes:
+ - Various API documentation fixes.
+ - srd_decoder_list() now returns 'const GSList *' instead of 'GSList *'.
+ - Added new srd_strerror() and srd_strerror_name() API calls.
+ * Added support for optional probes for PDs.
+
+0.1.1 (2013-01-27)
+------------------
+
+Note: This release does NOT change the libsigrokdecode public C API. This
+means existing libsigrokdecode frontends should not require any changes.
+However, individual PDs and their output changed, which may require
+some adaptations on the user's side in some cases.
+
* New supported protocol decoders:
- avr_isp AVR In-System Programming
- can Controller Area Network
* Performance improvements in some PDs.
* Documentation: Update website and git URLs.
* pkg-config file: Small fix to improve behaviour on Windows with cmake.
- * Name PD implementation files 'pd.py' consistently.
+ * All PD implementation files are now named 'pd.py' consistently.
* configure script:
- Also check for python3.3-config in addition to python-config and others.
- Add missing -fvisibility=hidden to default CFLAGS.
- Fix CFLAGS handling (configure.ac amends CFLAGS, doesn't overwrite now).
+ * The minimum required glib version is 2.24.0 now.
+ * We now ship a standard INSTALL file which documents the 'configure' options.
0.1.0 (2012-04-17)
------------------