This application installs the Kali Audio speaker control panel for the
SM5 product line.

VERSION HISTORY
===============
0.9.24.0
- RXWI-89: Delay and trim are now disabled in offline mode. Exported EQ files will have the delay and trim
  set to 0 in this case.
- RXWI-89: Scenes are temporarily disabled.
- RXWI-89: EQ presets are temporarily disabled.

0.9.23.0
- Fixed issue where speakers would occasionally disconnect from the network, especially
  when multiple speakers are connected.
- Now properly updates the scene when importing tuning files.
- KEQ files now include delay and trim.
- Fixed bug where the full path would show up in the Mac file save dialog when saving a configuration.
- Cleaned up speaker dragging in custom view.
- Removed LP-UNF GUI for now.
- Fixed app names in the Application menu on macOS.
- The About menu and Settings menu now appear in the Application menu instead of the File menu,
  which is standard for macOS.

0.9.22.0
- Fix for not reporting firmware version 1.3 is incompatible with the GUI.

0.9.21.0
- Fixed loading of configs, switching of scenes, and adding and deleting speakers so that speakers are
  configured properly.
- Delay and trim now set properly on the speaker when loading scenes.
- Delay and trim dialog now stays open when selecting different speakers.
- Added an About box.

0.9.20.0 - August 28, 2024
- Added workaround for AES/EBU when the speaker firmware returns non-standard codes for current config.

0.9.19.0 - August 19, 2024
- Added AES/EBU configuration options to context menus.

0.9.18.0
- Mac app is now signed.

0.9.17.0
- Export EQ now checks to see if the same USB drive was re-inserted, and presents the user
  with options if not.
- If multiple speakers lose connection at once, the GUI only displays a single message with
  a list of those speakers.
- Mac version now packaged as a DMG file.
- Windows installer is now signed.

0.9.16.0 - June 24, 2024
- Fixed bug where scene buttons could be enabled in offline mode.
- RXWI-50: The user can now drag a speaker into an empty section of the configuration to add
  it as a new speaker. (Custom configuration only.)
- Implemented new export wizard.

0.9.15.0 - June 3, 2024
- Fixed broadcast address calculation to resolve issue where speakers would occasionally
  not be discovered on the network.
- RXWI-62: Import EQ is now allowed when not all speakers are assigned in the configuration.
- RXWI-67: Added option to export current EQ settings to a file.
- RXWI-57: Fixed export and import order for different configurations, and LFE is now skipped
  when importing/exporting.
- Import can now be done even if not all speakers are assigned in the configuration.
- Added dialog at the end of the firmware programming to display the elapsed time.

0.9.14.0
- Cleaned up messaging when importing EQ files into speakers.
- Added speaker config name when generating export files to clarify which speaker
  is currently being exported.
- Scenes are now disabled in offline mode.
- User can now select a new scene by selecting the next unused scene button.

0.9.13.0 - May 9, 2024
- Removed DELAY, TRIM, and AESEBU values from export file until firmware is supported.

0.9.12.0
- Several fixes with saving and loading configurations and scenes.
- Custom speaker names now cannot be duplicated. (e.g. You cannot name two speakers "Ls".)
- The "Detach Speaker" option is no longer available in offline mode.
- Rescaled "Load Config" button.
- Fixed an app crash that could occur if a speaker loses connection.

0.9.11.0
- Mac: Fixed crash that could occur in Delay/Trim dialog when using tab to change the focus.
- RXWI-53: Scene buttons now include the scene name.
- Fixed spectrum size so that up to 24kHz is displayed on-screen.
- RWXI-52: Added tips to the delay/trim dialog to tell the user the valid range.

0.9.10.0 - April 25, 2024
- Scene switching has been optimized. It should take approximately 5 seconds no matter
  how many speakers are on the network.
- Speakers can be removed from the discovery list by right-clicking on it and selecting 
  "Disconnect Speaker". It can be re-added by doing Discovery again.
- Fixed several instances where the app could crash if it loses its connection with the
  speaker.

0.9.9.0 - April 21, 2024
- RXWI-46: Locate button now properly enables in online mode.
- RXWI-53: Scenes now save properly.
- RXWI-47: Mac dark mode now displays properly.
- Export EQ now works properly on Mac and does not report an error writing the file.
- Import EQ is now implemented with a minimal UI. (This should probably be reworked, pending
  discussions with Nate.)


0.9.8.0 - April 14, 2024
- RWXI-35: User is now asked to confirm clearing of EQs, with the option to not show the message again.
  The Options dialog now has a "Set Defaults" button that restores that option.
- A speaker is now ignored if it reports its availability twice.
- RWXI-38: A checkmark now appears next to a speaker if it is currently assigned.
- RWXI-33: The "Save" button on the gui now functions more like "Save As", with the current config file
  specified as the default.
- RWXI-44: Solo and Mute are now disabled in offline mode.

0.9.7.0 - April 8, 2024
- RWXI-30: EQ glyphs now appear properly when setting EQ from the parameter windows.
- RXWI-28: The user can now rename the EQ presets by clicking on the drop-down preset list.
- RXWI-31: Fixed issue where EQ presets would not be properly saved in the configuration file.
- DELAY, TRIM, and AESOREBU are now stored in the export file.
- Delay and trim are now stored in the configuration file.
- Enhanced message log on crash to provide more information.

0.9.6.0 - April 4, 2024
- Enhanced message logs for network diagnostics.

0.9.5.0 - March 24, 2024
- Tab and Enter keys now work properly in the EQ parameter windows on Mac.
- EQ controls are disabled when selecting an EQ type that doesn't support it.
  (i.e. First-order HPF and LPF disable gain and Q. Second order LPF and HPF disable gain.)
- Added additional detection of LP-UNF COM port in Windows to distinguish it from other COM ports.
- Locate, trim, and delay buttons are now disabled in Offline mode.
- Popup menu for EQ type is now positioned properly if the user selects it with the keyboard
  rather than the mouse.

0.9.4.0 - March 17, 2024
- Added LP-UNF firmware download screen.
- Speaker and EQ names now limited to 12 characters.

0.9.3.0 - March 5, 2024
- Refactored how IP address was determined, including giving the user an option to select the IP
  address in the Options dialog.
- Fixed some minor UI issues where speakers could get cut off when selected.

0.9.2.0 - February 28, 2024
- Implemented new speaker configurations for 9.1.x, 7.1.x, etc.
- Updated icons for New and Load options.
- Added menu option to create USB firmware disk.

0.9.1.0 - November 16, 2023
- SMF-81: Fixed crash when a speaker disconnects and the user attempts to adjust the standby time.
- SMF-84: Double-clicking on the scene name or config name now allows the user to edit the name.
- SMF-85: A new (empty) configuration is now created on startup.
- SMF-86: Scene number now flashes if the scene has changed from when it was last saved.
- SMF-88: Resizing now works to show the window on displays with lower resolutions.
- SMF-89: On startup, the configuration that was loaded the last time the app was run is now
          reloaded.

0.9.0.0 - October 30, 2023
- Fixed flicking when dragging EQ points.
- Added a lot of handling for when speakers disconnect unexpectedly.
- Added some cached variables for faster performance over the network.
- Fixed cases where buttons would not be enabled properly when selecting a new speaker.

0.8.12.0 - October 10, 2023
- Fixed layout issue with the standby time display.
- Now verifies that speakers have firmware version 1.2.8 or later.
- Internal code cleanup.

0.8.11.0 - September 26, 2023
- Note: REQUIRES version 1.2.7 or later of the speaker firmware.
- SMF-79: Fixed issue where speakers would not be disconnected when loading an
          offline preset.
- RXWI-17: The user can now enter the standby time directly on the standby dialog,
           instead of moving the slider.
- RXWI-14: Clicking on the EQ screen now creates a new EQ point.
- RXWI-16: Custom configuration has been added.
- RXWI-18: Scenes should now save in a more intuitive manner.
- Cleanup of networking code to be more efficient.
- Various fixes when saving configuration files.
- Added "Speaker Information" dialog when right-clicking on the speaker list. This displays
  the firmware version, name of the speaker, and the speaker's unique ID.
- Fixed some layout issues where controls were not lined up properly.

0.8.10.0 - August 30, 2023
- Modified message handling to support receiving multiple messages in a single read.

0.8.9.0 - August 29, 2023
- Added significantly more logging information.

0.8.8.0 - August 27, 2023
- Added more diagnostic information to track down network hangs.

0.8.7.0 - August 24, 2023
- Getting of the EQ preset name is now temporarily disabled (it just returned "Preset #")
  so that other testing can hopefully progress.

0.8.6.0 - August 17, 2023
- Now properly handles NACK messages from speaker (previous version would hang).
- Added messsage logging output on shutdown if a NACK has been received.

0.8.5.0 - August 12, 2023
- Added message log dump on a crash, in particular if there was a timeout while
  parsing messages.

0.8.4.0 - August 4, 2023
- On a crash, the Windows version now creates a crash dump file in c:\kali_dump.
  Any crash report should include this file as an attachment.
  The Mac version already creates this report and displays it to the user on a crash.
- Fixed a bug in the previous versions that would not uninstall previous versions
  of the GUI when installing a new version.
- Added version information to the title bar of the application.

0.8.3.0 - July 29, 2023
- Strengthened local IP detection in the GUI.
- Added option to manually specify the IP address of the machine running the GUI.
- Mac version now supports OS versions back to 10.13.
- Fixed condition where a speaker could fail to connect to the GUI after receiving the
  "controller available" message.
- Dimming a speaker now properly displays that information on the GUI.