1 /*---------------------------------------------------------------------------*
2   Project:  Host I/O Interface for HIO2
3   File:     Hio2DllIf.h
4 
5   (C)2005 HUDSON SOFT
6 
7   $Header: /home/cvsroot/SDK/build/demos/hio2demo/vc++/HioIf/include/Hio2DllIf.h,v 1.3 2006/03/15 06:31:25 mitu Exp $
8 
9   $NoKeywords: $
10  *---------------------------------------------------------------------------*/
11 
12 // DLL wrapper class for hio2[D].dll
13 
14 #pragma once
15 
16 #include <revolution/hio2.h>
17 
18 class CHio2DllIf
19 {
20 public:
CHio2DllIf()21 	CHio2DllIf()	{ m_hDll = NULL; };
~CHio2DllIf()22 	~CHio2DllIf()	{ Release(); };
23 
24 	BOOL	Create();
25 	void	Release();
26 
27 	BOOL		Init			( void );
28 	s32			EnumDevices		( HIO2EnumCallback callback, void* param );
29 	HIO2Handle	Open			( HIO2DevicePath pathName, HIO2ReceiveCallback callback, HIO2NotifyCallback notify, void* param);
30 	BOOL		Close			( HIO2Handle h );
31 	BOOL		ReadMailbox		( HIO2Handle h, u32* mail );
32 	BOOL		WriteMailbox	( HIO2Handle h, u32  mail );
33 	BOOL		Read			( HIO2Handle h, u32 addr, void* buffer, s32 size );
34 	BOOL		Write			( HIO2Handle h, u32 addr, const void* buffer, s32 size );
35 	BOOL		ReadAsync		( HIO2Handle h, u32 addr, void* buffer, s32 size, HIO2DmaCallback callback );
36 	BOOL		WriteAsync		( HIO2Handle h, u32 addr, const void* buffer, s32 size, HIO2DmaCallback callback );
37 	BOOL		ReadStatus		( HIO2Handle h, u32* status );
38 	void		Exit			( void );
39 	HIO2Error	GetLastError	( void );
40 
41 protected:
42 	HIO2EnumDevicesType		m_fncEnumDevices;
43 	HIO2InitType			m_fncInit;
44 	HIO2OpenType			m_fncOpen;
45 	HIO2CloseType			m_fncClose;
46 	HIO2ReadMailboxType		m_fncReadMailbox;
47 	HIO2WriteMailboxType	m_fncWriteMailbox;
48 	HIO2ReadType			m_fncRead;
49 	HIO2WriteType			m_fncWrite;
50 	HIO2ReadAsyncType		m_fncReadAsync;
51 	HIO2WriteAsyncType		m_fncWriteAsync;
52 	HIO2ReadStatusType		m_fncReadStatus;
53 	HIO2ExitType			m_fncExit;
54 	HIO2GetLastErrorType	m_fncGetLastError;
55 
56 	HINSTANCE	m_hDll;
57 };
58 
59 // end of Hio2DllIf.h
60