//--------------------------------------------------------------------------- #ifndef MicSetFormUnitH #define MicSetFormUnitH //--------------------------------------------------------------------------- #include #include #include #include #include #include #include "PNGButton.hpp" #include #include #include #include "PopMenuUnit.h" //--------------------------------------------------------------------------- #define MB_CHECKED 0x100 #define MB_UNCHECKED 0x200 typedef struct tagDeviceInfo{ int iDevice; char name[256]; // description DWORD flags; tagDeviceInfo(){ memset( this, 0, sizeof(tagDeviceInfo) ); } tagDeviceInfo( tagDeviceInfo* src ){ memcpy( this, src, sizeof(tagDeviceInfo) ); } } IO_DEVICE_INFO; class TMicSetForm : public TForm { __published: // IDE-managed Components TImage *m_imgBk; TPNGButton *m_btnOk; TPNGButton *m_btnCancel; TLabel *m_lblRecDevOrOutput; TComboBox *m_cbRecDevOrOutput; TLabel *m_lblVolume; TTrackBar *m_tbVolume; TPaintBox *m_pbAutoCheck; TLabel *m_lblAutoAdjust; TLabel *m_lblHintMsg; TLabel *m_lblCaption; TImage *m_imgLog; TPNGButton *m_btnClose; TComboBox *m_cbInput; TLabel *m_lblInput; TLabel *m_lblHint; TLabel *m_lblLatency; TLabel *m_lblLatencyTime; TLabel *m_lblMoniter; TPaintBox *m_pbMoniter; TLabel *m_lblOutput; TComboBox *m_cbPlayDev; TLabel *m_lblASIO; TLabel *m_lblType; TRadioButton *m_rbCommon; TRadioButton *m_rbWASAPI; TRadioButton *m_rbASIO; void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); void __fastcall CheckPaint(TObject *Sender); void __fastcall CheckClick(TObject *Sender); // void __fastcall CheckMessageClick(TObject *Sender); // void __fastcall CancelClick(TObject *Sender); void __fastcall OkClick(TObject *Sender); void __fastcall FormCreate(TObject *Sender); void __fastcall RecDevOrOutputChange(TObject *Sender); void __fastcall VolumeChange(TObject *Sender); void __fastcall InputChange(TObject *Sender); void __fastcall PlayDevChange(TObject *Sender); // void __fastcall ASIOClick(TObject *Sender); void __fastcall FormClose(TObject *Sender, TCloseAction &Action); void __fastcall ASIOMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall DeviceTypeClick(TObject *Sender); private: // User declarations TBitmap * m_pImgCheck; TTimer *m_pTimerLatency; bool m_bAutoAdjust, m_bMoniter; /* int m_iCurrPlaybackDevice, m_iCurrOutput, m_iCurrRecordDevice, m_iCurrInput; int m_iASIOStart; bool m_bASIO; */ TPopMenu *m_PopupMenu; //µ¯³ö²Ëµ¥ IO_DEVICE_INFO m_aPbDevs[20], m_aRcDevs[20]; int m_iCurrPlaybackDevice, m_iCurrOutput, m_iCurrRecordDevice, m_iCurrInput; vector m_aCommonPb, m_aCommonRc, m_aWasapiPb, m_aWasapiRc, m_aAsioPb, m_aMidiRc; void ReloadPlayDev(); void ReloadRecDev(); void ReloadOutput(); void ReloadInput(); void BeginRecordTest( bool bStart=true ); void ShowErrorMessage( int err ); void __fastcall DoShowPanel(TObject* Sender); void __fastcall DoRestart(TObject* Sender); void __fastcall LatencyTimerProc(TObject* Sender); MESSAGE void __fastcall WMNCHitTest(TWMNCHitTest &Msg); MESSAGE void __fastcall UMRecordVolJust(TMessage &Message); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_NCHITTEST, TWMNCHitTest, WMNCHitTest) MESSAGE_HANDLER(MSG_RECORD_VOLJUST, TMessage, UMRecordVolJust) END_MESSAGE_MAP(TForm) public: // User declarations __fastcall TMicSetForm(TComponent* Owner); __fastcall ~TMicSetForm(); // void _fastcall SetCheckMessage( String strMessage ); int __fastcall ShowMessage( const String AMessage, int AType=MB_ICONINFORMATION|MB_OK ); }; //--------------------------------------------------------------------------- extern PACKAGE TMicSetForm *MicSetForm; //--------------------------------------------------------------------------- #endif