JUCE
|
This class manages the synchronisation of a remote block of heap memory used by a littlefoot program running on a block. More...
Public Member Functions | |
LittleFootRemoteHeap (uint32 blockSizeToUse) noexcept | |
void | reset () |
void | clearTargetData () noexcept |
void | resetDeviceStateToUnknown () |
void | resetDataRangeToUnknown (size_t offset, size_t size) noexcept |
void | setByte (size_t offset, uint8 value) noexcept |
void | setBytes (size_t offset, const uint8 *data, size_t num) noexcept |
void | setBits (uint32 startBit, uint32 numBits, uint32 value) noexcept |
uint8 | getByte (size_t offset) noexcept |
bool | isFullySynced () const noexcept |
void | sendChanges (ImplementationClass &bi, bool forceSend) |
void | handleACKFromDevice (ImplementationClass &bi, uint32 packetIndex) noexcept |
bool | isProgramLoaded () noexcept |
Static Public Member Functions | |
static bool | isAllZero (const uint8 *data, size_t size) noexcept |
Public Attributes | |
const size_t | blockSize |
Static Public Attributes | |
static constexpr uint16 | unknownByte = 0x100 |
This class manages the synchronisation of a remote block of heap memory used by a littlefoot program running on a block.
Data in the block can be changed by calling setByte, setBytes, setBits etc, and these changes will be flushed to the device when sendChanges is called.
|
noexcept |
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::reset | ( | ) |
|
noexcept |
References JUCE_LOG_LITTLEFOOT_HEAP, and zeromem().
Referenced by littlefoot::LittleFootRemoteHeap< ImplementationClass >::reset().
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::resetDeviceStateToUnknown | ( | ) |
References OwnedArray< ObjectClass, TypeOfCriticalSectionToUse >::clear(), JUCE_LOG_LITTLEFOOT_HEAP, and littlefoot::LittleFootRemoteHeap< ImplementationClass >::resetDataRangeToUnknown().
Referenced by littlefoot::LittleFootRemoteHeap< ImplementationClass >::handleACKFromDevice(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::LittleFootRemoteHeap(), and littlefoot::LittleFootRemoteHeap< ImplementationClass >::reset().
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
noexcept |
|
staticnoexcept |
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::sendChanges | ( | ImplementationClass & | bi, |
bool | forceSend | ||
) |
References littlefoot::LittleFootRemoteHeap< ImplementationClass >::blockSize, Time::getCurrentTime(), OwnedArray< ObjectClass, TypeOfCriticalSectionToUse >::getLast(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::isAllZero(), OwnedArray< ObjectClass, TypeOfCriticalSectionToUse >::isEmpty(), JUCE_LOG_LITTLEFOOT_HEAP, and RelativeTime::milliseconds().
Referenced by littlefoot::LittleFootRemoteHeap< ImplementationClass >::handleACKFromDevice().
|
noexcept |
References littlefoot::LittleFootRemoteHeap< ImplementationClass >::blockSize, OwnedArray< ObjectClass, TypeOfCriticalSectionToUse >::getUnchecked(), OwnedArray< ObjectClass, TypeOfCriticalSectionToUse >::isEmpty(), JUCE_LOG_LITTLEFOOT_HEAP, OwnedArray< ObjectClass, TypeOfCriticalSectionToUse >::removeRange(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::resetDeviceStateToUnknown(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::sendChanges(), and OwnedArray< ObjectClass, TypeOfCriticalSectionToUse >::size().
|
noexcept |
const size_t littlefoot::LittleFootRemoteHeap< ImplementationClass >::blockSize |
Referenced by littlefoot::LittleFootRemoteHeap< ImplementationClass >::getByte(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::handleACKFromDevice(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::isProgramLoaded(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::sendChanges(), littlefoot::LittleFootRemoteHeap< ImplementationClass >::setBits(), and littlefoot::LittleFootRemoteHeap< ImplementationClass >::setByte().
|
static |