52class PluginScannerSubprocess final
53 :
private juce::ChildProcessWorker,
54 private juce::AsyncUpdater,
56 public juce::JUCEApplication
59 PluginScannerSubprocess ();
60 ~PluginScannerSubprocess ()
override;
61 JUCE_DECLARE_NON_COPYABLE (PluginScannerSubprocess)
62 JUCE_DECLARE_NON_MOVEABLE (PluginScannerSubprocess)
65 void handleMessageFromCoordinator (
const juce::MemoryBlock &mb)
override;
66 void handleConnectionLost ()
override;
67 void handleAsyncUpdate ()
override;
68 const juce::String getApplicationName ()
override
70 return "Zrythm Plugin Scanner";
72 const juce::String getApplicationVersion ()
override {
return "v1"; }
73 bool moreThanOneInstanceAllowed ()
override {
return true; }
74 void initialise (
const juce::String &commandLineParameters)
override;
75 void shutdown ()
override;
76 void anotherInstanceStarted (
const juce::String &commandLine)
override;
77 void systemRequestedQuit ()
override;
78 void suspended ()
override;
79 void resumed ()
override;
81 juce::OwnedArray<juce::PluginDescription>
82 do_scan (
const juce::MemoryBlock &block);
83 void send_results (
const juce::OwnedArray<juce::PluginDescription> &results);
85 bool has_timed_out ()
const;
86 void timerCallback ()
override;
94 std::queue<juce::MemoryBlock> pending_blocks_;
95 juce::AudioPluginFormatManager format_manager_;
96 std::unique_ptr<juce::FileLogger> file_logger_;
99 std::chrono::steady_clock::time_point start_time_;