#include 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 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 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 | "); message(" host= | "); message(" port="); message(" device="); message(" retain={true} | {false}"); message(" debug={true} | {false}"); message(" showsrcdlg={true} | {false}"); message(" timeout= (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"); }