1 /*---------------------------------------------------------------------------*
2 Project: HIO2 demos - multi
3 File: multi.h
4
5 (C)2005 HUDSON SOFT
6
7 $Header: /home/cvsroot/SDK/build/demos/hio2demo/vc++/multi/multi.h,v 1.3 2006/03/15 06:31:26 mitu Exp $
8
9 $NoKeywords: $
10 *---------------------------------------------------------------------------*/
11
12 // multi.h : main header file for the multi 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 multiApp //////////
25
26 #include <win32/mytl.h> // NNGC SDK : $(ROOT)/include/win32
27 #include "Hio2IfHost.h"
28 #include "../../include/multi.h"
29
30 // CMultiApp:
31 // See multi.cpp for the implementation of this class
32 //
33
34 class CMultiApp : public CWinApp
35 {
36 ////////// for multiApp //////////
37 public:
38 typedef struct _APPINFO
39 {
_APPINFO_APPINFO40 _APPINFO()
41 {
42 m_nHioIfID = HIO2IF_INVALID_ID;
43 m_bSync = FALSE;
44 ZeroMemory((LPVOID)&m_stPacket, sizeof(m_stPacket));
45 #ifndef HW0
46 m_pDevice = NULL;
47 #else // HW0
48 m_pDevice = -1;
49 #endif // HW0
50 }
51
~_APPINFO_APPINFO52 ~_APPINFO()
53 {
54 #ifndef HW0
55 if ( m_pDevice != NULL ) delete [] m_pDevice;
56 #endif // HW0
57 }
58
59 HIO2DevicePath m_pDevice;
60 HIO2IF_ID m_nHioIfID;
61 BOOL m_bSync;
62 volatile MULTI_PACKET m_stPacket;
63 } APPINFO, *LPAPPINFO;
64
65 CHio2If* m_pHioIf;
66 volatile HANDLE m_hThread;
67 volatile BOOL m_bThreadBreak;
68 TMYList<LPAPPINFO> m_cInfoList;
69
70 BOOL HioIfInit();
71 void CreateInfo();
72 BOOL HioIfExit();
73 void StopPollingThread();
GetStatus(HIO2IF_ID nID)74 LPCSTR GetStatus(HIO2IF_ID nID)
75 {
76 static LPCSTR l_lpszDeviceName[HIO2_CHAN_MAX + 2] =
77 { "UNKOWN", "EXI2USB0", "EXI2USB1", "MrEXI" };
78
79 m_cStrStatus.Format("CHAN : %s, PC%d, NNGC %s",
80 (m_pHioIf->IsConnected(nID) ? "CONNECT" : "DISCONNECT"),
81 m_pHioIf->GetPcChan(nID),
82 l_lpszDeviceName[m_pHioIf->GetDeviceType(nID) + 1]
83 );
84 return (LPCSTR)m_cStrStatus;
85 };
86 void Connect(HIO2IF_ID id);
87 void Disconnect(HIO2IF_ID id);
88 void CreatePcTime(MULTI_PACKET* pPacket);
89
90 private:
91 CString m_cStrStatus;
92
93 public:
94 CMultiApp();
95
96
97 // Overrides
98 public:
99 virtual BOOL InitInstance();
100
101 // Implementation
102 afx_msg void OnAppAbout();
103 DECLARE_MESSAGE_MAP()
104 virtual int ExitInstance();
105 };
106
107 extern CMultiApp theApp;
108
109 static inline
GetApp()110 CMultiApp* GetApp()
111 {
112 return ((CMultiApp *)AfxGetApp());
113 }
114
115 // the comparison function specified in m_cInfoList.IndexOf()
116 BOOL MultiCompID(CMultiApp::LPAPPINFO pItem, LPVOID pData);
117