- Readded StopAllDevicesAsync method
- Moved from using dataflow to channel for websocket connector
- Fixed bug with DeviceRemoved not exposing indexes correctly
- Add Unknown to Sensor Types
- Fix multiple Websocket related bugs (ping, async tasks, etc...)
Welcome Back, Buttplug C#
- All Server Components stripped out, library is now Client Only, expected to be run against either Intiface Central or Intiface engine.
- Updated to the Buttplug v3 spec, including ScalarCmd and SensorReadCmd
- JsonSchema removed
- Reflection requirements removed
- IPC Connector removed (Rust implementation won't be using it either, so no reason to have it here)
- Examples removed (moved to dev guide)
- Removed .Net Framework support (no longer needed)
- Added Standard 2.1 support (Alongside Standard 2.0)
- Websocket Client Connector returns to being its own package.
- Update to Buttplug v5
- New version of btleplug
- New comm managers and other features that need to be ported to FFI
- #87: Update ButtplugClient to use ConcurrentDictionary for device storage
- #78: Fix key duplication exception when > 1 client instances created.
- #79: Fix issue with re-entrancy causing double-disposes
- #77: C# Cleanup/Linting
- #76: Fix issue with log messages causing exceptions on device drop in FFI
- #69: Sorter now throws a ButtplugConnectorException (similar to disconnect errors) for tasks that are still live during shutdown.
- Update to buttplug-rs v3.0.3, fixing issue with RawWriteCmd JSON Schema
- Update to buttplug-rs v3.0.2, using tokio runtimes and with better scoping for runtime
setup/teardown
- Mostly because it's the only way to get Buttplug Unity v1 working.
- Also fixes some bugs with battery reading in Lovense and Magic Motion toys.
- Log object signatures/names changed.
- Update to buttplug-rs 2.1.9, fixes Lovense battery read issues, should reduce bluetooth disconnect panics on windows, cleans up some error log messages that aren't actually errors.
- #53: Nuget package now contains both .net standard and .net framework 4.7 builds
- #37: Added IsScanning status to client
- Update to buttplug-rs 2.1.7, Lovense Desire Egg support, new btleplug version
- #58 / #61: Sorter callback now processes future results on C#/.Net executor, and catches errors on possible races.
- Update to buttplug-rs v2.1.5, fixes issues with connection status races and some devices panicing on disconnect while running initialize()
- Fix issue in FFI where multiple reconnects on the same client can cause multiple events to be sent
- Update to buttplug-rs v2.1.4
- Add hardware support
- The Handy
- Fix issue with Lovense Serial Dongle timing
- Fix LoveAi Dolp compat
- Update to buttplug-rs v2.1.3, fix issues with max speed causing errors/crashes
- Update to buttplug-rs v2.1.2, fix issue where StopDeviceCmd may not work in in-process instances
- Update to buttplug-rs v2.1.1, more error handling/bugfixes, Lovense/Nobra device handling
- Update to buttplug-rs v2.0.5, fixes issues with XInput misaddressing, and DeviceMessageInfo serialization issues.
- Update to buttplug-rs v2.0.3, fixing some message compat issues and restoring access to some stroking and rotating devices.
- Update to buttplug-rs v2.0.2, hardware support for Lovense Ferri, lots of internal cleanup, lovense dongle fixes.
- Update to buttplug-rs v1.0.5, with new hardware support for libo, prettylove, etc
- #47: Sending single commands should now trigger on all motors.
- Fix issue with event emitters missing null conditionals, causing null throws if no handlers exist.
- #45: Fix issue with disconnect/reconnect causing device index collisions.
- Update to buttplug-rs v1.0.4 (via buttplug-rs-ffi v1.0.3), fixes XInput devices not emitting disconnected events.
- Update to buttplug-rs v1.0.3 (via buttplug-rs-ffi v1.0.2, yay dependency trees), fixes btle device scanning issues, added XInput rescanning
- Update to buttplug-rs v1.0.1, fixes device scanning race issue
- Hold a reference to the LogCallback Delegate for the duration of the process lifetime, otherwise we'll crash on callback setup for logging.
- Update to buttplug-rs v1.0.1, with new device config format
- Expose new env logger handler
- Due to a mishandled test version 2 years about in Buttplug C#, v1.0.0 is taken. Therefore we're moving straight to v1.0.1
- Update to buttplug-rs 0.11.3 via ButtplugFFI v1b6. Fixes memory leaks and possible race condition issues.
- Added Connected getter to client
- Added ability to request log level output, and emit logs via event.
- Fixes emitting of ServerDisconnected and ScanningFinished events in client.
- Change Build system to account for .Net Core or .Net Framework building. Currently only works on x64 builds, "Any CPU" will not work.
- Added client ping method
- Added utility method for console logging
- StopDeviceCmd should now work on all devices, not just device with index 0
- Disconnect should now actually disconnect
- Remove all Console log calls
- Suffix all Async methods with "Async"
- Make WebsocketConnector take a URI, not a string
- Move back to a connector-object-like mechanism, using C# method overloading for the Connect call.
- Change main namespace to "Buttplug" to match older libraries.
- Initial nuget release of C# FFI API. Includes most basic functionality to run Buttplug.
- Contains very little code from Buttplug C# v0.x. Consider this a complete restart.
- Move Unity package building from C# repo to its own repo
- Added Unity Package to repo
- New hardware support
- Vorze Piston SA
- New hardware support
- Kiiroo Onyx+
- Youou will now stop on StopDeviceCmd/StopAllDevices
- WeVibe Melt protocol fix
- New hardware support
- Kiiroo Pearl 2
- OhMiBod Esca 2
- Merged Kiiroo support into single protocol, so Titan should work as a vibrator now.
- New hardware support
- Magic Motion Awaken, Equinox, Solstice
- New hardware support
- Lelo F1s
- Aneros Vivi
- Lovehoney Desire
- Libo Sexy Fox, Lucy, Elle2
- WeVibe Vector (for real this time. I think.)
- Nothing actually in this release, just fixing a CI hiccup on 0.5.2
- Websocket server should only send one JSON string per packet
- Update Dependencies (including Plugin.BLE support for MacOS)
- New hardware support
- Motorbunny Classic
- Change device config file loading to use JSON, removing YAML library requirement
- New hardware support
- WeVibe Vector
- Kiiroo Clinoa
- Realov Lydia, Irena
- MagicMotion Vini, Fugu
- Fix UWP Gatt Service finding for some toys
- Add Xamarin (iOS/Android) Bluetooth Manager
- New hardware support
- Svakom Ella
- Libo Carlos, Shark, Lina, Adel, Lily
- Make XInput scanning less spammy
- Fix invalid read issue with Lovense Device Identification
- Fix package versioning with GitInfo (DLLs now show version)
- Fix building from non-git-repo (zip archives)
- Fix CI PR builds failing to sign binaries
- New hardware support
- PrettyLove brand
- MonsterPub (Libo)
- Fixed conflict issues with BouncyCastle between our library and the PEM reader we use. Removed self-signed cert generation from library to do this. If you need a cert, use intiface or generate one with OpenSSL or something. But as this is a thing that has nothing to do with sex toys, it's No Longer My Problem.
- New hardware support
- Kiiroo Onyx 2.1
- RealTouch
- Various fixes for HID devices
- New hardware support
- Mysteryvibe Tenuto
- DeviceManager can now be accessed from a ButtplugServer via a getter
- Don't hold disconnected devices in the main device array (#618)
- Fix nuget display icons
- Removed CLI, now at https://github.com/intiface/intiface-cli-csharp
- Nuget packages now cryptographically signed
- Update UWP Bluetooth Manager to Win10 17763 SDK
- Added support for more LiBo Devices
- Fixed issue with bluetooth devices not reconnecting (#602)
- Fixed redundant calls to AddAllSubtypeManagers (#610)
- Readied CLI for Intiface
- Added PEM cert reading to Websocket Server
- Mostly CI/Release work in preparation for Intiface Release
- Added Hardware Support
- Youou Wand
- Fixed check for lack of BLE characteristics
- Fixed issue with BLE devices not being seen again after connecting once
- Implemented external device configuration files and user device configuration files
- Moved device protocols into base library
- Rebuilt Device Subtype Managers to only handle device communications, not protocol specifics
- Move CI to Azure Pipelines
- Move all project files to MSBuild format
- CI now builds Windows/Mac/Linux on all builds
- Added CLI program, handles all server tasks
- Moved TestDevice/Manager classes into main library
- Switch to using HIDSharp for Serial/HID on all platforms
- Added Hardware Support
- Lovelife Krush
- Cueme Underwear
- Subtype Managers without continuous scanning will now poll for devices
- Corrected MagicMotion protocol speed scaling
- Devices no longer ignore stop commands if stop command is first command sent.
- Erostek ET-312 support disabled due to deadlocks
- Added Hardware Support
- Vorze Bach
- Moved TestServer/DeviceManager/Device to Core library for examples
- Updated dependencies
- Added Hardware Support
- Picobong Toys (All)
- Updates schema to fix LinearCmd issue
- Added Hardware Support
- Lovense Osci
- Magic Motion Magic Wand
- Magic Motion Magic Kegel Twins
- Updated schema to fix NJsonSchema parsing issues
- Fixed issue with not being able to scan for devices more than once per session
- Added Hardware Support
- Kiiroo Titan
- Kiiroo Onyx 1 (Bluetooth)
- WeVibe Classic
- Made code more C#-y
- Methods exposed to developers now throws exceptions on errors, versus returning Buttplug Messages
- All async methods now end in Async, take cancellation tokens
- Complete rewrite of Client API
- More closely resembles buttplug-js client API
- Uses extensible Connector setup for managing communications
- More ergonomic API for developers, should never have to form raw Buttplug Messages
- Server now searches local DLLs for Subtype Managers, versus requiring client to specifically add them
- Nuget Core/Client/Server packages now condensed to Buttplug package
- Buttplug package and Client/Server connectors now .Net Standard/Framework, supporting on Linux/Mac as well as Windows
- Hardware Subtype Manager libraries still .Net Framework, because they're windows specific
- Lovense devices now support LovenseCmd message
- IPC Connectors for Client/Server
- SerialPortManager now capable of using protocols other than ET312
- Remove GUI applications (now at https://github.com/buttplugio/buttplug-windows-suite)
- Kiiroo Emulator completely removed
- Added example/tutorial programs to show developers how Buttplug C# should work
- Lots of Documentation updates
- Added Copyright to (most) files
- Lots more tests
- Converted all tests to using FluentAssertions
- Print Bluetooth radio info on first scan when logging at Debug or higher
- Use Types over strings where possible
- Lovense legacy devices (using BLE Indicate) now detected via same method as newer devices
- Catch exception when serial port with incorrect name shows up
- Lots of Resharper warnings fixes
- Lots of spelling fixes
- Fix issue with Launch not connecting
- Fix issue with WeVibe/Youcups devices not being found
- Added Hardware Support
- Vorze UFO SA
- LiBo Whale
- MysteryVibe Crescendo
- Cyclone X10 (USB)
- Kiiroo Onyx 2
- Added name prefix device searching (Hopefully fixes Lovense update problems)
- Rename WebsocketServer to Server in preparation for IPC
- Add signal multiplier to GVR, for games with light vibration
- Add controller passthru to GVR, to allow turning off gamepad rumble when routing to toys
- Remove ping checking from Server to stop background tab disconnects on webbrowsers
- Move all .Net Standard project to .Net 4.7
- Update dependencies
- Change server GUI from disappearing to disabling on server stop
- Clear last error on server on successful connect or server start
- Fix lockup when closing applications that use the device tab and have a device scan going
- Fix crash when device names is missing in friendly name tables
- Fix crash when trying to open link on systems without a browser selected.
- Fix crash when Crypto key can't be written to disk
- Fix crash when Trancevibrator registry lookup returns unexpected types
- Added Hardware Support
- Lovense Lush/Domi/Edge (new firmware versions)
- WeVibe Sync
- Kiiroo Pearl 2
- Pornhub Blowbot
- Rez Trancevibrator (Win 7 only)
- Game Vibration Router now have "Vibes" tab to show incoming vibration commands
- Added individual vibrator control for WeVibes
- Fixed XInput DLL missing crash
- Fixed BAD DATA error/crash on accepting certs
- Moved all Non .Net Standard projects to .Net 4.7
- Far more test coverage
- Game Vibration Router only updates toys at 20hz max
- Added Hardware Support
- Youcups Warrior II Masturbator
- Erostek ET312B
- Wevibe 4
- OhMiBod/Kiiroo Fuse
- Lovense Edge/Hush/Domi (new firmware versions)
- Individual Vibrator support for Lovense Edge
- Now uses v1 of the Buttplug Protocol spec, adds new generic messages, as well as feature counts for device messages
- Supports message downgrading, meaning older clients can connect to newer servers
- Newer clients cannot connect to older servers, though
- Moved code to .Net Standard 2.0 compatibility
- Moved testing to NUnit
- Game Router process select button disabled until process selected
- Fix SynchronizationContext crash in client
- Add ignore cert errors for client library
- Handle message ID iteration in client library
- Fix ArgumentOutOfBoundsException in updater
- Added auto update and update checking functionality
- Added support for the following hardware
- WeVibe 4 Plus, Ditto, Nova, Pivot, Wish, Verge
- Lovense Domi
- Added more product names for the Lovense Hush (LVS-Z36, LVS_Z001)
- Added Game Vibration Router application
- WebsocketServer now defaults to SSL
- Fixed hang when no XBox controllers and no Bluetooth adapters are connected
- SSL Errors in Websocket Server are now shown in GUI or as a notification, not in modal dialogs
- Fixed ObjectDisposed Exception in Kiiroo App
- Fixed port number changing in Websocket Server
- Fixed crash when copying IP addresses in Websocket Server
- Fixed version number listing in logs
- Vibratissimo devices now required to be named "Vibratissimo"
- First release
- Added support for the following hardware
- XInput (XBox) Gamepads
- Lovense Max, Nora, Lush, Hush, Ambi, Edge (vibration only)
- Fleshlight Launch
- Vorze A10 Cyclone
- Magic Motion toys
- Vibratissimo toys
- Added libraries (available as nuget packages)
- Core
- Client
- Server
- XInputGamepadManager
- UWPBluetoothManager
- Added applications
- Websocket Server
- Kiiroo Platform Emulator
- Project Started