Example #1
0
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);
	}
Example #2
0
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;
}
Example #3
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;
}