File size: 747 Bytes
68398ab
 
 
6c4aa19
68398ab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6c4aa19
 
68398ab
6c4aa19
68398ab
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#pragma once

#include <juce_core/juce_core.h>
#include <string>
#include <thread>
#include <atomic>

class HelperPluginHost;

class HelperIPC
{
public:
    HelperIPC(int parentPid, HelperPluginHost& host);
    ~HelperIPC();

    bool connect();
    void disconnect();

    void sendReady();
    void sendGuiReady(const juce::String& portName, int width, int height);
    void sendGuiResized(int width, int height);
    void sendParamChanged(int index, float value);
    void sendMessage(const juce::String& jsonStr);

private:
    void listenLoop();
    void handleMessage(const juce::String& message);

    int parentPid;
    HelperPluginHost& host;

    int socketFd = -1;
    std::thread listenThread;
    std::atomic<bool> running{false};
};