Cache folder, organ folder, BMP artwork and a scrolling Engine tab - #26
Merged
Merged
Conversation
A decoded cache is as large as the organs played through it, and a machine often has a small fast disk and a large slow one. The cache folder is now a setting, on the Engine tab beside the cache mode, saved as soon as it is chosen. Empty means the default place beside the other settings, which is what every existing installation keeps. A folder that cannot be created -- a drive that is not plugged in -- falls back to the default rather than stopping the load. CI artifacts are also given a seven-day retention. At a few hundred megabytes a run, the default ninety days had grown to seven gigabytes.
Reported against 0.5.0 (#12): a set still failed to load when its OrganDefinitions folder was a symbolic link. The search for OrganInstallationPackages now also walks up from both the path as given and the path with its links resolved, which covers a definition that lands several levels below the folder holding the packages. One layout cannot be worked out from the path at all: when the packages sit beside the link and the definition is opened through the resolved path, nothing in that path leads anywhere near them. For that the organ's root can now be named outright, saved with its other settings, and there is a matching --organ-root for the command line. A test builds that layout and shows both halves: the path as given finds the packages, the resolved path cannot, and naming the folder loads it.
Reported in #21: on macOS the settings window opens too short for the Engine tab, and the rows at the bottom cannot be reached without resizing it by hand. The tab now scrolls when the window is shorter than its contents. The tab also gains the organ folder control, for a set whose packages the definition's path does not lead to.
Reported in #24: a set whose jambs, keys and drawstops are BMP files drew black, and converting the same files to PNG fixed it. JUCE reads PNG, JPEG and GIF; Hauptwerk predates all three as a console format, and the older sets are painted in BMP. Adds a reader for the shapes those sets use: 1, 4, 8, 16, 24 and 32 bits per pixel, uncompressed or RLE, bottom-up or top-down, honouring the colour masks a BI_BITFIELDS header declares. A 32-bit file whose alpha bytes were never written is treated as opaque rather than drawn as nothing. The console tries JUCE first and falls back to this, so nothing changes for a set that ships PNG.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four changes, for a 0.5.3 release.
Cache folder (your request). The decoded sample cache is as large as the organs played through it, and a machine often has a small fast disk and a large slow one. The folder is now a setting on the Engine tab, saved as soon as it is chosen. Empty means the default place, so existing installations are unchanged; a folder that cannot be created falls back to it rather than stopping the load.
Organ folder (#12, reported still broken). The search for
OrganInstallationPackagesnow also walks up from the path as given and from the path with its symlinks resolved. One layout cannot be inferred from a path at all -- packages beside the link, definition opened through the resolved path -- so the root can also be named outright, saved with the organ, with--organ-rootfor the command line. A test builds that layout and shows both halves.BMP artwork (#24). A reader for 1, 4, 8, 16, 24 and 32-bit BMP, compressed or not, bottom-up or top-down. The console tries JUCE first, so sets shipping PNG are untouched. Tested against generated files in each depth.
Engine tab scrolls (#21). The settings window on macOS opened too short for this tab; it now scrolls.
CI artifacts also get a seven-day retention; the default ninety had grown to seven gigabytes.
Tests: 85/85, including new ones for BMP and the symlink layout. The symlink layouts skip on Windows, which refuses to create links, and run on the macOS and Linux CI.