mirror of
https://github.com/mauiaaron/apple2.git
synced 2025-01-28 15:31:15 +00:00
Less choppy axis timing
This commit is contained in:
parent
287df44133
commit
54587d166d
@ -62,8 +62,6 @@ static struct {
|
|||||||
struct timespec timingBegins[MAX_REPEATING];
|
struct timespec timingBegins[MAX_REPEATING];
|
||||||
bool buttonBegan;
|
bool buttonBegan;
|
||||||
bool axisBegan;
|
bool axisBegan;
|
||||||
|
|
||||||
////int callbackIgnoreThreshold;
|
|
||||||
int lastScancode;
|
int lastScancode;
|
||||||
|
|
||||||
float repeatThresholdNanos;
|
float repeatThresholdNanos;
|
||||||
@ -186,7 +184,6 @@ static void touchkpad_keyboardReadCallback(void) {
|
|||||||
if (lockedButton && lockedAxis && fired < 0) {
|
if (lockedButton && lockedAxis && fired < 0) {
|
||||||
LOG("REPEAT KEY CALLBACK DONE ...");
|
LOG("REPEAT KEY CALLBACK DONE ...");
|
||||||
keydriver_keyboardReadCallback = NULL;
|
keydriver_keyboardReadCallback = NULL;
|
||||||
////callbackCounter = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lockedAxis) {
|
if (lockedAxis) {
|
||||||
@ -250,12 +247,17 @@ static void touchkpad_axisDown(void) {
|
|||||||
kpad.axisBegan = true;
|
kpad.axisBegan = true;
|
||||||
_touch_sourceBegin(&kpad.axisLock);
|
_touch_sourceBegin(&kpad.axisLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
keydriver_keyboardReadCallback = &touchkpad_keyboardReadCallback;
|
||||||
|
struct timespec now = { 0 };
|
||||||
|
clock_gettime(CLOCK_MONOTONIC, &now);
|
||||||
|
kpad.timingBegins[REPEAT_AXIS] = now;
|
||||||
|
kpad.timingBegins[REPEAT_AXIS_ALT] = now;
|
||||||
|
|
||||||
kpad.axisCurrentOctant = ORIGIN;
|
kpad.axisCurrentOctant = ORIGIN;
|
||||||
if (axes.rosetteScancodes[ROSETTE_CENTER] >= 0) {
|
if (axes.rosetteScancodes[ROSETTE_CENTER] >= 0) {
|
||||||
keydriver_keyboardReadCallback = &touchkpad_keyboardReadCallback;
|
|
||||||
kpad.scancodes[REPEAT_AXIS] = axes.rosetteScancodes[ROSETTE_CENTER];
|
kpad.scancodes[REPEAT_AXIS] = axes.rosetteScancodes[ROSETTE_CENTER];
|
||||||
kpad.scancodes[REPEAT_AXIS_ALT] = -1;
|
kpad.scancodes[REPEAT_AXIS_ALT] = -1;
|
||||||
clock_gettime(CLOCK_MONOTONIC, &kpad.timingBegins[REPEAT_AXIS]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,14 +295,6 @@ static void touchkpad_axisMove(int dx, int dy) {
|
|||||||
|
|
||||||
LOG("radians:%f radnorm:%f octant:%f, currOctant:%d", radians, radnorm, octant, kpad.axisCurrentOctant);
|
LOG("radians:%f radnorm:%f octant:%f, currOctant:%d", radians, radnorm, octant, kpad.axisCurrentOctant);
|
||||||
|
|
||||||
// handle a new octant
|
|
||||||
|
|
||||||
keydriver_keyboardReadCallback = &touchkpad_keyboardReadCallback;
|
|
||||||
struct timespec now = { 0 };
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &now);
|
|
||||||
kpad.timingBegins[REPEAT_AXIS] = now;
|
|
||||||
kpad.timingBegins[REPEAT_AXIS_ALT] = now;
|
|
||||||
|
|
||||||
kpad.scancodes[REPEAT_AXIS_ALT] = -1;
|
kpad.scancodes[REPEAT_AXIS_ALT] = -1;
|
||||||
switch (kpad.axisCurrentOctant) {
|
switch (kpad.axisCurrentOctant) {
|
||||||
case OCTANT_NORTHWEST:
|
case OCTANT_NORTHWEST:
|
||||||
@ -545,7 +539,6 @@ static void _init_gltouchjoy_kpad(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
kpad.currButtonDisplayChar = ' ';
|
kpad.currButtonDisplayChar = ' ';
|
||||||
////kpad.callbackIgnoreThreshold = 1;
|
|
||||||
|
|
||||||
kpad.repeatThresholdNanos = KEY_REPEAT_THRESHOLD_NANOS;
|
kpad.repeatThresholdNanos = KEY_REPEAT_THRESHOLD_NANOS;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user