ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mspthrd.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 1607 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef __MSPTHRD_H
7 #define __MSPTHRD_H
8
9 typedef enum {
10 WORK_ITEM,STOP
11 } COMMAND;
12
13 typedef struct {
14 COMMAND cmd;
15 LPTHREAD_START_ROUTINE pfn;
16 PVOID pContext;
17 HANDLE hEvent;
18 } COMMAND_NODE;
19
20 typedef struct {
21 LIST_ENTRY link;
22 COMMAND_NODE node;
23 } COMMAND_QUEUE_ITEM;
24
25 typedef struct _NOTIF_LIST {
26 CMSPAddress *addr;
27 _NOTIF_LIST *next;
28 } NOTIF_LIST,*PNOTIF_LIST;
29
30 class CMSPThread {
31 public:
32 CMSPThread() {
33 InitializeListHead(&m_CommandQueue);
34 m_hCommandEvent = NULL;
35 m_hThread = NULL;
36 m_NotifList = NULL;
37 m_iStartCount = 0;
38 }
39 ~CMSPThread() { };
40 HRESULT Start();
41 HRESULT Stop();
42 HRESULT Shutdown();
43 HRESULT ThreadProc();
44 static LRESULT CALLBACK NotifWndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
45 HRESULT RegisterPnpNotification(CMSPAddress *pCMSPAddress);
46 HRESULT UnregisterPnpNotification(CMSPAddress *pCMSPAddress);
47 HRESULT QueueWorkItem(LPTHREAD_START_ROUTINE Function,PVOID Context,WINBOOL fSynchronous);
48 private:
49 WINBOOL SignalThreadProc() { return SetEvent(m_hCommandEvent); }
50 CMSPCritSection m_CountLock;
51 CMSPCritSection m_QueueLock;
52 int m_iStartCount;
53 LIST_ENTRY m_CommandQueue;
54 HANDLE m_hCommandEvent;
55 HANDLE m_hThread;
56 HDEVNOTIFY m_hDevNotifyVideo;
57 HDEVNOTIFY m_hDevNotifyAudio;
58 HWND m_hWndNotif;
59 PNOTIF_LIST m_NotifList;
60 CMSPCritSection m_NotifLock;
61 };
62
63 extern CMSPThread g_Thread;
64 #endif