Skip to content

Commit b2e63bd

Browse files
committed
Merge remote-tracking branch 'upstream/dev' into feature-cleanup
2 parents 16908ed + 298de7d commit b2e63bd

128 files changed

Lines changed: 4998 additions & 4679 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ Buttplug is a framework for interfacing with intimate hardware devices. It uses
3838
**Hardware Managers** (under `buttplug_server_hwmgr_*`):
3939
- `btleplug` - Bluetooth LE (primary, cross-platform)
4040
- `serial`, `hid` - USB serial and HID devices
41-
- `lovense_dongle`, `lovense_connect` - Lovense-specific (deprecated)
4241
- `xinput` - Windows gamepad vibration
4342
- `websocket` - WebSocket device forwarders
4443

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ members = [
99
"crates/buttplug_server_device_config",
1010
"crates/buttplug_server_hwmgr_btleplug",
1111
"crates/buttplug_server_hwmgr_hid",
12-
"crates/buttplug_server_hwmgr_lovense_connect",
13-
"crates/buttplug_server_hwmgr_lovense_dongle",
1412
"crates/buttplug_server_hwmgr_serial",
1513
"crates/buttplug_server_hwmgr_websocket",
1614
"crates/buttplug_server_hwmgr_xinput",

README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,6 @@ This project consists of the following crates:
101101
| [buttplug_server_device_config](crates/buttplug_server_device_config/) | Device configuration file loading and database implementation. |
102102
| [buttplug_server_hwmgr_btleplug](crates/buttplug_server_hwmgr_btleplug/) | Bluetooth LE device communication support |
103103
| [buttplug_server_hwmgr_hid](crates/buttplug_server_hwmgr_hid/) | HID device communication support |
104-
| [buttplug_server_hwmgr_lovense_connect](crates/buttplug_server_hwmgr_lovense_connect/) | Lovense Connect device communication support (soon to be deprecated) |
105-
| [buttplug_server_hwmgr_lovense_dongle](crates/buttplug_server_hwmgr_lovense_dongle/) | Lovense Dongle device communication support (soon to be deprecated) |
106104
| [buttplug_server_hwmgr_serial](crates/buttplug_server_hwmgr_serial/) | Serial device communication support |
107105
| [buttplug_server_hwmgr_websocket](crates/buttplug_server_hwmgr_websocket/) | Websocket device communication suppor, used for devices that may connect in ways not directly supported by other formats |
108106
| [buttplug_server_hwmgr_xinput](crates/buttplug_server_hwmgr_xinput/) | XInput gamepad support (windows only) |

crates/buttplug_client/Cargo.toml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,19 @@ test = true
1818
doctest = true
1919
doc = true
2020

21+
[features]
22+
default = ["tokio-runtime"]
23+
tokio-runtime = ["buttplug_core/tokio-runtime"]
24+
wasm = ["buttplug_core/wasm"]
25+
2126
[dependencies]
22-
buttplug_core = { version = "10.0.1", path = "../buttplug_core" }
27+
buttplug_core = { version = "10.0.1", path = "../buttplug_core", default-features = false }
2328
futures = "0.3.32"
2429
thiserror = "2.0.18"
2530
log = "0.4.29"
2631
getset = "0.1.6"
2732
tokio = { version = "1.50.0", features = ["macros"] }
2833
dashmap = { version = "6.1.0" }
29-
tracing-futures = "0.2.5"
3034
tracing = "0.1.44"
3135
serde = { version = "1.0.228", features = ["derive"] }
3236
serde_json = "1.0.149"

crates/buttplug_client/src/lib.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use buttplug_core::{
3232
StopCmdV4,
3333
StopScanningV0,
3434
},
35-
util::{async_manager, stream::convert_broadcast_receiver_to_stream},
35+
util::stream::convert_broadcast_receiver_to_stream,
3636
};
3737
use client_event_loop::{ButtplugClientEventLoop, ButtplugClientRequest};
3838
use dashmap::DashMap;
@@ -53,7 +53,6 @@ use std::{
5353
use strum_macros::Display;
5454
use thiserror::Error;
5555
use tokio::sync::{Mutex, broadcast, mpsc};
56-
use tracing_futures::Instrument;
5756

5857
/// Result type used for public APIs.
5958
///
@@ -320,12 +319,9 @@ impl ButtplugClient {
320319
);
321320

322321
// Start the event loop before we run the handshake.
323-
async_manager::spawn(
324-
async move {
325-
client_event_loop.run().await;
326-
}
327-
.instrument(tracing::info_span!("Client Loop Span")),
328-
);
322+
buttplug_core::spawn!("ButtplugClient event loop", async move {
323+
client_event_loop.run().await;
324+
});
329325
self.run_handshake().await
330326
}
331327

crates/buttplug_client_in_process/Cargo.toml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,22 @@ doc = true
2020

2121

2222
[features]
23-
default = ["btleplug-manager", "hid-manager", "lovense-dongle-manager", "lovense-connect-service-manager", "serial-manager", "websocket-manager", "xinput-manager"]
23+
default = ["tokio-runtime", "btleplug-manager", "hid-manager", "serial-manager", "websocket-manager", "xinput-manager"]
2424
btleplug-manager=["buttplug_server_hwmgr_btleplug"]
2525
hid-manager=["buttplug_server_hwmgr_hid"]
26-
lovense-dongle-manager=["buttplug_server_hwmgr_lovense_dongle"]
27-
lovense-connect-service-manager=["buttplug_server_hwmgr_lovense_connect"]
2826
serial-manager=["buttplug_server_hwmgr_serial"]
2927
websocket-manager=["buttplug_server_hwmgr_websocket"]
3028
xinput-manager=["buttplug_server_hwmgr_xinput"]
29+
tokio-runtime = ["buttplug_core/tokio-runtime", "buttplug_client/tokio-runtime", "buttplug_server/tokio-runtime"]
30+
wasm = ["buttplug_core/wasm", "buttplug_client/wasm", "buttplug_server/wasm"]
3131

3232
[dependencies]
33-
buttplug_core = { version = "10.0.1", path = "../buttplug_core" }
34-
buttplug_client = { version = "10.0.1", path = "../buttplug_client" }
35-
buttplug_server = { version = "10.0.1", path = "../buttplug_server" }
33+
buttplug_core = { version = "10.0.1", path = "../buttplug_core", default-features = false }
34+
buttplug_client = { version = "10.0.1", path = "../buttplug_client", default-features = false }
35+
buttplug_server = { version = "10.0.1", path = "../buttplug_server", default-features = false }
3636
buttplug_server_device_config = { version = "10.0.2", path = "../buttplug_server_device_config" }
3737
buttplug_server_hwmgr_btleplug = { version = "10.0.1", path = "../buttplug_server_hwmgr_btleplug", optional = true}
3838
buttplug_server_hwmgr_hid = { version = "10.0.0", path = "../buttplug_server_hwmgr_hid", optional = true}
39-
buttplug_server_hwmgr_lovense_connect = { version = "10.0.0", path = "../buttplug_server_hwmgr_lovense_connect", optional = true}
40-
buttplug_server_hwmgr_lovense_dongle = { version = "10.0.0", path = "../buttplug_server_hwmgr_lovense_dongle", optional = true}
4139
buttplug_server_hwmgr_serial = { version = "10.0.0", path = "../buttplug_server_hwmgr_serial", optional = true}
4240
buttplug_server_hwmgr_websocket = { version = "10.0.0", path = "../buttplug_server_hwmgr_websocket", optional = true}
4341
buttplug_server_hwmgr_xinput = { version = "10.0.0", path = "../buttplug_server_hwmgr_xinput", optional = true}
@@ -48,5 +46,4 @@ log = "0.4.29"
4846
getset = "0.1.6"
4947
tokio = { version = "1.50.0", features = ["macros"] }
5048
dashmap = { version = "6.1.0" }
51-
tracing-futures = "0.2.5"
5249
tracing = "0.1.44"

crates/buttplug_client_in_process/src/in_process_client.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,20 +70,6 @@ pub async fn in_process_client(client_name: &str) -> ButtplugClient {
7070
use buttplug_server_hwmgr_serial::SerialPortCommunicationManagerBuilder;
7171
device_manager_builder.comm_manager(SerialPortCommunicationManagerBuilder::default());
7272
}
73-
#[cfg(feature = "lovense-connect-service-manager")]
74-
{
75-
use buttplug_server_hwmgr_lovense_connect::LovenseConnectServiceCommunicationManagerBuilder;
76-
device_manager_builder
77-
.comm_manager(LovenseConnectServiceCommunicationManagerBuilder::default());
78-
}
79-
#[cfg(all(
80-
feature = "lovense-dongle-manager",
81-
any(target_os = "windows", target_os = "macos", target_os = "linux")
82-
))]
83-
{
84-
use buttplug_server_hwmgr_lovense_dongle::LovenseHIDDongleCommunicationManagerBuilder;
85-
device_manager_builder.comm_manager(LovenseHIDDongleCommunicationManagerBuilder::default());
86-
}
8773
#[cfg(all(feature = "xinput-manager", target_os = "windows"))]
8874
{
8975
use buttplug_server_hwmgr_xinput::XInputDeviceCommunicationManagerBuilder;

crates/buttplug_client_in_process/src/in_process_connector.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ use buttplug_core::{
1111
connector::{ButtplugConnector, ButtplugConnectorError, ButtplugConnectorResultFuture},
1212
errors::{ButtplugError, ButtplugMessageError},
1313
message::{ButtplugClientMessageV4, ButtplugServerMessageV4},
14-
util::async_manager,
1514
};
1615
use buttplug_server::{
1716
ButtplugServer,
@@ -29,7 +28,6 @@ use std::sync::{
2928
atomic::{AtomicBool, Ordering},
3029
};
3130
use tokio::sync::mpsc::{Sender, channel};
32-
use tracing_futures::Instrument;
3331

3432
#[derive(Default)]
3533
pub struct ButtplugInProcessClientConnectorBuilder {
@@ -116,7 +114,7 @@ impl ButtplugConnector<ButtplugClientMessageV4, ButtplugServerMessageV4>
116114
self.server_outbound_sender = message_sender;
117115
let server_recv = self.server.server_version_event_stream();
118116
async move {
119-
async_manager::spawn(async move {
117+
buttplug_core::spawn!("InProcessClientConnector event sender loop", async move {
120118
info!("Starting In Process Client Connector Event Sender Loop");
121119
pin_mut!(server_recv);
122120
while let Some(event) = server_recv.next().await {
@@ -130,7 +128,7 @@ impl ButtplugConnector<ButtplugClientMessageV4, ButtplugServerMessageV4>
130128
}
131129
}
132130
info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped.");
133-
}.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop")));
131+
});
134132
connected.store(true, Ordering::Relaxed);
135133
Ok(())
136134
}.boxed()

crates/buttplug_core/Cargo.toml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ doc = true
2020

2121
[features]
2222
default=["tokio-runtime"]
23-
tokio-runtime=["tokio/rt"]
24-
wasm=[]
23+
tokio-runtime=["tokio/rt", "tokio/time"]
24+
wasm=["wasm-bindgen-futures", "wasmtimer"]
2525

2626
# Only build docs on one platform (linux)
2727
[package.metadata.docs.rs]
@@ -46,11 +46,14 @@ log = "0.4.29"
4646
getset = "0.1.6"
4747
jsonschema = { version = "0.45.0", default-features = false }
4848
cfg-if = "1.0.4"
49-
tokio = { version = "1.50.0", features = ["sync", "time", "macros"] }
49+
tokio = { version = "1.50.0", features = ["sync", "macros"] }
5050
async-stream = "0.3.6"
5151
strum_macros = "0.28.0"
5252
strum = "0.28.0"
5353
derive_builder = "0.20.2"
5454
enum_dispatch = "0.3"
55+
tracing = "0.1.44"
56+
wasm-bindgen-futures = { version = "0.4.64", optional = true }
57+
wasmtimer = { version = "0.4.3", optional = true }
5558
smallvec = { version = "1.15.1", features = ["serde", "const_generics"] }
5659
enumflags2 = "0.7.12"

crates/buttplug_core/schema/buttplug-schema.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,7 @@
341341
"enum": [
342342
"FleshlightLaunchFW12Cmd",
343343
"SingleMotorVibrateCmd",
344+
"StopDeviceCmd",
344345
"KiirooCmd",
345346
"LovenseCmd",
346347
"VorzeA10CycloneCmd"

0 commit comments

Comments
 (0)