]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
HID: roccat: refactor special event handling
authorStefan Achatz <erazor_de@users.sourceforge.net>
Tue, 18 May 2010 16:31:04 +0000 (18:31 +0200)
committerJiri Kosina <jkosina@suse.cz>
Wed, 19 May 2010 11:54:36 +0000 (13:54 +0200)
As special events are reported along with hid event information all
events are now processed further by standard handler.
Also cleaned up this code.

Signed-off-by: Stefan Achatz <erazor_de@users.sourceforge.net>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-roccat-kone.c

index 5d9ced0defa5af2eb04a14dc09c976dea024a66a..8f35fe22f41920e0e588b485021eae804d259850 100644 (file)
@@ -912,6 +912,24 @@ static void kone_remove(struct hid_device *hdev)
        hid_hw_stop(hdev);
 }
 
+/* handle special events and keep actual profile and dpi values up to date */
+static void kone_keep_values_up_to_date(struct kone_device *kone,
+               struct kone_mouse_event const *event)
+{
+       switch (event->event) {
+       case kone_mouse_event_switch_profile:
+       case kone_mouse_event_osd_profile:
+               kone->actual_profile = event->value;
+               kone->actual_dpi = kone->profiles[kone->actual_profile - 1].
+                               startup_dpi;
+               break;
+       case kone_mouse_event_switch_dpi:
+       case kone_mouse_event_osd_dpi:
+               kone->actual_dpi = event->value;
+               break;
+       }
+}
+
 /*
  * Is called for keyboard- and mousepart.
  * Only mousepart gets informations about special events in its extended event
@@ -938,41 +956,9 @@ static int kone_raw_event(struct hid_device *hdev, struct hid_report *report,
        else
                memset(&event->tilt, 0, 5);
 
-       /*
-        * handle special events and keep actual profile and dpi values
-        * up to date
-        */
-       switch (event->event) {
-       case kone_mouse_event_osd_dpi:
-               dev_dbg(&hdev->dev, "osd dpi event. actual dpi %d\n",
-                               event->value);
-               return 1; /* return 1 if event was handled */
-       case kone_mouse_event_switch_dpi:
-               kone->actual_dpi = event->value;
-               dev_dbg(&hdev->dev, "switched dpi to %d\n", event->value);
-               return 1;
-       case kone_mouse_event_osd_profile:
-               dev_dbg(&hdev->dev, "osd profile event. actual profile %d\n",
-                               event->value);
-               return 1;
-       case kone_mouse_event_switch_profile:
-               kone->actual_profile = event->value;
-               kone->actual_dpi = kone->profiles[kone->actual_profile - 1].
-                               startup_dpi;
-               dev_dbg(&hdev->dev, "switched profile to %d\n", event->value);
-               return 1;
-       case kone_mouse_event_call_overlong_macro:
-               dev_dbg(&hdev->dev, "overlong macro called, button %d %s/%s\n",
-                               event->macro_key,
-                               kone->profiles[kone->actual_profile - 1].
-                               button_infos[event->macro_key].macro_set_name,
-                               kone->profiles[kone->actual_profile - 1].
-                               button_infos[event->macro_key].macro_name
-                               );
-               return 1;
-       }
+       kone_keep_values_up_to_date(kone, event);
 
-       return 0; /* do further processing */
+       return 0; /* always do further processing */
 }
 
 static const struct hid_device_id kone_devices[] = {