emit GIMP_CONTROLLER_EVENT_VALUE, not TRIGGER for movements on relative
2007-02-09 Michael Natterer <mitch@gimp.org> * modules/controller_linux_input.c (linux_input_read_event): emit GIMP_CONTROLLER_EVENT_VALUE, not TRIGGER for movements on relative axes. Reduces the number of events significantly. Now we can start thinking what to do with them... svn path=/trunk/; revision=21885
This commit is contained in:

committed by
Michael Natterer

parent
f5f93181da
commit
9efbdbe5fd
@ -1,3 +1,10 @@
|
||||
2007-02-09 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* modules/controller_linux_input.c (linux_input_read_event): emit
|
||||
GIMP_CONTROLLER_EVENT_VALUE, not TRIGGER for movements on relative
|
||||
axes. Reduces the number of events significantly. Now we can start
|
||||
thinking what to do with them...
|
||||
|
||||
2007-02-09 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/plug-in/gimpenvirontable.c: renamed newly added functions to
|
||||
|
@ -468,17 +468,17 @@ linux_input_read_event (GIOChannel *io,
|
||||
|
||||
if (n_bytes == sizeof (struct input_event))
|
||||
{
|
||||
GimpController *controller = GIMP_CONTROLLER (data);
|
||||
GimpControllerEvent cevent;
|
||||
|
||||
switch (ev.type)
|
||||
{
|
||||
case EV_KEY:
|
||||
for (i = 0; i < G_N_ELEMENTS (key_events); i++)
|
||||
if (ev.code == key_events[i].code)
|
||||
{
|
||||
GimpController *controller = GIMP_CONTROLLER (data);
|
||||
GimpControllerEvent cevent;
|
||||
|
||||
cevent.any.type = GIMP_CONTROLLER_EVENT_TRIGGER;
|
||||
cevent.any.source = GIMP_CONTROLLER (data);
|
||||
cevent.any.source = controller;
|
||||
cevent.any.event_id = i;
|
||||
|
||||
gimp_controller_event (controller, &cevent);
|
||||
@ -491,21 +491,24 @@ linux_input_read_event (GIOChannel *io,
|
||||
for (i = 0; i < G_N_ELEMENTS (rel_events); i++)
|
||||
if (ev.code == rel_events[i].code)
|
||||
{
|
||||
GimpController *controller = GIMP_CONTROLLER (data);
|
||||
GimpControllerEvent cevent;
|
||||
gint count;
|
||||
|
||||
cevent.any.type = GIMP_CONTROLLER_EVENT_TRIGGER;
|
||||
cevent.any.type = GIMP_CONTROLLER_EVENT_VALUE;
|
||||
cevent.any.source = controller;
|
||||
cevent.any.event_id = G_N_ELEMENTS (key_events) + i;
|
||||
|
||||
for (count = ev.value; count < 0; count++)
|
||||
gimp_controller_event (controller, &cevent);
|
||||
if (ev.value < 0)
|
||||
{
|
||||
g_value_init (&cevent.value.value, G_TYPE_DOUBLE);
|
||||
g_value_set_double (&cevent.value.value, -ev.value);
|
||||
}
|
||||
else
|
||||
{
|
||||
cevent.any.event_id++;
|
||||
|
||||
cevent.any.event_id++;
|
||||
g_value_init (&cevent.value.value, G_TYPE_DOUBLE);
|
||||
g_value_set_double (&cevent.value.value, ev.value);
|
||||
}
|
||||
|
||||
for (count = ev.value; count > 0; count--)
|
||||
gimp_controller_event (controller, &cevent);
|
||||
gimp_controller_event (controller, &cevent);
|
||||
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user