Пример #1
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;
}
void ProgressMeter::check() {
  // TODO
  // if made progress since last time
  //   print progress
  //   reschedule
  // else
  // server->stop();
  // For now, just stop after 10 seconds.
  static int i=0;
  if (++i == 10) {
    std::cout << "stop" << std::endl;
    service_->stop();
    return;
  }

  std::cout << "." << std::flush;

  Callback<void>* cb = makeCallableOnce(&ProgressMeter::check, this);
  IOManager* io_manager = service_->io_manager();
  io_manager->addTimer(1.0 /*sec*/ , cb);
}
Пример #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;
}