Send screenshot to remote instance

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2022-02-09 17:44:38 +00:00
parent fff4d6f61d
commit be0ae63541
No known key found for this signature in database
GPG key ID: CDBAA37ABC74FBA0
3 changed files with 30 additions and 5 deletions

View file

@ -60,5 +60,6 @@ bool isRemoteConnected();
bool isRemoteAutoDeployed(); bool isRemoteAutoDeployed();
void setRemoteAutoDeploy(bool autoDeploy); void setRemoteAutoDeploy(bool autoDeploy);
void deployToRemote(); void deployToRemote();
void sendScreenshotToRemote(const char* screenshot);
} // namespace patchUtils } // namespace patchUtils

View file

@ -396,7 +396,8 @@ class CardinalPlugin : public CardinalBasePlugin
std::string fAutosavePath; std::string fAutosavePath;
uint64_t fPreviousFrame; uint64_t fPreviousFrame;
String fStateText; String fStateComment;
String fStateScreenshot;
String fWindowSize; String fWindowSize;
#ifndef HEADLESS #ifndef HEADLESS
@ -767,8 +768,10 @@ protected:
return fWindowSize; return fWindowSize;
#endif #endif
if (std::strcmp(key, "text") == 0) if (std::strcmp(key, "comment") == 0)
return fStateText; return fStateComment;
if (std::strcmp(key, "screenshot") == 0)
return fStateScreenshot;
if (std::strcmp(key, "patch") != 0) if (std::strcmp(key, "patch") != 0)
return String(); return String();
@ -803,9 +806,18 @@ protected:
} }
#endif #endif
if (std::strcmp(key, "text") == 0) if (std::strcmp(key, "comment") == 0)
{ {
fStateText = value; fStateComment = value;
return;
}
if (std::strcmp(key, "screenshot") == 0)
{
fStateScreenshot = value;
#if defined(HAVE_LIBLO) && defined(HEADLESS)
patchUtils::sendScreenshotToRemote(value);
#endif
return; return;
} }

View file

@ -341,6 +341,7 @@ void Scene::onHoverKey(const HoverKeyEvent& e) {
} }
if (e.key == GLFW_KEY_F7 && (e.mods & RACK_MOD_MASK) == 0) { if (e.key == GLFW_KEY_F7 && (e.mods & RACK_MOD_MASK) == 0) {
patchUtils::deployToRemote(); patchUtils::deployToRemote();
window::generateScreenshot();
e.consume(this); e.consume(this);
} }
if (e.key == GLFW_KEY_F9 && (e.mods & RACK_MOD_MASK) == 0) { if (e.key == GLFW_KEY_F9 && (e.mods & RACK_MOD_MASK) == 0) {
@ -543,4 +544,15 @@ void deployToRemote() {
} }
void sendScreenshotToRemote(const char* const screenshot) {
#ifdef HAVE_LIBLO
const lo_address addr = lo_address_new_with_proto(LO_UDP, REMOTE_HOST, REMOTE_HOST_PORT);
DISTRHO_SAFE_ASSERT_RETURN(addr != nullptr,);
lo_send(addr, "/screenshot", "s", screenshot);
lo_address_free(addr);
#endif
}
} // namespace patchUtils } // namespace patchUtils