Lovense Integration: Class List

Lovense Integration

Class List
Here are the classes, structs, unions and interfaces with brief descriptions:

C FLovenseAdapterDescription | Container holding (mostly) raw HTTP request json data for a Lovense App instance in the local network

C FLovenseCommandDelayTimers

These timers define the minimum update frequencies for the respective commands.
There's a global set of these used when commands are broadcasted and each toy has their own set of these used when commands are sent to a specific toy.
Commands cannot be sent while their respective delay timer is active.
This is necessary as to not overwhelm the toys with commands

C FLovenseGetAdaptersResponseData | Container holding (mostly) raw HTTP request json data from ILovenseAdapter::TryGetAdapterData() response
C FLovenseGetToysResponseData | Container holding (mostly) raw HTTP request json data from ILovenseAdapter::GetToys() response
C FLovenseIntegrationModule | Lovense Integration Module class. Use FLovenseIntegrationModule::Get() to easily get the module instance
C FLovenseManager | This class defines the plugin interface. Use FLovenseManager::Get() to get the global manager instance
C FLovensePattern | Structure holding all necessary information for a pattern command
C FLovenseToyDescription | Container holding (mostly) raw HTTP request json data for a Lovense Toy instance

C ILovenseAdapter

Abstract base class for Lovense adapters.
These adapters handle the communication with the Lovense API's and hold the toy objects for the toys which are connected to the respective Lovense App.
Each Lovense API+Platform combination has different requirements, so they get their own adapter implementation.
Multiple adapters can be active at the same time, one for each Lovense App instance found in the local network

C LovenseConnectAdapterBase | Base class for all Lovense Connect adapters
C LovenseConnectAndroidAdapter | Adapter representing the Lovense Connect android app
C LovenseConnectDesktopAdapter | Adapter representing the Lovense Connect pc app
C LovenseConnectIOSAdapter | Adapter representing the Lovense Connect iOS app
C LovenseConnectMobileAdapter | Abstract base class for Lovense Connect mobile adapters
C LovenseIntegration |
C LovenseRemoteAdapterBase | Base class for all Lovense Remote adapters
C LovenseRemoteDesktopAdapter | Adapter representing the Lovense Remote pc app
C LovenseRemoteMobileAdapter | Adapter representing the Lovense Remote mobile apps (android + iOS)
C LovenseTestAdapter | Dummy adapter used to check if a FLovenseAdapterDescription has valid data
C LovenseToyEventsWebSocketHandler |
C ULovenseEvents | Object holding global Lovense Integration delegates
C ULovenseFunctionLibrary | Blueprint exposed wrapper library for the Lovense Manager
C ULovenseToy | UObject representing a Lovense Toy

C ULovenseToyAnimationControlComponent

This component calculates Lovense command speeds based on the average bone movement of N bones on N skeletal mesh components and broadcasts commands to all connected toys.
The commands that are sent are ELovenseCommand::Pattern for Lovense Remote and ELovenseCommand::Vibrate, ELovenseCommand::RotateClockwise, ELovenseCommand::RotateAntiClockwise, ELovenseCommand::AirAuto for Lovense Connect.
For ELovenseCommand::Pattern, a pattern will be generated every 4 seconds based on animation data that gets passed in via getAnimationDataDelegate. This mode is called "Pattern Generation".
For the Lovense Connect commands, we average the physics linear velocities of all bones in real time. This mode is called "Realtime Evaluation"