Exemplo n.º 1
0
      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) ;
      }
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
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;
}
Exemplo n.º 4
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;
}
Exemplo n.º 5
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();
    }
Exemplo n.º 6
0
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);
    }
}
Exemplo n.º 7
0
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;
}
Exemplo n.º 8
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);
			}

		}
Exemplo n.º 9
0
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;
}
Exemplo n.º 10
0
int
canBeep (void) {
  return getKeyboard() != -1;
}
Exemplo n.º 11
0
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;
}