Release Notes for IrpTransmogrifier.

The notation #n refers to issues number n at
https://github.com/bengtmartensson/IrpTransmogrifier/issues

2022-05-24: Version 1.2.11.

This version consists mainly of a few extensions, bugfixes and cleanups.

* If DecoderParameters.allDecodes is true, indicate which decode is preferred with new API call.
* Bugfix/cleanup on decoder parameter and --override handling. #214.
* Some cleanup of XML code generation.
* Decoded protocol parameters (in toString()) now ordered as in the IRP ParameterSpecs. #207.
* Analyze now optionally generates ParameterSpecs in the IRP. Resolves #202.
* New protocols: Eufy, F12x, Keeprite. ((From RMIR).
* Bugfix in  IrpDatabase.toElement(Document ...). #219.
* Add intro, repeat, ending to --classify output. #218.
* Remove cName (@c-name in XML) completely. #217.
* Rename min-leadout to minimum-leading (pull request #212 from seanyoung).
* Bugfix for IrCoreUtils.parseLong(String, boolean, int). #211.
* New function IrpDatabase.setDocumentation.

2021-06-27: Version 1.2.10. This version is considered "Long Time Stable".

* New protocols NEC-Yamaha and NEC1-Yamaha.
* Make RCMM32 an alias to Nokia32.
* Merge protocol fixes from rmProtocols.xml of RMIR, latest snapshot. #208.
* Make DirecTV an alias to DirecTV_P3. #206.
* Many small or internal fixes to the API, wrappers, tests, documentation, the build process.
* Added xpath processing to XmlTransmogrifier.
* Clarified Variations and remote marker; some constructs now disallowed, #200.
* New options --xml.
* Fixed broken xinclude, #199.
* Updated X10 protocols (mostly by Graham).
* Updated Apple protocol.

===============================================================================
Version 1.2.9: There is no version 1.2.9.

===============================================================================
2020-09-17: Version 1.2.8

* Support commitId in Version. Given out from "version" command.
* Set a sensible lead-out on protocols NEC-Shirriff and NEC-Shirriff-32.
* Bugfix for comments within irp:protocol/irp:parameter[@type='xml"]. #191.
* irp-protocols.xsd: Allow xml:space in <irp:documentation>. #188.
* New option decode --girr.
* New protocols TCL_AC, keeprite.
* Error message improvements.
* analyze --bit-usage now computes lengths of constant/varying segments.
* Fix problem with analyze/--parametertable. #190.
* IrpDatabase: Recycle get-ted Protocols. #189.
* IrpProtocols.xml: NECx2: put reject-repeatless=true
* Merge rmProtocols from remotemaster, several times.

===============================================================================
2020-07-05: Version 1.2.7

* Add Motorola as alt_name for Blaupunkt, #187. Remove Blaupunkt_relaxed.
* Merged rmProtocols.xml from RemoteMaster commit r1712 as well as r1714.
* Reformatted IrpProtocols.xml using list --dump.
* Now allows attribute xml:space in <irp:documentation>.
* Better check for circular prefer-overs, option --prefer-overs. Resolves #170.
* Recognize NULL as argument to --out.  Resolves #186.
* Improvements in list --dump. #184, #183.
* Remove -v as command line option.
* New option --xslt by decode and analyze. #182.
* API: Fix usage of UnsupportedEncodingException. #181
* Replace option --encoding by separate options for input and output. #180.
* Protocols: Kaseikyo family protocols now "prefer-over"-ed Kaseikyo. #177
* analyze with --tsv: layout fixes.
* New main-class XmlTransmogrifier: allows command line validation, reformatting, transformations.
* Implemented local XML Entity resolver (for accessing common Schemas locally, not over tne net).
* API: new package org.harctoolbox.xml. Some classes relocated to this.
* New option --validate. #173.
* Fixes to the schema irp-protocols.xsd. #174, #172.
* API: New function Protocol.fillInDefaults(Map<String,Long>)
* New option --fatgirr.
* Bugfixes and improvements in analyze --girr.

===============================================================================
2020-05-24: Version 1.2.6

* Checksums (signed in released versions) now reside in files checksums.*. #169.
* Improvements in the main documentation.
* Changes to the Dyson protocol(s), as proposed by Graham Dixon.
* Rename JVC_alt -> JVC_squashed.
* Merged in new documentation for NEC*-f16 protocols from RemoteMaster v2.10 build 8.
* Rename protocol Dysan -> Dyson.
* Fixed inconsequent working of --radix. #167.
* Fix bug in analyze --invert. #163.
* New option --validate in analyze. #166.
* Make the radix prefixes in IrCoreUtils configurable in API. #165.
* Validate --radix command line option. #164.
* Refactor commands. Resolves #162.
* Fix bug in Biphase decoding. #161.
* Improved analyzer command line output for named parameters.

===============================================================================
2020-03-24: Version 1.2.5

* IrpProtocols.xml: Merge protocol updates from RemoteMaster 2.10b2.
* Better error messages for rendered IrSequences not ending with gap. #158.
* Bugfix: IrpDatabase patch problems. #160.
* API: IrpDatabase API fixes; avoid return null. #159.
* Bugfix: overflow problem with very large data sets in --namedinput. #157.
* IrCoreUtils.parseLong improvements.
* list command: hide some ("expert") options. --all new option.
* Improve decoding of short Pronto hex (slightly more forgiving).
* Fixed decoder bug in Extent.decode. #156.
* render, bitfield, expression: --parameters now synonym for --nameengine. #155.

===============================================================================
2020-01-15: Version 1.2.4

* Code generation xml: Some fixes, more attributes, in particular tolerances.
* Better error messages for --logclass.
* New option list --parsedirp.
* Don't nuke whitespace from IRP in database.
* list --gui working again.
* Improved command line documentation for logging commands.
* Better command decoding for the demodulate command.
* Fixed problem with 0 durations in render --modulate. #154.
* Schema irp-protocols: Attribute protocol/@name now required.
* Documentation update.
* New protocol: Akord.
* Analyzer: --parameterwidths now allows for optional parameter names. #150.
* Several issues with patch files fixed.
* Changes from Graham Dixon to uei-executor, several protocols.
* Changed parameterization of NEC*-f16 protocols.
* Added more test files and API examples.
* Update JCommander to the current version 1.78. #153.
* Refactoring of CommandDecode and Decode. #152.

===============================================================================
2019-11-12: Version 1.2.3

* Deploy releases to Maven Central repository, #149.
* Improvements to protocol documentation and HtmlDocumentation.

===============================================================================
2019-10-20: Version 1.2.2

* Bugfix: Fix implementation of IrpDatabase patchfile nuking by empty entries.
* Bugfix #148.
* Bugfix #147.
* IrpProtocols.xml: deleted unusable  protocols.
* New constructor Decoder.SimpleDecodesSet(DecodeTree), new function Decoder.DecodeTree.toList().

===============================================================================
2019-10-16: Version 1.2.1

* Merge Graham Dixon's fixes http://www.hifi-remote.com/forums/viewtopic.php?t=101943&start=63
  in particular in <irp:parameter name="uei-executor">.
* Updated protocol documentation etc in IrpProtocols.xml. Resolves #146.
* Implemented IrpDatabase.patch(File) etc, allowing for patching IrpDatabases.
  From command line, allow several arguments to --config. Resolves #68.
* New option list --dump. Resolves #144.
* Rename IrpDatabase.toDocument to IrpDatabase.toXml
* Protocols: G.I.44DTVold removed; G.I.4DTVnoCheck -> G.I.4DTV_relaxed.
  Remove all usable="true". Reordering.

===============================================================================
2019-10-11: Version 1.2.0

* New parameters in IrpProtocols.xml: frequency-low & frequency-high. #132.
* IrSignal.setFrequency replaced by IrSignal(IrSignal, double). #143.
* Reorganized the contributed directory.
* Fixed protocol Humax 4Phase. #142.
* Cleanup/efficiency fix in Protocol.toIrSequence(NameEngine, Pass).
* IrSequence.approximatelyEquals(IrSequence): much stricter default tolerances.
* Bugfix: Number.toString(int) now behaves properly also for Integers etc.
* Implement index reversal for large bitspecs. #141.
* Major refacoring of decoding, using Equation and BitwiseParameter. #127, #137.
* IrpProtocols.xml/irp:protocol[@name="NEC1-f16"]: set reject-repeatless to true.
* IrpProtocols.xml: rename protocol Ortek -> Ortek_NEClike.
* Remove attribute c-name in IrpProtocols.xml; add an explaining comment. #140.
* Refactored much of the Decoder stuff.
* Implemented predicates for prefer-overs. #134.
* Adjusted prefer-overs in IrpProtocols.xml to be compatible with the past.
* Improvements to list --check-sorted (previously --checksorted).
* Better user messages for no decodes.
* Improved logging, in particular for rendering.
* Move --override to common options.
* "New protocol" F12_relaxed.
* Moved irp from NamedProtocol to Protocol.
* Move ProtocolNotDecodableException and ProtocolNotRenderableException from NamedProtocol to Protocol.
* Encapsulate (hide) expansion in IrpDatabase. #139.
* Fix implementation of the short circuiting operators && and ||. #138.
* Fixed render --decode in the presence of defaults. #135.
* Extended API of IrpDatabase. #136.
* IrpDatabase now implements Iterable<NamedProtocol>. Cf. #136.
* Comment character of --input and --namedinput now settable using --commentStart. #133.
* Bugfix: render --decode misbehaved on protocol with definitions. #135

===============================================================================
2019-09-15: Version 1.1.1

Open issue: Protocol G.I.4DTV partially broken, see #126.

* --ignoreLeadingGarbage now forces IrSequence decoding.
* Improved logging of prefer-over removal of decodes (loglevel FINE).
* Bugfix: User parameters sometimes did not take effect (after #121). #131.
* IrpProtocols.xml: Prefer NEC2 over NEC, and prefer NEC1 over NEC1-rnc.
* For decoding of IrSignals, remove prefer-overs transitively. #130.
* Fixed definition of F12. #129.
* New render option --decode.
* Handle XHTML in element irp:documentation sensibly. #125.
* Allow XML in irp:parameter element. #124.
* Refusal to render decode-only protocols implemented. #123.
* New decode option --ignoreLeadingGarbage. #122.
* New decode option --override. #121.
* New common option --blacklist. #120.
* Refactoring some decoding stuff. Dramatic speedup on --recursive.

===============================================================================
2019-08-31: Version 1.1.0

* API example code added in directory contributed.
* Code generation code are now in a separate project IrProtocolCodeGeneration #108
* Pronto signals are per default loosely parsed #118, #117
* Bugfixes/improvements in Analyzer/Biphase* #116
* IrSignal.toString produces silly result in the presence of ModulatedIrSequence #115
* Refacturing of main class IrpTransmogrifier #114
* XML basedir problem fixed. (IrScrutinizer #314)
* Logging for debugging of (non-) decodes vastly improved #93
* Removed (non-owned) schemas and entitys files, #101.
* Fixes for non-recognized options in decode and analyze. #110.
* analyze now has --girr option #103
* New protocol classification (list --classify), constant intro/repeat #102
* Modulation/demodulation support: new command demodulate, command render has new
  option --modulate; #100
* Remove support for the old ini file format, including convertconfig. #107
* Remove IctImporter #109

===============================================================================
2019-08-11: Version 1.0.1

* Allow for decode parameter not to override protocol specific values (API only).
 (#112) (necessitated by IrScrutinizer issue #308).
* Robustness fix to BracketedIrSignalParser.

2019-08-06: Initial version 1.0.0.
