95 lines
2 KiB
C++
95 lines
2 KiB
C++
#include <windows.h>
|
|
#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
|
|
|