Fixed a bug (with a bandaid) where the cover/logo/travel/weather images were constantly resizing, eating resources.
Apparently the 'check-resize' widget callback doesn't get called only when the window resizes, you still have to actually check that it's been resized... what's the point of the callback?
Added the ability to specify whether MusicBrainz queries are strict or not in the Settings. Default is True.
Also added metadata caching of track info. This will update the Album and Genre (if available) data in the display for already downloaded Album Art.
Added means to add a station logo from an image URL.
Entry is activated by right clicking in the Album Art area while a station is playing.
Typing or pasting the URL and clicking Ok downloads it and sets the station logo of the playing station with it.
Added more robust checks to ensure routine wasn't blowing up due to missing or inconsistent data. Routine seems to be flowing correctly now.
Added a quick and tentative replacement for apostrophes in artist or title - might fix that part, but there are more fusion-type issues with 'and' vs '&', 'J.J.' vs 'JJ', etc.
Heavily tweaked the query from releases to 'official' recordings (which includes matching track names). Picks the first one that is above a 90% match for any single, album, or EP, and of course has a valid Front image. Seems to lean towards providing album covers, whereas the release query only gave you singles.
Added ability to use nrsc5 with a remote RTL_SDR via rtl_tcp. IP address and switch settings are also saved to/recalled from the configuration file for later use.
Applying station logos to the appropriate streams as they are received, regardless if the logo is assigned to the stream that is currently playing. This allows you to switch to another stream and see it's logo, if previously downloaded.
Also modified the way covers are displayed so they don't appear prematurely: The `LOT` number of the image file must match that of the `XHDR` in order for it to be displayed.
Fixed a timing bug when re-tuning from a current station by double-clicking a bookmark, causing a whole host of problems. The bookmark click kills the current nrsc5 process then restarts with new freq and stream number. In some instances, the polling loop keeps plugging away and doesn't know the nrsc5 was killed. Adding a short 1 second delay between killing and re-tuning fixes the problem and allows processes the appropriate time to synch up.
If no device is found when Play is clicked, synch pilot will turn red and attempt to play will be halted.
This fixes a critical error where the app will crash if nrsc5 determines no device is available.
Stripped extra artists from the search and save routine to give better search results.
Also moved the automated album art display to be after station cover and logo detection.
Other minor tweaks.
If selected by the user, the application will detect if the ID3 information changed. If so, it will check the new information on Discogs and download the appropriate album art. If no album art is found, it will load the station's logo, if present.
Removed the GdkThread entirely since:
1. It seems unnecessary without the API calls.
2. It's deprecated - all Gtk/Gdk calls should be in the main thread anyway.
Also changed the references using the stock image to use the icon "MISSING_IMAGE" to eliminate those deprecation warnings.
1. Added argument for absolute path (with final slash) to nrsc5 if needed, defaults to no path. If absolute path to nrsc5 is required, can now invoke with:
`python3 nrsc5-dui.py /usr/local/bin/`
2. Added tooltips to ID3 info (title, artist, album, genre) in case it exceeds display limitations.
1. Changed ID3 data in Track Info to labels vice entry boxes.
2. Made all labels uniform with titles right-justified and ending with a colon, data labels left-justified.
3. Added a hand cursor to the stream info in the Station Info tab to signify they may be clicked.
1. Added back the connection to callbacks for the whole window to enable all of the controls. (bizarre)
2. Fixed animation, which wouldn't work without a valid list of maps to display - regex anticipated the path to start with the `map` directory instead of the whole path from root.
Fixed the way the images were displaying. The images may still be latent because of erratic station transmission, but the application will be able to properly display when it does. Also, station logos are now being properly cached in StationLogos.json