Stefan Schuermans commited on 2017-09-24 08:46:27
              Showing 5 changed files, with 34 additions and 4 deletions.
            
| ... | ... | 
                      @@ -80,6 +80,21 @@ ifeq ($(patsubst MINGW32%,MINGW32,$(OS_RAW)),MINGW32)  | 
                  
| 80 | 80 | 
                        EX_LIBS += -lwsock32  | 
                    
| 81 | 81 | 
                        endif  | 
                    
| 82 | 82 | 
                         | 
                    
| 83 | 
                        +ifeq ($(CROSS_WIN),1)  | 
                    |
| 84 | 
                        + OS := mingw32  | 
                    |
| 85 | 
                        + CC := x86_64-w64-mingw32-gcc  | 
                    |
| 86 | 
                        + AR := ar  | 
                    |
| 87 | 
                        + RANLIB := ranlib  | 
                    |
| 88 | 
                        + LEXT := dll  | 
                    |
| 89 | 
                        + LEXTSUF :=  | 
                    |
| 90 | 
                        + BSUF := .exe  | 
                    |
| 91 | 
                        + INSTALL := install  | 
                    |
| 92 | 
                        + DEFINES += -DWINDOWS  | 
                    |
| 93 | 
                        + SH_LDFLAGS += -shared  | 
                    |
| 94 | 
                        + SH_LIBS += -lwsock32  | 
                    |
| 95 | 
                        + EX_LIBS += -lwsock32  | 
                    |
| 96 | 
                        +endif  | 
                    |
| 97 | 
                        +  | 
                    |
| 83 | 98 | 
                        ifeq ($(OS),)  | 
                    
| 84 | 99 | 
                        $(error unsupported operating system $(OS_RAW))  | 
                    
| 85 | 100 | 
                        endif  | 
                    
| ... | ... | 
                      @@ -36,11 +36,11 @@  | 
                  
| 36 | 36 | 
                        # define ETP_THREAD_FUNC(func) void * (func)(void *vp_displayer)  | 
                    
| 37 | 37 | 
                        #endif  | 
                    
| 38 | 38 | 
                         | 
                    
| 39 | 
                        -/** return a void pointer from a thread function */  | 
                    |
| 39 | 
                        +/** return values for thread functions */  | 
                    |
| 40 | 40 | 
                        #ifdef WINDOWS  | 
                    
| 41 | 
                        -# define ETP_THREAD_RETURN(vp) return (DWORD)(vp);  | 
                    |
| 41 | 
                        +# define ETP_THREAD_RETURN_OK (0)  | 
                    |
| 42 | 42 | 
                        #else  | 
                    
| 43 | 
                        -# define ETP_THREAD_RETURN(vp) return (vp);  | 
                    |
| 43 | 
                        +# define ETP_THREAD_RETURN_OK (NULL)  | 
                    |
| 44 | 44 | 
                        #endif  | 
                    
| 45 | 45 | 
                         | 
                    
| 46 | 46 | 
                        /** type for a thread ID */  | 
                    
| ... | ... | 
                      @@ -78,7 +78,18 @@ etp_display_t *etp_display_create(const char *sz_config_file,  | 
                  
| 78 | 78 | 
                        /* set up UDP socket */  | 
                    
| 79 | 79 | 
                         | 
                    
| 80 | 80 | 
                        /* create socket */  | 
                    
| 81 | 
                        +#ifdef WINDOWS  | 
                    |
| 82 | 
                        + p_display->sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);  | 
                    |
| 83 | 
                        +  if (p_display->sock != INVALID_SOCKET) {
                       | 
                    |
| 84 | 
                        + u_long arg = 1;  | 
                    |
| 85 | 
                        +    if (ioctlsocket(p_display->sock, FIONBIO, &arg) != 0) {
                       | 
                    |
| 86 | 
                        + closesocket(p_display->sock);  | 
                    |
| 87 | 
                        + p_display->sock = INVALID_SOCKET;  | 
                    |
| 88 | 
                        + }  | 
                    |
| 89 | 
                        + }  | 
                    |
| 90 | 
                        +#else  | 
                    |
| 81 | 91 | 
                        p_display->sock = socket(AF_INET, SOCK_DGRAM | SOCK_NONBLOCK, IPPROTO_UDP);  | 
                    
| 92 | 
                        +#endif  | 
                    |
| 82 | 93 | 
                           if (!etp_sock_is_valid(p_display->sock)) {
                       | 
                    
| 83 | 94 | 
                        etp_display_free(p_display);  | 
                    
| 84 | 95 | 
                             if (p_msg_func) {
                       | 
                    
| ... | ... | 
                      @@ -20,6 +20,7 @@  | 
                  
| 20 | 20 | 
                        #include <sys/time.h>  | 
                    
| 21 | 21 | 
                        #include <stdlib.h>  | 
                    
| 22 | 22 | 
                         | 
                    
| 23 | 
                        +#include <intern/net.h> // first because of winsock2.h ordering  | 
                    |
| 23 | 24 | 
                        #include <etherpix/display.h>  | 
                    
| 24 | 25 | 
                        #include <etherpix/displayer.h>  | 
                    
| 25 | 26 | 
                        #include <etherpix/msg.h>  | 
                    
| ... | ... | 
                      @@ -313,6 +314,6 @@ ETP_THREAD_FUNC(etp_displayer_thread)  | 
                  
| 313 | 314 | 
                         | 
                    
| 314 | 315 | 
                        etp_thread_mutex_unlock(&p_displayer->mtx);  | 
                    
| 315 | 316 | 
                         | 
                    
| 316 | 
                        - ETP_THREAD_RETURN(NULL);  | 
                    |
| 317 | 
                        + return ETP_THREAD_RETURN_OK;  | 
                    |
| 317 | 318 | 
                        }  | 
                    
| 318 | 319 | 
                         | 
                    
| 319 | 320 |