void Menu::simulate(const float& seconds) { // inject events to cegui... for(std::set<Model::PlayerConfiguration::InputEvent>::const_iterator event = getKeyboard()->getEvents().begin() ; event != getKeyboard()->getEvents().end() ; ++event) { } for(std::set<OIS::MouseButtonID>::const_iterator event = getMouse()->getButtonPressed().begin() ; event != getMouse()->getButtonPressed().end() ; ++event) { CEGUI::System::getSingleton().injectMouseButtonDown(convertOgreButtonToCegui(*event)) ; } for(std::set<OIS::MouseButtonID>::const_iterator event = getMouse()->getButtonReleased().begin() ; event != getMouse()->getButtonReleased().end() ; ++event) { CEGUI::System::getSingleton().injectMouseButtonUp(convertOgreButtonToCegui(*event)) ; } Kernel::Percentage mouse_x ; Kernel::Percentage mouse_y ; std::map<Model::PlayerConfiguration::InputAxis, Kernel::Percentage>::const_iterator finder ; finder = getMouse()->getAxes().find(Model::PlayerConfiguration::InputAxis::mouseAxis(Mouse::X)) ; if (finder != getMouse()->getAxes().end()) mouse_x = finder->second ; finder = getMouse()->getAxes().find(Model::PlayerConfiguration::InputAxis::mouseAxis(Mouse::Y)) ; if (finder != getMouse()->getAxes().end()) mouse_y = finder->second ; unsigned int width ; unsigned int height ; unsigned int depth ; int left ; int top ; Display::getWindowSize(width,height,depth,left,top) ; CEGUI::Point position(width*(float(mouse_x)+0.5),height*(float(mouse_y)+0.5)) ; CEGUI::MouseCursor::getSingleton().setPosition(position) ; }
int main() { unsigned int i=90000; while(1){ if( i > 0)//keyboard read delay i--; else{ //Read into keyboard alt_u8 data = getKeyboard(); if (data == KEYBOARD_DOWN){ printf("DOWN 0\n"); } if (ascii != NULL){ printf("%c\n",ascii); } if (data == KEYBOARD_ENTER){ printf("Enter\n"); } i = 90000; } } return 0; }
int stopBeep (void) { int keyboard = getKeyboard(); if (keyboard != -1) { int command = KBD_CMD_NOBELL; if (ioctl(keyboard, KIOCCMD, &command) != -1) return 1; logSystemError("ioctl KIOCCMD KBD_CMD_NOBELL"); } return 0; }
int startBeep (BeepFrequency frequency) { int keyboard = getKeyboard(); if (keyboard != -1) { int command = KBD_CMD_BELL; if (ioctl(keyboard, KIOCCMD, &command) != -1) return 1; logSystemError("ioctl KIOCCMD KBD_CMD_BELL"); } return 0; }
void App::init() { /* Check if main instance already exists */ if (App::main_instance_) { throw Error ("Cannot create multiple apps at once."); } /* Initialize SDL */ if (SDL_Init(SDL_INIT_VIDEO) < 0) { throw Error ("Could not initialize SDL."); } /* Allow app to modify config */ Window::Config config; onInit(config); /* Create new window with config */ window_ = std::make_unique<Window>(config); /* Initialize GLEW with created window context */ glewExperimental = true; if (glewInit() != GLEW_OK) { throw Error ("Failed to init GLEW."); } /* Flush errors caused by GLEW */ while (glGetError()); /* Initialize controllers */ keyboard_ = std::make_unique<Keyboard>(); mouse_ = std::make_unique<Mouse>(); /* Register SDL event handlers */ addEventHandler(getWindow()); addEventHandler(getKeyboard()); addEventHandler(getMouse()); scene_ = std::make_unique<Scene>(); renderer_ = std::make_unique<Renderer>( window_->getWidth(), window_->getHeight()); App::main_instance_ = this; should_quit_ = false; onPostInit(); }
uint16_t Buzzer::getSound(uint16_t time) { switch(sound_) { case Keyboard: return getKeyboard(time); case Info: return getInfo(time); case Save: return getSave(time); case Select: return getSelect(time); case ProgramComplete: return getProgramComplete(time); case StartProgram: return getStartProgram(time); case ReversedPolarity: return getReversedPolarity(time); case Error: return getError(time); case Off: default: return getOff(time); } }
int main(int argc, char** argv) { // std::setbuf(stdout, NULL); // used to always flush std::cout auto sdl_init_status = SDL_Init(SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER); assert(sdl_init_status==0); auto inputproc = std::unique_ptr<sdli::Processor>(new sdli::Processor(SampleContext::MAX_COUNT)); auto& device = inputproc->getKeyboard(); auto& pad = inputproc->getGamecontroller(0); /** BEG Mappings **/ auto ctx1 = inputproc->createContext(SampleContext::GameMod); auto ctx2 = inputproc->createContext(SampleContext::Game); ctx1->mapAxis(SDL_SCANCODE_D, SDL_SCANCODE_A, SampleAxes::MoveHorizontal); return 0; }
virtual void main(const Arguments& argv) throw() override { initializeRenderSystem(); m_mouseAxisDelegate = xdl::XdevLAxisDelegateType::Create<FontTest, &FontTest::mouse_axis_handle>(this); getMouse()->registerDelegate(m_mouseAxisDelegate); m_buttonDelegate = xdl::XdevLButtonIdDelegateType::Create<FontTest, &FontTest::escape_key_handle>(this); getKeyboard()->registerDelegate(STRING("KEY_ESCAPE"), m_buttonDelegate); getWindow()->show(); getWindow()->setInputFocus(); while(m_appRun) { getCore()->update(); get3DProcessor()->setActiveDepthTest(xdl::xdl_true); get3DProcessor()->clearColorTargets(1.0f, 1.0f, 1.0f, 0.0f); get3DProcessor()->clearDepthTarget(1.0f); m_textEngine->setColor(200, 0, 0, 255); m_textEngine->useFont(m_font); m_textEngine->printText(L"The quick brown fox jumps over the lazy dog", m_xaxis, m_yaxis); m_textEngine->setColor(0, 0, 0, 255); m_textEngine->useFont(m_font2); m_textEngine->printText(L"The quick brown fox jumps over the lazy dog", 0, 0); get3DProcessor()->swapBuffers(); xdl::sleep(0.002); } }
bool AutoTypePlatformX11::isAvailable() { int ignore; if (!XQueryExtension(m_dpy, "XInputExtension", &ignore, &ignore, &ignore)) { return false; } if (!XQueryExtension(m_dpy, "XTEST", &ignore, &ignore, &ignore)) { return false; } if (!m_xkb) { XkbDescPtr kbd = getKeyboard(); if (!kbd) { return false; } XkbFreeKeyboard(kbd, XkbAllComponentsMask, True); } return true; }
int canBeep (void) { return getKeyboard() != -1; }
int main(int argc, char** argv) { std::setbuf(stdout, NULL); // used to always flush std::cout auto sdl_init_status = SDL_Init(SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER); assert(sdl_init_status==0); bool sampleQuit = false; auto inputproc = std::unique_ptr<sdli::Processor>(new sdli::Processor(SampleContext::MAX_COUNT)); auto& keyboard = inputproc->getKeyboard(); auto& pad = inputproc->getGamecontroller(0); // auto& pad = inputproc->getGamecontroller(0); SDL_Window* w = SDL_CreateWindow("SampleWindow", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, SDL_WindowFlags::SDL_WINDOW_SHOWN|SDL_WindowFlags::SDL_WINDOW_OPENGL); auto sdl_glContext = SDL_GL_CreateContext(w); auto ctx = inputproc->createContext(SampleContext::Game); auto climb = inputproc->createContext(SampleContext::GameMod); /* [BEG] Bind Axes */ ctx->mapAxis(SDL_SCANCODE_LEFT, SDL_SCANCODE_RIGHT, SampleInputAxis::Horizontal); ctx->mapAxis(SDL_SCANCODE_A, SDL_SCANCODE_D, SampleInputAxis::Horizontal); ctx->mapAxis(SDL_SCANCODE_W, SDL_SCANCODE_S, SampleInputAxis::Vertical); ctx->mapAxis(SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_LEFT, SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_RIGHT, SampleInputAxis::Horizontal); ctx->mapAxis(SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_UP, SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_DPAD_DOWN, SampleInputAxis::Vertical); ctx->mapAxis(SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_LEFTX, SampleInputAxis::Horizontal); ctx->mapAxis(SDL_GameControllerAxis::SDL_CONTROLLER_AXIS_LEFTY, SampleInputAxis::Vertical); /* [END] Bind Axes */ /* [BEG] Bind Buttons */ ctx->mapButton(SDL_SCANCODE_E, SampleInputActions::Shoot); ctx->mapButton(SDL_SCANCODE_F, SampleInputActions::CHANGE_CTX); ctx->mapButton(SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_A, SampleInputActions::Shoot); ctx->mapButton(SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_B, SampleInputActions::CHANGE_CTX); /* [END] Bind Buttons */ ctx->addCallback(sdli::CallType::OnPress, SampleInputActions::CHANGE_CTX, [=,&keyboard, &pad](){ keyboard.pushContext(climb); pad.pushContext(climb); }); climb->mapButton(SDL_SCANCODE_F, SampleInputActions::CHANGE_CTX); climb->mapButton(SDL_GameControllerButton::SDL_CONTROLLER_BUTTON_B, SampleInputActions::CHANGE_CTX); climb->addCallback(sdli::CallType::OnRelease, SampleInputActions::CHANGE_CTX, [=,&keyboard, &pad](){ keyboard.popContext(); pad.popContext(); }); keyboard.pushContext(ctx); pad.pushContext(ctx); /* Sample Data */ const int trailCount = 300; float aspectRatio = 600.0f/800.0f; float dx = 0.025f * aspectRatio; float dy = 0.025f; float color[trailCount][4]; color[0][0] = 1.0f; color[0][1] = 1.0f; color[0][2] = 1.0f; color[0][3] = 1.0f; for(int i=1;i<trailCount;++i) { color[i][0] = 0.5f + i*(1.5f/trailCount); color[i][1] = 1.0f; color[i][2] = 1.0f; color[i][3] = 1.0f - i*(2.0f/trailCount); } struct Test { float x{0.0f}, y{0.0f}; } player[trailCount]; float add = -0.01f; SDL_Event event; while(!sampleQuit) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: sampleQuit = true; break; } inputproc->handleSdlEvents(event); } inputproc->poll(); inputproc->dispatch(); for(int i=trailCount-1;i>0;--i) { player[i].x = player[i-1].x; player[i].y = player[i-1].y; } float movDir[2]; movDir[0] = pad.getAxis(SampleInputAxis::Horizontal) + keyboard.getAxis(SampleInputAxis::Horizontal); movDir[1] = pad.getAxis(SampleInputAxis::Vertical) + keyboard.getAxis(SampleInputAxis::Vertical); float len = sqrtf((movDir[0]*movDir[0])+(movDir[1]*movDir[1])); if(!isnan(len) && len!=0.0f) // Character Control { float dmx = (movDir[0] / len) * 0.002f * fabs(movDir[0]); float dmy = (movDir[1] / len) * 0.002f * fabs(movDir[1]); player[0].x = sdli::clamp(player[0].x + dmx, -1.0f +dx, 1.0f -dx); player[0].y = sdli::clamp(player[0].y - dmy, -1.0f + dy, 1.0f -dy); } if(pad.isPressed(SampleInputActions::Shoot) || keyboard.isPressed(SampleInputActions::Shoot)) { printf("shoot\n"); add = 0.001f; } if(pad.isReleased(SampleInputActions::Shoot) || keyboard.isReleased(SampleInputActions::Shoot)) { printf("unshoot\n"); add = -0.001f; } color[0][1] = sdli::clamp(color[0][1] + add, 0.5f, 1.0f); color[0][0] = keyboard.isDown(SampleInputActions::CHANGE_CTX)||pad.isDown(SampleInputActions::CHANGE_CTX)?1.0f:0.0f; glClearColor(0,0,0,1); glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT); glEnable(GL_BLEND); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // int i = 0; for(int i=trailCount-1;i>=0;--i) { glColor4fv((const GLfloat*)color[i]); glBegin(GL_TRIANGLE_STRIP); glVertex2f(player[i].x - dx * (1.0f - i*(1.0f/trailCount)), player[i].y - dy * (1.0f - i*(1.0f/trailCount))); glVertex2f(player[i].x + dx * (1.0f - i*(1.0f/trailCount)), player[i].y - dy * (1.0f - i*(1.0f/trailCount))); glVertex2f(player[i].x - dx * (1.0f - i*(1.0f/trailCount)), player[i].y + dy * (1.0f - i*(1.0f/trailCount))); glVertex2f(player[i].x + dx * (1.0f - i*(1.0f/trailCount)), player[i].y + dy * (1.0f - i*(1.0f/trailCount))); glEnd(); } glDisable(GL_BLEND); inputproc->swap(); SDL_GL_SwapWindow(w); } SDL_GL_DeleteContext(sdl_glContext); SDL_DestroyWindow(w); return 0; }