GUACAMOLE-25: Add support for multiple versions of IWTSVirtualChannelCallback.
This commit is contained in:
parent
ac94fd4cd0
commit
1088332376
22
configure.ac
22
configure.ac
@ -764,6 +764,28 @@ then
|
|||||||
[Whether the legacy rdpBitmap API was found])])
|
[Whether the legacy rdpBitmap API was found])])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# FreeRDP: IWTSVirtualChannelCallback
|
||||||
|
#
|
||||||
|
|
||||||
|
if test "x${have_freerdp}" = "xyes"
|
||||||
|
then
|
||||||
|
AC_MSG_CHECKING([whether IWTSVirtualChannelCallback.OnDataReceived() uses a wStream])
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <winpr/wtypes.h>
|
||||||
|
#include <freerdp/dvc.h>
|
||||||
|
#include <freerdp/freerdp.h>
|
||||||
|
int __data_received(
|
||||||
|
IWTSVirtualChannelCallback* channel_callback,
|
||||||
|
wStream* stream);
|
||||||
|
IWTSVirtualChannelCallback cb = {
|
||||||
|
.OnDataReceived = __data_received
|
||||||
|
};]])],
|
||||||
|
[AC_MSG_RESULT([yes])],
|
||||||
|
[AC_MSG_RESULT([no])
|
||||||
|
AC_DEFINE([LEGACY_IWTSVIRTUALCHANNELCALLBACK],,
|
||||||
|
[Whether the legacy IWTSVirtualChannelCallback API was found])])
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeRDP: Decompression function variants
|
# FreeRDP: Decompression function variants
|
||||||
#
|
#
|
||||||
|
@ -62,6 +62,7 @@ static void guac_rdp_ai_handle_data(guac_client* client, wStream* stream) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if LEGACY_IWTSVIRTUALCHANNELCALLBACK
|
||||||
/**
|
/**
|
||||||
* Callback which is invoked when data is received along a connection to the
|
* Callback which is invoked when data is received along a connection to the
|
||||||
* AUDIO_INPUT plugin. This callback is specific to FreeRDP 1.1 and older.
|
* AUDIO_INPUT plugin. This callback is specific to FreeRDP 1.1 and older.
|
||||||
@ -93,6 +94,34 @@ static int guac_rdp_ai_data(IWTSVirtualChannelCallback* channel_callback,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
/**
|
||||||
|
* Callback which is invoked when data is received along a connection to the
|
||||||
|
* AUDIO_INPUT plugin. This callback is specific to FreeRDP 1.2 and newer.
|
||||||
|
*
|
||||||
|
* @param channel_callback
|
||||||
|
* The IWTSVirtualChannelCallback structure to which this callback was
|
||||||
|
* originally assigned.
|
||||||
|
*
|
||||||
|
* @param stream
|
||||||
|
* The data received.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* Always zero.
|
||||||
|
*/
|
||||||
|
static int guac_rdp_ai_data(IWTSVirtualChannelCallback* channel_callback,
|
||||||
|
wStream* stream) {
|
||||||
|
|
||||||
|
guac_rdp_ai_channel_callback* ai_channel_callback =
|
||||||
|
(guac_rdp_ai_channel_callback*) channel_callback;
|
||||||
|
|
||||||
|
/* Invoke generalized (API-independent) data handler */
|
||||||
|
guac_rdp_ai_handle_data(ai_channel_callback->client, stream);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback which is invoked when a connection to the AUDIO_INPUT plugin is
|
* Callback which is invoked when a connection to the AUDIO_INPUT plugin is
|
||||||
|
Loading…
Reference in New Issue
Block a user