1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
use crate::EngineOptions;
use buttplug::server::{
device::hardware::communication::{
btleplug::BtlePlugCommunicationManagerBuilder,
lovense_connect_service::LovenseConnectServiceCommunicationManagerBuilder,
websocket_server::websocket_server_comm_manager::WebsocketServerDeviceCommunicationManagerBuilder,
},
ButtplugServerBuilder,
};
pub fn setup_server_device_comm_managers(
args: &EngineOptions,
server_builder: &mut ButtplugServerBuilder,
) {
if args.use_bluetooth_le() {
info!("Including Bluetooth LE (btleplug) Device Comm Manager Support");
server_builder.comm_manager(BtlePlugCommunicationManagerBuilder::default());
}
if args.use_lovense_connect() {
info!("Including Lovense Connect App Support");
server_builder.comm_manager(LovenseConnectServiceCommunicationManagerBuilder::default());
}
#[cfg(not(any(target_os = "android", target_os = "ios")))]
{
use buttplug::server::device::hardware::communication::{
lovense_dongle::{
LovenseHIDDongleCommunicationManagerBuilder, LovenseSerialDongleCommunicationManagerBuilder,
},
serialport::SerialPortCommunicationManagerBuilder,
};
if args.use_lovense_dongle_hid() {
info!("Including Lovense HID Dongle Support");
server_builder.comm_manager(LovenseHIDDongleCommunicationManagerBuilder::default());
}
if args.use_lovense_dongle_serial() {
info!("Including Lovense Serial Dongle Support");
server_builder.comm_manager(LovenseSerialDongleCommunicationManagerBuilder::default());
}
if args.use_serial_port() {
info!("Including Serial Port Support");
server_builder.comm_manager(SerialPortCommunicationManagerBuilder::default());
}
#[cfg(target_os = "windows")]
{
use buttplug::server::device::hardware::communication::xinput::XInputDeviceCommunicationManagerBuilder;
if args.use_xinput() {
info!("Including XInput Gamepad Support");
server_builder.comm_manager(XInputDeviceCommunicationManagerBuilder::default());
}
}
}
if args.use_device_websocket_server() {
info!("Including Websocket Server Device Support");
let mut builder =
WebsocketServerDeviceCommunicationManagerBuilder::default().listen_on_all_interfaces(true);
if let Some(port) = args.device_websocket_server_port() {
builder = builder.server_port(port);
}
server_builder.comm_manager(builder);
}
}