summaryrefslogtreecommitdiff
path: root/src/proxyutils.h
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-12-02 21:08:22 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2020-12-02 21:08:22 +0100
commitcb453a9ba70106832eec2cb0feecbd91d2e8b7d7 (patch)
treec23efc7f1ad1679fe906c43f6886e1c78c0308c5 /src/proxyutils.h
parent4f7f378d8d6f9ec93d7e024ce73cda6b177fc490 (diff)
Fix callbacks for IOrganizer when plugin are unloaded/loaded.
Diffstat (limited to 'src/proxyutils.h')
-rw-r--r--src/proxyutils.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/proxyutils.h b/src/proxyutils.h
index 4f26c070..6c85ba14 100644
--- a/src/proxyutils.h
+++ b/src/proxyutils.h
@@ -21,6 +21,21 @@ namespace MOShared {
};
}
+ // We need to connect to the organizer.
+ template <class Signal, class T = int>
+ auto callSignalIfPluginActive(OrganizerProxy* proxy, const Signal& signal, T defaultReturn = T{}) {
+ return callIfPluginActive(proxy, [&signal](auto&&... args) {
+ return signal(std::forward<decltype(args)>(args)...);
+ }, defaultReturn);
+ }
+
+ template <class Signal, class T = int>
+ auto callSignalAlways(const Signal& signal) {
+ return [&signal](auto&&... args) {
+ return signal(std::forward<decltype(args)>(args)...);
+ };
+ }
+
}
#endif