commit
12ad8cceaf
@ -40,7 +40,7 @@ set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
|
||||
set_complex_link_libraries(VARIABLE ${MODULE_PREFIX}_LIBS
|
||||
MONOLITHIC ${MONOLITHIC_BUILD}
|
||||
MODULE winpr
|
||||
MODULES winpr-crt winpr-synch winpr-interlocked)
|
||||
MODULES winpr-crt winpr-synch winpr-interlocked winpr-error)
|
||||
|
||||
set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} PARENT_SCOPE)
|
||||
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} PARENT_SCOPE)
|
||||
|
@ -134,6 +134,8 @@ COMMAND_LINE_ARGUMENT_A args[] =
|
||||
{ "wm-class", COMMAND_LINE_VALUE_REQUIRED, "<class name>", NULL, NULL, -1, NULL, "set the WM_CLASS hint for the window instance" },
|
||||
{ "version", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_VERSION, NULL, NULL, NULL, -1, NULL, "print version" },
|
||||
{ "help", COMMAND_LINE_VALUE_FLAG | COMMAND_LINE_PRINT_HELP, NULL, NULL, NULL, -1, "?", "print help" },
|
||||
{ "play-rfx", COMMAND_LINE_VALUE_REQUIRED, "<pcap file>", NULL, NULL, -1, NULL, "Replay rfx pcap file" },
|
||||
{ "auth-only", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL, "Authenticate only." },
|
||||
{ NULL, 0, NULL, NULL, NULL, -1, NULL, NULL }
|
||||
};
|
||||
|
||||
@ -1596,6 +1598,15 @@ int freerdp_client_parse_command_line_arguments(int argc, char** argv, rdpSettin
|
||||
{
|
||||
settings->WmClass = _strdup(arg->Value);
|
||||
}
|
||||
CommandLineSwitchCase(arg, "play-rfx")
|
||||
{
|
||||
settings->PlayRemoteFxFile = _strdup(arg->Value);
|
||||
settings->PlayRemoteFx = TRUE;
|
||||
}
|
||||
CommandLineSwitchCase(arg, "auth-only")
|
||||
{
|
||||
settings->AuthenticationOnly = arg->Value ? TRUE : FALSE;
|
||||
}
|
||||
CommandLineSwitchDefault(arg)
|
||||
{
|
||||
|
||||
|
@ -126,29 +126,31 @@ BOOL freerdp_connect(freerdp* instance)
|
||||
|
||||
update = instance->update;
|
||||
|
||||
s = StreamPool_Take(rdp->transport->ReceivePool, 0);
|
||||
instance->update->pcap_rfx = pcap_open(settings->PlayRemoteFxFile, FALSE);
|
||||
update->pcap_rfx = pcap_open(settings->PlayRemoteFxFile, FALSE);
|
||||
|
||||
if (update->pcap_rfx)
|
||||
if (!update->pcap_rfx)
|
||||
return FALSE;
|
||||
else
|
||||
update->play_rfx = TRUE;
|
||||
|
||||
while (update->play_rfx && pcap_has_next_record(update->pcap_rfx))
|
||||
|
||||
while (pcap_has_next_record(update->pcap_rfx))
|
||||
{
|
||||
|
||||
pcap_get_next_record_header(update->pcap_rfx, &record);
|
||||
|
||||
Stream_EnsureCapacity(s, record.length);
|
||||
s = StreamPool_Take(rdp->transport->ReceivePool, record.length);
|
||||
record.data = Stream_Buffer(s);
|
||||
|
||||
pcap_get_next_record_content(update->pcap_rfx, &record);
|
||||
Stream_SetLength(s,record.length);
|
||||
Stream_SetPosition(s, 0);
|
||||
|
||||
update->BeginPaint(update->context);
|
||||
update_recv_surfcmds(update, Stream_Capacity(s), s);
|
||||
update_recv_surfcmds(update, Stream_Length(s) , s);
|
||||
update->EndPaint(update->context);
|
||||
Stream_Release(s);
|
||||
}
|
||||
|
||||
Stream_Release(s);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,7 @@
|
||||
|
||||
int xf_cursor_init(xfInfo* xfi)
|
||||
{
|
||||
#ifdef WITH_XFIXES
|
||||
int event;
|
||||
int error;
|
||||
|
||||
@ -50,6 +51,7 @@ int xf_cursor_init(xfInfo* xfi)
|
||||
xfi->xfixes_notify_event = event + XFixesCursorNotify;
|
||||
|
||||
XFixesSelectCursorInput(xfi->display, DefaultRootWindow(xfi->display), XFixesDisplayCursorNotifyMask);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -80,12 +80,14 @@ void* xf_update_thread(void* param)
|
||||
ResetEvent(xfp->updateSentEvent);
|
||||
}
|
||||
}
|
||||
#ifdef WITH_XFIXES
|
||||
else if (xevent.type == xfi->xfixes_notify_event)
|
||||
{
|
||||
XFixesCursorImage* ci = XFixesGetCursorImage(xfi->display);
|
||||
|
||||
XFree(ci);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
end = GetTickCount();
|
||||
|
Loading…
Reference in New Issue
Block a user