Buttplug sex toy control library

chore: Fix protocol and config issues after PR #784 rebase

Meant to compile as I went along, oops.

+153 -198
+1 -1
crates/buttplug_server/src/device/protocol_impl/galaku.rs
··· 107 107 async fn initialize( 108 108 &mut self, 109 109 hardware: Arc<Hardware>, 110 - _: &ServerDeviceDefinition, 110 + def: &ServerDeviceDefinition, 111 111 ) -> Result<Arc<dyn ProtocolHandler>, ButtplugDeviceError> { 112 112 let mut protocol = Galaku::default(); 113 113 protocol.is_caiping_pump_device = false;
+18 -23
crates/buttplug_server/src/device/protocol_impl/hismith_mini.rs
··· 184 184 feature_id: Uuid, 185 185 speed: i32, 186 186 ) -> Result<Vec<HardwareCommand>, ButtplugDeviceError> { 187 - Ok(vec![ 188 - HardwareWriteCmd::new( 189 - &[feature_id], 190 - Endpoint::Tx, 191 - vec![0xCC, 0x03, speed as u8, speed as u8 + 3], 192 - false, 193 - ).into(), 194 - HardwareWriteCmd::new( 195 - &vec![HISMITH_MINI_ROTATE_DIRECTIOM_UUID], 196 - Endpoint::Tx, 197 - vec![0xCC, 0x01, if clockwise { 0xc0 } else {0xc1}, if clockwise { 0xc1 } else {0xc2}], 198 - false, 199 - ).into(), 200 - ]) 201 - } 202 - 203 - fn handle_output_spray_cmd(&self, _feature_index: u32, feature_id: Uuid, _level: u32) -> Result<Vec<HardwareCommand>, ButtplugDeviceError> { 204 187 Ok(vec![ 205 188 HardwareWriteCmd::new( 206 189 &[feature_id], 207 190 Endpoint::Tx, 208 - vec![ 209 - 0xCC, 210 - 0x03, 211 - speed.unsigned_abs() as u8, 212 - speed.unsigned_abs() as u8 + 3, 213 - ], 191 + vec![0xCC, 0x03, speed.unsigned_abs() as u8, speed.unsigned_abs() as u8 + 3], 214 192 false, 215 193 ) 216 194 .into(), ··· 223 201 if speed >= 0 { 0xc0 } else { 0xc1 }, 224 202 if speed >= 0 { 0xc1 } else { 0xc2 }, 225 203 ], 204 + false, 205 + ) 206 + .into(), 207 + ]) 208 + } 209 + 210 + fn handle_output_spray_cmd( 211 + &self, 212 + _feature_index: u32, 213 + feature_id: Uuid, 214 + _level: u32, 215 + ) -> Result<Vec<HardwareCommand>, ButtplugDeviceError> { 216 + Ok(vec![ 217 + HardwareWriteCmd::new( 218 + &[feature_id], 219 + Endpoint::Tx, 220 + vec![0xcc, 0x0b, 0x01, 0x0c], 226 221 false, 227 222 ) 228 223 .into(),
+2 -2
crates/buttplug_server/src/device/protocol_impl/kiiroo_v3.rs
··· 18 18 use async_trait::async_trait; 19 19 use buttplug_core::errors::ButtplugDeviceError; 20 20 use buttplug_server_device_config::{ 21 - DeviceDefinition, 21 + ServerDeviceDefinition, 22 22 ProtocolCommunicationSpecifier, 23 23 UserDeviceIdentifier, 24 24 }; ··· 36 36 async fn initialize( 37 37 &mut self, 38 38 _: Arc<Hardware>, 39 - _: &DeviceDefinition, 39 + _: &ServerDeviceDefinition, 40 40 ) -> Result<Arc<dyn ProtocolHandler>, ButtplugDeviceError> { 41 41 Ok(Arc::new(KiirooV21::default())) 42 42 }
+53 -71
crates/buttplug_server_device_config/build-config/buttplug-device-config-v4.json
··· 1 1 { 2 2 "version": { 3 3 "major": 4, 4 - "minor": 94 4 + "minor": 95 5 5 }, 6 6 "protocols": { 7 7 "activejoy": { ··· 2297 2297 { 2298 2298 "features": [ 2299 2299 { 2300 - "description": "vibrate", 2300 + "description": "Oscillate", 2301 2301 "id": "dc4348f2-7788-4b63-96f8-80ed74e4f9c2", 2302 2302 "output": { 2303 - "vibrate": { 2303 + "oscillate": { 2304 2304 "value": [ 2305 2305 0, 2306 2306 100 ··· 4400 4400 { 4401 4401 "features": [ 4402 4402 { 4403 - "feature-type": "Spray", 4404 4403 "id": "c24a6b8c-6665-4cf6-95f8-51140f9788b4", 4405 4404 "output": { 4406 - "Spray": { 4407 - "step-range": [ 4405 + "spray": { 4406 + "value": [ 4408 4407 0, 4409 4408 1 4410 4409 ] ··· 7784 7783 { 7785 7784 "features": [ 7786 7785 { 7787 - "feature-type": "Oscillate", 7788 7786 "id": "12f36e6d-e9ce-439c-b6f5-3f80a4f4b47d", 7789 7787 "output": { 7790 - "Oscillate": { 7791 - "step-range": [ 7788 + "oscillate": { 7789 + "value": [ 7792 7790 0, 7793 7791 255 7794 7792 ] ··· 7796 7794 } 7797 7795 }, 7798 7796 { 7799 - "feature-type": "Vibrate", 7800 7797 "id": "94025679-badf-49bb-a247-1dab022d9204", 7801 7798 "output": { 7802 - "Vibrate": { 7803 - "step-range": [ 7799 + "vibrate": { 7800 + "value": [ 7804 7801 0, 7805 7802 255 7806 7803 ] ··· 7960 7957 "defaults": { 7961 7958 "features": [ 7962 7959 { 7963 - "feature-type": "Vibrate", 7964 7960 "id": "8829c78b-420c-42e0-bc3e-280f84c89362", 7965 7961 "output": { 7966 - "Vibrate": { 7967 - "step-range": [ 7962 + "vibrate": { 7963 + "value": [ 7968 7964 0, 7969 7965 100 7970 7966 ] ··· 7972 7968 } 7973 7969 }, 7974 7970 { 7975 - "feature-type": "Vibrate", 7976 7971 "id": "019e23e5-bcba-41c8-913d-03a7da63feee", 7977 7972 "output": { 7978 - "Vibrate": { 7979 - "step-range": [ 7973 + "vibrate": { 7974 + "value": [ 7980 7975 0, 7981 7976 100 7982 7977 ] ··· 7985 7980 }, 7986 7981 { 7987 7982 "description": "Battery Level", 7988 - "feature-type": "Battery", 7989 7983 "id": "eba92a5d-4284-4170-b5e9-3e0700e4529e", 7990 7984 "input": { 7991 - "Battery": { 7992 - "input-commands": [ 7985 + "battery": { 7986 + "input_commands": [ 7993 7987 "Read" 7994 7988 ], 7995 - "value-range": [ 7989 + "value_range": [ 7996 7990 [ 7997 7991 0, 7998 7992 100 ··· 8382 8376 } 8383 8377 }, 8384 8378 { 8385 - "feature-type": "Vibrate", 8386 8379 "id": "1e1fb78c-a3bd-4782-8a96-684bbbaa4670", 8387 8380 "output": { 8388 - "Vibrate": { 8389 - "step-range": [ 8381 + "vibrate": { 8382 + "value": [ 8390 8383 0, 8391 8384 100 8392 8385 ] ··· 8994 8987 { 8995 8988 "features": [ 8996 8989 { 8997 - "feature-type": "PositionWithDuration", 8998 8990 "id": "f4ee99e7-1a14-4315-9870-3990bca7ff94", 8999 8991 "output": { 9000 - "PositionWithDuration": { 9001 - "step-range": [ 8992 + "position_with_duration": { 8993 + "duration": [ 8994 + 0, 8995 + 100000 8996 + ], 8997 + "position": [ 9002 8998 0, 9003 8999 99 9004 9000 ] ··· 9007 9003 }, 9008 9004 { 9009 9005 "description": "Battery Level", 9010 - "feature-type": "Battery", 9011 9006 "id": "90319514-ff68-40ae-805d-54ce392a60bd", 9012 9007 "input": { 9013 - "Battery": { 9014 - "input-commands": [ 9008 + "battery": { 9009 + "input_commands": [ 9015 9010 "Read" 9016 9011 ], 9017 - "value-range": [ 9012 + "value_range": [ 9018 9013 [ 9019 9014 0, 9020 9015 100 ··· 11864 11859 { 11865 11860 "features": [ 11866 11861 { 11867 - "feature-type": "Vibrate", 11868 11862 "id": "8deea69f-ea53-46bb-80ae-51dd5d49bba9", 11869 11863 "output": { 11870 - "Vibrate": { 11871 - "step-range": [ 11864 + "vibrate": { 11865 + "value": [ 11872 11866 0, 11873 11867 255 11874 11868 ] ··· 11876 11870 } 11877 11871 }, 11878 11872 { 11879 - "feature-type": "Oscillate", 11880 11873 "id": "5ae8bb6f-6280-4a8d-9e08-a3d5e5fb89a8", 11881 11874 "output": { 11882 - "Oscillate": { 11883 - "step-range": [ 11875 + "sscillate": { 11876 + "value": [ 11884 11877 0, 11885 11878 255 11886 11879 ] ··· 11897 11890 { 11898 11891 "features": [ 11899 11892 { 11900 - "feature-type": "Vibrate", 11901 11893 "id": "4dd378c8-a91b-400e-846b-f16e81ac5690", 11902 11894 "output": { 11903 - "Vibrate": { 11904 - "step-range": [ 11895 + "vibrate": { 11896 + "value": [ 11905 11897 0, 11906 11898 255 11907 11899 ] ··· 11909 11901 } 11910 11902 }, 11911 11903 { 11912 - "feature-type": "Vibrate", 11913 11904 "id": "c04a2518-81a2-49cb-8a0a-1a5b9c163737", 11914 11905 "output": { 11915 - "Vibrate": { 11916 - "step-range": [ 11906 + "vibrate": { 11907 + "value": [ 11917 11908 0, 11918 11909 255 11919 11910 ] ··· 11930 11921 { 11931 11922 "features": [ 11932 11923 { 11933 - "feature-type": "Vibrate", 11934 11924 "id": "e04ad6f5-278e-4acc-b6fa-711954c2e1ab", 11935 11925 "output": { 11936 - "Vibrate": { 11937 - "step-range": [ 11926 + "vibrate": { 11927 + "value": [ 11938 11928 0, 11939 11929 255 11940 11930 ] ··· 11942 11932 } 11943 11933 }, 11944 11934 { 11945 - "feature-type": "Oscillate", 11946 11935 "id": "8a4f2884-887f-46e3-9a36-c0b91b1b1363", 11947 11936 "output": { 11948 - "Oscillate": { 11949 - "step-range": [ 11937 + "oscillate": { 11938 + "value": [ 11950 11939 0, 11951 11940 255 11952 11941 ] ··· 11954 11943 } 11955 11944 }, 11956 11945 { 11957 - "feature-type": "Constrict", 11958 11946 "id": "389aa8b8-2550-462c-bd4f-1158c0981606", 11959 11947 "output": { 11960 - "Constrict": { 11961 - "step-range": [ 11948 + "constrict": { 11949 + "value": [ 11962 11950 0, 11963 11951 54 11964 11952 ] ··· 16645 16633 { 16646 16634 "features": [ 16647 16635 { 16648 - "feature-type": "Constrict", 16649 16636 "id": "4464ae6b-20bc-4c99-9e63-bfda99b7c8cc", 16650 16637 "output": { 16651 - "Constrict": { 16652 - "step-range": [ 16638 + "constrict": { 16639 + "value": [ 16653 16640 0, 16654 16641 100 16655 16642 ] ··· 17033 17020 "features": [ 17034 17021 { 17035 17022 "description": "Wearer Vibrator", 17036 - "feature-type": "Vibrate", 17037 17023 "id": "968f7306-6997-4b76-a40f-acbb431d9582", 17038 17024 "output": { 17039 - "Oscillate": { 17040 - "step-range": [ 17025 + "oscillate": { 17026 + "value": [ 17041 17027 0, 17042 17028 20 17043 17029 ] ··· 17046 17032 }, 17047 17033 { 17048 17034 "description": "Receiver Vibrator", 17049 - "feature-type": "Vibrate", 17050 17035 "id": "018009d0-b5bf-4f97-a13d-909d0e74fabc", 17051 17036 "output": { 17052 - "Vibrate": { 17053 - "step-range": [ 17037 + "vibrate": { 17038 + "value": [ 17054 17039 0, 17055 17040 20 17056 17041 ] ··· 17059 17044 }, 17060 17045 { 17061 17046 "description": "Wearer Clitoral Vibrators", 17062 - "feature-type": "Vibrate", 17063 17047 "id": "018009d0-b5bf-4f97-a13d-909d0e74fabc", 17064 17048 "output": { 17065 - "Vibrate": { 17066 - "step-range": [ 17049 + "vibrate": { 17050 + "value": [ 17067 17051 0, 17068 17052 20 17069 17053 ] ··· 17232 17216 { 17233 17217 "features": [ 17234 17218 { 17235 - "feature-type": "Oscillate", 17236 17219 "id": "15cf412a-594b-4238-bbe0-7e9693233430", 17237 17220 "output": { 17238 - "Vibrate": { 17239 - "step-range": [ 17221 + "vibrate": { 17222 + "value": [ 17240 17223 0, 17241 17224 99 17242 17225 ] ··· 17253 17236 { 17254 17237 "features": [ 17255 17238 { 17256 - "feature-type": "Oscillate", 17257 17239 "id": "cc1f8c5c-40ff-4d44-91ca-4520042cf723", 17258 17240 "output": { 17259 - "Vibrate": { 17260 - "step-range": [ 17241 + "vibrate": { 17242 + "value": [ 17261 17243 0, 17262 17244 99 17263 17245 ]
+2 -2
crates/buttplug_server_device_config/device-config-v4/protocols/fredorch.yml
··· 11 11 - 0 12 12 - 100000 13 13 # Disable Oscillate for now 14 - # Oscillate: 15 - # step-range: 14 + # oscillate: 15 + # value: 16 16 # - 0 17 17 # - 20 18 18 id: cbd6a5b5-50c0-4fb5-93e3-408fd027ff4d
+3 -4
crates/buttplug_server_device_config/device-config-v4/protocols/hismith-mini.yml
··· 165 165 - '4002' 166 166 name: Sinloli Piupiu 167 167 features: 168 - - feature-type: Spray 169 - id: c24a6b8c-6665-4cf6-95f8-51140f9788b4 168 + - id: c24a6b8c-6665-4cf6-95f8-51140f9788b4 170 169 output: 171 - Spray: 172 - step-range: 170 + spray: 171 + value: 173 172 - 0 174 173 - 1 175 174 id: ae9c755d-a11f-43c3-9cce-1c3797788434
+6 -8
crates/buttplug_server_device_config/device-config-v4/protocols/joyhub-v5.yml
··· 41 41 - J-Perseus 42 42 name: JoyHub Perseus 43 43 features: 44 - - feature-type: Oscillate 45 - id: 12f36e6d-e9ce-439c-b6f5-3f80a4f4b47d 44 + - id: 12f36e6d-e9ce-439c-b6f5-3f80a4f4b47d 46 45 output: 47 - Oscillate: 48 - step-range: 46 + oscillate: 47 + value: 49 48 - 0 50 49 - 255 51 - - feature-type: Vibrate 52 - id: 94025679-badf-49bb-a247-1dab022d9204 50 + - id: 94025679-badf-49bb-a247-1dab022d9204 53 51 output: 54 - Vibrate: 55 - step-range: 52 + vibrate: 53 + value: 56 54 - 0 57 55 - 255 58 56 id: c31f74b8-c859-47ab-8b1c-66745cb11355
+10 -13
crates/buttplug_server_device_config/device-config-v4/protocols/kiiroo-powershot.yml
··· 1 1 defaults: 2 2 name: Kiiroo PowerShot 3 3 features: 4 - - feature-type: Vibrate 5 - id: 8829c78b-420c-42e0-bc3e-280f84c89362 4 + - id: 8829c78b-420c-42e0-bc3e-280f84c89362 6 5 output: 7 - Vibrate: 8 - step-range: 6 + vibrate: 7 + value: 9 8 - 0 10 9 - 100 11 - - feature-type: Vibrate 12 - id: 019e23e5-bcba-41c8-913d-03a7da63feee 10 + - id: 019e23e5-bcba-41c8-913d-03a7da63feee 13 11 output: 14 - Vibrate: 15 - step-range: 12 + vibrate: 13 + value: 16 14 - 0 17 15 - 100 18 - - feature-type: Battery 19 - description: Battery Level 16 + - description: Battery Level 20 17 id: eba92a5d-4284-4170-b5e9-3e0700e4529e 21 18 input: 22 - Battery: 23 - value-range: 19 + battery: 20 + value_range: 24 21 - - 0 25 22 - 100 26 - input-commands: 23 + input_commands: 27 24 - Read 28 25 id: 1929575e-bc47-4db8-bee2-f9fc60c438b5 29 26 communication:
+3 -4
crates/buttplug_server_device_config/device-config-v4/protocols/kiiroo-v2-vibrator.yml
··· 82 82 value: 83 83 - 0 84 84 - 100 85 - - feature-type: Vibrate 86 - id: 1e1fb78c-a3bd-4782-8a96-684bbbaa4670 85 + - id: 1e1fb78c-a3bd-4782-8a96-684bbbaa4670 87 86 output: 88 - Vibrate: 89 - step-range: 87 + vibrate: 88 + value: 90 89 - 0 91 90 - 100 92 91 id: d78facf3-706c-44ec-98e8-c4e7baba5966
+10 -9
crates/buttplug_server_device_config/device-config-v4/protocols/kiiroo-v3.yml
··· 8 8 - Keon Wifi 9 9 name: Kiiroo Keon 10 10 features: 11 - - feature-type: PositionWithDuration 12 - id: f4ee99e7-1a14-4315-9870-3990bca7ff94 11 + - id: f4ee99e7-1a14-4315-9870-3990bca7ff94 13 12 output: 14 - PositionWithDuration: 15 - step-range: 13 + position_with_duration: 14 + position: 16 15 - 0 17 16 - 99 18 - - feature-type: Battery 19 - description: Battery Level 17 + duration: 18 + - 0 19 + - 100000 20 + - description: Battery Level 20 21 id: 90319514-ff68-40ae-805d-54ce392a60bd 21 22 input: 22 - Battery: 23 - value-range: 23 + battery: 24 + value_range: 24 25 - - 0 25 26 - 100 26 - input-commands: 27 + input_commands: 27 28 - Read 28 29 id: 62ba81c4-0ada-41be-b49d-d53426cdc277 29 30 communication:
+24 -32
crates/buttplug_server_device_config/device-config-v4/protocols/luvmazer.yml
··· 23 23 - TKLM-W003-BT-RX 24 24 name: Luvmazer Cat Paw 25 25 features: 26 - - feature-type: Vibrate 27 - id: 8deea69f-ea53-46bb-80ae-51dd5d49bba9 26 + - id: 8deea69f-ea53-46bb-80ae-51dd5d49bba9 28 27 output: 29 - Vibrate: 30 - step-range: 28 + vibrate: 29 + value: 31 30 - 0 32 31 - 255 33 - - feature-type: Oscillate 34 - id: 5ae8bb6f-6280-4a8d-9e08-a3d5e5fb89a8 32 + - id: 5ae8bb6f-6280-4a8d-9e08-a3d5e5fb89a8 35 33 output: 36 - Oscillate: 37 - step-range: 34 + sscillate: 35 + value: 38 36 - 0 39 37 - 255 40 - #- feature-type: Inflate 41 - # id: 4a0abbbd-75b6-4034-8012-2be2f1442c1c 38 + #- id: 4a0abbbd-75b6-4034-8012-2be2f1442c1c 42 39 # output: 43 - # Inflate: 44 - # step-range: 40 + # inflate: 41 + # value: 45 42 # - 0 46 43 # - 1 47 44 id: 54723a02-4d77-4d58-90ee-1e692768db9d ··· 49 46 - TKLM-C003-BT 50 47 name: Luvmazer Cock Ring 51 48 features: 52 - - feature-type: Vibrate 53 - id: 4dd378c8-a91b-400e-846b-f16e81ac5690 49 + - id: 4dd378c8-a91b-400e-846b-f16e81ac5690 54 50 output: 55 - Vibrate: 56 - step-range: 51 + vibrate: 52 + value: 57 53 - 0 58 54 - 255 59 - - feature-type: Vibrate 60 - id: c04a2518-81a2-49cb-8a0a-1a5b9c163737 55 + - id: c04a2518-81a2-49cb-8a0a-1a5b9c163737 61 56 output: 62 - Vibrate: 63 - step-range: 57 + vibrate: 58 + value: 64 59 - 0 65 60 - 255 66 61 id: 3f3cb905-d570-41dc-80ed-720762770093 ··· 68 63 - TKLM-C004-BT 69 64 name: Luvmazer Interstellar 70 65 features: 71 - - feature-type: Vibrate 72 - id: e04ad6f5-278e-4acc-b6fa-711954c2e1ab 66 + - id: e04ad6f5-278e-4acc-b6fa-711954c2e1ab 73 67 output: 74 - Vibrate: 75 - step-range: 68 + vibrate: 69 + value: 76 70 - 0 77 71 - 255 78 - - feature-type: Oscillate 79 - id: 8a4f2884-887f-46e3-9a36-c0b91b1b1363 72 + - id: 8a4f2884-887f-46e3-9a36-c0b91b1b1363 80 73 output: 81 - Oscillate: 82 - step-range: 74 + oscillate: 75 + value: 83 76 - 0 84 77 - 255 85 - - feature-type: Constrict 86 - id: 389aa8b8-2550-462c-bd4f-1158c0981606 78 + - id: 389aa8b8-2550-462c-bd4f-1158c0981606 87 79 output: 88 - Constrict: 89 - step-range: 80 + constrict: 81 + value: 90 82 - 0 91 83 - 54 92 84 id: d76d8d49-beca-49f3-931e-5a040b463111
+3 -4
crates/buttplug_server_device_config/device-config-v4/protocols/sensee-v2.yml
··· 129 129 - "qingnan#16" 130 130 name: "Qingnan #16" 131 131 features: 132 - - feature-type: Constrict 133 - id: 4464ae6b-20bc-4c99-9e63-bfda99b7c8cc 132 + - id: 4464ae6b-20bc-4c99-9e63-bfda99b7c8cc 134 133 output: 135 - Constrict: 136 - step-range: 134 + constrict: 135 + value: 137 136 - 0 138 137 - 100 139 138 id: 00dc1d7e-9ede-4ae5-95f6-bd70363de806
+9 -12
crates/buttplug_server_device_config/device-config-v4/protocols/sexverse-v2.yml
··· 47 47 - NBQ-B619RX 48 48 name: Duopeak Saphette 49 49 features: 50 - - feature-type: Vibrate 51 - description: Wearer Vibrator 50 + - description: Wearer Vibrator 52 51 id: 968f7306-6997-4b76-a40f-acbb431d9582 53 52 output: 54 - Oscillate: 55 - step-range: 53 + oscillate: 54 + value: 56 55 - 0 57 56 - 20 58 - - feature-type: Vibrate 59 - description: Receiver Vibrator 57 + - description: Receiver Vibrator 60 58 id: 018009d0-b5bf-4f97-a13d-909d0e74fabc 61 59 output: 62 - Vibrate: 63 - step-range: 60 + vibrate: 61 + value: 64 62 - 0 65 63 - 20 66 - - feature-type: Vibrate 67 - description: Wearer Clitoral Vibrators 64 + - description: Wearer Clitoral Vibrators 68 65 id: 018009d0-b5bf-4f97-a13d-909d0e74fabc 69 66 output: 70 - Vibrate: 71 - step-range: 67 + vibrate: 68 + value: 72 69 - 0 73 70 - 20 74 71 id: 0e1f9fe7-22d9-4afb-9fe5-192b8e5508c3
+6 -8
crates/buttplug_server_device_config/device-config-v4/protocols/sexverse-v4.yml
··· 17 17 - BC1847 18 18 name: Sexverse Black Knight 19 19 features: 20 - - feature-type: Oscillate 21 - id: 15cf412a-594b-4238-bbe0-7e9693233430 20 + - id: 15cf412a-594b-4238-bbe0-7e9693233430 22 21 output: 23 - Vibrate: 24 - step-range: 22 + vibrate: 23 + value: 25 24 - 0 26 25 - 99 27 26 id: 774c0fd8-d2a5-415c-b0b0-90d244be0a05 ··· 29 28 - BC1847 30 29 name: Sexverse Dark Knight 31 30 features: 32 - - feature-type: Oscillate 33 - id: cc1f8c5c-40ff-4d44-91ca-4520042cf723 31 + - id: cc1f8c5c-40ff-4d44-91ca-4520042cf723 34 32 output: 35 - Vibrate: 36 - step-range: 33 + vibrate: 34 + value: 37 35 - 0 38 36 - 99 39 37 id: 99333be9-450f-4092-b776-dd4de1eff244
+1 -1
crates/buttplug_server_device_config/device-config-v4/version.yaml
··· 1 1 version: 2 2 major: 4 3 - minor: 94 3 + minor: 95
+1 -1
crates/buttplug_tests/tests/test_device_config.rs
··· 213 213 { 214 214 "description": "Test Speed", 215 215 "actuator": { 216 - "step-range": [ 216 + "value": [ 217 217 10 218 218 ], 219 219 "messages": [
+1 -3
crates/buttplug_tests/tests/util/device_test/device_test_case/config/lovense_ridge_user_config_invalid_range.json
··· 17 17 "base_id": "c8633234-07a4-4ad9-961d-a4d777b32be7", 18 18 "features": [ 19 19 { 20 - "feature-type": "Oscillate", 21 20 "description": "Fucking Machine Oscillation Speed", 22 21 "output": { 23 22 "oscillate": { 24 - "step_range": [ 23 + "value": [ 25 24 0, 26 25 30 27 26 ], ··· 35 34 "id": "56d94863-b321-428b-8b68-bac0197556e2" 36 35 }, 37 36 { 38 - "feature-type": "Battery", 39 37 "description": "Battery Level", 40 38 "input": { 41 39 "battery": {