diff --git a/CMakeLists.txt b/CMakeLists.txt index 56df77cb0..deedd2ab9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,6 +64,7 @@ if(MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFREERDP_EXPORTS") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWIN32_LEAN_AND_MEAN") + endif() # Include files @@ -125,6 +126,9 @@ add_subdirectory(libfreerdp-cache) add_subdirectory(libfreerdp-chanman) add_subdirectory(libfreerdp-core) add_subdirectory(libfreerdp-rfx) -add_subdirectory(channels) + +if(NOT WIN32) + add_subdirectory(channels) +endif() add_subdirectory(client) diff --git a/channels/rdpdr/disk/disk_file.c b/channels/rdpdr/disk/disk_file.c index 741bea190..04bb6137d 100644 --- a/channels/rdpdr/disk/disk_file.c +++ b/channels/rdpdr/disk/disk_file.c @@ -18,12 +18,15 @@ * limitations under the License. */ +#ifndef _WIN32 +#include +#endif + #include "config.h" #include #include #include #include -#include #include #include #include diff --git a/channels/rdpsnd/rdpsnd_main.c b/channels/rdpsnd/rdpsnd_main.c index b35311d13..07687effd 100644 --- a/channels/rdpsnd/rdpsnd_main.c +++ b/channels/rdpsnd/rdpsnd_main.c @@ -18,10 +18,13 @@ * limitations under the License. */ +#ifndef _WIN32 +#include +#endif + #include #include #include -#include #include #include #include diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 002fff4e4..97668b5c4 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -19,9 +19,11 @@ # User Interfaces -add_subdirectory(test) - if(NOT WIN32) + + # Build Test Client + add_subdirectory(test) + # Build X11 Client find_package(X11) if(X11_FOUND) diff --git a/client/test/freerdp.c b/client/test/freerdp.c index a5ba6d4ee..27202ae54 100644 --- a/client/test/freerdp.c +++ b/client/test/freerdp.c @@ -21,6 +21,10 @@ #include #include #include +#else +#include +#include +#include #endif #include @@ -43,7 +47,7 @@ struct tf_info { - + void* data; }; typedef struct tf_info tfInfo; diff --git a/include/freerdp/cache/bitmap_v2.h b/include/freerdp/cache/bitmap_v2.h index 32c651478..731af6b8d 100644 --- a/include/freerdp/cache/bitmap_v2.h +++ b/include/freerdp/cache/bitmap_v2.h @@ -20,6 +20,7 @@ #ifndef __BITMAP_V2_CACHE_H #define __BITMAP_V2_CACHE_H +#include #include #include @@ -44,10 +45,10 @@ struct rdp_bitmap_v2 }; typedef struct rdp_bitmap_v2 rdpBitmapV2; -void* bitmap_v2_get(rdpBitmapV2* bitmap_v2, uint8 id, uint16 index); -void bitmap_v2_put(rdpBitmapV2* bitmap_v2, uint8 id, uint16 index, void* entry); +FREERDP_API void* bitmap_v2_get(rdpBitmapV2* bitmap_v2, uint8 id, uint16 index); +FREERDP_API void bitmap_v2_put(rdpBitmapV2* bitmap_v2, uint8 id, uint16 index, void* entry); -rdpBitmapV2* bitmap_v2_new(rdpSettings* settings); -void bitmap_v2_free(rdpBitmapV2* bitmap_v2); +FREERDP_API rdpBitmapV2* bitmap_v2_new(rdpSettings* settings); +FREERDP_API void bitmap_v2_free(rdpBitmapV2* bitmap_v2); #endif /* __BITMAP_V2_CACHE_H */ diff --git a/include/freerdp/cache/brush.h b/include/freerdp/cache/brush.h index 4908bb3a5..7254a91ef 100644 --- a/include/freerdp/cache/brush.h +++ b/include/freerdp/cache/brush.h @@ -20,6 +20,7 @@ #ifndef __BRUSH_CACHE_H #define __BRUSH_CACHE_H +#include #include #include @@ -40,10 +41,10 @@ struct rdp_brush }; typedef struct rdp_brush rdpBrush; -void* brush_get(rdpBrush* brush, uint8 index, uint8* bpp); -void brush_put(rdpBrush* brush, uint8 index, void* entry, uint8 bpp); +FREERDP_API void* brush_get(rdpBrush* brush, uint8 index, uint8* bpp); +FREERDP_API void brush_put(rdpBrush* brush, uint8 index, void* entry, uint8 bpp); -rdpBrush* brush_new(rdpSettings* settings); -void brush_free(rdpBrush* brush); +FREERDP_API rdpBrush* brush_new(rdpSettings* settings); +FREERDP_API void brush_free(rdpBrush* brush); #endif /* __BRUSH_CACHE_H */ diff --git a/include/freerdp/cache/cache.h b/include/freerdp/cache/cache.h index 1b7e51fd8..f88139548 100644 --- a/include/freerdp/cache/cache.h +++ b/include/freerdp/cache/cache.h @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -40,7 +41,7 @@ struct rdp_cache rdpColorTable* color_table; }; -rdpCache* cache_new(rdpSettings* settings); -void cache_free(rdpCache* cache); +FREERDP_API rdpCache* cache_new(rdpSettings* settings); +FREERDP_API void cache_free(rdpCache* cache); #endif /* __CACHE_H */ diff --git a/include/freerdp/cache/color_table.h b/include/freerdp/cache/color_table.h index 58b1479d4..f68783b02 100644 --- a/include/freerdp/cache/color_table.h +++ b/include/freerdp/cache/color_table.h @@ -20,6 +20,7 @@ #ifndef __COLOR_TABLE_CACHE_H #define __COLOR_TABLE_CACHE_H +#include #include #include @@ -37,10 +38,10 @@ struct rdp_color_table }; typedef struct rdp_color_table rdpColorTable; -void* color_table_get(rdpColorTable* color_table, uint8 index); -void color_table_put(rdpColorTable* color_table, uint8 index, void* entry); +FREERDP_API void* color_table_get(rdpColorTable* color_table, uint8 index); +FREERDP_API void color_table_put(rdpColorTable* color_table, uint8 index, void* entry); -rdpColorTable* color_table_new(rdpSettings* settings); -void color_table_free(rdpColorTable* color_table); +FREERDP_API rdpColorTable* color_table_new(rdpSettings* settings); +FREERDP_API void color_table_free(rdpColorTable* color_table); #endif /* __COLOR_TABLE_CACHE_H */ diff --git a/include/freerdp/cache/offscreen.h b/include/freerdp/cache/offscreen.h index 6e662f8da..1f9dcf7e2 100644 --- a/include/freerdp/cache/offscreen.h +++ b/include/freerdp/cache/offscreen.h @@ -20,6 +20,7 @@ #ifndef __OFFSCREEN_CACHE_H #define __OFFSCREEN_CACHE_H +#include #include #include @@ -38,10 +39,10 @@ struct rdp_offscreen }; typedef struct rdp_offscreen rdpOffscreen; -void* offscreen_get(rdpOffscreen* offscreen, uint16 index); -void offscreen_put(rdpOffscreen* offscreen, uint16 index, void* bitmap); +FREERDP_API void* offscreen_get(rdpOffscreen* offscreen, uint16 index); +FREERDP_API void offscreen_put(rdpOffscreen* offscreen, uint16 index, void* bitmap); -rdpOffscreen* offscreen_new(rdpSettings* settings); -void offscreen_free(rdpOffscreen* offscreen); +FREERDP_API rdpOffscreen* offscreen_new(rdpSettings* settings); +FREERDP_API void offscreen_free(rdpOffscreen* offscreen); #endif /* __OFFSCREEN_CACHE_H */ diff --git a/include/freerdp/gdi/color.h b/include/freerdp/gdi/color.h index 931f0c394..131c1ea6b 100644 --- a/include/freerdp/gdi/color.h +++ b/include/freerdp/gdi/color.h @@ -20,6 +20,7 @@ #ifndef __COLOR_H #define __COLOR_H +#include #include #ifdef __cplusplus @@ -235,10 +236,10 @@ typedef CLRCONV* HCLRCONV; typedef uint8* (*p_gdi_image_convert)(uint8* srcData, uint8* dstData, int width, int height, int srcBpp, int dstBpp, HCLRCONV clrconv); -uint32 gdi_color_convert(uint32 srcColor, int srcBpp, int dstBpp, HCLRCONV clrconv); -uint8* gdi_image_convert(uint8* srcData, uint8 *dstData, int width, int height, int srcBpp, int dstBpp, HCLRCONV clrconv); -uint8* gdi_glyph_convert(int width, int height, uint8* data); -uint8* gdi_mono_image_convert(uint8* srcData, int width, int height, int srcBpp, int dstBpp, uint32 bgcolor, uint32 fgcolor, HCLRCONV clrconv); +FREERDP_API uint32 gdi_color_convert(uint32 srcColor, int srcBpp, int dstBpp, HCLRCONV clrconv); +FREERDP_API uint8* gdi_image_convert(uint8* srcData, uint8 *dstData, int width, int height, int srcBpp, int dstBpp, HCLRCONV clrconv); +FREERDP_API uint8* gdi_glyph_convert(int width, int height, uint8* data); +FREERDP_API uint8* gdi_mono_image_convert(uint8* srcData, int width, int height, int srcBpp, int dstBpp, uint32 bgcolor, uint32 fgcolor, HCLRCONV clrconv); #ifdef __cplusplus } diff --git a/include/freerdp/gdi/gdi.h b/include/freerdp/gdi/gdi.h index c5e9427d4..a3dde0da4 100644 --- a/include/freerdp/gdi/gdi.h +++ b/include/freerdp/gdi/gdi.h @@ -20,9 +20,10 @@ #ifndef __GDI_H #define __GDI_H -#include -#include "color.h" +#include #include +#include +#include #include /* For more information, see [MS-RDPEGDI] */ @@ -248,16 +249,16 @@ struct _GDI }; typedef struct _GDI GDI; -uint32 gdi_rop3_code(uint8 code); -void gdi_copy_mem(uint8 *d, uint8 *s, int n); -void gdi_copy_mem_backwards(uint8 *d, uint8 *s, int n); -uint8* gdi_get_bitmap_pointer(HGDI_DC hdcBmp, int x, int y); -uint8* gdi_get_brush_pointer(HGDI_DC hdcBrush, int x, int y); -int gdi_is_mono_pixel_set(uint8* data, int x, int y, int width); -GDI_IMAGE* gdi_bitmap_new(GDI *gdi, int width, int height, int bpp, uint8* data); -void gdi_bitmap_free(GDI_IMAGE *gdi_bmp); -int gdi_init(freerdp* instance, uint32 flags); -void gdi_free(freerdp* instance); +FREERDP_API uint32 gdi_rop3_code(uint8 code); +FREERDP_API void gdi_copy_mem(uint8 *d, uint8 *s, int n); +FREERDP_API void gdi_copy_mem_backwards(uint8 *d, uint8 *s, int n); +FREERDP_API uint8* gdi_get_bitmap_pointer(HGDI_DC hdcBmp, int x, int y); +FREERDP_API uint8* gdi_get_brush_pointer(HGDI_DC hdcBrush, int x, int y); +FREERDP_API int gdi_is_mono_pixel_set(uint8* data, int x, int y, int width); +FREERDP_API GDI_IMAGE* gdi_bitmap_new(GDI *gdi, int width, int height, int bpp, uint8* data); +FREERDP_API void gdi_bitmap_free(GDI_IMAGE *gdi_bmp); +FREERDP_API int gdi_init(freerdp* instance, uint32 flags); +FREERDP_API void gdi_free(freerdp* instance); #define SET_GDI(_instance, _gdi) (_instance)->gdi = _gdi #define GET_GDI(_instance) ((GDI*) ((_instance)->gdi)) diff --git a/include/freerdp/kbd/kbd.h b/include/freerdp/kbd/kbd.h index 8d7b0a1f3..c4d71d68f 100644 --- a/include/freerdp/kbd/kbd.h +++ b/include/freerdp/kbd/kbd.h @@ -20,6 +20,7 @@ #ifndef __FREERDP_KBD_H #define __FREERDP_KBD_H +#include #include #define RDP_KEYBOARD_LAYOUT_TYPE_STANDARD 1 @@ -32,13 +33,9 @@ typedef struct rdp_keyboard_layout char name[50]; } rdpKeyboardLayout; -rdpKeyboardLayout * -freerdp_kbd_get_layouts(int types); -unsigned int -freerdp_kbd_init(void *dpy, unsigned int keyboard_layout_id); -uint8 -freerdp_kbd_get_scancode_by_keycode(uint8 keycode, boolean * extended); -uint8 -freerdp_kbd_get_scancode_by_virtualkey(int vkcode, boolean * extended); +FREERDP_API rdpKeyboardLayout* freerdp_kbd_get_layouts(int types); +FREERDP_API uint32 freerdp_kbd_init(void *dpy, uint32 keyboard_layout_id); +FREERDP_API uint8 freerdp_kbd_get_scancode_by_keycode(uint8 keycode, boolean* extended); +FREERDP_API uint8 freerdp_kbd_get_scancode_by_virtualkey(int vkcode, boolean* extended); #endif /* __FREERDP_KBD_H */ diff --git a/include/freerdp/kbd/layouts.h b/include/freerdp/kbd/layouts.h index d64952884..30c412e8d 100644 --- a/include/freerdp/kbd/layouts.h +++ b/include/freerdp/kbd/layouts.h @@ -22,6 +22,7 @@ #ifndef __LAYOUT_IDS_H #define __LAYOUT_IDS_H +#include #include /* Keyboard layout IDs */ @@ -177,7 +178,7 @@ #define KBD_CHINESE_TRADITIONAL_MICROSOFT_PINYIN_IME_3 0xE00E0804 #define KBD_CHINESE_TRADITIONAL_ALPHANUMERIC 0xE00F0404 -rdpKeyboardLayout* get_keyboard_layouts(int types); -char* get_layout_name(unsigned int keyboardLayoutID); +FREERDP_API rdpKeyboardLayout* get_keyboard_layouts(int types); +FREERDP_API char* get_layout_name(uint32 keyboardLayoutID); #endif diff --git a/include/freerdp/kbd/locales.h b/include/freerdp/kbd/locales.h index 60e6d6407..eed34619a 100644 --- a/include/freerdp/kbd/locales.h +++ b/include/freerdp/kbd/locales.h @@ -27,6 +27,8 @@ #ifndef __LOCALES_H #define __LOCALES_H +#include + #define AFRIKAANS 0x0436 #define ALBANIAN 0x041c #define ALSATIAN 0x0484 @@ -320,7 +322,6 @@ Time zones, taken from Windows Server 2008 (GMT +13:00) Nuku'alofa */ -unsigned int -detect_keyboard_layout_from_locale(); +FREERDP_API uint32 detect_keyboard_layout_from_locale(); #endif /* __LOCALES_H */ diff --git a/include/freerdp/kbd/vkcodes.h b/include/freerdp/kbd/vkcodes.h index 40d2e4e3d..1eadcc7c6 100644 --- a/include/freerdp/kbd/vkcodes.h +++ b/include/freerdp/kbd/vkcodes.h @@ -23,6 +23,7 @@ #define __VKCODES_H #include +#include #include /* Mouse buttons */ diff --git a/include/freerdp/rail/rail.h b/include/freerdp/rail/rail.h index a5c1c7bf0..8e4ecd203 100644 --- a/include/freerdp/rail/rail.h +++ b/include/freerdp/rail/rail.h @@ -20,6 +20,7 @@ #ifndef __RAIL_H #define __RAIL_H +#include #include #include #include @@ -35,9 +36,9 @@ struct rdp_rail rdpWindowList* list; }; -void rail_register_update_callbacks(rdpRail* rail, rdpUpdate* update); +FREERDP_API void rail_register_update_callbacks(rdpRail* rail, rdpUpdate* update); -rdpRail* rail_new(); -void rail_free(rdpRail* rail); +FREERDP_API rdpRail* rail_new(); +FREERDP_API void rail_free(rdpRail* rail); #endif /* __RAIL_H */ diff --git a/include/freerdp/rail/window.h b/include/freerdp/rail/window.h index 2778ff7a1..626d88ee2 100644 --- a/include/freerdp/rail/window.h +++ b/include/freerdp/rail/window.h @@ -20,6 +20,7 @@ #ifndef __WINDOW_H #define __WINDOW_H +#include #include #include #include @@ -57,9 +58,9 @@ struct rdp_window RECTANGLE_16* visibilityRects; }; -void window_state_update(rdpWindow* window, WINDOW_ORDER_INFO* orderInfo, WINDOW_STATE_ORDER* window_state); +FREERDP_API void window_state_update(rdpWindow* window, WINDOW_ORDER_INFO* orderInfo, WINDOW_STATE_ORDER* window_state); -rdpWindow* rail_CreateWindow(uint32 windowId); -void rail_DestroyWindow(rdpWindow* window); +FREERDP_API rdpWindow* rail_CreateWindow(uint32 windowId); +FREERDP_API void rail_DestroyWindow(rdpWindow* window); #endif /* __WINDOW_H */ diff --git a/include/freerdp/rail/window_list.h b/include/freerdp/rail/window_list.h index 0d0311581..a964970ea 100644 --- a/include/freerdp/rail/window_list.h +++ b/include/freerdp/rail/window_list.h @@ -20,6 +20,7 @@ #ifndef __WINDOW_LIST_H #define __WINDOW_LIST_H +#include #include #include #include @@ -34,11 +35,11 @@ struct rdp_window_list rdpWindow* tail; }; -void window_list_create(rdpWindowList* list, WINDOW_ORDER_INFO* orderInfo, WINDOW_STATE_ORDER* window_state); -void window_list_update(rdpWindowList* list, WINDOW_ORDER_INFO* orderInfo, WINDOW_STATE_ORDER* window_state); -void window_list_delete(rdpWindowList* list, WINDOW_ORDER_INFO* orderInfo); +FREERDP_API void window_list_create(rdpWindowList* list, WINDOW_ORDER_INFO* orderInfo, WINDOW_STATE_ORDER* window_state); +FREERDP_API void window_list_update(rdpWindowList* list, WINDOW_ORDER_INFO* orderInfo, WINDOW_STATE_ORDER* window_state); +FREERDP_API void window_list_delete(rdpWindowList* list, WINDOW_ORDER_INFO* orderInfo); -rdpWindowList* window_list_new(); -void window_list_free(rdpWindowList* list); +FREERDP_API rdpWindowList* window_list_new(); +FREERDP_API void window_list_free(rdpWindowList* list); #endif /* __WINDOW_LIST_H */ diff --git a/include/freerdp/rfx/rfx.h b/include/freerdp/rfx/rfx.h index d69a477a9..8ade4373f 100644 --- a/include/freerdp/rfx/rfx.h +++ b/include/freerdp/rfx/rfx.h @@ -20,6 +20,7 @@ #ifndef __RFX_H #define __RFX_H +#include #include #include @@ -116,15 +117,15 @@ struct _RFX_CONTEXT }; typedef struct _RFX_CONTEXT RFX_CONTEXT; -RFX_CONTEXT* rfx_context_new(void); -void rfx_context_free(RFX_CONTEXT* context); -void rfx_context_set_pixel_format(RFX_CONTEXT* context, RFX_PIXEL_FORMAT pixel_format); +FREERDP_API RFX_CONTEXT* rfx_context_new(void); +FREERDP_API void rfx_context_free(RFX_CONTEXT* context); +FREERDP_API void rfx_context_set_pixel_format(RFX_CONTEXT* context, RFX_PIXEL_FORMAT pixel_format); -RFX_MESSAGE* rfx_process_message(RFX_CONTEXT* context, STREAM* data_in); -void rfx_message_free(RFX_CONTEXT* context, RFX_MESSAGE* message); +FREERDP_API RFX_MESSAGE* rfx_process_message(RFX_CONTEXT* context, STREAM* data_in); +FREERDP_API void rfx_message_free(RFX_CONTEXT* context, RFX_MESSAGE* message); -void rfx_compose_message_header(RFX_CONTEXT* context, STREAM* data_out); -void rfx_compose_message_data(RFX_CONTEXT* context, STREAM* data_out, +FREERDP_API void rfx_compose_message_header(RFX_CONTEXT* context, STREAM* data_out); +FREERDP_API void rfx_compose_message_data(RFX_CONTEXT* context, STREAM* data_out, const RFX_RECT* rects, int num_rects, uint8* image_data, int width, int height, int rowstride); #ifdef __cplusplus diff --git a/include/freerdp/utils/args.h b/include/freerdp/utils/args.h index 3ccc492b5..520342cf9 100644 --- a/include/freerdp/utils/args.h +++ b/include/freerdp/utils/args.h @@ -20,6 +20,7 @@ #ifndef __ARGS_UTILS_H #define __ARGS_UTILS_H +#include #include #include @@ -31,7 +32,7 @@ typedef int (*ProcessPluginArgs) (rdpSettings* settings, const char* name, typedef int (*ProcessUIArgs) (rdpSettings* settings, const char* opt, const char* val, void* user_data); -int freerdp_parse_args(rdpSettings* settings, int argc, char** argv, +FREERDP_API int freerdp_parse_args(rdpSettings* settings, int argc, char** argv, ProcessPluginArgs plugin_callback, void* plugin_user_data, ProcessUIArgs ui_callback, void* ui_user_data); diff --git a/include/freerdp/utils/blob.h b/include/freerdp/utils/blob.h index 20e6ecc43..3f20e328d 100644 --- a/include/freerdp/utils/blob.h +++ b/include/freerdp/utils/blob.h @@ -20,6 +20,8 @@ #ifndef __BLOB_UTILS_H #define __BLOB_UTILS_H +#include + struct rdp_blob { void* data; @@ -27,7 +29,7 @@ struct rdp_blob }; typedef struct rdp_blob rdpBlob; -void freerdp_blob_alloc(rdpBlob* blob, int length); -void freerdp_blob_free(rdpBlob* blob); +FREERDP_API void freerdp_blob_alloc(rdpBlob* blob, int length); +FREERDP_API void freerdp_blob_free(rdpBlob* blob); #endif /* __BLOB_UTILS_H */ diff --git a/include/freerdp/utils/dsp.h b/include/freerdp/utils/dsp.h index 4087308a7..10e799eaf 100644 --- a/include/freerdp/utils/dsp.h +++ b/include/freerdp/utils/dsp.h @@ -20,6 +20,8 @@ #ifndef __DSP_UTILS_H #define __DSP_UTILS_H +#include + struct _ADPCM { sint16 last_sample[2]; @@ -27,13 +29,13 @@ struct _ADPCM }; typedef struct _ADPCM ADPCM; -uint8* dsp_resample(uint8* src, int bytes_per_sample, +FREERDP_API uint8* dsp_resample(uint8* src, int bytes_per_sample, uint32 schan, uint32 srate, int sframes, uint32 rchan, uint32 rrate, int * prframes); -uint8* dsp_decode_ima_adpcm(ADPCM* adpcm, +FREERDP_API uint8* dsp_decode_ima_adpcm(ADPCM* adpcm, uint8* src, int size, int channels, int block_size, int* out_size); -uint8* dsp_encode_ima_adpcm(ADPCM* adpcm, +FREERDP_API uint8* dsp_encode_ima_adpcm(ADPCM* adpcm, uint8* src, int size, int channels, int block_size, int* out_size); #endif /* __DSP_UTILS_H */ diff --git a/include/freerdp/utils/event.h b/include/freerdp/utils/event.h index f99acb008..b45e87791 100644 --- a/include/freerdp/utils/event.h +++ b/include/freerdp/utils/event.h @@ -20,10 +20,11 @@ #ifndef __EVENT_UTILS_H #define __EVENT_UTILS_H +#include #include -FRDP_EVENT* freerdp_event_new(uint16 event_class, uint16 event_type, +FREERDP_API FRDP_EVENT* freerdp_event_new(uint16 event_class, uint16 event_type, FRDP_EVENT_CALLBACK on_event_free_callback, void* user_data); -void freerdp_event_free(FRDP_EVENT* event); +FREERDP_API void freerdp_event_free(FRDP_EVENT* event); #endif diff --git a/include/freerdp/utils/hexdump.h b/include/freerdp/utils/hexdump.h index 3587c2953..4b0363b95 100644 --- a/include/freerdp/utils/hexdump.h +++ b/include/freerdp/utils/hexdump.h @@ -20,8 +20,10 @@ #ifndef __UTILS_HEXDUMP_H #define __UTILS_HEXDUMP_H +#include + #define FREERDP_HEXDUMP_LINE_LENGTH 16 -void freerdp_hexdump(uint8* data, int length); +FREERDP_API void freerdp_hexdump(uint8* data, int length); #endif /* __UTILS_HEXDUMP_H */ diff --git a/include/freerdp/utils/list.h b/include/freerdp/utils/list.h index 8116c0275..a121cdfcf 100644 --- a/include/freerdp/utils/list.h +++ b/include/freerdp/utils/list.h @@ -20,6 +20,7 @@ #ifndef __LIST_UTILS_H #define __LIST_UTILS_H +#include #include typedef struct _LIST_ITEM LIST_ITEM; @@ -38,11 +39,11 @@ struct _LIST LIST_ITEM* tail; }; -LIST* list_new(void); -void list_free(LIST* list); -void list_enqueue(LIST* list, void* data); -void* list_dequeue(LIST* list); +FREERDP_API LIST* list_new(void); +FREERDP_API void list_free(LIST* list); +FREERDP_API void list_enqueue(LIST* list, void* data); +FREERDP_API void* list_dequeue(LIST* list); #define list_add(_l, _d) list_enqueue(_l, _d) -void* list_remove(LIST* list, void* data); +FREERDP_API void* list_remove(LIST* list, void* data); #endif /* __LIST_UTILS_H */ diff --git a/include/freerdp/utils/load_plugin.h b/include/freerdp/utils/load_plugin.h index a06c16959..11bd4852b 100644 --- a/include/freerdp/utils/load_plugin.h +++ b/include/freerdp/utils/load_plugin.h @@ -20,6 +20,8 @@ #ifndef __LOAD_PLUGIN_UTILS_H #define __LOAD_PLUGIN_UTILS_H -void* freerdp_load_plugin(const char* name, const char* entry_name); +#include + +FREERDP_API void* freerdp_load_plugin(const char* name, const char* entry_name); #endif /* __LOAD_PLUGIN_UTILS_H */ diff --git a/include/freerdp/utils/memory.h b/include/freerdp/utils/memory.h index d475c8148..892a7ad94 100644 --- a/include/freerdp/utils/memory.h +++ b/include/freerdp/utils/memory.h @@ -21,12 +21,13 @@ #define __MEMORY_UTILS_H #include +#include -void* xmalloc(size_t size); -void* xzalloc(size_t size); -void* xrealloc(void* ptr, size_t size); -void xfree(void* ptr); -char* xstrdup(const char* str); +FREERDP_API void* xmalloc(size_t size); +FREERDP_API void* xzalloc(size_t size); +FREERDP_API void* xrealloc(void* ptr, size_t size); +FREERDP_API void xfree(void* ptr); +FREERDP_API char* xstrdup(const char* str); #define xnew(_type) (_type*)xzalloc(sizeof(_type)) diff --git a/include/freerdp/utils/mutex.h b/include/freerdp/utils/mutex.h index 1652bfe27..ffb12f8ed 100644 --- a/include/freerdp/utils/mutex.h +++ b/include/freerdp/utils/mutex.h @@ -20,11 +20,13 @@ #ifndef __MUTEX_UTILS_H #define __MUTEX_UTILS_H +#include + typedef void* freerdp_mutex; -freerdp_mutex freerdp_mutex_new(void); -void freerdp_mutex_free(freerdp_mutex mutex); -void freerdp_mutex_lock(freerdp_mutex mutex); -void freerdp_mutex_unlock(freerdp_mutex mutex); +FREERDP_API freerdp_mutex freerdp_mutex_new(void); +FREERDP_API void freerdp_mutex_free(freerdp_mutex mutex); +FREERDP_API void freerdp_mutex_lock(freerdp_mutex mutex); +FREERDP_API void freerdp_mutex_unlock(freerdp_mutex mutex); #endif /* __MUTEX_UTILS_H */ diff --git a/include/freerdp/utils/profiler.h b/include/freerdp/utils/profiler.h index 58f29837c..fa367aeef 100644 --- a/include/freerdp/utils/profiler.h +++ b/include/freerdp/utils/profiler.h @@ -20,6 +20,8 @@ #ifndef __UTILS_PROFILER_H #define __UTILS_PROFILER_H +#include + #include "config.h" #include @@ -34,15 +36,15 @@ struct _PROFILER }; typedef struct _PROFILER PROFILER; -PROFILER* profiler_create(char* name); -void profiler_free(PROFILER* profiler); +FREERDP_API PROFILER* profiler_create(char* name); +FREERDP_API void profiler_free(PROFILER* profiler); -void profiler_enter(PROFILER* profiler); -void profiler_exit(PROFILER* profiler); +FREERDP_API void profiler_enter(PROFILER* profiler); +FREERDP_API void profiler_exit(PROFILER* profiler); -void profiler_print_header(); -void profiler_print(PROFILER* profiler); -void profiler_print_footer(); +FREERDP_API void profiler_print_header(); +FREERDP_API void profiler_print(PROFILER* profiler); +FREERDP_API void profiler_print_footer(); #ifdef WITH_PROFILER #define IF_PROFILER(then) then diff --git a/include/freerdp/utils/rail.h b/include/freerdp/utils/rail.h index e5e22b271..dc9f2f655 100644 --- a/include/freerdp/utils/rail.h +++ b/include/freerdp/utils/rail.h @@ -20,15 +20,16 @@ #ifndef __RAIL_UTILS_H #define __RAIL_UTILS_H +#include #include #include -void rail_unicode_string_alloc(UNICODE_STRING* unicode_string, uint16 cbString); -void rail_unicode_string_free(UNICODE_STRING* unicode_string); -void rail_read_unicode_string(STREAM* s, UNICODE_STRING* unicode_string); -void rail_write_unicode_string(STREAM* s, UNICODE_STRING* unicode_string); -void rail_write_unicode_string_value(STREAM* s, UNICODE_STRING* unicode_string); -void rail_read_rectangle_16(STREAM* s, RECTANGLE_16* rectangle_16); -void rail_write_rectangle_16(STREAM* s, RECTANGLE_16* rectangle_16); +FREERDP_API void rail_unicode_string_alloc(UNICODE_STRING* unicode_string, uint16 cbString); +FREERDP_API void rail_unicode_string_free(UNICODE_STRING* unicode_string); +FREERDP_API void rail_read_unicode_string(STREAM* s, UNICODE_STRING* unicode_string); +FREERDP_API void rail_write_unicode_string(STREAM* s, UNICODE_STRING* unicode_string); +FREERDP_API void rail_write_unicode_string_value(STREAM* s, UNICODE_STRING* unicode_string); +FREERDP_API void rail_read_rectangle_16(STREAM* s, RECTANGLE_16* rectangle_16); +FREERDP_API void rail_write_rectangle_16(STREAM* s, RECTANGLE_16* rectangle_16); #endif /* __RAIL_UTILS_H */ diff --git a/include/freerdp/utils/registry.h b/include/freerdp/utils/registry.h index 58b1b398f..b3956cefc 100644 --- a/include/freerdp/utils/registry.h +++ b/include/freerdp/utils/registry.h @@ -25,6 +25,7 @@ typedef struct rdp_registry rdpRegistry; #include #include #include +#include #include #include #include @@ -61,11 +62,11 @@ struct rdp_registry struct rdp_settings* settings; }; -void registry_open(rdpRegistry* registry); -void registry_close(rdpRegistry* registry); +FREERDP_API void registry_open(rdpRegistry* registry); +FREERDP_API void registry_close(rdpRegistry* registry); -void registry_init(rdpRegistry* registry); -rdpRegistry* registry_new(rdpSettings* settings); -void registry_free(rdpRegistry* registry); +FREERDP_API void registry_init(rdpRegistry* registry); +FREERDP_API rdpRegistry* registry_new(rdpSettings* settings); +FREERDP_API void registry_free(rdpRegistry* registry); #endif /* __REGISTRY_UTILS_H */ diff --git a/include/freerdp/utils/semaphore.h b/include/freerdp/utils/semaphore.h index 33f693354..15830eb04 100644 --- a/include/freerdp/utils/semaphore.h +++ b/include/freerdp/utils/semaphore.h @@ -20,11 +20,13 @@ #ifndef __SEMAPHORE_UTILS_H #define __SEMAPHORE_UTILS_H +#include + typedef void* freerdp_sem; -freerdp_sem freerdp_sem_new(int iv); -void freerdp_sem_free(freerdp_sem sem); -void freerdp_sem_signal(freerdp_sem sem); -void freerdp_sem_wait(freerdp_sem sem); +FREERDP_API freerdp_sem freerdp_sem_new(int iv); +FREERDP_API void freerdp_sem_free(freerdp_sem sem); +FREERDP_API void freerdp_sem_signal(freerdp_sem sem); +FREERDP_API void freerdp_sem_wait(freerdp_sem sem); #endif /* __SEMAPHORE_UTILS_H */ diff --git a/include/freerdp/utils/sleep.h b/include/freerdp/utils/sleep.h index 914f87b3c..b477624ea 100644 --- a/include/freerdp/utils/sleep.h +++ b/include/freerdp/utils/sleep.h @@ -20,8 +20,9 @@ #ifndef __SLEEP_UTILS_H #define __SLEEP_UTILS_H +#include #include -void freerdp_usleep(uint32 useconds); +FREERDP_API void freerdp_usleep(uint32 useconds); #endif /* __SLEEP_UTILS_H */ diff --git a/include/freerdp/utils/stopwatch.h b/include/freerdp/utils/stopwatch.h index 64aa8697e..c7fa46457 100644 --- a/include/freerdp/utils/stopwatch.h +++ b/include/freerdp/utils/stopwatch.h @@ -20,8 +20,9 @@ #ifndef __UTILS_STOPWATCH_H #define __UTILS_STOPWATCH_H -#include #include +#include +#include struct _STOPWATCH { @@ -32,12 +33,12 @@ struct _STOPWATCH }; typedef struct _STOPWATCH STOPWATCH; -STOPWATCH* stopwatch_create(); -void stopwatch_free(STOPWATCH* stopwatch); +FREERDP_API STOPWATCH* stopwatch_create(); +FREERDP_API void stopwatch_free(STOPWATCH* stopwatch); -void stopwatch_start(STOPWATCH* stopwatch); -void stopwatch_stop(STOPWATCH* stopwatch); -void stopwatch_reset(STOPWATCH* stopwatch); +FREERDP_API void stopwatch_start(STOPWATCH* stopwatch); +FREERDP_API void stopwatch_stop(STOPWATCH* stopwatch); +FREERDP_API void stopwatch_reset(STOPWATCH* stopwatch); double stopwatch_get_elapsed_time_in_seconds(STOPWATCH* stopwatch); diff --git a/include/freerdp/utils/stream.h b/include/freerdp/utils/stream.h index c3ac3972f..870a2d4d9 100644 --- a/include/freerdp/utils/stream.h +++ b/include/freerdp/utils/stream.h @@ -22,6 +22,7 @@ #define __STREAM_UTILS_H #include +#include #include struct _STREAM @@ -32,8 +33,8 @@ struct _STREAM }; typedef struct _STREAM STREAM; -STREAM* stream_new(int size); -void stream_free(STREAM* stream); +FREERDP_API STREAM* stream_new(int size); +FREERDP_API void stream_free(STREAM* stream); #define stream_attach(_s, _buf, _size) do { \ _s->size = _size; \ @@ -42,7 +43,7 @@ void stream_free(STREAM* stream); #define stream_detach(_s) memset(_s, 0, sizeof(STREAM)) #define stream_clear(_s) memset(_s->data, 0, _s->size) -void stream_extend(STREAM* stream, int request_size); +FREERDP_API void stream_extend(STREAM* stream, int request_size); #define stream_check_size(_s, _n) \ while (_s->p - _s->data + (_n) > _s->size) \ stream_extend(_s, _n) diff --git a/include/freerdp/utils/svc_plugin.h b/include/freerdp/utils/svc_plugin.h index 2f18ecf86..e7fa7452e 100644 --- a/include/freerdp/utils/svc_plugin.h +++ b/include/freerdp/utils/svc_plugin.h @@ -23,6 +23,7 @@ /* static channel plugin base implementation */ +#include #include #include #include @@ -30,6 +31,7 @@ typedef struct rdp_svc_plugin_private rdpSvcPluginPrivate; typedef struct rdp_svc_plugin rdpSvcPlugin; + struct rdp_svc_plugin { CHANNEL_ENTRY_POINTS_EX channel_entry_points; @@ -46,9 +48,9 @@ struct rdp_svc_plugin rdpSvcPluginPrivate* priv; }; -void svc_plugin_init(rdpSvcPlugin* plugin, CHANNEL_ENTRY_POINTS* pEntryPoints); -int svc_plugin_send(rdpSvcPlugin* plugin, STREAM* data_out); -int svc_plugin_send_event(rdpSvcPlugin* plugin, FRDP_EVENT* event); +FREERDP_API void svc_plugin_init(rdpSvcPlugin* plugin, CHANNEL_ENTRY_POINTS* pEntryPoints); +FREERDP_API int svc_plugin_send(rdpSvcPlugin* plugin, STREAM* data_out); +FREERDP_API int svc_plugin_send_event(rdpSvcPlugin* plugin, FRDP_EVENT* event); #define svc_plugin_get_data(_p) (FRDP_PLUGIN_DATA*)(((rdpSvcPlugin*)_p)->channel_entry_points.pExtendedData) diff --git a/include/freerdp/utils/thread.h b/include/freerdp/utils/thread.h index cb4c4006d..4739c03a6 100644 --- a/include/freerdp/utils/thread.h +++ b/include/freerdp/utils/thread.h @@ -20,6 +20,7 @@ #ifndef __THREAD_UTILS_H #define __THREAD_UTILS_H +#include #include #include #include @@ -28,6 +29,7 @@ #endif typedef struct _freerdp_thread freerdp_thread; + struct _freerdp_thread { freerdp_mutex* mutex; @@ -38,9 +40,9 @@ struct _freerdp_thread int status; }; -freerdp_thread* freerdp_thread_new(void); -void freerdp_thread_start(freerdp_thread* thread, void* func, void* arg); -void freerdp_thread_stop(freerdp_thread* thread); +FREERDP_API freerdp_thread* freerdp_thread_new(void); +FREERDP_API void freerdp_thread_start(freerdp_thread* thread, void* func, void* arg); +FREERDP_API void freerdp_thread_stop(freerdp_thread* thread); #define freerdp_thread_wait(_t) wait_obj_select(_t->signals, _t->num_signals, -1) #define freerdp_thread_wait_timeout(_t, _timeout) wait_obj_select(_t->signals, _t->num_signals, _timeout) diff --git a/include/freerdp/utils/unicode.h b/include/freerdp/utils/unicode.h index 134d13780..7268a8ecb 100644 --- a/include/freerdp/utils/unicode.h +++ b/include/freerdp/utils/unicode.h @@ -22,6 +22,7 @@ #include #include +#include #define DEFAULT_CODEPAGE "UTF-8" #define WINDOWS_CODEPAGE "UTF-16LE" @@ -44,10 +45,10 @@ struct _UNICONV }; typedef struct _UNICONV UNICONV; -UNICONV* freerdp_uniconv_new(); -void freerdp_uniconv_free(UNICONV *uniconv); -char* freerdp_uniconv_in(UNICONV *uniconv, unsigned char* pin, size_t in_len); -char* freerdp_uniconv_out(UNICONV *uniconv, char *str, size_t *pout_len); -void freerdp_uniconv_uppercase(UNICONV *uniconv, char *wstr, int length); +FREERDP_API UNICONV* freerdp_uniconv_new(); +FREERDP_API void freerdp_uniconv_free(UNICONV *uniconv); +FREERDP_API char* freerdp_uniconv_in(UNICONV *uniconv, unsigned char* pin, size_t in_len); +FREERDP_API char* freerdp_uniconv_out(UNICONV *uniconv, char *str, size_t *pout_len); +FREERDP_API void freerdp_uniconv_uppercase(UNICONV *uniconv, char *wstr, int length); #endif /* __UNICODE_UTILS_H */ diff --git a/include/freerdp/utils/wait_obj.h b/include/freerdp/utils/wait_obj.h index 34a21f480..cb75edb2c 100644 --- a/include/freerdp/utils/wait_obj.h +++ b/include/freerdp/utils/wait_obj.h @@ -20,12 +20,14 @@ #ifndef __WAIT_OBJ_UTILS #define __WAIT_OBJ_UTILS -struct wait_obj* wait_obj_new(void); -void wait_obj_free(struct wait_obj* obj); -int wait_obj_is_set(struct wait_obj* obj); -void wait_obj_set(struct wait_obj* obj); -void wait_obj_clear(struct wait_obj* obj); -int wait_obj_select(struct wait_obj** listobj, int numobj, int timeout); -void wait_obj_get_fds(struct wait_obj* obj, void** fds, int* count); +#include + +FREERDP_API struct wait_obj* wait_obj_new(void); +FREERDP_API void wait_obj_free(struct wait_obj* obj); +FREERDP_API int wait_obj_is_set(struct wait_obj* obj); +FREERDP_API void wait_obj_set(struct wait_obj* obj); +FREERDP_API void wait_obj_clear(struct wait_obj* obj); +FREERDP_API int wait_obj_select(struct wait_obj** listobj, int numobj, int timeout); +FREERDP_API void wait_obj_get_fds(struct wait_obj* obj, void** fds, int* count); #endif diff --git a/libfreerdp-cache/CMakeLists.txt b/libfreerdp-cache/CMakeLists.txt index 196fc0689..7354948f8 100644 --- a/libfreerdp-cache/CMakeLists.txt +++ b/libfreerdp-cache/CMakeLists.txt @@ -26,7 +26,7 @@ set(FREERDP_CACHE_SRCS add_library(freerdp-cache SHARED ${FREERDP_CACHE_SRCS}) -set_target_properties(freerdp-cache PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION}) +set_target_properties(freerdp-cache PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") target_link_libraries(freerdp-cache freerdp-utils) diff --git a/libfreerdp-chanman/CMakeLists.txt b/libfreerdp-chanman/CMakeLists.txt index e6840712f..11b2ad522 100644 --- a/libfreerdp-chanman/CMakeLists.txt +++ b/libfreerdp-chanman/CMakeLists.txt @@ -23,7 +23,7 @@ set(FREERDP_CHANMAN_SRCS add_library(freerdp-chanman SHARED ${FREERDP_CHANMAN_SRCS}) -set_target_properties(freerdp-chanman PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION}) +set_target_properties(freerdp-chanman PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") target_link_libraries(freerdp-chanman freerdp-utils) install(TARGETS freerdp-chanman DESTINATION lib) diff --git a/libfreerdp-core/CMakeLists.txt b/libfreerdp-core/CMakeLists.txt index cbe76370c..50f5f5191 100644 --- a/libfreerdp-core/CMakeLists.txt +++ b/libfreerdp-core/CMakeLists.txt @@ -88,6 +88,8 @@ set(LIBFREERDP_CORE_SRCS add_library(freerdp-core SHARED ${LIBFREERDP_CORE_SRCS}) +set_target_properties(freerdp-core PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") + if(WIN32) target_link_libraries(freerdp-core ws2_32) else() diff --git a/libfreerdp-gdi/CMakeLists.txt b/libfreerdp-gdi/CMakeLists.txt index 6b5bcfc1a..2084fafd1 100644 --- a/libfreerdp-gdi/CMakeLists.txt +++ b/libfreerdp-gdi/CMakeLists.txt @@ -52,6 +52,6 @@ add_library(freerdp-gdi SHARED ${FREERDP_GDI_SRCS}) target_link_libraries(freerdp-gdi freerdp-cache) target_link_libraries(freerdp-gdi freerdp-rfx) -set_target_properties(freerdp-gdi PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION}) +set_target_properties(freerdp-gdi PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") install(TARGETS freerdp-gdi DESTINATION lib) diff --git a/libfreerdp-kbd/CMakeLists.txt b/libfreerdp-kbd/CMakeLists.txt index 9fee2be5f..a648ea668 100644 --- a/libfreerdp-kbd/CMakeLists.txt +++ b/libfreerdp-kbd/CMakeLists.txt @@ -38,7 +38,7 @@ endif() add_definitions(-DKEYMAP_PATH="${FREERDP_KEYMAP_PATH}") -set_target_properties(freerdp-kbd PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION}) +set_target_properties(freerdp-kbd PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") install(TARGETS freerdp-kbd DESTINATION lib) diff --git a/libfreerdp-rail/CMakeLists.txt b/libfreerdp-rail/CMakeLists.txt index fcd907912..bd9b1d963 100644 --- a/libfreerdp-rail/CMakeLists.txt +++ b/libfreerdp-rail/CMakeLists.txt @@ -24,7 +24,7 @@ set(FREERDP_RAIL_SRCS add_library(freerdp-rail SHARED ${FREERDP_RAIL_SRCS}) -set_target_properties(freerdp-rail PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION}) +set_target_properties(freerdp-rail PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") target_link_libraries(freerdp-rail freerdp-utils) diff --git a/libfreerdp-rfx/CMakeLists.txt b/libfreerdp-rfx/CMakeLists.txt index d48892fae..339ace26c 100644 --- a/libfreerdp-rfx/CMakeLists.txt +++ b/libfreerdp-rfx/CMakeLists.txt @@ -41,6 +41,8 @@ set(LIBFREERDP_RFX_SRCS add_library(freerdp-rfx SHARED ${LIBFREERDP_RFX_SRCS}) +set_target_properties(freerdp-rfx PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") + target_link_libraries(freerdp-rfx freerdp-utils) if(WITH_SSE2) diff --git a/libfreerdp-utils/CMakeLists.txt b/libfreerdp-utils/CMakeLists.txt index 2ab3bcdf1..d2c9889be 100644 --- a/libfreerdp-utils/CMakeLists.txt +++ b/libfreerdp-utils/CMakeLists.txt @@ -46,7 +46,7 @@ add_definitions(-DPLUGIN_PATH="${FREERDP_PLUGIN_PATH}") add_library(freerdp-utils SHARED ${FREERDP_UTILS_SRCS}) -set_target_properties(freerdp-utils PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION}) +set_target_properties(freerdp-utils PROPERTIES VERSION ${FREERDP_VERSION_FULL} SOVERSION ${FREERDP_VERSION} PREFIX "lib") target_link_libraries(freerdp-utils ${CMAKE_THREAD_LIBS_INIT})