Initial
This commit is contained in:
125
CapServer/MainApplication.cpp
Normal file
125
CapServer/MainApplication.cpp
Normal file
@@ -0,0 +1,125 @@
|
||||
#include <CapServer/MainApplication.hpp>
|
||||
|
||||
MainApplication::MainApplication()
|
||||
{
|
||||
}
|
||||
|
||||
MainApplication::~MainApplication()
|
||||
{
|
||||
}
|
||||
|
||||
int MainApplication::run(int argc,char **argv)
|
||||
{
|
||||
String command;
|
||||
|
||||
mParams.setArgs(argc,argv);
|
||||
switch(mParams.getRequest())
|
||||
{
|
||||
case Params::Client :
|
||||
mParams.showParams();
|
||||
handleClient(mParams.getServer(),mParams.getPort().toInt());
|
||||
break;
|
||||
case Params::Server :
|
||||
mParams.showParams();
|
||||
handleServer(mParams.getHost(),mParams.getPort().toInt(),mParams.getTimeout().toInt(),mParams.getDevice().toInt(),mParams.getRetain(),mParams.getDebug(),mParams.getShowSrcDlg());
|
||||
break;
|
||||
case Params::Settings :
|
||||
mParams.showParams();
|
||||
handleSettings(mParams.getShowSrcDlg());
|
||||
break;
|
||||
case Params::None :
|
||||
displayUsage();
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void MainApplication::handleServer(const String &host,int port,int timeout,int deviceIndex,bool retain,bool debug,bool showSrcDlg)
|
||||
{
|
||||
message("[MainApplication::handleServer]starting server");
|
||||
SocketServer socketServer(host,port,deviceIndex,retain,debug,showSrcDlg,timeout);
|
||||
socketServer.listen(host,port);
|
||||
}
|
||||
|
||||
void MainApplication::handleClient(const String &host,int port)
|
||||
{
|
||||
INETSocketAddress internetSocketAddress;
|
||||
InternetAddress internetAddress(127,0,0,1);
|
||||
Socket socket;
|
||||
SocketHeader socketHeader;
|
||||
Array<BYTE> content;
|
||||
|
||||
message("[MainApplication::handleClient]starting client");
|
||||
internetSocketAddress.family(PF_INET);
|
||||
internetSocketAddress.port(1024);
|
||||
internetSocketAddress.internetAddress(internetAddress);
|
||||
if(!socket.create())
|
||||
{
|
||||
message("[MainApplication::handleClient]create failed...");
|
||||
return;
|
||||
}
|
||||
if(!socket.connect(internetSocketAddress))
|
||||
{
|
||||
message("[MainApplication::handleClient]connect failed...");
|
||||
return;
|
||||
}
|
||||
message("[MainApplication::handleClient]reading socket header...");
|
||||
socketHeader.unmarshall(socket);
|
||||
message("[MainApplication::handleClient]header length",socketHeader.getSizeHeader());
|
||||
message("[MainApplication::handleClient]version",socketHeader.getVersion());
|
||||
message("[MainApplication::handleClient]content length",socketHeader.getContentLength());
|
||||
message("[MainApplication::handleClient]content type",(int)socketHeader.getContentType());
|
||||
content.size(socketHeader.getContentLength());
|
||||
message("[MainApplication::handleClient]reading content...");
|
||||
socket.receive((char*)&content[0],content.size());
|
||||
message("[MainApplication::handleClient]done...");
|
||||
socket.destroy();
|
||||
}
|
||||
|
||||
void MainApplication::handleSettings(bool showSrcDlg)
|
||||
{
|
||||
VidReg vidReg;
|
||||
Block<DriverInfo> driverInfoBlock;
|
||||
|
||||
VidCap::getDrivers(driverInfoBlock);
|
||||
message("[MainApplication::handleSettings]Capture File",vidReg.getCaptureFile());
|
||||
message("[MainApplication::handleSettings]Sequencing",vidReg.getSequencing()?"true":"false");
|
||||
message("[MainApplication::handleSettings]Preview Rate",vidReg.getPreviewRate());
|
||||
message("[MainApplication::handleSettings]Preview Width",vidReg.getPreviewWidth());
|
||||
message("[MainApplication::handleSettings]Preview Height",vidReg.getPreviewHeight());
|
||||
message("[MainApplication::handleSettings]Capture Width",vidReg.getCaptureWidth());
|
||||
message("[MainApplication::handleSettings]Capture Height",vidReg.getCaptureHeight());
|
||||
message("[MainApplication::handleSettings]Capture Quality",vidReg.getQuality());
|
||||
message("[MainApplication::handleSettings]***********CAPTURE DEVICE LIST*********");
|
||||
if(!driverInfoBlock.size())message("[MainApplication::handleSettings]No capture devices on system.");
|
||||
for(int index=0;index<driverInfoBlock.size();index++)
|
||||
{
|
||||
WDMCap wdmCap(index);
|
||||
if(wdmCap.isConnected())
|
||||
{
|
||||
message(String("[MainApplication::handleSettings]")+driverInfoBlock[index].driverName()+String(" ***Available"));
|
||||
if(showSrcDlg)wdmCap.dialogVideoSource();
|
||||
}
|
||||
else message(String("[MainApplication::handleSettings]")+driverInfoBlock[index].driverName()+String(" ***Unavailable"));
|
||||
}
|
||||
}
|
||||
|
||||
void MainApplication::displayUsage(void)
|
||||
{
|
||||
message("CapServer [run host port device retain debug showsrcdlg]");
|
||||
message(" run={server} | {client} | {settings}");
|
||||
message(" server=<servername> | <serveraddress>");
|
||||
message(" host=<hostname> | <hostaddress>");
|
||||
message(" port=<port>");
|
||||
message(" device=<index>");
|
||||
message(" retain={true} | {false}");
|
||||
message(" debug={true} | {false}");
|
||||
message(" showsrcdlg={true} | {false}");
|
||||
message(" timeout=<value> (Delay between frame grab for retain mode. (ms))");
|
||||
message(" ");
|
||||
message(" CapServer run=server host=127.0.0.1 port=1024");
|
||||
message(" CapServer run=server host=127.0.0.1 port=1024 device=0");
|
||||
message(" CapServer run=client server=127.0.0.1 port=1024");
|
||||
message(" CapServer run=settings");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user