#include #include "CODEC.h" #ifdef CODEC_WIGI #define WIGI_PORT 43690 SOCKET WigiSocket; bool b_Connected = false; char AnswerOK[16] = "wigi 3.0 200 OK"; /* WigiWigi method */ /* * WigiWigi is used by connecting to Wigi localhost, and then sending him requests */ bool WIGI_b_LocalConnect() { /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ WORD wVersionRequested; WSADATA wsaData; int err, option; ULONG trueval; struct sockaddr_in address, dest_address; char Key[50] = "00guid00apakian21921923doobaa\r\n"; char Answer[30]; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ wVersionRequested = MAKEWORD(2, 2); err = WSAStartup(wVersionRequested, &wsaData); if(err != 0) return false; WigiSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if(WigiSocket == -1) return false; /* Connect to WigiWigi local host (127.0.0.1), port 43690 */ memset(&dest_address, 0, sizeof(address)); dest_address.sin_family = AF_INET; dest_address.sin_port = htons(WIGI_PORT); err = dest_address.sin_addr.s_addr = inet_addr("127.0.0.1"); if(err == -1) return false; err = connect(WigiSocket, (const sockaddr *) &dest_address, sizeof(dest_address)); if(err == -1) return false; //char Ping[19] = "Ping\r\n"; /* Send keycode to be able to send commands to Wigi engine */ err = send(WigiSocket, Key, sizeof(Key), 0); if(err == -1) return false; err = recv(WigiSocket, Answer, sizeof(Answer), 0); if(err == -1 /*|| strcmp(Answer, AnswerOK) != 0*/) return false; b_Connected = true; return true; } void *WIGI_Encode_INIT(MAP *PPicture) { if (!b_Connected) if (!WIGI_b_LocalConnect()) return NULL; //"#define InputFrame MyWindow HWND return NULL; } u32 WIGI_Encode_FRAME(void *H,MAP *PPicture,char *Buffer,u32 FROMSCRATCH) { return 1; } void WIGI_Encode_CLOSE(void *H) { } void *Encode_INIT(MAP *PPicture) { return WIGI_Encode_INIT(PPicture); } u32 Encode_FRAME(void *H, MAP *PPicture, char *Buffer, u32 FROMSCRATCH) { return WIGI_Encode_FRAME(H, PPicture, Buffer, FROMSCRATCH); } void Encode_CLOSE(void *H) { WIGI_Encode_CLOSE(H); } #endif