Release Notes for IrpTransmogrifier. The notation #n refers to issues number n at https://github.com/bengtmartensson/IrpTransmogrifier/issues 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 . #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. * IrpDatenbase: 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 . * 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) * 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 . * 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. 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.