Пример #1
0
int main() {
	PresentationEngineManager* pem;
	pem = new PresentationEngineManager(0, 0, 0, 0, 0, false);
	pem->pausePressed();

	//TODO: tests
	return 0;
}
	void* PresentationEngineManager::eventReceived(void* ptr) {
		struct inputEventNotification* ev;
		PresentationEngineManager* p;
		string parameter;
		vector<string>* cmds;

		ev             = (struct inputEventNotification*)ptr;

		const int code = ev->code;
		p              = ev->p;
		parameter      = ev->parameter;
		cmds           = ev->cmds;

#ifdef DSMCCWRAPPERLISTENER_H_
		ITuner* t;
		t = ev->tuner;
#endif

		if (parameter != "" && code == IPlayer::PL_NOTIFY_STOP) {
			::usleep(100000);
			p->presentationCompleted(parameter);

		} else if (code == CodeMap::KEY_POWER || code == CodeMap::KEY_F10) {
			sb->stop();
			::usleep(900000);
			printTimeStamp();
			cout << "PresentationEngineManager::eventReceived power off!";
			cout << endl;
			p->setIsLocalNcl(true, NULL);
			p->stopPresentation();

		} else if (code == CodeMap::KEY_STOP || code == CodeMap::KEY_F11) {
			sb->stop();
			::usleep(900000);
			printTimeStamp();
			cout << "PresentationEngineManager::eventReceived stop apps!";
			cout << endl;
			p->stopPresentation();

		} else if (code == CodeMap::KEY_PRINTSCREEN ||
				code == CodeMap::KEY_SUPER) {

			p->getScreenShot();

		} else if (code == CodeMap::KEY_PAUSE || code == CodeMap::KEY_F12) {

			sb->pause();
			p->pausePressed();

#ifdef DSMCCWRAPPERLISTENER_H_
		} else if (t != NULL) {
			if (code == CodeMap::KEY_CHANNEL_UP ||
					code == CodeMap::KEY_PAGE_UP) {

				t->channelUp();

			} else if (code == CodeMap::KEY_CHANNEL_DOWN ||
					code == CodeMap::KEY_PAGE_DOWN) {

				t->channelDown();
			}
#endif

		} else if (code == CodeMap::KEY_PLUS_SIGN && cmds != NULL) {
			if (!cmds->empty()) {
				string cmd = *(cmds->begin());
				cout << "RUNNING CURRENT COMMAND '" << cmd;
				cout << "'" << endl;

				p->readCommand(cmd);
				cmds->erase(cmds->begin());
				cmds->push_back(cmd);
			}

		} else if (code == CodeMap::KEY_GREATER_THAN_SIGN) {
			cout << ">> TIME SHIFT >>" << endl;
			p->updateFormatters(UC_SHIFT, "forward");

		} else if (code == CodeMap::KEY_LESS_THAN_SIGN) {
			cout << "<< TIME SHIFT <<" << endl;
			p->updateFormatters(UC_SHIFT, "backward");
		}

		delete ev;
		return NULL;
	}