80 lines
2.9 KiB
C++
80 lines
2.9 KiB
C++
#ifndef _MUSDIALOG_HPP_
|
|
#define _MUSDIALOG_HPP_
|
|
#include <common/window.hpp>
|
|
#include <common/dwindow.hpp>
|
|
#include <common/string.hpp>
|
|
#include <common/owner.hpp>
|
|
#include <common/bitmap.hpp>
|
|
#include <midiwrt/muscnv.hpp>
|
|
#include <midiwrt/led.hpp>
|
|
|
|
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<MUSDlg> mCommandHandler;
|
|
Callback<MUSDlg> mCreateHandler;
|
|
Callback<MUSDlg> mDrawItemHandler;
|
|
Callback<MUSDlg> mPaintHandler;
|
|
Callback<MUSDlg> mDestroyHandler;
|
|
Callback<MUSDlg> mCloseHandler;
|
|
Callback<MUSDlg> 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
|
|
|