#ifndef SMXPanelAnimationUpload_h #define SMXPanelAnimationUpload_h #include "SMXPanelAnimation.h" // For SMX_API: #include "../SMX.h" // This is used to upload panel animations to the firmware. This is // only needed for offline animations. For live animations, either // use SMX_LightsAnimation_SetAuto, or to control lights directly // (recommended), use SMX_SetLights. animations[] contains the animations // to load. // // Prepare the currently loaded animations to be stored on the pad. // Return false with an error message on error. // // All LightTypes must be loaded before beginning the upload. // // If a lights upload is already in progress, returns an error. SMX_API bool SMX_LightsUpload_PrepareUpload(int pad, SMX_LightsType type, const SMXPanelAnimation animations[9], const char **error); typedef void SMX_LightsUploadCallback(int progress, void *pUser); // After a successful call to SMX_LightsUpload_PrepareUpload, begin uploading data // to the master controller for the given pad and animation type. // // The callback will be called as the upload progresses, with progress values // from 0-100. // // callback will always be called exactly once with a progress value of 100. // Once the 100% progress is called, the callback won't be accessed, so the // caller can safely clean up. This will happen even if the pad disconnects // partway through the upload. // // The callback will be called from the user callback helper thread. SMX_API void SMX_LightsUpload_BeginUpload(int pad, SMX_LightsUploadCallback callback, void *pUser); #endif