void DFBGInputEvent::getAxisValue(int* x, int* y, int* z) {
		if (event != NULL && ((DFBInputEvent*)event)->type == DIET_AXISMOTION) {
			if (((DFBInputEvent*)event)->flags & DIEF_AXISABS) {
				switch (((DFBInputEvent*)event)->axis) {
					case DIAI_X:
						*x = ((DFBInputEvent*)event)->axisabs;
						break;

					case DIAI_Y:
						*y = ((DFBInputEvent*)event)->axisabs;
						break;

					case DIAI_Z:
						if (z != NULL) {
							*z = ((DFBInputEvent*)event)->axisabs;
						}
						break;

					default:
						break;
				}

			} else if (((DFBInputEvent*)event)->flags & DIEF_AXISREL) {
				switch (((DFBInputEvent*)event)->axis) {
					case DIAI_X:
						*x += ((DFBInputEvent*)event)->axisrel;
						if (*x < 0) {
							*x = 0;
						}
						break;

					case DIAI_Y:
						*y += ((DFBInputEvent*)event)->axisrel;
						if (*y < 0) {
							*y = 0;
						}
						break;

					case DIAI_Z:
						if (z != NULL) {
							*z += ((DFBInputEvent*)event)->axisrel;
							if (*z < 0) {
								*z = 0;
							}
						}
						break;

					default:
						break;
				}

			}

		} else if (isButtonPressType()) {
			*x = this->x;
			*y = this->y;
		}
	}
Exemplo n.º 2
0
	DFBGInputEvent::DFBGInputEvent(void* event) {
		this->event = (DFBEvent*)event;

		if (isButtonPressType()) {
			setKeyCode(CodeMap::KEY_TAP);
		}

		x = 0;
		y = 0;
	}