Lovense Integration
FLovenseManager Class Reference

This class defines the plugin interface. Use FLovenseManager::Get() to get the global manager instance. More...

#include <LovenseIntegration/Source/LovenseIntegration/Public/LovenseManager.h>

Public Member Functions

void StartLovense ()
 Will start the integration. This includes:
1. Fetching config values.
2. Starting the heartbeat to update timers.
3. Notifying listeners that the integration has started.
4. Updating adapters. More...
 
void StopLovense ()
 Will stop the integration. This includes:
1. Stopping and resetting timers.
2. Clearing any currently running commands.
3. Clearing active and temporary data.
4. Stopping the heartbeat.
5. Notifying listeners that the integration has stopped. More...
 
void UpdateAdapters ()
 Will fetch all available lovense adapters and update toys. See top of header for a sequence diagram.
 
void UpdateToys ()
 Will fetch all available toys from the currently active lovense adapters.
 
void ClearAllCommands (class ULovenseToy *toy=nullptr)
 Will command a single or all toys to set the speed of all functions to 0. More...
 
void ReloadLovenseConfig ()
 Loads the Lovense config ini from disk. Does not fetch data.
 
FORCEINLINE class ULovenseEventsGetLovenseEvents ()
 
const FORCEINLINE TArray< class ULovenseToy * > & GetToys ()
 
FORCEINLINE bool IsLovenseRunning ()
 
FORCEINLINE bool IsUpdatingAdapters ()
 
FORCEINLINE bool IsUpdatingToys ()
 
bool IsIPStringValid (const FString &ipString, const TCHAR *delimiter=TEXT("."))
 Checks if ipString is a valid IP.
 
bool IsDomainStringValid (const FString &domainString)
 Checks if domainString is a valid .lovense.club domain.
 
bool IsPortStringValid (const FString &portString)
 Checks if portString is a valid port.
 
FString ConvertIPStringToDomainString (const FString &ipString)
 Will convert an IP string to a .lovense.club domain string (e.g. "123.123.123.123" -> "123-123-123-123.lovense.club")
 
FString ConvertDomainStringToIPString (const FString &domainString)
 Will convert a .lovense.club domain string to an IP string (e.g. "123-123-123-123.lovense.club" -> "123.123.123.123")
 
void StartTimer (FTimerHandle &timerHandle, float timerRate, bool bIsLooped)
 Wrapper function to start a timer on the timer manager without a delegate.
 
void StartTimer (FTimerHandle &timerHandle, const FTimerDelegate &delegate, float timerRate, bool bIsLooped)
 Wrapper function to start a timer on the timer manager with a non-dynamic delegate.
 
void StartTimer (FTimerHandle &timerHandle, const FTimerDynamicDelegate &delegate, float timerRate, bool bIsLooped)
 Wrapper function to start a timer on the timer manager with a dynamic delegate.
 
void StopTimer (FTimerHandle &timerHandle)
 Wrapper function to clear a timer on the timer manager.
 
bool IsTimerRunning (FTimerHandle timerHandle)
 Wrapper function to check if a timer is currently running.
 
bool IsTimerExecuting (FTimerHandle timerHandle)
 Wrapper function to check if a timer has just finished and is currently executing its delegate.
 
bool SendCommand (ELovenseCommand command, class ULovenseToy *toy, uint8 valueA=0, int32 time=0, uint8 valueB=0, uint8 valueC=0, const FString &presetName=TEXT(""), FLovensePattern pattern=FLovensePattern(), FOnLovenseResponse callback=FOnLovenseResponse())
 Will send the specified command to a single or all available toys. More...
 
bool SendCommand_Test (class ULovenseToy *toy)
 Makes a single or all available toys vibrate for 1.0 seconds to test connection. More...
 
bool SendCommand_Stop (class ULovenseToy *toy)
 Stop all commands a single or all available toys might be executing. More...
 
bool SendCommand_Vibrate (class ULovenseToy *toy, uint8 vibrationSpeed)
 Set vibration speed on a single or all available toys. More...
 
bool SendCommand_Vibrate1 (class ULovenseToy *toy, uint8 vibrationSpeed)
 Set vibration speed of motor 1 on a single or all available toys. More...
 
bool SendCommand_Vibrate2 (class ULovenseToy *toy, uint8 vibrationSpeed)
 Set vibration speed of motor 2 on a single or all available toys. More...
 
bool SendCommand_Rotate (class ULovenseToy *toy, uint8 rotationSpeed)
 Set rotation speed on a single or all available toys. More...
 
bool SendCommand_RotateAntiClockwise (class ULovenseToy *toy, uint8 rotationSpeed)
 Like SendCommand_Rotate(), but specifies the rotation direction to be anti-clockwise. More...
 
bool SendCommand_RotateClockwise (class ULovenseToy *toy, uint8 rotationSpeed)
 Like SendCommand_Rotate(), but specifies the rotation direction to be clockwise. More...
 
bool SendCommand_RotateChange (class ULovenseToy *toy)
 Toggles the rotation direction between clockwise and anti-clockwise on a single or all available toys. More...
 
bool SendCommand_AirAuto (class ULovenseToy *toy, uint8 pulseSpeed)
 Set air pulse speed on a single or all available toys. More...
 
bool SendCommand_AirIn (class ULovenseToy *toy)
 Will pump in air on a single or all available toys. More...
 
bool SendCommand_AirOut (class ULovenseToy *toy)
 Will pump out air on a single or all available toys. More...
 
bool SendCommand_Thrust (class ULovenseToy *toy, uint8 thrustingSpeed)
 Set thrusting speed on a single or all available toys. More...
 
bool SendCommand_Suck (class ULovenseToy *toy, uint8 suctionSpeed)
 Set suction speed on a single or all available toys. More...
 
bool SendCommand_Finger (class ULovenseToy *toy, uint8 fingeringSpeed)
 Set fingering speed on a single or all available toys. More...
 
bool SendCommand_Preset (class ULovenseToy *toy, uint8 pattern)
 Set vibration pattern on a single or all available toys. More...
 
bool SendCommand_Battery (class ULovenseToy *toy, FOnLovenseResponse callback)
 Fetch the battery status of a toy. More...
 
bool SendCommand_AVibrate (class ULovenseToy *toy, uint8 vibrationSpeed, int32 time)
 Set vibration speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AVibrate1 (class ULovenseToy *toy, uint8 vibrationSpeed, int32 time)
 Set vibration speed of motor 1 on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AVibrate2 (class ULovenseToy *toy, uint8 vibrationSpeed, int32 time)
 Set vibration speed of motor 2 on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_ARotate (class ULovenseToy *toy, uint8 rotationSpeed, int32 time)
 Set rotation speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AAirLevel (class ULovenseToy *toy, uint8 pulseSpeed, int32 time)
 Set air pulse speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AThrust (class ULovenseToy *toy, uint8 thrustingSpeed, int32 time)
 Set thrusting speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_ASuck (class ULovenseToy *toy, uint8 suctionSpeed, int32 time)
 Set suction speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AFinger (class ULovenseToy *toy, uint8 fingeringSpeed, int32 time)
 Set fingering speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_APreset (class ULovenseToy *toy, const FString &patternName, int32 time)
 Set preset on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AVibRotate (class ULovenseToy *toy, uint8 vibrationSpeed, uint8 rotationSpeed, int32 time)
 Set vibration and rotation speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AVibAir (class ULovenseToy *toy, uint8 vibrationSpeed, uint8 pulseSpeed, int32 time)
 Set vibration and air pulse speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AVibRotateAir (class ULovenseToy *toy, uint8 vibrationSpeed, uint8 rotationSpeed, uint8 pulseSpeed, int32 time)
 Set vibration, rotation and air pulse speed on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_AAll (class ULovenseToy *toy, uint8 speed, int32 time)
 Set all function speeds on a single or all available toys for a certain amount of time. More...
 
bool SendCommand_Pattern (class ULovenseToy *toy, FLovensePattern &pattern)
 Play a pattern of vibration, rotation, air pulse, thrusting, suction and/or fingering speeds on a single or all available toys for a certain amount of time. More...
 
template<typename TCallback >
FORCEINLINE void ForEachAdapter (TCallback callback)
 Iterates over all active adapters.
 
void OnCommandFailed ()
 Called when a SendCommand_*() HTTP request or UpdateToys() failed. Will reset the Update Adapters Timer and tries to update adapters.
See top of header for an activity diagram showing the Update Adapters Timer loop.
The timer loop will run until ResetUpdateAdaptersTimer() is called.
Commands can fail for these reasons (not exhaustive):
1. User disconnects toy(s).
2. User closes Lovense App.
3. User exits game mode/disables remote control in the Lovense App.
4. The device the Lovense App is running on loses network connection.
 
FORCEINLINE int32 GetToyDelay ()
 Get the cached "ToyDelay" config value.
Toy delay is in milliseconds. Value range is 0-2000ms and defaults to 500ms.
The toy delay adjusts the start time for pattern generation based on animations. (See ULovenseToyAnimationControlComponent)
 
FORCEINLINE void SetToyDelay (int32 value)
 Set the cached "ToyDelay" config value.
Toy delay is in milliseconds. Value range is 0-2000ms and defaults to 500ms.
The toy delay adjusts the start time for pattern generation based on animations. (See ULovenseToyAnimationControlComponent)
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyDelay() instead, which will call this.
 
FORCEINLINE float GetToyStrengthMultiplier ()
 Get the cached "ToyStrengthMultiplier" config value.
Value range is 0.0f-1.0f and defaults to 1.0f.
The toy strength multiplier scales the speed values before commands are sent.
 
FORCEINLINE void SetToyStrengthMultiplier (float value)
 Set the cached "ToyStrengthMultiplier" config value.
Value range is 0.0f-1.0f and defaults to 1.0f.
The toy strength multiplier scales the speed values before commands are sent.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyStrengthMultiplier() instead, which will call this.
 
FORCEINLINE bool GetToyVibrationEnabled ()
 Get the cached "ToyVibrationEnabled" config value.
If false, vibration speed values will be set to 0 before commands are sent, so toys will not vibrate. Defaults to true.
 
void SetToyVibrationEnabled (bool value)
 Set the cached "ToyVibrationEnabled" config value.
If false, vibration speed values will be set to 0 before commands are sent, so toys will not vibrate. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyVibrationEnabled() instead, which will call this. More...
 
FORCEINLINE bool GetToyRotationEnabled ()
 Get the cached "ToyRotationEnabled" config value.
If false, rotation speed values will be set to 0 before commands are sent, so toys will not rotate. Defaults to true.
 
void SetToyRotationEnabled (bool value)
 Set the cached "ToyRotationEnabled" config value.
If false, rotation speed values will be set to 0 before commands are sent, so toys will not rotate. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyRotationEnabled() instead, which will call this. More...
 
FORCEINLINE bool GetToyAirEnabled ()
 Get the cached "ToyAirEnabled" config value.
If false, air speed values will be set to 0 before commands are sent, so toys will not pump. Defaults to true.
 
void SetToyAirEnabled (bool value)
 Set the cached "ToyAirEnabled" config value.
If false, air speed values will be set to 0 before commands are sent, so toys will not pump. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyAirEnabled() instead, which will call this. More...
 
FORCEINLINE bool GetToyThrustingEnabled ()
 Get the cached "ToyThrustingEnabled" config value.
If false, thrusting speed values will be set to 0 before commands are sent, so toys will not thrust. Defaults to true.
 
void SetToyThrustingEnabled (bool value)
 Set the cached "ToyVibrationEnabled" config value.
If false, thrusting speed values will be set to 0 before commands are sent, so toys will not thrust. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyThrustingEnabled() instead, which will call this. More...
 
FORCEINLINE bool GetToySuctionEnabled ()
 Get the cached "ToySuctionEnabled" config value.
If false, suction speed values will be set to 0 before commands are sent, so toys will not suck. Defaults to true.
 
void SetToySuctionEnabled (bool value)
 Set the cached "ToySuctionEnabled" config value.
If false, suction speed values will be set to 0 before commands are sent, so toys will not suck. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToySuctionEnabled() instead, which will call this. More...
 
FORCEINLINE bool GetToyFingeringEnabled ()
 Get the cached "ToyFingeringEnabled" config value.
If false, fingering speed values will be set to 0 before commands are sent, so toys will not finger. Defaults to true.
 
void SetToyFingeringEnabled (bool value)
 Set the cached "ToyFingeringEnabled" config value.
If false, fingering speed values will be set to 0 before commands are sent, so toys will not finger. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyFingeringEnabled() instead, which will call this. More...
 
const FORCEINLINE FLovenseCommandDelayTimersGetCommandDelayTimers ()
 Get the global set of Command Delay Timers used when commands are broadcasted. See FLovenseCommandDelayTimers for more information.
 

Static Public Member Functions

static FLovenseManagerGet ()
 Get the instance of the lovense manager. Always valid.
 

Friends

class FLovenseIntegrationModule
 

Detailed Description

This class defines the plugin interface. Use FLovenseManager::Get() to get the global manager instance.

UpdatedAdapters() sequence:
+-----------+ +-----------------+ +-----------------+ +-----------------+ +-------------+
| Any | | FLovenseManager | | ILovenseAdapter | | Lovense Servers | | Lovense App |
+-----------+ +-----------------+ +-----------------+ +-----------------+ +-------------+
| | | | |
| Call UpdateAdapters() | | | |
|-------------------------->| | | |
| | | | |
| | Call TryGetAdapterData() | | |
| |---------------------------------------------------------->| | |
| | | | |
| | | Poll "https://api.lovense-api.com/api/lan/v2/app" | |
| | |-------------------------------------------------------->| |
| | | | |
| | | Response | |
| | |<--------------------------------------------------------| |
| | | -----------------\ | |
| | |-| Parse response | | |
| | | |----------------| | |
| | | | |
| | callback | | |
| |<----------------------------------------------------------| | |
| | -------------------------\ | | |
| |-| Adapter initialization | | | |
| | |------------------------| | | |
| | | | |
| | For each created adapter -> Call GetToys() | | |
| |---------------------------------------------------------->| | |
| | | | |
| | | Request GetToys | |
| | |-------------------------------------------------------------------------->|
| | | | |
| | | | Response |
| | |<--------------------------------------------------------------------------|
| | | ---------------------\ | |
| | |-| Toy initialization | | |
| | | |--------------------| | |
| | | | |
| | callback | | |
| |<----------------------------------------------------------| | |
| | -------------------------------------------------\ | | |
| |-| Once all adapters received GetToys response, | | | |
| | | shutdown active adapters and copy new adapters | | | |
| | |------------------------------------------------| | | |
Update adapters timer loop (when a command fails, see FLovenseManager::OnCommandFailed()):
[Reset updateAdaptersTimer interval]
|
V
[Call UpdateAdapters()]
|
V
+------- yes --- <Update failed?> --- no -------+
| |
V |
+--------> [Start updateAdaptersTimer] |
| | |
| V |
| [OnUpdateAdaptersTimerFinished()] |
| | |
| V |
^ [Double updateAdaptersTimer interval] |
| | |
| V |
| [Call UpdateAdapters()] |
| | |
| V |
+------- yes --- <Update failed?> --- no -------------------------------+
|
V
[Reset updateAdaptersTimer interval]
The loop will run until FLovenseManager::ResetUpdateAdaptersTimer() is called.

Member Function Documentation

◆ ClearAllCommands()

void FLovenseManager::ClearAllCommands ( class ULovenseToy toy = nullptr)

Will command a single or all toys to set the speed of all functions to 0.

Parameters
toySpecifies the toy commands should be cleared on. Can be nullptr, in that case commands are cleared on all available toys.

◆ GetLovenseEvents()

FORCEINLINE class ULovenseEvents* FLovenseManager::GetLovenseEvents ( )
inline
Returns
Object holding global Lovense Integration delegates.

◆ GetToys()

const FORCEINLINE TArray<class ULovenseToy*>& FLovenseManager::GetToys ( )
inline
Returns
All currently available toys.
Warning - If you cache these, make sure to subscribe to ULovenseEvents::onLovenseUpdatedToys and re-get them, as the toy objects will have been destroyed.

◆ IsLovenseRunning()

FORCEINLINE bool FLovenseManager::IsLovenseRunning ( )
inline
Returns
Whether the integration is currently running.

◆ IsUpdatingAdapters()

FORCEINLINE bool FLovenseManager::IsUpdatingAdapters ( )
inline
Returns
Whether the lovense adapters are currently being updated.

◆ IsUpdatingToys()

FORCEINLINE bool FLovenseManager::IsUpdatingToys ( )
inline
Returns
Whether the toys are currently being updated.

◆ SendCommand()

bool FLovenseManager::SendCommand ( ELovenseCommand  command,
class ULovenseToy toy,
uint8  valueA = 0,
int32  time = 0,
uint8  valueB = 0,
uint8  valueC = 0,
const FString &  presetName = TEXT(""),
FLovensePattern  pattern = FLovensePattern(),
FOnLovenseResponse  callback = FOnLovenseResponse() 
)

Will send the specified command to a single or all available toys.

Note
See the respective SendCommand_*() functions for more information on the respective commands.
Parameters
commandThe command to be sent.
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
valueANot relevant for the Test, RotateChange, AirIn, AirOut and Battery command. The speed of the function. Valid range is 0-20, 0 meaning off.
timeOnly relevant for the A* commands. Time in seconds for how long the command should run. Only full seconds are supported.
valueBOnly relevant for the AVibRotate AVibAir commands.
For AVibRotate: The speed of the rotation. Valid range is 0-20, 0 meaning off.
For AVibAir: The speed of the air pulsation. Valid range is 0-3, 0 meaning off.
valueCOnly relevant for the AVibRotateAir command. The speed of the air pulsation. Valid range is 0-3, 0 meaning off.
presetNameOnly relevant for the APreset command. The name of the pattern. Valid names are "pulse", "wave", "fireworks", "earthquake". Leave empty to stop.
patternOnly relevant for the Pattern command. The data defining the pattern. See FLovensePattern for more information.
callbackOnly relevant for the Battery command.
Returns
Whether the command was successfully sent.

◆ SendCommand_AAirLevel()

bool FLovenseManager::SendCommand_AAirLevel ( class ULovenseToy toy,
uint8  pulseSpeed,
int32  time 
)

Set air pulse speed on a single or all available toys for a certain amount of time.

Note
This command only works for the Max toy.
The pulsing will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AirAuto, AirIn, AirOut and AVibAir commands.
The cooldown will be ignored for calls with pulseSpeed = 0.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
pulseSpeedThe speed of the air pulsation. Valid range is 0-3, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AAll()

bool FLovenseManager::SendCommand_AAll ( class ULovenseToy toy,
uint8  speed,
int32  time 
)

Set all function speeds on a single or all available toys for a certain amount of time.

Note
All functions will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds.
If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown will be ignored for calls with speed = 0.
Only works with Lovense Remote.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
speedThe speed of all functions. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Returns
Whether the command was successfully sent.

◆ SendCommand_AFinger()

bool FLovenseManager::SendCommand_AFinger ( class ULovenseToy toy,
uint8  fingeringSpeed,
int32  time 
)

Set fingering speed on a single or all available toys for a certain amount of time.

Note
The fingering will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Finger command.
The cooldown will be ignored for calls with fingeringSpeed = 0.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
fingeringSpeedThe speed of the fingering. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AirAuto()

bool FLovenseManager::SendCommand_AirAuto ( class ULovenseToy toy,
uint8  pulseSpeed 
)

Set air pulse speed on a single or all available toys.

Note
This command only works for the Max toy.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AirIn, AirOut, AAirLevel and AVibAir commands.
The cooldown will be ignored for calls with pulseSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
pulseSpeedThe speed of the air pulsation. Valid range is 0-3, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_AirIn()

bool FLovenseManager::SendCommand_AirIn ( class ULovenseToy toy)

Will pump in air on a single or all available toys.

Note
This command only works for the Max toy.
The Max toy can only pump air for 3.0 seconds. If the toy is full of air, the command will be ignored.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AirAuto, AirOut, AAirLevel and AVibAir commands.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
Returns
Whether the command was successfully sent.

◆ SendCommand_AirOut()

bool FLovenseManager::SendCommand_AirOut ( class ULovenseToy toy)

Will pump out air on a single or all available toys.

Note
This command only works for the Max toy.
If the Max toy is out of air, the command will be ignored.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AirAuto, AirIn, AAirLevel and AVibAir commands.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
Returns
Whether the command was successfully sent.

◆ SendCommand_APreset()

bool FLovenseManager::SendCommand_APreset ( class ULovenseToy toy,
const FString &  patternName,
int32  time 
)

Set preset on a single or all available toys for a certain amount of time.

Note
The preset will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Preset command.
The cooldown will be ignored for calls with empty patternName.
Only works with Lovense Remote.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
patternNameThe name of the pattern. Valid names are "pulse", "wave", "fireworks", "earthquake". Leave empty to stop.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_ARotate()

bool FLovenseManager::SendCommand_ARotate ( class ULovenseToy toy,
uint8  rotationSpeed,
int32  time 
)

Set rotation speed on a single or all available toys for a certain amount of time.

Note
This command only works for the Nora toy.
The rotation will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Rotate, RotateAntiClockwise, RotateClockwise, RotateChange and AVibRotate commands.
The cooldown will be ignored for calls with rotationSpeed = 0.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
rotationSpeedThe speed of the rotation. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_ASuck()

bool FLovenseManager::SendCommand_ASuck ( class ULovenseToy toy,
uint8  suctionSpeed,
int32  time 
)

Set suction speed on a single or all available toys for a certain amount of time.

Note
The suction will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Suck command.
The cooldown will be ignored for calls with suctionSpeed = 0.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
suctionSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AThrust()

bool FLovenseManager::SendCommand_AThrust ( class ULovenseToy toy,
uint8  thrustingSpeed,
int32  time 
)

Set thrusting speed on a single or all available toys for a certain amount of time.

Note
The thrusting will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Thrust command.
The cooldown will be ignored for calls with thrustingSpeed = 0.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
thrustingSpeedThe speed of the thrusting. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AVibAir()

bool FLovenseManager::SendCommand_AVibAir ( class ULovenseToy toy,
uint8  vibrationSpeed,
uint8  pulseSpeed,
int32  time 
)

Set vibration and air pulse speed on a single or all available toys for a certain amount of time.

Note
This command only works for the Max toy.
The vibration and pulsing will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds for the vibration and 1.0 seconds for the air pulsation.
If this command is sent again before both cooldowns are over, that call will be ignored.
The vibration cooldown for this command is shared with the Vibrate, AVibrate and AVibAir commands.
The air pulsation cooldown for this command is shared with the AirAuto, AirIn, AirOut and AAirLevel commands.
The cooldown will be ignored for calls with vibrationSpeed = 0 or pulseSpeed = 0.
Warning - If only one of the speed parameters is 0, the cooldown will be circumvented for the speed parameter that is not 0.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
pulseSpeedThe speed of the air pulsation. Valid range is 0-3, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AVibrate()

bool FLovenseManager::SendCommand_AVibrate ( class ULovenseToy toy,
uint8  vibrationSpeed,
int32  time 
)

Set vibration speed on a single or all available toys for a certain amount of time.

Note
The vibration will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Vibrate, AVibRotate and AVibAir commands.
The cooldown will be ignored for calls with vibrationSpeed = 0.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AVibrate1()

bool FLovenseManager::SendCommand_AVibrate1 ( class ULovenseToy toy,
uint8  vibrationSpeed,
int32  time 
)

Set vibration speed of motor 1 on a single or all available toys for a certain amount of time.

Note
This command only works for the Edge toy.
The vibration will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Vibrate1 command.
The cooldown will be ignored for calls with vibrationSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AVibrate2()

bool FLovenseManager::SendCommand_AVibrate2 ( class ULovenseToy toy,
uint8  vibrationSpeed,
int32  time 
)

Set vibration speed of motor 2 on a single or all available toys for a certain amount of time.

Note
This command only works for the Edge toy.
The vibration will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Vibrate2 command.
The cooldown will be ignored for calls with vibrationSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AVibRotate()

bool FLovenseManager::SendCommand_AVibRotate ( class ULovenseToy toy,
uint8  vibrationSpeed,
uint8  rotationSpeed,
int32  time 
)

Set vibration and rotation speed on a single or all available toys for a certain amount of time.

Note
This command only works for the Nora toy.
The vibration and rotation will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds for the vibration and 1.0 seconds for the rotation.
If this command is sent again before both cooldowns are over, that call will be ignored.
The vibration cooldown for this command is shared with the Vibrate, AVibrate and AVibAir commands.
The rotation cooldown for this command is shared with the Rotate, RotateAntiClockwise, RotateClockwise, RotateChange and ARotate commands.
The cooldown will be ignored for calls with vibrationSpeed = 0 or rotationSpeed = 0.
Warning - If only one of the speed parameters is 0, the cooldown will be circumvented for the speed parameter that is not 0.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
rotationSpeedThe speed of the rotation. Valid range is 0-20, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Note The Lovense Connect app only has one global timer, meaning if an A* command is sent to a toy while another toy on the same adapter is currently running an A* command, that other toy will be interrupted.
Returns
Whether the command was successfully sent.

◆ SendCommand_AVibRotateAir()

bool FLovenseManager::SendCommand_AVibRotateAir ( class ULovenseToy toy,
uint8  vibrationSpeed,
uint8  rotationSpeed,
uint8  pulseSpeed,
int32  time 
)

Set vibration, rotation and air pulse speed on a single or all available toys for a certain amount of time.

Note
The vibration, rotation and pulsing will automatically stop after the specified time has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.2 seconds.
If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown will be ignored for calls with vibrationSpeed = 0.
Only works with Lovense Remote.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
rotationSpeedThe speed of the rotation. Valid range is 0-20, 0 meaning off.
pulseSpeedThe speed of the air pulsation. Valid range is 0-3, 0 meaning off.
timeTime in seconds for how long the command should run. Only full seconds are supported.
Returns
Whether the command was successfully sent.

◆ SendCommand_Battery()

bool FLovenseManager::SendCommand_Battery ( class ULovenseToy toy,
FOnLovenseResponse  callback 
)

Fetch the battery status of a toy.

Note
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AVibrate, AVibRotate and AVibAir commands.
The cooldown will be ignored for calls with vibrationSpeed = 0.
Parameters
toySpecifies the toy the command is sent to. Needs a valid toy.
callbackExecuted once the battery status has been received.
Event has an int32 parameter indicating the battery level. Value range is -1-100, -1 meaning the battery status could not be fetched.
Returns
Whether the command was successfully sent.

◆ SendCommand_Finger()

bool FLovenseManager::SendCommand_Finger ( class ULovenseToy toy,
uint8  fingeringSpeed 
)

Set fingering speed on a single or all available toys.

Note
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AFinger command.
The cooldown will be ignored for calls with fingeringSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
fingeringSpeedThe speed of the fingering. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_Pattern()

bool FLovenseManager::SendCommand_Pattern ( class ULovenseToy toy,
FLovensePattern pattern 
)

Play a pattern of vibration, rotation, air pulse, thrusting, suction and/or fingering speeds on a single or all available toys for a certain amount of time.

Note
The pattern will automatically stop after the time specified in the pattern has passed.
If the command is sent again before the specified time has passed, the currently running command will be overwritten.
This command has a cooldown of 0.1 seconds.
If this command is sent again before the cooldown is over, that call will be ignored.
Only works with Lovense Remote.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
patternThe data defining the pattern. See FLovensePattern for more information.
Returns
Whether the command was successfully sent.

◆ SendCommand_Preset()

bool FLovenseManager::SendCommand_Preset ( class ULovenseToy toy,
uint8  pattern 
)

Set vibration pattern on a single or all available toys.

Note
This command only works for the Lush, Hush, Ambi, Edge, Domi and Osci toys.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the APreset command.
The cooldown will be ignored for calls with pattern = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
patternThe vibration pattern. Valid range is 0-3, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_Rotate()

bool FLovenseManager::SendCommand_Rotate ( class ULovenseToy toy,
uint8  rotationSpeed 
)

Set rotation speed on a single or all available toys.

Note
This command only works for the Nora toy.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the RotateAntiClockwise, RotateClockwise, RotateChange, ARotate and AVibRotate commands.
The cooldown will be ignored for calls with rotationSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
rotationSpeedThe speed of the rotation. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_RotateAntiClockwise()

bool FLovenseManager::SendCommand_RotateAntiClockwise ( class ULovenseToy toy,
uint8  rotationSpeed 
)

Like SendCommand_Rotate(), but specifies the rotation direction to be anti-clockwise.

Note
This command only works for the Nora toy.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Rotate, RotateClockwise, RotateChange, ARotate and AVibRotate commands.
The cooldown will be ignored for calls with rotationSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
rotationSpeedThe speed of the rotation. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_RotateChange()

bool FLovenseManager::SendCommand_RotateChange ( class ULovenseToy toy)

Toggles the rotation direction between clockwise and anti-clockwise on a single or all available toys.

Note
This command only works for the Nora toy.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Rotate, RotateAntiClockwise, RotateClockwise, ARotate and AVibRotate commands.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
Returns
Whether the command was successfully sent.

◆ SendCommand_RotateClockwise()

bool FLovenseManager::SendCommand_RotateClockwise ( class ULovenseToy toy,
uint8  rotationSpeed 
)

Like SendCommand_Rotate(), but specifies the rotation direction to be clockwise.

Note
This command only works for the Nora toy.
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the Rotate, RotateAntiClockwise, RotateChange, ARotate and AVibRotate commands.
The cooldown will be ignored for calls with rotationSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
rotationSpeedThe speed of the rotation. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_Stop()

bool FLovenseManager::SendCommand_Stop ( class ULovenseToy toy)

Stop all commands a single or all available toys might be executing.

Returns
Whether the command was successfully sent.

◆ SendCommand_Suck()

bool FLovenseManager::SendCommand_Suck ( class ULovenseToy toy,
uint8  suctionSpeed 
)

Set suction speed on a single or all available toys.

Note
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the ASuck command.
The cooldown will be ignored for calls with suctionSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
suctionSpeedThe speed of the suction. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_Test()

bool FLovenseManager::SendCommand_Test ( class ULovenseToy toy)

Makes a single or all available toys vibrate for 1.0 seconds to test connection.

Note
This command has a cooldown of 1.0 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
Returns
Whether the command was successfully sent.

◆ SendCommand_Thrust()

bool FLovenseManager::SendCommand_Thrust ( class ULovenseToy toy,
uint8  thrustingSpeed 
)

Set thrusting speed on a single or all available toys.

Note
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AThrust command.
The cooldown will be ignored for calls with thrustingSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
thrustingSpeedThe speed of the thrusting. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_Vibrate()

bool FLovenseManager::SendCommand_Vibrate ( class ULovenseToy toy,
uint8  vibrationSpeed 
)

Set vibration speed on a single or all available toys.

Note
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AVibrate, AVibRotate and AVibAir commands.
The cooldown will be ignored for calls with vibrationSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_Vibrate1()

bool FLovenseManager::SendCommand_Vibrate1 ( class ULovenseToy toy,
uint8  vibrationSpeed 
)

Set vibration speed of motor 1 on a single or all available toys.

Note
This command only works for the Edge toy.
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AVibrate1 command.
The cooldown will be ignored for calls with vibrationSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SendCommand_Vibrate2()

bool FLovenseManager::SendCommand_Vibrate2 ( class ULovenseToy toy,
uint8  vibrationSpeed 
)

Set vibration speed of motor 2 on a single or all available toys.

Note
This command only works for the Edge toy.
This command has a cooldown of 0.2 seconds. If this command is sent again before the cooldown is over, that call will be ignored.
The cooldown for this command is shared with the AVibrate2 command.
The cooldown will be ignored for calls with vibrationSpeed = 0.
Only works with Lovense Connect.
Parameters
toySpecifies the toy the command is sent to. Can be nullptr, in that case the command is sent to all available toys.
vibrationSpeedThe speed of the vibration. Valid range is 0-20, 0 meaning off.
Returns
Whether the command was successfully sent.

◆ SetToyAirEnabled()

void FLovenseManager::SetToyAirEnabled ( bool  value)

Set the cached "ToyAirEnabled" config value.
If false, air speed values will be set to 0 before commands are sent, so toys will not pump. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyAirEnabled() instead, which will call this.

Note
If value is false, will clear all commands to ensure that any pumping toys stop pumping.

◆ SetToyFingeringEnabled()

void FLovenseManager::SetToyFingeringEnabled ( bool  value)

Set the cached "ToyFingeringEnabled" config value.
If false, fingering speed values will be set to 0 before commands are sent, so toys will not finger. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyFingeringEnabled() instead, which will call this.

Note
If value is false, will clear all commands to ensure that any fingering toys stop fingering.

◆ SetToyRotationEnabled()

void FLovenseManager::SetToyRotationEnabled ( bool  value)

Set the cached "ToyRotationEnabled" config value.
If false, rotation speed values will be set to 0 before commands are sent, so toys will not rotate. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyRotationEnabled() instead, which will call this.

Note
If value is false, will clear all commands to ensure that any rotating toys stop rotating.

◆ SetToySuctionEnabled()

void FLovenseManager::SetToySuctionEnabled ( bool  value)

Set the cached "ToySuctionEnabled" config value.
If false, suction speed values will be set to 0 before commands are sent, so toys will not suck. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToySuctionEnabled() instead, which will call this.

Note
If value is false, will clear all commands to ensure that any sucking toys stop sucking.

◆ SetToyThrustingEnabled()

void FLovenseManager::SetToyThrustingEnabled ( bool  value)

Set the cached "ToyVibrationEnabled" config value.
If false, thrusting speed values will be set to 0 before commands are sent, so toys will not thrust. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyThrustingEnabled() instead, which will call this.

Note
If value is false, will clear all commands to ensure that any thrusting toys stop thrusting.

◆ SetToyVibrationEnabled()

void FLovenseManager::SetToyVibrationEnabled ( bool  value)

Set the cached "ToyVibrationEnabled" config value.
If false, vibration speed values will be set to 0 before commands are sent, so toys will not vibrate. Defaults to true.
Warning - This only sets the cached value and will not update the config! Use ULovenseFunctionLibrary::SetToyVibrationEnabled() instead, which will call this.

Note
If value is false, will clear all commands to ensure that any vibrating toys stop vibrating.

◆ StartLovense()

void FLovenseManager::StartLovense ( )

Will start the integration. This includes:
1. Fetching config values.
2. Starting the heartbeat to update timers.
3. Notifying listeners that the integration has started.
4. Updating adapters.

Note
Does not check if the integration is already running, as calling this while the integration is already running is safe.

◆ StopLovense()

void FLovenseManager::StopLovense ( )

Will stop the integration. This includes:
1. Stopping and resetting timers.
2. Clearing any currently running commands.
3. Clearing active and temporary data.
4. Stopping the heartbeat.
5. Notifying listeners that the integration has stopped.

Note
Does not check if the integration is already stopped, as calling this while the integration is already stopped is safe.

The documentation for this class was generated from the following files:
FLovenseManager::GetToys
const FORCEINLINE TArray< class ULovenseToy * > & GetToys()
Definition: LovenseManager.h:149
FLovenseManager::UpdateAdapters
void UpdateAdapters()
Will fetch all available lovense adapters and update toys. See top of header for a sequence diagram.
Definition: LovenseManager.cpp:1487
ILovenseAdapter
Abstract base class for Lovense adapters. These adapters handle the communication with the Lovense ...
Definition: ILovenseAdapter.h:20
FLovenseManager
This class defines the plugin interface. Use FLovenseManager::Get() to get the global manager instanc...
Definition: LovenseManager.h:99
FLovenseManager::OnCommandFailed
void OnCommandFailed()
Called when a SendCommand_*() HTTP request or UpdateToys() failed. Will reset the Update Adapters Tim...
Definition: LovenseManager.cpp:1429