aboutsummaryrefslogtreecommitdiff
path: root/Src/external_dependencies/openmpt-trunk/mptrack/SelectPluginDialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/mptrack/SelectPluginDialog.h')
-rw-r--r--Src/external_dependencies/openmpt-trunk/mptrack/SelectPluginDialog.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/mptrack/SelectPluginDialog.h b/Src/external_dependencies/openmpt-trunk/mptrack/SelectPluginDialog.h
new file mode 100644
index 00000000..e1f49f7d
--- /dev/null
+++ b/Src/external_dependencies/openmpt-trunk/mptrack/SelectPluginDialog.h
@@ -0,0 +1,92 @@
+/*
+ * SelectPluginDialog.h
+ * --------------------
+ * Purpose: Dialog for adding plugins to a song.
+ * Notes : (currently none)
+ * Authors: Olivier Lapicque
+ * OpenMPT Devs
+ * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
+ */
+
+
+#pragma once
+
+#include "openmpt/all/BuildSettings.hpp"
+#include "ResizableDialog.h"
+#include "../common/ComponentManager.h"
+
+OPENMPT_NAMESPACE_BEGIN
+
+class CModDoc;
+struct SNDMIXPLUGIN;
+struct VSTPluginLib;
+class ComponentPluginBridge_x86;
+class ComponentPluginBridgeLegacy_x86;
+class ComponentPluginBridge_amd64;
+class ComponentPluginBridgeLegacy_amd64;
+#if defined(MPT_WITH_WINDOWS10)
+class ComponentPluginBridge_arm;
+class ComponentPluginBridgeLegacy_arm;
+class ComponentPluginBridge_arm64;
+class ComponentPluginBridgeLegacy_arm64;
+#endif // MPT_WITH_WINDOWS10
+
+class CSelectPluginDlg : public ResizableDialog
+{
+protected:
+ SNDMIXPLUGIN *m_pPlugin = nullptr;
+ CModDoc *m_pModDoc = nullptr;
+ CTreeCtrl m_treePlugins;
+ CButton m_chkBridge;
+ CButton m_chkShare;
+ CButton m_chkLegacyBridge;
+ mpt::ustring m_nameFilter;
+#ifdef MPT_WITH_VST
+ ComponentHandle<ComponentPluginBridge_x86> pluginBridge_x86;
+ ComponentHandle<ComponentPluginBridgeLegacy_x86> pluginBridgeLegacy_x86;
+ ComponentHandle<ComponentPluginBridge_amd64> pluginBridge_amd64;
+ ComponentHandle<ComponentPluginBridgeLegacy_amd64> pluginBridgeLegacy_amd64;
+#if defined(MPT_WITH_WINDOWS10)
+ ComponentHandle<ComponentPluginBridge_arm> pluginBridge_arm;
+ ComponentHandle<ComponentPluginBridgeLegacy_arm> pluginBridgeLegacy_arm;
+ ComponentHandle<ComponentPluginBridge_arm64> pluginBridge_arm64;
+ ComponentHandle<ComponentPluginBridgeLegacy_arm64> pluginBridgeLegacy_arm64;
+#endif // MPT_WITH_WINDOWS10
+#endif // !MPT_WITH_VST
+ PLUGINDEX m_nPlugSlot = 0;
+
+public:
+ CSelectPluginDlg(CModDoc *pModDoc, PLUGINDEX pluginSlot, CWnd *parent);
+ ~CSelectPluginDlg();
+
+ static VSTPluginLib *ScanPlugins(const mpt::PathString &path, CWnd *parent);
+ static bool VerifyPlugin(VSTPluginLib *plug, CWnd *parent);
+
+protected:
+ HTREEITEM AddTreeItem(const TCHAR *title, int image, bool sort, HTREEITEM hParent = TVI_ROOT, LPARAM lParam = NULL);
+
+ VSTPluginLib *GetSelectedPlugin();
+ void SaveWindowPos() const;
+
+ void ReloadMissingPlugins(const VSTPluginLib *lib) const;
+
+ void UpdatePluginsList(const VSTPluginLib *forceSelect = nullptr);
+
+ void DoDataExchange(CDataExchange *pDX) override;
+ BOOL OnInitDialog() override;
+ void OnOK() override;
+ void OnCancel() override;
+ BOOL PreTranslateMessage(MSG *pMsg) override;
+
+ DECLARE_MESSAGE_MAP()
+ afx_msg void OnAddPlugin();
+ afx_msg void OnScanFolder();
+ afx_msg void OnRemovePlugin();
+ afx_msg void OnNameFilterChanged();
+ afx_msg void OnSetBridge();
+ afx_msg void OnSelChanged(NMHDR *pNotifyStruct, LRESULT *result);
+ afx_msg void OnSelDblClk(NMHDR *pNotifyStruct, LRESULT *result);
+ afx_msg void OnPluginTagsChanged();
+};
+
+OPENMPT_NAMESPACE_END