#ifndef _MUSDIALOG_HPP_ #define _MUSDIALOG_HPP_ #include #include #include #include #include #include #include class MUSDlg : public Window, private MUSConverter { public: MUSDlg(Window &parentWindow,String midiPathFileName,String musPathFileName); MUSDlg(DWindow &parentWindow,String midiPathFileName,String musPathFileName); ~MUSDlg(); WORD performDialog(void); protected: WORD virtual handleScoreStart(void); WORD virtual handleReleaseNote(PureEvent &pureEvent,PureDelay &pureDelay,PureNote &releaseNote,BYTE trackNumber); WORD virtual handlePlayNote(PureEvent &pureEvent,PureDelay &pureDelay,PureNote &playNote,BYTE trackNumber); WORD virtual handlePitchBend(PureEvent &pureEvent,PureDelay &pureDelay,BYTE pitchBenderValue,BYTE trackNumber); WORD virtual handleReset(PureEvent &pureEvent,PureDelay &pureDelay,BYTE tempoValue,BYTE trackNumber); WORD virtual handleController(PureEvent &pureEvent,PureDelay &pureDelay,PureController &pureController,BYTE trackNumber); WORD virtual handleScoreEnd(PureDelay &pureDelay); private: enum{xTrack=35,yTrack=40,xTempo=98,yTempo=40}; enum{btnRed=192,btnGreen=192,btnBlue=192}; enum{CaptionHeight=20,StartOrdinal=5020,EndOrdinal=5194}; CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); CallbackData::ReturnType createHandler(CallbackData &someCallbackData); CallbackData::ReturnType drawItemHandler(CallbackData &someCallbackData); CallbackData::ReturnType paintHandler(CallbackData &someCallbackData); CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType closeHandler(CallbackData &someCallbackData); CallbackData::ReturnType controlColorHandler(CallbackData &someCallbackData); void registerClass(void)const; void insertHandlers(void); void removeHandlers(void); void createDialogControls(void); void handleTempoDnEvent(void); void handleTempoUpEvent(void); void handleConvertFileEvent(void); void loadInstruments(void); void setMessage(String messageString)const; void yieldTask(void)const; WORD isComponentWnd(HWND hWnd)const; Callback mCommandHandler; Callback mCreateHandler; Callback mDrawItemHandler; Callback mPaintHandler; Callback mDestroyHandler; Callback mCloseHandler; Callback mControlColorHandler; OwnerDraw mOwnerDraw; LedDisplay *mlpLedTrackDisplay; LedDisplay *mlpLedTempoDisplay; LinkedBitmap mLinkedBitmap; HWND mhButtonUpWnd; HWND mhButtonDnWnd; HWND mhButtonCvtWnd; HWND mhListBoxWnd; HWND mhStaticWnd; HWND mhParentWnd; HBRUSH mhGrayBrush; String mOutputPathFileName; HINSTANCE mhInstance; static char szClassName[]; static char szMenuName[]; }; inline void MUSDlg::setMessage(String messageString)const { ::SendMessage(mhStaticWnd,WM_SETTEXT,0,(LPARAM)(LPSTR)messageString); } #endif