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.
I've implemented sample decompression because I hate my life or something. Sorry for the code quality, I've never really used rust before. Hopefully refactoring this is easier than writing everything from scratch :P
I've also modified how sample values are converted to f32s - previously the i8s and i16s just got divided by their respective MAX constants, but that meant that they were not always within the -1 to 1 range, -128 divided by 127 is < -1. So now they get divided by the MIN constants, *-1. Oh, and it gets rid of the floating point inaccuracies. I think it makes more sense that way, but feel free to disagree.
I've tested the code by loading a module with compressed samples and rendering it using the example code, hope I didn't miss anything.