void LocalPC::makeMaster() { bool online = false; DEBUG_OUTPUT("[LocalPC]try make MASTER\n"); DEBUG_OUTPUT("[LocalPC]I'm %s\n", LOCAL_MASTER==getState()?"MASTER":"SLAVE"); enter(); online = floatIPOnline(); leave(); if(online) { DEBUG_OUTPUT("[LocalPC]ip(%s) online\n", mFloatIP); return; } bool master = !isSlave(); if(master) { makeSlave(); return; } enter(); DEBUG_OUTPUT("[LocalPC]add ip(%s) to ethernet(%s) ... \n", mFloatIP, mEthernet); Ipconfig ipconfig; ipconfig.addIP(mEthernet, mFloatIP, mFloatNetmask, mFloatGateway); online = floatIPOnline(); leave(); if(online) { DEBUG_OUTPUT("[LocalPC]add ip ok\n"); setState(LOCAL_MASTER); } }
int main(int argc, char** argv) { bool timeit = FALSE; QApplication app(argc,argv); bool scrollbars=FALSE; for (int arg=1; arg<argc; arg++) { if (0==strcmp(argv[arg],"-bounce")) { bouncers=atoi(argv[++arg]); } else if (0==strcmp(argv[arg],"-help") || 0==strcmp(argv[arg],"--help")) { showtext=FALSE; } else if (0==strcmp(argv[arg],"-redraws")) { showredraws=TRUE; } else if (0==strcmp(argv[arg],"-lines")) { showlines=TRUE; } else if (0==strcmp(argv[arg],"-btext")) { btext=FALSE; } else if (0==strcmp(argv[arg],"-dsprite")) { dsprite=FALSE; } else if (0==strcmp(argv[arg],"-dpoly")) { dpoly=!dpoly; } else if (0==strcmp(argv[arg],"-delay")) { refresh_delay=atoi(argv[++arg]); } else if (0==strcmp(argv[arg],"-sb")) { scrollbars=TRUE; } else if (0==strcmp(argv[arg],"-noopt")) { QPixmap::setDefaultOptimization( QPixmap::NoOptim ); } else if (0==strcmp(argv[arg],"-bestopt")) { QPixmap::setDefaultOptimization( QPixmap::BestOptim ); #ifdef _WS_WIN_ } else if (0==strcmp(argv[arg],"-bsm")) { extern bool qt_bitblt_bsm; qt_bitblt_bsm=TRUE; #endif } else if (0==strcmp(argv[arg],"-iter")) { iterations=atoi(argv[++arg]); timeit = TRUE; } else { warning("Bad param %s", argv[arg]); } } QMainWindow m; MySpriteField field(IMG_BACKGROUND,scrollbars ? WIDTH*3 : WIDTH, scrollbars ? HEIGHT*3 : HEIGHT); Example example(scrollbars,field,&m); QMenuBar* menu = m.menuBar(); QPopupMenu* file = new QPopupMenu; file->insertItem("New view", &example, SLOT(makeSlave()), CTRL+Key_N); file->insertSeparator(); file->insertItem("Quit", qApp, SLOT(quit()), CTRL+Key_Q); menu->insertItem("&File", file); QPopupMenu* edit = new QPopupMenu; edit->insertItem("New polygon", &example, SLOT(makePolygon())); edit->insertItem("New ellipse", &example, SLOT(makeEllipse())); edit->insertItem("New rectangle", &example, SLOT(makeRectangle())); menu->insertItem("&Edit", edit); MyPopupMenu* options = new MyPopupMenu; options->insertCheckItem("Show help text", &showtext, CTRL+Key_H); options->insertCheckItem("Show bouncing text", &btext, CTRL+Key_T); options->insertCheckItem("Show polygon", &dpoly, CTRL+Key_P); options->insertCheckItem("Show drawn sprite", &dsprite, CTRL+Key_D); options->insertCheckItem("Show redraw areas", &showredraws, CTRL+Key_A); options->insertCheckItem("Show foreground lines", &showlines, CTRL+Key_L); options->insertSeparator(); options->insertRadioItem("1 bouncer", &bouncers, 1); options->insertRadioItem("3 bouncers", &bouncers, 3); options->insertRadioItem("10 bouncers", &bouncers, 10); options->insertRadioItem("30 bouncers", &bouncers, 30); options->insertRadioItem("100 bouncers", &bouncers, 100); options->insertRadioItem("1000 bouncers", &bouncers, 1000); options->insertSeparator(); options->insertRadioItem("No delay", &refresh_delay, 0); options->insertRadioItem("500 fps", &refresh_delay, 2); options->insertRadioItem("100 fps", &refresh_delay, 10); options->insertRadioItem("72 fps", &refresh_delay, 14); options->insertRadioItem("30 fps", &refresh_delay, 33); options->insertRadioItem("10 fps", &refresh_delay, 100); options->insertRadioItem("5 fps", &refresh_delay, 200); options->insertSeparator(); options->insertRadioItem("1/10 speed", &speed, 2); options->insertRadioItem("1/2 speed", &speed, 10); options->insertRadioItem("1x speed", &speed, 20); options->insertRadioItem("2x speed", &speed, 40); options->insertRadioItem("5x speed", &speed, 100); menu->insertItem("&Options",options); m.statusBar(); QObject::connect(options, SIGNAL(variableChanged(bool*)), &example, SLOT(refresh())); QObject::connect(options, SIGNAL(variableChanged(int*)), &example, SLOT(refresh())); QObject::connect(&example, SIGNAL(status(const char*)), m.statusBar(), SLOT(message(const char*))); m.setCentralWidget(&example); app.setMainWidget(&m); m.show(); QTime t; t.start(); app.exec(); if ( timeit ) debug("%dms",t.elapsed()); return 0; }