mirror of
https://github.com/yuanyuanxiang/SimpleRemoter.git
synced 2026-01-22 07:14:15 +08:00
Improve: Set multi-thread compression as a option for remote control
This commit is contained in:
@@ -118,7 +118,7 @@ IOCPClient::IOCPClient(const State&bExit, bool exit_while_disconnect, int mask,
|
|||||||
#if USING_CTX
|
#if USING_CTX
|
||||||
m_Cctx = ZSTD_createCCtx();
|
m_Cctx = ZSTD_createCCtx();
|
||||||
m_Dctx = ZSTD_createDCtx();
|
m_Dctx = ZSTD_createDCtx();
|
||||||
auto n = ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 4);
|
auto n = ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 0);
|
||||||
if (Z_FAILED(n)) {
|
if (Z_FAILED(n)) {
|
||||||
ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 0);
|
ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 0);
|
||||||
}
|
}
|
||||||
@@ -130,6 +130,18 @@ IOCPClient::IOCPClient(const State&bExit, bool exit_while_disconnect, int mask,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IOCPClient::SetMultiThreadCompress(int threadNum) {
|
||||||
|
#if USING_CTX
|
||||||
|
BOOL failed = TRUE;
|
||||||
|
if (threadNum > 1) {
|
||||||
|
failed = Z_FAILED(ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, threadNum));
|
||||||
|
}
|
||||||
|
if (failed) {
|
||||||
|
ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
IOCPClient::~IOCPClient()
|
IOCPClient::~IOCPClient()
|
||||||
{
|
{
|
||||||
m_bIsRunning = FALSE;
|
m_bIsRunning = FALSE;
|
||||||
|
|||||||
@@ -208,6 +208,7 @@ public:
|
|||||||
{
|
{
|
||||||
return g_bExit;
|
return g_bExit;
|
||||||
}
|
}
|
||||||
|
void SetMultiThreadCompress(int threadNum=0);
|
||||||
protected:
|
protected:
|
||||||
virtual int ReceiveData(char* buffer, int bufSize, int flags)
|
virtual int ReceiveData(char* buffer, int bufSize, int flags)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -421,6 +421,11 @@ VOID CScreenManager::OnReceive(PBYTE szBuffer, ULONG ulLength)
|
|||||||
SwitchScreen();
|
SwitchScreen();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case CMD_MULTITHREAD_COMPRESS: {
|
||||||
|
int threadNum = szBuffer[1];
|
||||||
|
m_ClientObject->SetMultiThreadCompress(threadNum);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case COMMAND_NEXT: {
|
case COMMAND_NEXT: {
|
||||||
NotifyDialogIsOpen();
|
NotifyDialogIsOpen();
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ enum {
|
|||||||
COMMAND_GET_FILE = 67, // <20><>ȡ<EFBFBD>ļ<EFBFBD>
|
COMMAND_GET_FILE = 67, // <20><>ȡ<EFBFBD>ļ<EFBFBD>
|
||||||
COMMAND_SEND_FILE = 68, // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
COMMAND_SEND_FILE = 68, // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||||
COMMAND_SWITCH_SCREEN = 69,
|
COMMAND_SWITCH_SCREEN = 69,
|
||||||
|
CMD_MULTITHREAD_COMPRESS = 70,
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD>ı<EFBFBD>ʶ
|
// <20><><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD>ı<EFBFBD>ʶ
|
||||||
TOKEN_AUTH = 100, // Ҫ<><D2AA><EFBFBD><EFBFBD>֤
|
TOKEN_AUTH = 100, // Ҫ<><D2AA><EFBFBD><EFBFBD>֤
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ enum {
|
|||||||
IDM_SAVEAVI,
|
IDM_SAVEAVI,
|
||||||
IDM_SAVEAVI_H264,
|
IDM_SAVEAVI_H264,
|
||||||
IDM_SWITCHSCREEN,
|
IDM_SWITCHSCREEN,
|
||||||
|
IDM_MULTITHREAD_COMPRESS,
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC(CScreenSpyDlg, CDialog)
|
IMPLEMENT_DYNAMIC(CScreenSpyDlg, CDialog)
|
||||||
@@ -247,7 +248,8 @@ BOOL CScreenSpyDlg::OnInitDialog()
|
|||||||
SysMenu->AppendMenu(MF_SEPARATOR);
|
SysMenu->AppendMenu(MF_SEPARATOR);
|
||||||
SysMenu->AppendMenu(MF_STRING, IDM_GET_CLIPBOARD, "获取剪贴板(&R)");
|
SysMenu->AppendMenu(MF_STRING, IDM_GET_CLIPBOARD, "获取剪贴板(&R)");
|
||||||
SysMenu->AppendMenu(MF_STRING, IDM_SET_CLIPBOARD, "设置剪贴板(&L)");
|
SysMenu->AppendMenu(MF_STRING, IDM_SET_CLIPBOARD, "设置剪贴板(&L)");
|
||||||
SysMenu->AppendMenu(MF_STRING, IDM_SWITCHSCREEN, "切换显示器(&M)");
|
SysMenu->AppendMenu(MF_STRING, IDM_SWITCHSCREEN, "切换显示器(&1)");
|
||||||
|
SysMenu->AppendMenu(MF_STRING, IDM_MULTITHREAD_COMPRESS, "多线程压缩(&2)");
|
||||||
SysMenu->AppendMenu(MF_SEPARATOR);
|
SysMenu->AppendMenu(MF_SEPARATOR);
|
||||||
|
|
||||||
BOOL all = THIS_CFG.GetInt("settings", "MultiScreen");
|
BOOL all = THIS_CFG.GetInt("settings", "MultiScreen");
|
||||||
@@ -642,6 +644,15 @@ void CScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case IDM_MULTITHREAD_COMPRESS:{
|
||||||
|
static int threadNum = 0;
|
||||||
|
threadNum = 4 - threadNum;
|
||||||
|
BYTE bToken[2] = { CMD_MULTITHREAD_COMPRESS, (BYTE)threadNum };
|
||||||
|
m_ContextObject->Send2Client(bToken, sizeof(bToken));
|
||||||
|
SysMenu->CheckMenuItem(nID, threadNum ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case IDM_TRACE_CURSOR: { // 跟踪被控端鼠标
|
case IDM_TRACE_CURSOR: { // 跟踪被控端鼠标
|
||||||
m_bIsTraceCursor = !m_bIsTraceCursor; //这里在改变数据
|
m_bIsTraceCursor = !m_bIsTraceCursor; //这里在改变数据
|
||||||
SysMenu->CheckMenuItem(IDM_TRACE_CURSOR, m_bIsTraceCursor ? MF_CHECKED : MF_UNCHECKED);//在菜单打钩不打钩
|
SysMenu->CheckMenuItem(IDM_TRACE_CURSOR, m_bIsTraceCursor ? MF_CHECKED : MF_UNCHECKED);//在菜单打钩不打钩
|
||||||
|
|||||||
Reference in New Issue
Block a user