//---------------------------------------------------------------------------

#ifndef AudioFxFormUnitH
#define AudioFxFormUnitH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include "GeneralDialogPanel.h"
#include "TextButton.h"
#include <Vcl.ExtCtrls.hpp>
#include "ComboBoxComponent.h"
#include "PNGButton.hpp"
#include "SkinTrackBar.h"
//---------------------------------------------------------------------------
class TAudioFxForm : public TForm
{
__published:	// IDE-managed Components
	TGeneralDialogPanel *m_BKGPanel;
	TTextButton *m_btnCancel;
	TTextButton *m_btnOk;
	TPNGButton *m_btnPlay;
	TPNGButton *m_btnStop;
	TPNGButton *m_btnPowerOn;
	TPNGButton *m_btnLoop;
	TLabel *m_lblPreset;
	TComboBoxComponent *m_cbPreset;
	TSkinTrackBar *m_tbPosition;
	TLabel *m_lblNoParams;
	TPanel *m_panShow;
	TPNGButton *m_btnPowerOff;
	void __fastcall PlayClick(TObject *Sender);
	void __fastcall PowerClick(TObject *Sender);
	void __fastcall StopClick(TObject *Sender);
	void __fastcall LoopClick(TObject *Sender);
	void __fastcall PresetChange(TComboBoxItem *Sender, int Index);
	void __fastcall PositionChange(TObject *Sender);
	void __fastcall TrackBarChange(TObject *Sender);
	void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
	void __fastcall FormResize(TObject *Sender);
	void __fastcall FormCreate(TObject *Sender);
	void __fastcall OkClick(TObject *Sender);
private:	// User declarations
	TLabel * m_lstCaption[6];
	TSkinTrackBar * m_lstTrack[6];
	float m_fParam[6];

	int m_iFx, m_iPlugin, m_iTrack, m_iInd;
	bool m_bPowerOn;
	double m_dblStart, m_dblEnd, m_dblStep, m_dblPos;
	int m_iCurrPos;
	UINT m_tTimer, m_tAccuracy;

	MESSAGE void __fastcall UMMediaTime(TMessage &Message);
	MESSAGE void __fastcall UMEditorResize(TMessage &Message);

	BEGIN_MESSAGE_MAP
		MESSAGE_HANDLER(MSG_MEDIATIME, TMessage, UMMediaTime)
		MESSAGE_HANDLER(MSG_VSTEDITORRESIZE, TMessage, UMEditorResize)
	END_MESSAGE_MAP(TForm)

public:		// User declarations
	__fastcall TAudioFxForm( TComponent* Owner, int iTrk, double start, double end,
											int iInd=-1, int iFx=-1, int iPlugin=-1 );
	__fastcall ~TAudioFxForm();

	int __fastcall GetParamCount();
	float* __fastcall GetParams(){ return m_fParam; };
	int __fastcall GetPreset();
	bool __fastcall IsBypass();
};
//---------------------------------------------------------------------------
extern PACKAGE TAudioFxForm *AudioFxForm;
//---------------------------------------------------------------------------
#endif
