Buttplug sex toy control library
at dev 1.4 kB view raw
1use buttplug_client::ButtplugClient; 2use buttplug_client_in_process::{ButtplugInProcessClientConnectorBuilder, in_process_client}; 3use buttplug_server::{ButtplugServerBuilder, device::ServerDeviceManagerBuilder}; 4use buttplug_server_device_config::DeviceConfigurationManagerBuilder; 5use buttplug_server_hwmgr_btleplug::BtlePlugCommunicationManagerBuilder; 6 7#[allow(dead_code)] 8async fn main_the_hard_way() -> anyhow::Result<()> { 9 let dcm = DeviceConfigurationManagerBuilder::default() 10 .finish() 11 .unwrap(); 12 13 let mut device_manager_builder = ServerDeviceManagerBuilder::new(dcm); 14 device_manager_builder.comm_manager(BtlePlugCommunicationManagerBuilder::default()); 15 16 // This is how we add Bluetooth manually. (We could also do this with any other communication manager.) 17 18 let server = ButtplugServerBuilder::new(device_manager_builder.finish().unwrap()) 19 .finish() 20 .unwrap(); 21 22 // First off, we'll set up our Embedded Connector. 23 let connector = ButtplugInProcessClientConnectorBuilder::default() 24 .server(server) 25 .finish(); 26 27 let client = ButtplugClient::new("Example Client"); 28 client.connect(connector).await?; 29 30 Ok(()) 31} 32 33#[tokio::main] 34async fn main() -> anyhow::Result<()> { 35 // This is the easy way, it sets up an embedded server with everything set up automatically 36 let _client = in_process_client("Example Client").await; 37 38 Ok(()) 39}