コード例 #1
0
//------------------------------------------------------------
void ofxAppNoWindow::runAppViaInfiniteLoop(ofBaseApp * appPtr){

	ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofNoopRenderer));

	ofAppPtr = appPtr;

	#if defined TARGET_OSX || defined TARGET_LINUX
	// for keyboard
	//set_conio_terminal_mode();
	#endif

	ofNotifySetup();

//    ofLogNotice("ofxAppNoWindow")
//		<< "***" << endl
//		<< "***" << endl
//		<< "*** running a headless (no window) app" << endl
//		<< "***" << endl
//		<< "*** keyboard input works here" << endl
//		<< "***"<< endl
//		<< "*** press Esc or Ctrl-C to quit" << endl
//		<< "***" << endl;

	while (true)
	{
        /// listen for escape
        #ifdef TARGET_WIN32
        if (GetAsyncKeyState(VK_ESCAPE))
            ofNotifyKeyPressed(OF_KEY_ESC);
        #endif

		#if defined TARGET_OSX || defined TARGET_LINUX
		while ( kbhit() )
		{
			int key = getch();
			if ( key == 27 )
			{
				ofNotifyKeyPressed(OF_KEY_ESC);
			}
			else if ( key == /* ctrl-c */ 3 )
			{
				ofLogNotice("ofxAppNoWindow") << "Ctrl-C pressed" << endl;
				OF_EXIT_APP(0);
			}
			else
			{
				ofNotifyKeyPressed(key);
			}
		}
		#endif


		ofNotifyUpdate();
		ofNotifyDraw();

	}
}
コード例 #2
0
//------------------------------------------------------------
void ofAppGlutWindow::keyboard_cb(unsigned char key, int x, int y) {

	ofNotifyKeyPressed(key);

	if (key == OF_KEY_ESC){				// "escape"
		exitApp();
	}
}
コード例 #3
0
ファイル: ofEvents.cpp プロジェクト: radamchin/openFrameworks
//------------------------------------------
void ofNotifyKeyEvent(const ofKeyEventArgs & keyEvent){
	switch(keyEvent.type){
		case ofKeyEventArgs::Pressed:
			ofNotifyKeyPressed(keyEvent.key);
			break;
		case ofKeyEventArgs::Released:
			ofNotifyKeyReleased(keyEvent.key);
			break;
		
	}
}
コード例 #4
0
//------------------------------------------------------
void ofAppGlutWindow::special_key_cb(int key, int x, int y) {
	ofNotifyKeyPressed(key | OF_KEY_MODIFIER);
}
コード例 #5
0
//------------------------------------------------------------
void ofAppGlutWindow::keyboard_cb(unsigned char key, int x, int y) {
	ofNotifyKeyPressed(key);
}
コード例 #6
0
//------------------------------------------------------------
void ofxFensterManager::keyboard_cb(GLFWwindow* windowP_, int key, int scancode, unsigned int codepoint, int action, int mods) {

	ofLogVerbose("ofxFenster") << "key: " << key << " state: " << action;

	switch (key) {
	case GLFW_KEY_ESCAPE:
		key = OF_KEY_ESC;
		break;
	case GLFW_KEY_F1:
		key = OF_KEY_F1;
		break;
	case GLFW_KEY_F2:
		key = OF_KEY_F2;
		break;
	case GLFW_KEY_F3:
		key = OF_KEY_F3;
		break;
	case GLFW_KEY_F4:
		key = OF_KEY_F4;
		break;
	case GLFW_KEY_F5:
		key = OF_KEY_F5;
		break;
	case GLFW_KEY_F6:
		key = OF_KEY_F6;
		break;
	case GLFW_KEY_F7:
		key = OF_KEY_F7;
		break;
	case GLFW_KEY_F8:
		key = OF_KEY_F8;
		break;
	case GLFW_KEY_F9:
		key = OF_KEY_F9;
		break;
	case GLFW_KEY_F10:
		key = OF_KEY_F10;
		break;
	case GLFW_KEY_F11:
		key = OF_KEY_F11;
		break;
	case GLFW_KEY_F12:
		key = OF_KEY_F12;
		break;
	case GLFW_KEY_LEFT:
		key = OF_KEY_LEFT;
		break;
	case GLFW_KEY_RIGHT:
		key = OF_KEY_RIGHT;
		break;
	case GLFW_KEY_UP:
		key = OF_KEY_UP;
		break;
	case GLFW_KEY_DOWN:
		key = OF_KEY_DOWN;
		break;
	case GLFW_KEY_PAGE_UP:
		key = OF_KEY_PAGE_UP;
		break;
	case GLFW_KEY_PAGE_DOWN:
		key = OF_KEY_PAGE_DOWN;
		break;
	case GLFW_KEY_HOME:
		key = OF_KEY_HOME;
		break;
	case GLFW_KEY_END:
		key = OF_KEY_END;
		break;
	case GLFW_KEY_INSERT:
		key = OF_KEY_INSERT;
		break;
	case GLFW_KEY_LEFT_SHIFT:
		key = OF_KEY_LEFT_SHIFT;
		break;
	case GLFW_KEY_LEFT_CONTROL:
		key = OF_KEY_LEFT_CONTROL;
		break;
	case GLFW_KEY_LEFT_ALT:
		key = OF_KEY_LEFT_ALT;
		break;
	case GLFW_KEY_LEFT_SUPER:
		key = OF_KEY_LEFT_SUPER;
		break;
	case GLFW_KEY_RIGHT_SHIFT:
		key = OF_KEY_RIGHT_SHIFT;
		break;
	case GLFW_KEY_RIGHT_CONTROL:
		key = OF_KEY_RIGHT_CONTROL;
		break;
	case GLFW_KEY_RIGHT_ALT:
		key = OF_KEY_RIGHT_ALT;
		break;
	case GLFW_KEY_RIGHT_SUPER:
		key = OF_KEY_RIGHT_SUPER;
		break;
	case GLFW_KEY_BACKSPACE:
		key = OF_KEY_BACKSPACE;
		break;
	case GLFW_KEY_DELETE:
		key = OF_KEY_DEL;
		break;
	case GLFW_KEY_ENTER:
		key = OF_KEY_RETURN;
		break;
	case GLFW_KEY_KP_ENTER:
		key = OF_KEY_RETURN;
		break;
	case GLFW_KEY_TAB:
		key = OF_KEY_TAB;
		break;
	default:
		break;
	}

	//GLFW defaults to uppercase - OF users are used to lowercase
	//we look and see if shift is being held to toggle upper/lowecase
	if( key >= 65 && key <= 90 && !ofGetKeyPressed(OF_KEY_SHIFT) ) {
		key += 32;
	}

	ofxFensterPtr fenster = get()->getFensterByGlfwHandle(windowP_);

	if(action == GLFW_PRESS || action == GLFW_REPEAT) {
		if(fenster == get()->mainWindow)
			ofNotifyKeyPressed(key);
			
		ofKeyEventArgs args;
		args.key = key;
		args.type = ofKeyEventArgs::Pressed;
		ofNotifyEvent(fenster->onKeyPressed, args);
			
		if (key == OF_KEY_ESC) {				// "escape"
			ofExit();
		}
	} else if (action == GLFW_RELEASE) {
		if(fenster == get()->mainWindow)
			ofNotifyKeyReleased(key);
			
		ofKeyEventArgs args;
		args.key = key;
		args.type = ofKeyEventArgs::Pressed;
		ofNotifyEvent(fenster->onKeyReleased, args);
	}
}
コード例 #7
0
void
Java_cc_openframeworks_OFAndroid_onKeyDown(JNIEnv*  env, jobject  thiz, jint  keyCode){
	ofNotifyKeyPressed(keyCode);
}