📄 lf_startplay.h
字号:
#ifndef __LF_STARTPLAY_H__
#define __LF_STARTPLAY_H__
#include "threads.h"
///////////////////////////////////////
// Thread API definition area
///////////////////////////////////////
#if HAVE_PTHREAD_H
#define LF_INFINITE 0xFFFFFFFF
#define LF_WAIT_TIMEOUT ETIMEDOUT
#define LF_WAIT_FAILED -1
#define LF_WAIT_0 0
typedef pthread_mutex_t LF_LOCK;
typedef struct _LF_EVENT
{
int ref;
pthread_mutex_t mutex;
pthread_cond_t cond;
} LF_EVENT;
typedef LF_EVENT* LF_PEVENT;
W_DWORD WaitForMultipleObjects(W_DWORD nCount, LF_PEVENT* hEvent,int fWaitAll, W_DWORD timeout_value);
///////////////////////////////////////
#elif defined(WIN32)
#define LF_INFINITE INFINITE
#define LF_WAIT_TIMEOUT WAIT_TIMEOUT
#define LF_WAIT_FAILED WAIT_FAILED
#define LF_WAIT_0 WAIT_OBJECT_0
typedef CRITICAL_SECTION LF_LOCK;
typedef void* LF_PEVENT;
#endif
#define THREAD_EVENTS 10
enum
{
THREAD_POPUP_WINDOW = 0x1010,
THREAD_SWI_WINDOW,
THREAD_SWI_ACCESSORY,
THREAD_REDRAW_WIDGET,
THREAD_DESTROY_WINDOW,
};
typedef Fl_Thread LF_Thread;
typedef struct _ThreadEvent
{
int event;
fltk::DefWindow DefW;
} ThreadEvent;
typedef struct _ThreadEvent_Bank
{
int number;
ThreadEvent pEvent[THREAD_EVENTS];
} ThreadEvent_Bank;
///////////////////////////////////
W_DWORD LF_WaitForProcEvent(W_DWORD nCount, LF_PEVENT* hEvent,int fWaitAll, W_DWORD timeout_value);
void LF_ResetEvent(LF_PEVENT pEvent);
int LF_SetEvent(LF_PEVENT pEvent);
LF_PEVENT LF_CreateEvent(void);
void LF_CloseEvent(LF_PEVENT pEvent);
void LF_UnLock(LF_LOCK* lock);
void LF_Lock(LF_LOCK* lock);
void LF_LockFree(LF_LOCK* lock);
void LF_LockInitial(LF_LOCK* lock);
void LF_ThreadInit(void);
void LF_InstallThreads(void);
W_DWORD LF_WaitForThreadExit(void);
void* LF_EventProc(void* p);
void* LF_PackageProc(void *p);
void LF_SendThreadEvent(fltk::DefWindow* pDefW,int event);
void LF_ThreadEventCallback(void);
#endif // End of __LF_THREAD_H__
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -