Browse Source

Send screenshot to remote instance

Signed-off-by: falkTX <falktx@falktx.com>
tags/22.02
falkTX 3 years ago
parent
commit
be0ae63541
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
3 changed files with 30 additions and 5 deletions
  1. +1
    -0
      src/CardinalCommon.hpp
  2. +17
    -5
      src/CardinalPlugin.cpp
  3. +12
    -0
      src/override/Scene.cpp

+ 1
- 0
src/CardinalCommon.hpp View File

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

} // namespace patchUtils

+ 17
- 5
src/CardinalPlugin.cpp View File

@@ -396,7 +396,8 @@ class CardinalPlugin : public CardinalBasePlugin
std::string fAutosavePath;
uint64_t fPreviousFrame;
String fStateText;
String fStateComment;
String fStateScreenshot;
String fWindowSize;
#ifndef HEADLESS
@@ -767,8 +768,10 @@ protected:
return fWindowSize;
#endif
if (std::strcmp(key, "text") == 0)
return fStateText;
if (std::strcmp(key, "comment") == 0)
return fStateComment;
if (std::strcmp(key, "screenshot") == 0)
return fStateScreenshot;
if (std::strcmp(key, "patch") != 0)
return String();
@@ -803,9 +806,18 @@ protected:
}
#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;
}


+ 12
- 0
src/override/Scene.cpp View File

@@ -341,6 +341,7 @@ void Scene::onHoverKey(const HoverKeyEvent& e) {
}
if (e.key == GLFW_KEY_F7 && (e.mods & RACK_MOD_MASK) == 0) {
patchUtils::deployToRemote();
window::generateScreenshot();
e.consume(this);
}
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

Loading…
Cancel
Save