コード例 #1
0
ファイル: in_psp2.c プロジェクト: Rinnegatamante/vitaQuake
void IN_StopRumble (void)
{
	SceCtrlActuator handle;
	handle.small = 0;
	handle.large = 0;
	sceCtrlSetActuator(1, &handle);
	rumble_tick = 0;
}
コード例 #2
0
ファイル: in_psp2.c プロジェクト: Rinnegatamante/vitaQuake
void IN_StartRumble (void)
{
	if (!pstv_rumble.value) return;
	SceCtrlActuator handle;
	handle.small = 100;
	handle.large = 100;
	sceCtrlSetActuator(1, &handle);
	rumble_tick = sceKernelGetProcessTimeWide();
}
コード例 #3
0
static int lua_rumble(lua_State *L)
{
	if (lua_gettop(L) != 3) return luaL_error(L, "wrong number of arguments.");
	int port = luaL_checkinteger(L, 1);
	uint8_t int_small = luaL_checkinteger(L, 2);
	uint8_t int_large = luaL_checkinteger(L, 3);
	switch (port){
		case 0:
		case 1:
			pad1.small = int_small;
			pad1.large = int_large;
			sceCtrlSetActuator(1, &pad1);
			break;
		case 2:
			pad2.small = int_small;
			pad2.large = int_large;
			sceCtrlSetActuator(2, &pad2);
			break;
		default:
			return luaL_error(L, "wrong port number.");
			break;
	}	
	return 0;
}
コード例 #4
0
ファイル: psp2-context.c プロジェクト: leiradel/mgba
static void _setRumble(struct mRumble* source, int enable) {
	struct mSceRumble* rumble = (struct mSceRumble*) source;
	rumble->current += enable;
	if (CircleBufferSize(&rumble->history) == RUMBLE_PWM) {
		int8_t oldLevel;
		CircleBufferRead8(&rumble->history, &oldLevel);
		rumble->current -= oldLevel;
	}
	CircleBufferWrite8(&rumble->history, enable);
	int small = (rumble->current << 21) / 65793;
	int big = ((rumble->current * rumble->current) << 18) / 65793;
	struct SceCtrlActuator state = {
		small,
		big
	};
	sceCtrlSetActuator(1, &state);
}