Initial
This commit is contained in:
70
sample/DevHndlr.hpp
Normal file
70
sample/DevHndlr.hpp
Normal file
@@ -0,0 +1,70 @@
|
||||
#ifndef _SAMPLE_DEVICEHANDLER_HPP_
|
||||
#define _SAMPLE_DEVICEHANDLER_HPP_
|
||||
#ifndef _COMMON_WINDOW_HPP_
|
||||
#include <common/window.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_MMSYSTEM_HPP_
|
||||
#include <common/mmsystem.hpp>
|
||||
#endif
|
||||
|
||||
class DeviceHandler
|
||||
{
|
||||
public:
|
||||
enum PlayMode{Wait,NoWait};
|
||||
DeviceHandler(Window &windowHandler);
|
||||
DeviceHandler(const DeviceHandler &someDeviceHandler);
|
||||
virtual ~DeviceHandler();
|
||||
WORD operator==(const DeviceHandler &someDeviceHandler)const;
|
||||
DeviceHandler &operator=(const DeviceHandler &someDeviceHandler);
|
||||
protected:
|
||||
enum ErrorCode{InvalidFormat,InvalidDeviceHandle,InvalidHeader};
|
||||
virtual void openHandler(CallbackData &someCallbackData);
|
||||
virtual void closeHandler(CallbackData &someCallbackData);
|
||||
virtual void doneHandler(CallbackData &someCallbackData);
|
||||
virtual void message(const String &strErrorMessage)const;
|
||||
void mmSystemErrorMessage(MMRESULT mmResult)const;
|
||||
void genericErrorMessage(ErrorCode errorCode)const;
|
||||
private:
|
||||
void insertHandlers(void);
|
||||
void removeHandlers(void);
|
||||
CallbackData::ReturnType mmOpenHandler(CallbackData &someCallbackData);
|
||||
CallbackData::ReturnType mmCloseHandler(CallbackData &someCallbackData);
|
||||
CallbackData::ReturnType mmDoneHandler(CallbackData &someCallbackData);
|
||||
Callback<DeviceHandler> mMMOpenHandler;
|
||||
Callback<DeviceHandler> mMMCloseHandler;
|
||||
Callback<DeviceHandler> mMMDoneHandler;
|
||||
Window &mWindowHandler;
|
||||
};
|
||||
|
||||
inline
|
||||
DeviceHandler::DeviceHandler(Window &windowHandler)
|
||||
: mWindowHandler(windowHandler)
|
||||
{
|
||||
mMMOpenHandler.setCallback(this,&DeviceHandler::mmOpenHandler);
|
||||
mMMCloseHandler.setCallback(this,&DeviceHandler::mmCloseHandler);
|
||||
mMMDoneHandler.setCallback(this,&DeviceHandler::mmDoneHandler);
|
||||
insertHandlers();
|
||||
}
|
||||
|
||||
inline
|
||||
DeviceHandler::DeviceHandler(const DeviceHandler &someDeviceHandler)
|
||||
: mWindowHandler(someDeviceHandler.mWindowHandler)
|
||||
{
|
||||
mMMOpenHandler.setCallback(this,&DeviceHandler::mmOpenHandler);
|
||||
mMMCloseHandler.setCallback(this,&DeviceHandler::mmCloseHandler);
|
||||
mMMDoneHandler.setCallback(this,&DeviceHandler::mmDoneHandler);
|
||||
insertHandlers();
|
||||
}
|
||||
|
||||
inline
|
||||
DeviceHandler::~DeviceHandler()
|
||||
{
|
||||
removeHandlers();
|
||||
}
|
||||
|
||||
inline
|
||||
DeviceHandler &DeviceHandler::operator=(const DeviceHandler &/*someDeviceHandler*/)
|
||||
{
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user