Lovense Integration
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 CFLovenseAdapterDescriptionContainer holding (mostly) raw HTTP request json data for a Lovense App instance in the local network
 CFLovenseCommandDelayTimersThese 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
 CFLovenseGetAdaptersResponseDataContainer holding (mostly) raw HTTP request json data from ILovenseAdapter::TryGetAdapterData() response
 CFLovenseGetToysResponseDataContainer holding (mostly) raw HTTP request json data from ILovenseAdapter::GetToys() response
 CFLovenseIntegrationModuleLovense Integration Module class. Use FLovenseIntegrationModule::Get() to easily get the module instance
 CFLovenseManagerThis class defines the plugin interface. Use FLovenseManager::Get() to get the global manager instance
 CFLovensePatternStructure holding all necessary information for a pattern command
 CFLovenseToyDescriptionContainer holding (mostly) raw HTTP request json data for a Lovense Toy instance
 CILovenseAdapterAbstract 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
 CLovenseConnectAdapterBaseBase class for all Lovense Connect adapters
 CLovenseConnectAndroidAdapterAdapter representing the Lovense Connect android app
 CLovenseConnectDesktopAdapterAdapter representing the Lovense Connect pc app
 CLovenseConnectIOSAdapterAdapter representing the Lovense Connect iOS app
 CLovenseConnectMobileAdapterAbstract base class for Lovense Connect mobile adapters
 CLovenseIntegration
 CLovenseRemoteAdapterBaseBase class for all Lovense Remote adapters
 CLovenseRemoteDesktopAdapterAdapter representing the Lovense Remote pc app
 CLovenseRemoteMobileAdapterAdapter representing the Lovense Remote mobile apps (android + iOS)
 CLovenseTestAdapterDummy adapter used to check if a FLovenseAdapterDescription has valid data
 CLovenseToyEventsWebSocketHandler
 CULovenseEventsObject holding global Lovense Integration delegates
 CULovenseFunctionLibraryBlueprint exposed wrapper library for the Lovense Manager
 CULovenseToyUObject representing a Lovense Toy
 CULovenseToyAnimationControlComponentThis 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"