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

Version 1.3

Open issues in this release:
  * "Open last file" may invoke new instance of IrScrutinizer, #149.
  * MacOS 10.11.4: Crash in RXTX when closing serial USB device, #64.

User visible changes:
Porting:
- Raspberry Pi (armv7 hard FP) is now supported.

GUI:
- The panes "Sending hw" and "Capturing hw" have been interchanged (also in the manual) #150.
- There is now a confirmation dialog if exiting with non-empty remote tables, #86
- Improvements on metadata inquiry for remote exports. #89
- Files to be imported can now be given as command line arguments. #112
  This allows .girr files to be associated with IrScrutinizer.
- Many files can can be plotted by dropping on "Scrutinize signal"; #127
- "Paste selection" in data window on Scrutinize signal fixed #136
- Editing of timing data in Raw Remote table now implemented #144
- Alt-R(Alt-P) now accelerators for selecting raw(Pronto) output.
- Save current pane to properties. Get "Jump to last panel" fully working.
- Generate-pane: T and "Additional parameters" now saved in properties.
- (Somewhat) better error handling and error messages.

Generate:
- Selecting non-toggling protocol now resets T in Generate pane #135.
- Option "Disregard repat mins" now takes effect without program restart #138

Protocols:
- "new" protocols: NEC1-msb, NEC1-32-msb.
- Fixed protocols:-Nokia32 (now really toggles, #140)
                   NECx1: wrong default for S
                   Sony8: Crazy trailing gap
                   Thompson: fixed handling of F
                   Roku-Official: fix parameterspec (upper bound) for F.
                   PCTV: removed silly 0 durations.
                   Revox: Set frequency to 0.
                   G.I.4DTV: removed C from parameter spec.

Import:
- Many file types can now be imported by "dropped" on the GUI; #111
- Signals can now be imported to the parametric table even if the protocol
  is empty or nonsensical, #120
- mode2-import (Lirc) now has its own subpane under Import #121
- GlobalCache Control Tower data base (http://irdb.globalcache.com/)
  can now be "browsed", however not directly imported. #129
- LircClient now has its own timeout (Options -> Timeouts -> Lirc timeout)
- GirrImport is now capable to import directory hierarchies.
- IRDB import: at the initial load, load the first device too.

Export:
- Fixed problem exporting multiple irplus files #139
- Fixed unwanted case sensitivity on protocol names for Lirc export; #142.
- Replace the Java implementation of LircExporter by an XSLT-implementation in exportformats.xml.

Core:
- The repeat finder of ExchangeIR has been implemented by a own implementation,
  believed to be more reliable and maintainable. #21
- Robustness improvements in parsing strings on "scrutinize signal/scrutinize; #123

Hardware support:
- "Arduino support" has been replaced by "general Girs support"; #24
- Suitable hardware may now be opened both for capturing and sending, #54
- (Linux only) Devices on /dev/lirc now supported for sending and receiving; #122
- Better timeout handling for some hardware.

=================================================================================
Version 1.2
Open Issues:
  * MacOS 10.11.4: Crash in RXTX when closing serial USB device, #64.
  * MacOS 10.11.4: LAF Metal on Mac OSX El Capitan broken, #119.

User visible changes:
General:
- AppImage (see http://appimage.org/) format available for 64-bit
  Linux, #65.
- Misc. minor tweaks in the installation.
- The installation is now completely relocatable (#100). For this, filenames
  must not be stored with absolut filenames if they are children of apphome.
- Does not assume that CWD = applicationHome any more.
- IrpMaster, as executable, noninteractive program, can now be invoked by
  giving --irpmaster as the first argument on the command line to IrScrutinizer.
- Added directory contributed. This should contain "contributed" protocols etc.
- Wrong parameter spec in RECS80 fixed (#114).
- Remove unused DTD support (#94).
- irscrutinizer.sh: (wrapper) improved location of apphome.
- Added some XML files from W3C and Apache, adapted the XML catalog
  in order to make the project more self contained, and to allow
  validation without network access.

GUI:
- Remove text "Analyzer result unavailable" (it looks like an error),
  Ditto for DecodeIR. If analyzer not enabled, clean the field "AnalyzeIR"
  when scrutinizing.
- Sort export formats in the GUI alpabetically (case insensitively).
- Load Tonto early, to dispose scary looking (but irrelevant) loading errors.
- New entries in the Help menu: issues, Feedback, Git repository #115.
- An active capture on "Scrutinize remote" now disallows capture
    on "Scrutinize signal" and "Capturing hw"/Test (#109).
- Store last used import format persistently in properties. #108
- Handle attempts to hide non-existing columns more gracefully.
- Middle mouse in the scrutinze-remote tables now transmits the signal
  under the mouse.
- Barf on no and multiple selections in some table functions.
- Update the GUI menus after reloading export format data base (#83).
- Issue confirmation if Girr-exporting with "everything" deselected.
- Paste in the data window of "Scrutinize signal" now replaces newlines
  by spaces, #75.

Girr:
- Namespaces are used consequenctly in girr files, schema file now
  girr_ns.xsd. (#84). New documentation files.
- xinclude now supported in Girr files. #107.
- CommandsSet import: Fixed nasty bug in getting the protocol of children, #118.
- girr[_ns].xsd: change definition of appParameter (allow string as value).
- Girr instances now accept hexadecimal number prepended by 0x
  for parameter values. Removed attribute display-name, there is already
  a displayName. General cleanup in girr.xsd.
- (Girr) change name uniqueness for command names #85
  Now the command names are required to be unique within the CommandSets,
  not in the remote.
- Implemented multi-toggles for Girr.Command. (#104)
- Parse hexadecimal numbers (etc) as parameters in Girs import (#70).
- Girr: cleanup of command API #105.

Export:
- There is now a schema file for exportformats.xml, exportformats.xsd. (#116).
- Support xinclude in exportformats.xml #106
- New export format: Arduino Raw (#17), supports IRremote, IRLib,
  Infrared4Arduino.
- New export formats Arduino/Infrared4Arduino & Arduino/IRremote, #17, #116.
- New export format RemoteMaster (#113)
- New export format IrPlus https://irplus-remote.github.io. #103
- DynamicRemoteSetExportFormat now contains main routine for command
  line processing of exportformats in XSLT.
- User selectable character set for export #93 (Options -> Export
  options -> Character set...)
- IctExporter is now an xslt-export.
- Fixed two bugs with Lirc export: Names with spaces were
  generated; RC5: misbehavior on F > 63, #90.
- fixed bugs in ict export, erroneous line endings on Windows.
  See http://www.hifi-remote.com/forums/viewtopic.php?t=16645&postdays=0&postorder=asc&&start=21
- LircExport: do not bail out for single silly signals; set explicitly
  frequency for NEC1 and RC5 Lirc export.
- NPE in IrScrutinizer when exporting an exotic Pronto code #77.
- Girr: do not give up completely on non-renderable signals #69

Import:
- Improved error message for parse errors.
- Minor parse robustness improvements for raw signals.
- Import signals: if a particular command is erroneous, just ignore
  *that command* instead of aborting the entrie import.
- Parser for Lirc files rewritten from scratch (#101).
- Some cleanup of Jirc API, doc fixes.
- Mode2Importer: Do not require pulses and spaces to be interleaving.
- User selectable character set for import #93 (Options -> Import
  options -> Character set...)
- IrTransImport: fixed bug in raw import #95.
- IrTransImporter: Ignore keyword "RO" as junk. Cf. http://www.irtrans.de/forum/viewtopic.php?f=24&t=3970
- Now handles IRDB entries with null protocol gracefully, ignoring them.
- Improved parsing of text files with multi column names #78.
  Multicolumn names may now contain small numbers (at most 2 digits),
  if the names come after the parameters.

Hardware support:
- CommandFusion: Detect EOFs from device to prevent endless loop.
- Fixes for changed syntax of the GlobalCache getversion command (#117).
- AmxBeaconListener: Avoid null pointer exception.
- allow the Arduino sending/receiving to use any baud rate.
- LircMode2.java: Handle timeouts (receive() returning null) better.

Version 1.1.3

Open Issue: MacOS 10.10.5: Crash in RXTX when closing serial USB device,
(https://github.com/bengtmartensson/harctoolboxbundle/issues/64).

- Offers to nuke properties if fatal error during startup (#62).
- Reset properties makes backup (#59).
- Link to tutorial under help menu.
- Fixed broken CSV-import using regexp (e.g. "WHITESPACE").
- Removed "smart" incrementing of serial device, broke the USB serial
devices on Windows, and had severed problems on the others.
- Arduino sources no longer distributed with the program (they are
available on https://github.com/bengtmartensson/AGirs).
- New implementation of MacOS App build, without proprietary components.
- Cleaned up version management in poms.
- SendingHardwareManager: handle exceptions in select better.
- LircClient: nuke trailing (and leading) spaces before comparision.
- Helptext and documentation update.
- Made file/tree importer more intuitive: tree cleared when invalid.
  "Import all" and "Import all/raw" disabled when more than 10 remotes in tree.
- Importers now import remotes with some of the commands erroneous
    or unparseable. These are just "ignored", instead of causing an abort.
- Read CML files as WINDOWS-1252 (educated guess).
- Removed external dependency of de.moldaner.wakeonlan
- Robustness fix in AmxBeaconListener.
- Java version required is now 1.7 (source and target).
- Minor fixes in IrPlotter: Wrote help text. Clone plot now in popup
  menu. New public function IrPlotter.createPopupClone().
- Implemented Cml- and CommandFusion-import.
- TreeImporter: when a remote node is expanded, decode its children,
  i.e. its commands.
- Sort the remotes in TreeImporter alphabetically.
- Switch to busy cursor in FileImporterBean.loadFileButtonActionPerformed().
- Removed Option -> Output text format -> UEI Learned.
    Reason: Very little use, high confusion potential.
- Support for the CommandFusion Learner, sending and capturing
- Layout fix: increased width of module & port combos for global cache.
- sometimes erroneous HardwareUnvailableException when using GlobalCache.
- New protocol Roku-Official, contributed by mdavej.
- Robustness improvement (resolve symlinks to device etc).
- Fixed bug in Import/Text/Parametrized: Field separators erroneous.

Version 1.1.2
- On Unix-like systems, can now be installed on the local machen by
  "mvn deploy".
- Now both Fedora rpm version and a Mac OS X app!
- Sources available at Github
  (https://github.com/bengtmartensson/harctoolboxbundle). Reorganized as
  Maven project.
- Now using the babelfish icon. Remove icons with unclear legal status.
- New command line option --nuke-properties.
- Use the (new?) Crystal-Clear icons instead of the (old?) crystal.
- Fixed bug in Lirc/NEC1-exporter: when S was missing, replacement S
  was being reversed twice.
- Now the debug code can be set from GUI: Options -> Debug -> Debug Code...
- Loading of the "local" jni libraries now from subdirs of apphome.
- Removed pdf files and the glossary (at least for now) -- makes
  distribution and packaging easier.
- Removed a few unneeded documentation links under help.
- Lirc exports now get the extension .lircd.conf, since that extension
  is now used by the Lirc project. Also, when importing Lirc files,
  the extension .conf is possible.
- (IrpProtocols.ini) "New" protocols Sharp{1} and Sharp{2}.
- Removed dead command line options
- Adhere to Freedesktop configuration files standards:
  http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
  (on other platforms than Windows).
- New Menuitems Help->Release notes.
- Import and export in Lirc Mode2 format

Version 1.1.1
- New export format: IrToy-bin
- New importer: IrTrans
- Fix bug in Hexcalc when number > 65535.
- Splash screen on startup.
- Multiple decodes from DecodeIR are no longer "censored" (in all places).
- Parametric remote -> Advanced -> "Set misc. parameters" now replaces
all old parameters except D, S, F, and T.
- Fixed unclear semantic of "count" sends of an IrSignal.
- Fixed issue with sending by IrToy.

Version 1.1.0a.
- IrToy: fixed several issues. (Only FW version 222 is supported.)
- the count for transmit generated is now a saved property.
- csv-importer: can now parse hexadecimal numbers starting with 0x.

Version 1.1.0.
- Arduino: handle timeouts from serial port better.
- Smarter scrolling of Scrutinize remote tables.
- Individual silly commands are now forgiven (ignored) in rmdu import.
- If an import to a fails, clear the associated tree -- it is
confusing to leave something from another import as-is.
- Option "Output text format" now defaults to CCF.
- Improved Arduino-support, using "Arduino GirsLite" (see
arduino/GirsLite/README), new ArduinoInterface to new Arduino firmware.
- CSV-import, raw and parametrized: New option "multi column name".
- Support the improved API of IRDB, thus the performace problems are fixed.
- Implemented Set Misc Params in Parametric remote.
- The option "Invoke Analyzer on Imports" renamed to "Invoke
Analyzer". Menu option moved to Options (was Options->Import
options). It now governs the invokation of the analyzer not only on
import but also on scrutinization of individual signals.
- Changing export directory sometimes did not take effect until after
a restart, see
http://www.hifi-remote.com/forums/viewtopic.php?t=14986&start=21
- Nasty bug when capturing GlobalCaches where not initialized fixed,
see http://www.hifi-remote.com/forums/viewtopic.php?t=11769&start=71
- New export text format: short CCF.
- Generate D, S, and F now saved to properties.
- Implemented offerStackTrace, offering stack traces by exception
popups.
- If scrutinizing a signal containing durations of zero length,
refuse, and allow the user to enter a replacement value.
- The option "Invoke Analyzer on Imports" renamed to "Invoke
Analyzer". Menu option moved to Options (was Options->Import
options). It now governs the invokation of the analyzer not only on
import but also on scrutinization of individual signals.

Version 1.0.1
- Now possible to select baud rate for serial sending/capturing
devices (Arduino, IrToy).
- Included Michael Dreher's "Ir_Widget" capture software for Arduio.
- New command line option: -x|--experimental, used to selectively
show/hide "experimental" features. (Cannot be switched from GUI.) For
now, the generic serial IR command sender is only showed when this
option is selected.

Version: 1.0.0:
- Importing CSV parametrized and raw is now possible from clipboard.
- (HarcHardware) Fixed file descriptor leak in the
AmxBeaconListener/GlobalCacheListener.
- If editing (open last export) fails, fall back to "open".
- Remove prefiltering when importing Girr (only GUI elements were
implemented)
- Generating: Bugs, (e.g. misbehavior when no D present in protocol), fixed.
- CCF of type 0100 are now parsed.
- Fixed bug when pressing cancel for createUser.
- now inquires for device data (manufacturer etc) when exporting
commands, can be turned off by Options -> Export options -> Inquire
device data.
- New option: "Ignore T on parametric learns".
- Parameters in the parametrized table can now be removed by entering an empty string
- The sequences in the raw table are now really read-only, previously
they could be manipulated, but the changes did not take
effect. (Editing could be implemented, but is probably not worth it.)
- Text importers now makes command names unique by appending "$" and a
number if necessary.
- Now a class IrpMaster for firing up the commmand line IrpMaster.
- If option Import/Open ZIP files is selected, will import from zip
files directly.


2012-12-01: Version 0.1.1
- appHome and java.library.path now computed dynamically. Thus the
windows start-up wrapper has been eliminated.
- New export formats: spreadsheet, RMFunctions, ICT.
- Cloning of plot implemented (but rather primitive).
- New export formats: ICT, Spreadsheet, and RMFunctions.
- Improved documentation and help texts.
- Added glossary.
- Improved startup of the serial stuff: Now searches for all serial
  ports, but only once (by caching). (On windows, cases somewhat slow
  startup :-\ )
- Misc bug fixes, layout fixes, cleanups.

2012-11-12: Version 0.1.0
Very first version with many rough edges. Not tested very
much. Documentation not written. Popup texts also not written.

Known issues:
      Documentation largely missing.
      Popop help texts not written
      Serial communication generally unreliable. Plan: replace rxtx.
      Generally rough layout.
      Some glitches in the IR plotter, like sometimes silly time scale.
