1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /*
- * 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
|