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.
 |