20#ifndef FREERDP_LIB_CORE_AUTODETECT_H
21#define FREERDP_LIB_CORE_AUTODETECT_H
25#include <freerdp/freerdp.h>
26#include <freerdp/autodetect.h>
27#include <freerdp/log.h>
28#include <freerdp/api.h>
30#include <winpr/stream.h>
31#include <winpr/sysinfo.h>
35FREERDP_LOCAL
void autodetect_free(rdpAutoDetect* autodetect);
37WINPR_ATTR_MALLOC(autodetect_free, 1)
39FREERDP_LOCAL rdpAutoDetect* autodetect_new(rdpContext* context);
42FREERDP_LOCAL state_run_t autodetect_recv_request_packet(rdpAutoDetect* autodetect,
43 RDP_TRANSPORT_TYPE transport,
wStream* s);
48FREERDP_LOCAL state_run_t autodetect_recv_tunnel_request(rdpAutoDetect* autodetect,
49 RDP_TRANSPORT_TYPE transport,
wStream* s);
52FREERDP_LOCAL state_run_t autodetect_recv_response_packet(rdpAutoDetect* autodetect,
53 RDP_TRANSPORT_TYPE transport,
wStream* s);
56FREERDP_LOCAL FREERDP_AUTODETECT_STATE autodetect_get_state(rdpAutoDetect* autodetect);
58FREERDP_LOCAL
void autodetect_register_server_callbacks(rdpAutoDetect* autodetect);
59FREERDP_LOCAL
void autodetect_on_connect_time_auto_detect_begin(rdpAutoDetect* autodetect);
60FREERDP_LOCAL
void autodetect_on_connect_time_auto_detect_progress(rdpAutoDetect* autodetect);
62#define AUTODETECT_TAG FREERDP_TAG("core.autodetect")