forked from LeenkxTeam/LNXSDK
110 lines
5.2 KiB
Markdown
110 lines
5.2 KiB
Markdown
# Breaking Changes
|
|
|
|
This list contains notable changes that may break compatibility with previous versions (public API only).
|
|
Non-breaking changes (e.g. new features) are _not_ listed here.
|
|
|
|
_The dates below are given as **YYYY.MM.DD**._
|
|
|
|
- **2024.06.25** ([a8a66f6](https://github.com/MoritzBrueckner/aura/commit/a8a66f6d86fc812512dca2e7d5ba07ef0d804cd4)):
|
|
|
|
`aura.dsp.panner.Panner.dopplerFactor` was renamed to `aura.dsp.panner.Panner.dopplerStrength`.
|
|
|
|
- **2024.01.22** ([f7dff6e](https://github.com/MoritzBrueckner/aura/commit/f7dff6ea3840ed7c42c8994a735cc534525d0b63)):
|
|
|
|
Previously, if loading an asset with `aura.Aura.loadAssets()` failed, Aura would sometimes continue loading other assets and in other cases stop loading assets of the same type after the first failure, which was rather unintuitive.
|
|
Now, Aura always continues to load other assets even if an asset could not be loaded.
|
|
|
|
- **2024.01.14** ([`47d4426`](https://github.com/MoritzBrueckner/aura/commit/47d4426ffd93a5efb24eb5dc4c2d2a985e1010f5)):
|
|
|
|
The `aura.format.mhr.MHRReader` class is no longer meant to be instantiated, instead it is used statically now:
|
|
|
|
```haxe
|
|
final mhrReader = new aura.format.mhr.MHRReader(mhrBlobBytes);
|
|
final hrtf = mhrReader.read();
|
|
|
|
// becomes
|
|
|
|
final hrtf = aura.format.mhr.MHRReader.read(mhrBlobBytes);
|
|
```
|
|
|
|
- **2023.04.29** ([`8c1da0b`](https://github.com/MoritzBrueckner/aura/commit/8c1da0b039c55f56400f6270ca109b58c4a48526)):
|
|
|
|
This commit introduced multiple compatibility-breaking changes:
|
|
|
|
1. `aura.Handle` is now `aura.Aura.BaseChannelHandle` (a convenience typedef for `aura.channels.BaseChannel.BaseChannelHandle`).
|
|
|
|
2. `aura.MixChannelHandle` is now `aura.Aura.MixChannelHandle` (a convenience typedef for `aura.channels.MixChannel.MixChannelHandle`).
|
|
|
|
3. `Aura.createHandle()` was replaced with `Aura.createUncompBufferChannel()` as well as `Aura.createCompBufferChannel()`, depending on the first parameter of `createHandle()` that is now obsolete:
|
|
|
|
```haxe
|
|
Aura.createHandle(Play, mySound, loop, mixChannelHandle);
|
|
// becomes
|
|
Aura.createUncompBufferChannel(mySound, loop, mixChannelHandle);
|
|
|
|
// and
|
|
|
|
Aura.createHandle(Stream, mySound, loop, mixChannelHandle);
|
|
// becomes
|
|
Aura.createCompBufferChannel(mySound, loop, mixChannelHandle);
|
|
```
|
|
|
|
This change is more or less reverting [`0576c1f`](https://github.com/MoritzBrueckner/aura/commit/0576c1f657c5ff11d72f1916ae1b3f81ee0e2be7) and is introduced as part of adding more handle types to distinguish different channel features.
|
|
Now, `Aura.createUncompBufferChannel()` returns `Null<UncompBufferChannelHandle>` (`UncompBufferChannelHandle` is a new type introduced by this commit) and `Aura.createCompBufferChannel()` returns the unspecialized `Null<BaseChannelHandle>`.
|
|
This type-safe compile-time handling of handle types prevents the user from having to cast a returned handle to a specific handle type to get access to the complete functionality of a handle, which would have been required if `Aura.createHandle()` was still used to create handles (thus, [abstraction leaking](https://en.wikipedia.org/wiki/Leaky_abstraction) is minimized).
|
|
|
|
- **2022.11.21** ([`db8902c`](https://github.com/MoritzBrueckner/aura/commit/db8902c2816cdb7acbe221c97e3f454175df79c5)):
|
|
|
|
The way channels are connected to mix channels was changed:
|
|
|
|
```haxe
|
|
final myMixChannel: aura.MixChannelHandle = Aura.createMixChannel();
|
|
final myInputChannnel: aura.Handle = Aura.createHandle(...);
|
|
|
|
myMixChannel.removeInputChannel(myInputChannel);
|
|
// becomes
|
|
myInputChannel.setMixChannel(null);
|
|
|
|
// and
|
|
|
|
myMixChannel.addInputChannel(myInputChannel);
|
|
// becomes
|
|
myInputChannel.setMixChannel(myMixChannel);
|
|
```
|
|
|
|
- **2022.09.03** ([`3feb4ee`](https://github.com/MoritzBrueckner/aura/commit/3feb4eec6f5c9e10a7bc305c91c47c2aa1d52e1e)):
|
|
|
|
Stereo panning was moved out of the `aura.Handle` class to be completely inside
|
|
the `auda.dsp.panner.StereoPanner` where it actually belongs. This lays the
|
|
groundwork for upcoming changes to the `StereoPanner` and potentially different
|
|
channel formats in the future.
|
|
|
|
- **2022.07.18** ([`4386c3d`](https://github.com/MoritzBrueckner/aura/commit/4386c3dd6bcfe894016dc0c631c07881cbe7eba6)):
|
|
|
|
`Aura.dsp.Filter.Channels` was replaced with the new `aura.Types.Channels`
|
|
abstract. `Channels.Both` is now `Channels.All` (Aura currently only supports
|
|
stereo channels) and `Channels.toLeft()`/`Channels.toRight()` have been
|
|
replaced with the more generic `channel.matches()` member function.
|
|
|
|
- **2022.03.17** ([`0576c1f`](https://github.com/MoritzBrueckner/aura/commit/0576c1f657c5ff11d72f1916ae1b3f81ee0e2be7)):
|
|
|
|
`Aura.play()` and `Aura.stream()` were replaced with `Aura.createHandle()`.
|
|
The distinction between both play modes is now handled by the first parameter,
|
|
all other following parameters stay the same:
|
|
|
|
```haxe
|
|
Aura.play(mySound, loop, mixChannelHandle);
|
|
// becomes
|
|
Aura.createHandle(Play, mySound, loop, mixChannelHandle);
|
|
|
|
// and
|
|
|
|
Aura.stream(mySound, loop, mixChannelHandle);
|
|
// becomes
|
|
Aura.createHandle(Stream, mySound, loop, mixChannelHandle);
|
|
```
|
|
|
|
In addition to that, sounds are no longer auto-played to make it easier to
|
|
pre-initialize their handles. To play them, call `play()` on the returned
|
|
handle.
|