- Fixed a bug where if joining a server and someone was already talking, the audio was missed
- Fixed a bug in conjunction with the usage of
Stream.timeout
introduced in0.8.6
- Created
AudioFrame.outgoing
as dedicated constructor for outgoing audio frames
- Depend on
dart >= 2.13
so we can use the newStream.timeout
and improved the audio stream timeout detection introduced in0.8.5
- Made
AudioFrame.sequenceNumber
part of the public API - Introduced
ConnectionOptions.pingTimeout
and throwing aTimeoutException
now if it is violated - Changed and documented error handling better
PermissionDeniedException
are no longer thrown but delivered by a callback, since a mumble server will continue to server a client, even if the client did something that resulted in a permission error
- Introduced
AudioClient.incomingAudioStreamTimeout
to close incomig audio streams if no next frame is received, but no end-frame neither
- Fixed a bug where
close
ing a client multiple times causes an exception
- Fixed a bug where actions on a user (e.g. muting) targeted
self
instead
- Some typos
- Fixed a bug where all changes on a user (e.g. comment) were also detected as channel changes
- Minor internal fixes
- Null safety (but not as great as it could be)
- See the README.md why futher null safety refinements are desired
- Targeting Mumble 1.4
- We are targeting the
Mumble.proto
from mumble-voip/mumble#27dbee8e620877f9a1668b1d58c7269a48c7e229 - Plugin data transmission was not yet added
- ACL support is still missing
- Introduced listening channels for users
- We are targeting the
- API changes
- Most notably the connection process is now more dart like by utilizing a static connect method, just like Socket.connect
- For some types we now differntiate between incoming and outgoing direction because they have different requirements on when a field can be null
- Also, the typo in the
Selfe
type was corrected, so the types new name isSelf
now
- Internal structure changes
- Some big files where split up into multiple files, at the cost of more
@protected
andhide
directives. This structural change allows us to define the following convention: The file that declares a type is responsible for constructing it from a proto message.This makes it easier to check the proto messages fields for allowed values since everything is structured more clearly. - Additional bug fixes
- Implemented already complete guard for AudioFrameSink
- Worked on documentation
- Minor bug fixes
- Overhauled examples