void main(int argc, char** argv) { omsg("OmicronSDK - SAGEInputServer"); omsg("Copyright (C) 2010-2015 Electronic Visualization Laboratory\nUniversity of Illinois at Chicago"); omsg("======================================================"); omsg(""); SAGEInputServer app; // Read config file name from command line or use default one. const char* cfgName = "sageTouch.cfg"; if(argc == 2) cfgName = argv[1]; Config* cfg = new Config(cfgName); DataManager* dm = DataManager::getInstance(); // Add a default filesystem data source using current work dir. dm->addSource(new FilesystemDataSource("./")); dm->addSource(new FilesystemDataSource(OMICRON_DATA_PATH)); ServiceManager* sm = new ServiceManager(); sm->setupAndStart(cfg); Sleep(1000); Setting& stRoot = cfg->getRootSetting()["config"]; if( stRoot.exists("sagePort") ) { DIM_PORT = cfg->getIntValue("sagePort", stRoot, 20005); ofmsg("SAGE port set to %1%", %DIM_PORT); }
int main(int argc, char** argv) { SoundTest app; // Read config file name from command line or use default one. const char* cfgName = "soundTest.cfg"; if(argc == 2) cfgName = argv[1]; Config* cfg = new Config(cfgName); DataManager* dm = DataManager::getInstance(); // Add a default filesystem data source using current work dir. dm->addSource(new FilesystemDataSource("./")); dm->addSource(new FilesystemDataSource(OMICRON_DATA_PATH)); ServiceManager* sm = new ServiceManager(); sm->setupAndStart(cfg); float delay = -0.01f; // Seconds to delay sending events (<= 0 disables delay) #ifdef _DEBUG bool printOutput = true; #else bool printOutput = false; #endif while(true) { sm->poll(); // Get events int av = sm->getAvailableEvents(); if(av != 0) { // TODO: Instead of copying the event list, we can lock the main one. Event evts[OMICRON_MAX_EVENTS]; sm->getEvents(evts, OMICRON_MAX_EVENTS); for( int evtNum = 0; evtNum < av; evtNum++) { app.handleEvent(evts[evtNum]); } app.update(); //if( printOutput ) // printf("------------------------------------------------------------------------------\n"); } } sm->stop(); delete sm; delete cfg; delete dm; return 0; }
void main(int argc, char** argv) { OInputServer app; // Read config file name from command line or use default one. const char* cfgName = "oinputserver.cfg"; if(argc == 2) cfgName = argv[1]; Config* cfg = new Config(cfgName); DataManager* dm = DataManager::getInstance(); // Add a default filesystem data source using current work dir. dm->addSource(new FilesystemDataSource("./")); dm->addSource(new FilesystemDataSource(OMICRON_DATA_PATH)); ServiceManager* sm = new ServiceManager(); sm->setupAndStart(cfg); app.startConnection(); float delay = -0.01f; // Seconds to delay sending events (<= 0 disables delay) bool testStream = false; char* testPacket; bool printOutput = true; printf("OInputServer: Starting to listen for clients... \n"); while(true){ if( delay > 0.0 ) Sleep(1000.0*delay); // Delay sending of data out sm->poll(); // Required for DirectInputService // Start listening for clients (non-blocking) app.startListening(); // Get events int av = sm->getAvailableEvents(); if(av != 0 && !testStream ) { /* // @todo: Instead of copying the event list, we can lock the main one. Event evts[OMICRON_MAX_EVENTS]; sm->getEvents(evts, OMICRON_MAX_EVENTS); for( int evtNum = 0; evtNum < av; evtNum++) { if( app.handleEvent(evts[evtNum]) ){ // is there an event? // Send event to clients if( printOutput ) printf("%s\n", app.getEvent()); app.sendToClients( app.getEvent() ); } } if( printOutput ) printf("------------------------------------------------------------------------------\n"); */ }// if else if( testStream ){ testPacket = new char[99]; // example touch string: '2:-10,0.5,0.5,0.1,0.1 ' itoa(1, testPacket, 10); // Append input type strcat( testPacket, ":42,0.5,0.5,0.1,0.1 " ); printf("OInputServer: main() ----- WARNING: TEST STREAM MODE ACTIVE -----\n"); printf("%s\n",testPacket); app.sendToClients( testPacket ); } }// while sm->stop(); delete sm; delete cfg; delete dm; }