winamp/Src/external_dependencies/openmpt-trunk/mptrack/OPLInstrDlg.h
2024-09-24 14:54:57 +02:00

50 lines
1.3 KiB
C++

/*
* OPLInstrDlg.h
* -------------
* Purpose: Editor for OPL-based synth instruments
* Notes : (currently none)
* Authors: 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 "../soundlib/Snd_defs.h"
OPENMPT_NAMESPACE_BEGIN
class CSoundFile;
class OPLInstrDlg : public CDialog
{
CButton m_additive, m_sustain[2], m_scaleEnv[2], m_vibrato[2], m_tremolo[2];
CSliderCtrl m_feedback, m_attackRate[2], m_decayRate[2], m_sustainLevel[2], m_releaseRate[2], m_volume[2], m_levelScaling[2], m_freqMultiplier[2];
CComboBox m_waveform[2];
CSize m_windowSize;
CWnd &m_parent;
const CSoundFile &m_sndFile;
OPLPatch *m_patch;
public:
OPLInstrDlg(CWnd &parent, const CSoundFile &sndFile);
~OPLInstrDlg();
void SetPatch(OPLPatch &patch);
CSize GetMinimumSize() const { return m_windowSize; }
protected:
void ParamsChanged();
void DoDataExchange(CDataExchange *pDX) override;
BOOL OnInitDialog() override;
BOOL PreTranslateMessage(MSG *pMsg) override;
void OnOK() override { }
void OnCancel() override { }
void OnHScroll(UINT, UINT, CScrollBar *) { ParamsChanged(); }
LRESULT OnDragonDropping(WPARAM wParam, LPARAM lParam);
BOOL OnToolTip(UINT id, NMHDR *pNMHDR, LRESULT *pResult);
DECLARE_MESSAGE_MAP()
};
OPENMPT_NAMESPACE_END