public Kiiroo([NotNull] IButtplugLogManager aLogManager, [NotNull] IBluetoothDeviceInterface aInterface, [NotNull] IBluetoothDeviceInfo aInfo) : base(aLogManager, $"Kiiroo {aInterface.Name}", aInterface, aInfo) { AddMessageHandler <KiirooCmd>(HandleKiirooRawCmd); AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); // ReSharper disable once ConvertIfStatementToSwitchStatement if (aInterface.Name == "PEARL") { AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes() { FeatureCount = 1 }); AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); } else if (aInterface.Name == "ONYX") { AddMessageHandler <LinearCmd>(HandleLinearCmd, new MessageAttributes() { FeatureCount = 1 }); AddMessageHandler <FleshlightLaunchFW12Cmd>(HandleFleshlightLaunchFW12Cmd); } }
public Lovense(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"Lovense Device ({FriendlyNames[aInterface.Name]})", aInterface, aInfo) { if (FriendlyNames[aInterface.Name] == "Edge") { _vibratorCount++; } MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes() { FeatureCount = _vibratorCount })); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); if (FriendlyNames[aInterface.Name] == "Nora") { MsgFuncs.Add(typeof(RotateCmd), new ButtplugDeviceWrapper(HandleRotateCmd, new MessageAttributes() { FeatureCount = 1 })); } }
public IButtplugDevice CreateDevice( IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface) { return(new FleshlightLaunch(aLogManager, aInterface)); }
public KiirooGen2Vibe([NotNull] IButtplugLogManager aLogManager, [NotNull] IBluetoothDeviceInterface aInterface, [NotNull] IBluetoothDeviceInfo aInfo) : base(aLogManager, "Kiiroo Unknown", aInterface, aInfo) { if (DevInfos.ContainsKey(aInterface.Name)) { Name = $"{DevInfos[aInterface.Name].Brand} {aInterface.Name}"; _devInfo = DevInfos[aInterface.Name]; } else { BpLogger.Warn($"Cannot identify device {Name}, defaulting to Pearl2 settings."); _devInfo = DevInfos["Unknown"]; } AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes { FeatureCount = _devInfo.VibeCount }); AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); }
public MagicMotion(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"Unknown MagicMotion Device ({aInterface.Name})", aInterface, aInfo) { if (DevInfos.ContainsKey(aInterface.Name)) { Name = $"MagicMotion {DevInfos[aInterface.Name].Name}"; _devInfo = DevInfos[aInterface.Name]; } else { BpLogger.Warn($"Cannot identify device {Name}, defaulting to Smart Mini Vibe settings."); _devInfo = DevInfos["Smart Mini Vibe"]; } AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes { FeatureCount = _devInfo.VibeCount }); AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); }
public VorzeSA(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, "Vorze SA Unknown", aInterface, aInfo) { if (aInterface.Name == "CycSA") { _deviceType = DeviceType.CycloneOrUnknown; Name = "Vorze A10 Cyclone SA"; } else if (aInterface.Name == "UFOSA") { _deviceType = DeviceType.UFO; Name = "Vorze UFO SA"; } else { // If the device doesn't identify, warn and try sending it Cyclone packets. BpLogger.Warn($"Vorze product with unrecognized name ({Name}) found. This product may not work with B******g. Contact the developers for more info."); } MsgFuncs.Add(typeof(VorzeA10CycloneCmd), new ButtplugDeviceWrapper(HandleVorzeA10CycloneCmd)); MsgFuncs.Add(typeof(RotateCmd), new ButtplugDeviceWrapper(HandleRotateCmd, new MessageAttributes() { FeatureCount = 1 })); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); }
public VorzeSA(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, "Vorze SA Unknown", aInterface, aInfo) { switch (aInterface.Name) { case "CycSA": _deviceType = DeviceType.CycloneOrUnknown; _commandType = CommandType.Rotate; Name = "Vorze A10 Cyclone SA"; break; case "UFOSA": _deviceType = DeviceType.UFO; _commandType = CommandType.Rotate; Name = "Vorze UFO SA"; break; case "Bach smart": _deviceType = DeviceType.Bach; _commandType = CommandType.Vibrate; Name = "Vorze Bach"; break; default: // If the device doesn't identify, warn and try sending it Cyclone packets. BpLogger.Warn($"Vorze product with unrecognized name ({Name}) found. This product may not work with B******g. Contact the developers for more info."); break; } switch (_commandType) { case CommandType.Rotate: AddMessageHandler <VorzeA10CycloneCmd>(HandleVorzeA10CycloneCmd); AddMessageHandler <RotateCmd>(HandleRotateCmd, new MessageAttributes() { FeatureCount = 1 }); break; case CommandType.Vibrate: AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes() { FeatureCount = 1 }); break; default: BpLogger.Error("Unhandled command type."); break; } AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); }
public VorzeA10Cyclone(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface) : base(aLogManager, "Vorze A10 Cyclone", aInterface) { MsgFuncs.Add(typeof(VorzeA10CycloneCmd), HandleVorzeA10CycloneCmd); MsgFuncs.Add(typeof(StopDeviceCmd), HandleStopDeviceCmd); }
public Kiiroo([NotNull] IButtplugLogManager aLogManager, [NotNull] IBluetoothDeviceInterface aInterface) : base(aLogManager, $"Kiiroo {aInterface.Name}", aInterface) { MsgFuncs.Add(typeof(KiirooCmd), HandleKiirooRawCmd); MsgFuncs.Add(typeof(StopDeviceCmd), HandleStopDeviceCmd); }
public Lovense(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface) : base(aLogManager, $"Lovense Device ({aInterface.Name})", aInterface) { MsgFuncs.Add(typeof(SingleMotorVibrateCmd), HandleSingleMotorVibrateCmd); MsgFuncs.Add(typeof(StopDeviceCmd), HandleStopDeviceCmd); }
public FleshlightLaunch([NotNull] IButtplugLogManager aLogManager, [NotNull] IBluetoothDeviceInterface aInterface) : base(aLogManager, "Fleshlight Launch", aInterface) { // Setup message function array MsgFuncs.Add(typeof(FleshlightLaunchFW12Cmd), HandleFleshlightLaunchRawCmd); MsgFuncs.Add(typeof(StopDeviceCmd), HandleStopDeviceCmd); }
protected ButtplugBluetoothDevice([NotNull] IButtplugLogManager aLogManager, [NotNull] string aName, [NotNull] IBluetoothDeviceInterface aInterface) : base(aLogManager, aName, aInterface.GetAddress().ToString()) { Interface = aInterface; Interface.DeviceRemoved += DeviceRemovedHandler; }
public Lovense(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, "Lovense Unknown Device", aInterface, aInfo) { AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); }
public Youcups(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"Youcups Device ({friendlyNames[aInterface.Name]})", aInterface, aInfo) { MsgFuncs.Add(typeof(SingleMotorVibrateCmd), HandleSingleMotorVibrateCmd); MsgFuncs.Add(typeof(StopDeviceCmd), HandleStopDeviceCmd); }
public MagicMotion(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"MagicMotion Device ({aInterface.Name})", aInterface, aInfo) { MsgFuncs.Add(typeof(SingleMotorVibrateCmd), HandleSingleMotorVibrateCmd); MsgFuncs.Add(typeof(StopDeviceCmd), HandleStopDeviceCmd); }
public Vibratissimo(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"Vibratissimo Device ({aInterface.Name})", aInterface, aInfo) { AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes { FeatureCount = 1 }); AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); }
public KiirooGen2Vibe([NotNull] IButtplugLogManager aLogManager, [NotNull] IBluetoothDeviceInterface aInterface, [NotNull] IBluetoothDeviceInfo aInfo) : base(aLogManager, $"{DevInfos[aInterface.Name].Brand} {aInterface.Name}", aInterface, aInfo) { _devInfo = DevInfos[aInterface.Name]; MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes { FeatureCount = _devInfo.VibeCount })); MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); }
public OhMiBodFuse([NotNull] IButtplugLogManager aLogManager, [NotNull] IBluetoothDeviceInterface aInterface, [NotNull] IBluetoothDeviceInfo aInfo) : base(aLogManager, $"OhMiBod {aInterface.Name}", aInterface, aInfo) { MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes() { FeatureCount = 2 })); MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); }
public Lovense(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, "Lovense Unknown Device", aInterface, aInfo) { MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes() { FeatureCount = _vibratorCount })); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); }
public WeVibe(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"WeVibe Device ({aInterface.Name})", aInterface, aInfo) { MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes() { FeatureCount = 1 })); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); }
public VorzeA10Cyclone(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, "Vorze A10 Cyclone", aInterface, aInfo) { MsgFuncs.Add(typeof(VorzeA10CycloneCmd), new ButtplugDeviceWrapper(HandleVorzeA10CycloneCmd)); MsgFuncs.Add(typeof(RotateCmd), new ButtplugDeviceWrapper(HandleRotateCmd, new MessageAttributes() { FeatureCount = 1 })); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); }
public FleshlightLaunch([NotNull] IButtplugLogManager aLogManager, [NotNull] IBluetoothDeviceInterface aInterface, [NotNull] IBluetoothDeviceInfo aInfo) : base(aLogManager, "Fleshlight Launch", aInterface, aInfo) { // Setup message function array MsgFuncs.Add(typeof(FleshlightLaunchFW12Cmd), new ButtplugDeviceWrapper(HandleFleshlightLaunchRawCmd)); MsgFuncs.Add(typeof(LinearCmd), new ButtplugDeviceWrapper(HandleLinearCmd, new MessageAttributes() { FeatureCount = 1 })); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); }
public LiBo(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"LiBo ({aInterface.Name})", aInterface, aInfo) { AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes() { FeatureCount = _vibratorCount }); AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); // TODO Add a handler for Estim shocking, add a battery handler. }
public LiBo(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"LiBo ({aInterface.Name})", aInterface, aInfo) { MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes() { FeatureCount = _vibratorCount })); // TODO Add a handler for Estim shocking, add a battery handler. MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); }
public Youcups(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"Youcups Unknown", aInterface, aInfo) { if (FriendlyNames.ContainsKey(aInterface.Name)) { Name = $"Youcups {FriendlyNames[aInterface.Name]}"; } MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes() { FeatureCount = 1 })); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); }
public WeVibe(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"WeVibe {aInterface.Name}", aInterface, aInfo) { if (DualVibes.Contains(aInterface.Name)) { _vibratorCount = 2; } MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes() { FeatureCount = _vibratorCount })); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); }
public Youcups(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, "Youcups Unknown", aInterface, aInfo) { if (FriendlyNames.ContainsKey(aInterface.Name)) { Name = $"Youcups {FriendlyNames[aInterface.Name]}"; } AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes() { FeatureCount = 1 }); AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); }
public WeVibe(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, $"WeVibe {aInterface.Name}", aInterface, aInfo) { if (DualVibes.Contains(aInterface.Name)) { _vibratorCount = 2; } AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes() { FeatureCount = _vibratorCount }); AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); }
public MysteryVibe(IButtplugLogManager aLogManager, IBluetoothDeviceInterface aInterface, IBluetoothDeviceInfo aInfo) : base(aLogManager, "MysteryVibe Crescendo", aInterface, aInfo) { // Create a new timer that wont fire any events just yet _updateValueTimer.Interval = DelayTimeMS; _updateValueTimer.Elapsed += MysteryVibeUpdateHandler; _updateValueTimer.Enabled = false; aInterface.DeviceRemoved += OnDeviceRemoved; AddMessageHandler <SingleMotorVibrateCmd>(HandleSingleMotorVibrateCmd); AddMessageHandler <VibrateCmd>(HandleVibrateCmd, new MessageAttributes { FeatureCount = 6 }); AddMessageHandler <StopDeviceCmd>(HandleStopDeviceCmd); }
public Kiiroo([NotNull] IButtplugLogManager aLogManager, [NotNull] IBluetoothDeviceInterface aInterface, [NotNull] IBluetoothDeviceInfo aInfo) : base(aLogManager, $"Kiiroo {aInterface.Name}", aInterface, aInfo) { MsgFuncs.Add(typeof(KiirooCmd), new ButtplugDeviceWrapper(HandleKiirooRawCmd)); MsgFuncs.Add(typeof(StopDeviceCmd), new ButtplugDeviceWrapper(HandleStopDeviceCmd)); if (aInterface.Name == "PEARL") { MsgFuncs.Add(typeof(VibrateCmd), new ButtplugDeviceWrapper(HandleVibrateCmd, new MessageAttributes() { FeatureCount = 1 })); MsgFuncs.Add(typeof(SingleMotorVibrateCmd), new ButtplugDeviceWrapper(HandleSingleMotorVibrateCmd)); } }