Factor out sample loading/management from Thunder/Specimen #72
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.
The primary motivator here is to more easily support building WaveSabre (especially the VST plugins) on platforms other than Windows by isolating the Windows-specific stuff as much as possible. Note that this patch doesn't actually isolate the Windows-specific sample loading bits entirely, as the wave format struct leaks out - but I think the best way to handle this is to do this step first, and deal with the rest once we have actual code for other platform(s) to compare to, and reconcile things then.
A secondary motivator is that this code was basically duplicated, and arguably should have been shared initially. However, we chose not to do that as Thunder is technically deprecated, so we thought we'd just leave it as-is and move on. However, there seems to be some interest in getting older songs running on other platforms and not just new stuff, so this bit of maintainence makes sense.
Size-wise, this adds 20 bytes or so compressed, which is low enough to ignore in most cases.
This supercedes #52.