* Add file association for .eop, prompt for install dir
* Handle .eop or .aip file passed as arg.
* VS2022 version bump
* Filter neutron stars and black holes from fast spinning criteria.
* Adjustments for new "high value" check
* Refactor herald cache
* Fix element order and namespaces for voice moods.
* Add explicit .Stop() between audio player calls.
* Use nullsafe member access instead of skipping
* Don't queue up a title that's already queued.
* Improve body ordinal handling for explorer speech titles.
* Escape strings being inserted into xml
* Handle flip-flopping JSON type
* Converter for flip-flopping property type
* Use the converter
* Escape characters *before* we wrap it in xml.
* Give Eahlstan his clear button. :D
* Exclude all stars from fast rotation check.
* Close outstanding popup notifications on exit.
* TO DONE
* [Herald] Suppress duplicate notification titles for spoken notifications
If you have notifications from multiple plugins producing notifications with the same title in quick succession (ie. "Body A 1 e" from both Explorer and BioInsights), the title on successive notifications will not be spoken again to save the breath of our friendly Azure speakers.
* Doc update
* Remove unintended member hiding
* Fix export errors when exporting BioInsights data, cleanup
Discovered a couple issues with exporting BioInsights data resulting from using two different types of objects in the data grid; improved error handling as well.
Also cleaned up some old-style read all code.
* Add read-all on launch setting
* Updated framework xml
* Improve high-value body description text
Co-authored-by: Fred Kuipers <mr.fredk@gmail.com>
* Add speech rate setting
* Add volume slider
* New speech manager skeleton
* User API key from resx
* Implement voice list retrieve via new api
* Rewrite to use ObAPI, remove all dependancies
* Use volume setting
* Clean up using statements
* Volume and timing adjustments
* Lookup rate value
* Use numeric rates for tighter spread
* Manage plugin data folder via core interface
* Add check that nullable settings are not null.
* Get file size before it's deleted.
* Improve old settings migration.
* Ignore cache sizes below 1MB
* Re-index orphaned files in cache, purge legacy wav files.
* Call top level error logging for native voice exception.
* Async title and detail requests to remove pause
* Remove NetCoreAudio use of temp files.
* Remove orphan using.
Manipulating active notifications must be done on the Avalonia UI thread. UpdateNotification and CloseNotification were not properly doing this.
Any plugin attempting to use persistent notifications would have encountered these errors.
NOTE: There is not yet hooks for cleaning up persistent/infinite timeout notifications when the APP is closed.
* WIP: initial commit for observatory herald
* Plugin error handling refactor
* make error window non-modal
* tidy up plugin error handling
* first pass for basic herald functionality
* corrections for linux env
* Use FNV hash directly instead of managing through dictionary/index file
* resolve audio queuing issue, switch to personal NetCoreAudio fork
* merge cleanup
* add enable setting, populate defaults
* framework xml doc update
* Adjust settings, add style selection, replace locale with demonym in dropdown list.
* Test is position is on screen before saving/loading.
* use a default that's actually in the list