commits
We were settings ids in conversion methods, not at the top level
filter methods. Oops.
Fixes #657
Require compilation with v4 flag to use v4 messages
Until v4 stablizes, require using a feature flag to turn it on through
the downgrader. If anyone is using ButtplugServer directly, it requires
the message type anyways so there's not much we can do there.
Behold, the ability to run multiple servers on the same device manager.
This is stupid and dangerous but it's needed for the intiface
central devices tab, so here we are.
Means we can return errors in the version expected by the
client since they need to go to the client anyways, and usually
pass through the connector without parsing.
Handle all message downgrades outside of the server, so that we can
leave internal server logic as simple as possible and handle
downgrades only when needed.
This is a *huge* commit that implements proper message versioning
instead of assuming that ButtplugClientMessage/ButtplugServerMessage
will cover our needs for all message versions. This is required due to
message spec v4 changing messages in a way that will require complex
conversion. However, it should make future updates of the message
spec easier to implement, since all message backward compat work is now
implemented in the same submodule, and all library logic is considered
to work on (mostly) the same spec version.
Note that the client spec version for this commit is still v3 as I am
planning on releasing the server with v4 capabilities to test the code
before publishing the client and spec.
Makes it easier to figure out what versions we're expecting where.
Move server device to using device features instead of message attributes
This change passes the ProtocolCommunicationSpecifier down into
ProtocolIdentifier::identify(), which affects all protocols, but
means that the identify() method can access the same data that
was used to decide that this was a suitable protocol implementation
in the first place.
Fixes #547
windows-rs 0.58 has some sort of incompability with IAsyncOperation
The device advertises as LVS-Z14 but DeviceType returns FS...
This is a *huge* commit that implements proper message versioning
instead of assuming that ButtplugClientMessage/ButtplugServerMessage
will cover our needs for all message versions. This is required due to
message spec v4 changing messages in a way that will require complex
conversion. However, it should make future updates of the message
spec easier to implement, since all message backward compat work is now
implemented in the same submodule, and all library logic is considered
to work on (mostly) the same spec version.
Note that the client spec version for this commit is still v3 as I am
planning on releasing the server with v4 capabilities to test the code
before publishing the client and spec.
Makes it easier to figure out what versions we're expecting where.