1 /*---------------------------------------------------------------------------*
2   Project:  HIO2 demos - dual
3   File:     dual.h
4 
5   (C)2005 HUDSON SOFT
6 
7   $Header: /home/cvsroot/SDK/build/demos/hio2demo/vc++/dual/dual.h,v 1.3 2006/03/15 06:31:26 mitu Exp $
8 
9   $NoKeywords: $
10  *---------------------------------------------------------------------------*/
11 
12 // dual.h : main header file for the dual application
13 //
14 #pragma once
15 
16 #ifndef __AFXWIN_H__
17 	#error include 'stdafx.h' before including this file for PCH
18 #endif
19 
20 #include "resource.h"       // main symbols
21 
22 //#define	PROTOCOL_USED
23 
24 ////////// for dualApp //////////
25 #include "Hio2IfHost.h"
26 #include "../../include/dual.h"
27 
28 // CDualApp:
29 // See dual.cpp for the implementation of this class
30 //
31 
32 class CDualApp : public CWinApp
33 {
34 ////////// for dualApp //////////
35 public:
36 	typedef enum
37 	{
38 		APP_HIOIF_SEND	= 0,
39 		APP_HIOIF_RECV,
40 		APP_HIOIF_MAX
41 	} APP_HIOIF_TYPE;
42 
43 	enum APP_MES
44 	{
45 		APP_MES_ID = 9999,
46 		APP_MES_CONNECT,
47 		APP_MES_DISCONNECT
48 	};
49 
50 	CHio2If*	m_pHioIf;
51 	volatile HIO2IF_ID	m_nSendID;
52 	volatile HIO2IF_ID	m_nRecvID;
53 	volatile HANDLE	m_hThread;
54 	volatile BOOL	m_bThreadBreak;
55 	volatile BOOL	m_bSync;
56 
57 	BOOL	HioIfInit();
58 	BOOL	HioIfExit();
59 	void	StopReadFreeThread();
60 	HIO2IF_RESULT	SendRGB(LPRGBQUAD pRGB);
61 	LPCSTR	GetStatus(APP_HIOIF_TYPE nType);
62 	void	Disconnect(HIO2IF_ID id);
63 
64 	BYTE	m_byRecvBuf[DUAL_BUFFER_SIZE];
65 	BYTE	m_bySendBuf[DUAL_BUFFER_SIZE];
66 
67 private:
68 	int	m_nIDCount;
69 	HIO2IF_ID	m_nOpenID[APP_HIOIF_MAX];
70 
71 public:
72 	CDualApp();
73 
74 
75 // Overrides
76 public:
77 	virtual BOOL InitInstance();
78 
79 // Implementation
80 	afx_msg void OnAppAbout();
81 	DECLARE_MESSAGE_MAP()
82 	virtual int ExitInstance();
83 };
84 
85 extern CDualApp theApp;
86 
87 ////////// for dualApp //////////
88 
89 ///////////////////////////////////////////////////////////////////////////////
90 //
91 // Get App Interface
92 //
93 
94 static inline
GetApp()95 CDualApp*	GetApp()
96 {
97 	return ((CDualApp *)AfxGetApp());
98 }
99 
100 static inline
GetAppHioIf()101 CHio2If*	GetAppHioIf()
102 {
103 	return ((CDualApp *)AfxGetApp())->m_pHioIf;
104 }
105 
106 // end of dual.h
107