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