···2121};
2222use buttplug_server_device_config::{
2323 Endpoint,
2424- DeviceDefinition,
2424+ ServerDeviceDefinition,
2525 ProtocolCommunicationSpecifier,
2626 UserDeviceIdentifier,
2727};
···4848 async fn initialize(
4949 &mut self,
5050 hardware: Arc<Hardware>,
5151- _: &DeviceDefinition,
5151+ _: &ServerDeviceDefinition,
5252 ) -> Result<Arc<dyn ProtocolHandler>, ButtplugDeviceError> {
5353 warn!(
5454 "FredorchRotary device doesn't provide state feedback. If the device beeps twice, it is powered off and must be reconnected before it can be controlled!"
···2020use buttplug_core::errors::ButtplugDeviceError;
2121use buttplug_server_device_config::Endpoint;
2222use buttplug_server_device_config::{
2323- DeviceDefinition,
2323+ ServerDeviceDefinition,
2424 ProtocolCommunicationSpecifier,
2525 UserDeviceIdentifier,
2626};
···4747 async fn initialize(
4848 &mut self,
4949 _hardware: Arc<Hardware>,
5050- _: &DeviceDefinition,
5050+ _: &ServerDeviceDefinition,
5151 ) -> Result<Arc<dyn ProtocolHandler>, ButtplugDeviceError> {
5252 // Ok, somehow this whole function has been basically a no-op. The read/write lines never had an
5353 // await on them, so they were never run. But only now, in Rust 1.75/Buttplug 7.1.15, have we
···277277 let _enter = span.enter();
278278279279 // Get the index from the device
280280- let device_index = device.definition().user_config().index();
280280+ let device_index = device.definition().index();
281281 // Since we can now reuse device indexes, this means we might possibly
282282 // stomp on devices already in the map if they don't register a
283283 // disconnect before we try to insert the new device. If we have a
···12121313#[derive(Default, Clone)]
1414pub struct DeviceConfigurationManagerBuilder {
1515- communication_specifiers: HashMap<String, Vec<ProtocolCommunicationSpecifier>>,
1515+ base_communication_specifiers: HashMap<String, Vec<ProtocolCommunicationSpecifier>>,
1616 user_communication_specifiers: DashMap<String, Vec<ProtocolCommunicationSpecifier>>,
1717 base_device_definitions: HashMap<BaseDeviceIdentifier, ServerDeviceDefinition>,
1818 user_device_definitions: DashMap<UserDeviceIdentifier, ServerDeviceDefinition>,
···2525 specifier: &[ProtocolCommunicationSpecifier],
2626 ) -> &mut Self {
2727 self
2828- .communication_specifiers
2828+ .base_communication_specifiers
2929 .entry(protocol_name.to_owned())
3030 .or_default()
3131 .extend(specifier.iter().cloned());
···9999 }
100100101101 Ok(DeviceConfigurationManager {
102102- base_communication_specifiers: self.communication_specifiers.clone(),
102102+ base_communication_specifiers: self.base_communication_specifiers.clone(),
103103 user_communication_specifiers: self.user_communication_specifiers.clone(),
104104 base_device_definitions: attribute_tree_map,
105105 user_device_definitions: user_attribute_tree_map,
···124124pub struct DeviceConfigurationManager {
125125 /// Communication specifiers from the base device config, mapped from protocol name to vector of
126126 /// specifiers. Should not change/update during a session.
127127+ #[getset(get = "pub")]
127128 base_communication_specifiers: HashMap<String, Vec<ProtocolCommunicationSpecifier>>,
128129 /// Device definitions from the base device config. Should not change/update during a session.
129130 base_device_definitions: HashMap<BaseDeviceIdentifier, ServerDeviceDefinition>,
130131 /// Communication specifiers provided by the user, mapped from protocol name to vector of
131132 /// specifiers. Loaded at session start, may change over life of session.
133133+ #[getset(get = "pub")]
132134 user_communication_specifiers: DashMap<String, Vec<ProtocolCommunicationSpecifier>>,
133135 /// Device definitions from the user device config. Loaded at session start, may change over life
134136 /// of session.