[gnome-settings-daemon] wacom: move out 1-bit handling of Bluetooth OLED buffers



commit 9dc8cf48c37ef9931372f76ebd11a5f1532a9e64
Author: Benjamin Tissoires <benjamin tissoires redhat com>
Date:   Mon Aug 11 16:01:20 2014 -0400

    wacom: move out 1-bit handling of Bluetooth OLED buffers
    
    No functional changes:
    - move out 1-bit packing into its own function
    - convert if () else if () else in a switch/case
    
    https://bugzilla.gnome.org/show_bug.cgi?id=734458

 plugins/wacom/gsd-wacom-oled-helper.c |   46 ++++++++++++++++++++-------------
 1 files changed, 28 insertions(+), 18 deletions(-)
---
diff --git a/plugins/wacom/gsd-wacom-oled-helper.c b/plugins/wacom/gsd-wacom-oled-helper.c
index 0c1ad15..784c9c7 100644
--- a/plugins/wacom/gsd-wacom-oled-helper.c
+++ b/plugins/wacom/gsd-wacom-oled-helper.c
@@ -64,35 +64,45 @@ oled_scramble_icon (guchar *image)
        }
 }
 
-static int
-gsd_wacom_oled_prepare_buf (guchar *image, GsdWacomOledType type)
+static void
+gsd_wacom_oled_convert_1_bit (guchar *image)
 {
        guchar buf[BT_BUF_LEN];
        guchar b0, b1, b2, b3, b4, b5, b6, b7;
        int i;
+
+       for (i = 0; i < BT_BUF_LEN; i++) {
+               b0 = 0b10000000 & (image[(4 * i) + 0] >> 0);
+               b1 = 0b01000000 & (image[(4 * i) + 0] << 3);
+               b2 = 0b00100000 & (image[(4 * i) + 1] >> 2);
+               b3 = 0b00010000 & (image[(4 * i) + 1] << 1);
+               b4 = 0b00001000 & (image[(4 * i) + 2] >> 4);
+               b5 = 0b00000100 & (image[(4 * i) + 2] >> 1);
+               b6 = 0b00000010 & (image[(4 * i) + 3] >> 6);
+               b7 = 0b00000001 & (image[(4 * i) + 3] >> 3);
+               buf[i] = b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7;
+       }
+       for (i = 0; i < BT_BUF_LEN; i++)
+               image[i] = buf[i];
+}
+
+static int
+gsd_wacom_oled_prepare_buf (guchar *image, GsdWacomOledType type)
+{
        int len = 0;
 
-       if (type == GSD_WACOM_OLED_TYPE_USB) {
+       switch (type) {
+       case GSD_WACOM_OLED_TYPE_USB:
                /* Image has to be scrambled for devices connected over USB ... */
                oled_scramble_icon (image);
                len = USB_BUF_LEN;
-       } else if (type == GSD_WACOM_OLED_TYPE_BLUETOOTH) {
+               break;
+       case GSD_WACOM_OLED_TYPE_BLUETOOTH:
                /* ... but for bluetooth it has to be converted to 1 bit colour instead of scrambling */
-               for (i = 0; i < BT_BUF_LEN; i++) {
-                       b0 = 0b10000000 & (image[(4 * i) + 0] >> 0);
-                       b1 = 0b01000000 & (image[(4 * i) + 0] << 3);
-                       b2 = 0b00100000 & (image[(4 * i) + 1] >> 2);
-                       b3 = 0b00010000 & (image[(4 * i) + 1] << 1);
-                       b4 = 0b00001000 & (image[(4 * i) + 2] >> 4);
-                       b5 = 0b00000100 & (image[(4 * i) + 2] >> 1);
-                       b6 = 0b00000010 & (image[(4 * i) + 3] >> 6);
-                       b7 = 0b00000001 & (image[(4 * i) + 3] >> 3);
-                       buf[i] = b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7;
-               }
-               for (i = 0; i < BT_BUF_LEN; i++)
-                       image[i] = buf[i];
+               gsd_wacom_oled_convert_1_bit (image);
                len = BT_BUF_LEN;
-       } else {
+               break;
+       default:
                g_assert_not_reached ();
        }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]