diff --git a/crates/buttplug_server/src/device/protocol_impl/mod.rs b/crates/buttplug_server/src/device/protocol_impl/mod.rs index 2999de80..ee2dd753 100644 --- a/crates/buttplug_server/src/device/protocol_impl/mod.rs +++ b/crates/buttplug_server/src/device/protocol_impl/mod.rs @@ -111,6 +111,7 @@ pub mod thehandy_v3; pub mod tryfun; pub mod tryfun_blackhole; pub mod tryfun_meta2; +pub mod tryfun_rock; pub mod vibcrafter; pub mod vibratissimo; pub mod vorze_sa; @@ -531,6 +532,10 @@ pub fn get_default_protocol_map() -> HashMap Result, ButtplugDeviceError> { + let mut sum: u8 = 0xff; + let mut data = vec![ + self.packet_id.fetch_add(1, Ordering::Relaxed), + 0x02, + 0x00, + 0x03, + 0x09, + speed as u8, + ]; + let mut count = 1; + for item in data.iter().skip(1) { + sum -= item; + count += 1; + } + sum += count; + data.push(sum); + Ok(vec![ + HardwareWriteCmd::new(&[feature_id], Endpoint::Tx, data, false).into(), + ]) + } +} diff --git a/crates/buttplug_server_device_config/build-config/buttplug-device-config-v4.json b/crates/buttplug_server_device_config/build-config/buttplug-device-config-v4.json index a853c012..29655ab5 100644 --- a/crates/buttplug_server_device_config/build-config/buttplug-device-config-v4.json +++ b/crates/buttplug_server_device_config/build-config/buttplug-device-config-v4.json @@ -1,7 +1,7 @@ { "version": { "major": 4, - "minor": 179 + "minor": 180 }, "protocols": { "activejoy": { @@ -21655,6 +21655,40 @@ "name": "TryFun Meta 2" } }, + "tryfun-rock": { + "communication": [ + { + "btle": { + "names": [ + "TF-ROCK" + ], + "services": { + "0000ffac-0000-1000-8000-00805f9b34fb": { + "tx": "0000ffb7-0000-1000-8000-00805f9b34fb" + } + } + } + } + ], + "defaults": { + "features": [ + { + "id": "e27b1f9c-8a34-4d12-b76e-9f8c2a5d176b", + "index": 0, + "output": { + "vibrate": { + "value": [ + 0, + 50 + ] + } + } + } + ], + "id": "d2e5f7a9-1b3c-4680-bf5d-7c9a2e4f6d8b", + "name": "TryFun Rock" + } + }, "twerkingbutt": { "communication": [ { diff --git a/crates/buttplug_server_device_config/device-config-v4/protocols/tryfun-rock.yml b/crates/buttplug_server_device_config/device-config-v4/protocols/tryfun-rock.yml new file mode 100644 index 00000000..3a52091b --- /dev/null +++ b/crates/buttplug_server_device_config/device-config-v4/protocols/tryfun-rock.yml @@ -0,0 +1,19 @@ +--- +defaults: + name: TryFun Rock + features: + - id: e27b1f9c-8a34-4d12-b76e-9f8c2a5d176b + output: + vibrate: + value: + - 0 + - 50 + index: 0 + id: d2e5f7a9-1b3c-4680-bf5d-7c9a2e4f6d8b +communication: +- btle: + names: + - TF-ROCK + services: + 0000ffac-0000-1000-8000-00805f9b34fb: + tx: 0000ffb7-0000-1000-8000-00805f9b34fb \ No newline at end of file diff --git a/crates/buttplug_server_device_config/device-config-v4/version.yaml b/crates/buttplug_server_device_config/device-config-v4/version.yaml index 87231a04..3f6c6f5b 100644 --- a/crates/buttplug_server_device_config/device-config-v4/version.yaml +++ b/crates/buttplug_server_device_config/device-config-v4/version.yaml @@ -1,3 +1,3 @@ version: major: 4 - minor: 179 + minor: 180