www.pudn.com > HC_v4.22_scn_20070821.zip > exvideo.cpp
#include "exvideo.h"
static QsStruct sQstruct;
void SetsQstruct(QsStruct *inter)
{
memcpy(&sQstruct, inter, sizeof(QsStruct));
}
void InterStream(int channel, char *databuf, int frametype, int framelength)
{
QSDLWidget *ph = sQstruct.qsclass;
void (QSDLWidget::*pmf)(int, char*, int, int) = sQstruct.pmf;
(ph->*pmf)(channel, databuf, frametype, framelength);
}
void InterStart(int port)
{
QSDLWidget *ph = sQstruct.qsclass;
void (QSDLWidget::*Startpmf)(int) = sQstruct.Startpmf;
(ph->*Startpmf)(port);
}
void InterStop(int port)
{
QSDLWidget *ph = sQstruct.qsclass;
void (QSDLWidget::*Stoppmf)(int) = sQstruct.Stoppmf;
(ph->*Stoppmf)(port);
}
void InterMessage(char* buf, int length)
{
QSDLWidget *ph = sQstruct.qsclass;
void (QSDLWidget::*Messagepmf)(char*, int) = sQstruct.Messagepmf;
(ph->*Messagepmf)(buf, length);
}
int InterIP(int channel, char *sIP)
{
QSDLWidget *ph = sQstruct.qsclass;
int (QSDLWidget::*IPpmf)(int, char*) = sQstruct.IPpmf;
int temp = (ph->*IPpmf)(channel, sIP);
printf(" IP return value: %d \n", temp);
return temp;
}
int InterPassword(char* username, int namelen, char *password, int passlen)
{
QSDLWidget *ph = sQstruct.qsclass;
int (QSDLWidget::*Passwordpmf)(char*, int, char *, int) = sQstruct.Passwordpmf;
int temp = (ph->*Passwordpmf)(username, namelen, password, passlen);
printf(" Password return value: %d \n", temp);
return temp;
}
int InterCheck(int channel, char *username, int namelen, char *password, int passlen, char *sIP)
{
QSDLWidget *ph = sQstruct.qsclass;
int (QSDLWidget::*Checkpmf)(int, char*, int, char*, int, char*) = sQstruct.Checkpmf;
int temp = (ph->*Checkpmf)(channel, username, namelen, password, passlen, sIP);
printf(" Check return value: %d \n", temp);
return temp;
}
void InterDisconnect(int nport, char* sIP)
{
QSDLWidget *ph = sQstruct.qsclass;
void (QSDLWidget::*Disconnectpmf)(int, char*) = sQstruct.Disconnectpmf;
(ph->*Disconnectpmf)(nport, sIP);
}
void *intermediary(void *ptr)
{
DsStruct *pa = (DsStruct *)ptr;
Dsclass *ph = pa ->dsclass;
void* (Dsclass::*pmf)() = pa->pmf;
return ((ph->*pmf)());
}
void InterImageStreamCallback(unsigned int channelNumber, void* context)
{
QSDLWidget *ph = sQstruct.qsclass;
void (QSDLWidget::*ImageStreamCallbackpmf)(unsigned int, void*) = sQstruct.ImageStreamCallbackpmf;
(ph->*ImageStreamCallbackpmf)(channelNumber, context);
}