@@ -575,6 +575,91 @@ static int wacom_intuos_pad(struct wacom_wac *wacom)
575
575
return 1 ;
576
576
}
577
577
578
+ static int wacom_intuos_get_tool_type (int tool_id )
579
+ {
580
+ int tool_type ;
581
+
582
+ switch (tool_id ) {
583
+ case 0x812 : /* Inking pen */
584
+ case 0x801 : /* Intuos3 Inking pen */
585
+ case 0x120802 : /* Intuos4/5 Inking Pen */
586
+ case 0x012 :
587
+ tool_type = BTN_TOOL_PENCIL ;
588
+ break ;
589
+
590
+ case 0x822 : /* Pen */
591
+ case 0x842 :
592
+ case 0x852 :
593
+ case 0x823 : /* Intuos3 Grip Pen */
594
+ case 0x813 : /* Intuos3 Classic Pen */
595
+ case 0x885 : /* Intuos3 Marker Pen */
596
+ case 0x802 : /* Intuos4/5 13HD/24HD General Pen */
597
+ case 0x804 : /* Intuos4/5 13HD/24HD Marker Pen */
598
+ case 0x8e2 : /* IntuosHT2 pen */
599
+ case 0x022 :
600
+ case 0x100804 : /* Intuos4/5 13HD/24HD Art Pen */
601
+ case 0x140802 : /* Intuos4/5 13HD/24HD Classic Pen */
602
+ case 0x160802 : /* Cintiq 13HD Pro Pen */
603
+ case 0x180802 : /* DTH2242 Pen */
604
+ case 0x100802 : /* Intuos4/5 13HD/24HD General Pen */
605
+ tool_type = BTN_TOOL_PEN ;
606
+ break ;
607
+
608
+ case 0x832 : /* Stroke pen */
609
+ case 0x032 :
610
+ tool_type = BTN_TOOL_BRUSH ;
611
+ break ;
612
+
613
+ case 0x007 : /* Mouse 4D and 2D */
614
+ case 0x09c :
615
+ case 0x094 :
616
+ case 0x017 : /* Intuos3 2D Mouse */
617
+ case 0x806 : /* Intuos4 Mouse */
618
+ tool_type = BTN_TOOL_MOUSE ;
619
+ break ;
620
+
621
+ case 0x096 : /* Lens cursor */
622
+ case 0x097 : /* Intuos3 Lens cursor */
623
+ case 0x006 : /* Intuos4 Lens cursor */
624
+ tool_type = BTN_TOOL_LENS ;
625
+ break ;
626
+
627
+ case 0x82a : /* Eraser */
628
+ case 0x85a :
629
+ case 0x91a :
630
+ case 0xd1a :
631
+ case 0x0fa :
632
+ case 0x82b : /* Intuos3 Grip Pen Eraser */
633
+ case 0x81b : /* Intuos3 Classic Pen Eraser */
634
+ case 0x91b : /* Intuos3 Airbrush Eraser */
635
+ case 0x80c : /* Intuos4/5 13HD/24HD Marker Pen Eraser */
636
+ case 0x80a : /* Intuos4/5 13HD/24HD General Pen Eraser */
637
+ case 0x90a : /* Intuos4/5 13HD/24HD Airbrush Eraser */
638
+ case 0x14080a : /* Intuos4/5 13HD/24HD Classic Pen Eraser */
639
+ case 0x10090a : /* Intuos4/5 13HD/24HD Airbrush Eraser */
640
+ case 0x10080c : /* Intuos4/5 13HD/24HD Art Pen Eraser */
641
+ case 0x16080a : /* Cintiq 13HD Pro Pen Eraser */
642
+ case 0x18080a : /* DTH2242 Eraser */
643
+ case 0x10080a : /* Intuos4/5 13HD/24HD General Pen Eraser */
644
+ tool_type = BTN_TOOL_RUBBER ;
645
+ break ;
646
+
647
+ case 0xd12 :
648
+ case 0x912 :
649
+ case 0x112 :
650
+ case 0x913 : /* Intuos3 Airbrush */
651
+ case 0x902 : /* Intuos4/5 13HD/24HD Airbrush */
652
+ case 0x100902 : /* Intuos4/5 13HD/24HD Airbrush */
653
+ tool_type = BTN_TOOL_AIRBRUSH ;
654
+ break ;
655
+
656
+ default : /* Unknown tool */
657
+ tool_type = BTN_TOOL_PEN ;
658
+ break ;
659
+ }
660
+ return tool_type ;
661
+ }
662
+
578
663
static int wacom_intuos_inout (struct wacom_wac * wacom )
579
664
{
580
665
struct wacom_features * features = & wacom -> features ;
@@ -597,85 +682,8 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
597
682
wacom -> id [idx ] = (data [2 ] << 4 ) | (data [3 ] >> 4 ) |
598
683
((data [7 ] & 0x0f ) << 20 ) | ((data [8 ] & 0xf0 ) << 12 );
599
684
600
- switch (wacom -> id [idx ]) {
601
- case 0x812 : /* Inking pen */
602
- case 0x801 : /* Intuos3 Inking pen */
603
- case 0x120802 : /* Intuos4/5 Inking Pen */
604
- case 0x012 :
605
- wacom -> tool [idx ] = BTN_TOOL_PENCIL ;
606
- break ;
607
-
608
- case 0x822 : /* Pen */
609
- case 0x842 :
610
- case 0x852 :
611
- case 0x823 : /* Intuos3 Grip Pen */
612
- case 0x813 : /* Intuos3 Classic Pen */
613
- case 0x885 : /* Intuos3 Marker Pen */
614
- case 0x802 : /* Intuos4/5 13HD/24HD General Pen */
615
- case 0x804 : /* Intuos4/5 13HD/24HD Marker Pen */
616
- case 0x8e2 : /* IntuosHT2 pen */
617
- case 0x022 :
618
- case 0x100804 : /* Intuos4/5 13HD/24HD Art Pen */
619
- case 0x140802 : /* Intuos4/5 13HD/24HD Classic Pen */
620
- case 0x160802 : /* Cintiq 13HD Pro Pen */
621
- case 0x180802 : /* DTH2242 Pen */
622
- case 0x100802 : /* Intuos4/5 13HD/24HD General Pen */
623
- wacom -> tool [idx ] = BTN_TOOL_PEN ;
624
- break ;
625
-
626
- case 0x832 : /* Stroke pen */
627
- case 0x032 :
628
- wacom -> tool [idx ] = BTN_TOOL_BRUSH ;
629
- break ;
630
-
631
- case 0x007 : /* Mouse 4D and 2D */
632
- case 0x09c :
633
- case 0x094 :
634
- case 0x017 : /* Intuos3 2D Mouse */
635
- case 0x806 : /* Intuos4 Mouse */
636
- wacom -> tool [idx ] = BTN_TOOL_MOUSE ;
637
- break ;
638
-
639
- case 0x096 : /* Lens cursor */
640
- case 0x097 : /* Intuos3 Lens cursor */
641
- case 0x006 : /* Intuos4 Lens cursor */
642
- wacom -> tool [idx ] = BTN_TOOL_LENS ;
643
- break ;
644
-
645
- case 0x82a : /* Eraser */
646
- case 0x85a :
647
- case 0x91a :
648
- case 0xd1a :
649
- case 0x0fa :
650
- case 0x82b : /* Intuos3 Grip Pen Eraser */
651
- case 0x81b : /* Intuos3 Classic Pen Eraser */
652
- case 0x91b : /* Intuos3 Airbrush Eraser */
653
- case 0x80c : /* Intuos4/5 13HD/24HD Marker Pen Eraser */
654
- case 0x80a : /* Intuos4/5 13HD/24HD General Pen Eraser */
655
- case 0x90a : /* Intuos4/5 13HD/24HD Airbrush Eraser */
656
- case 0x14080a : /* Intuos4/5 13HD/24HD Classic Pen Eraser */
657
- case 0x10090a : /* Intuos4/5 13HD/24HD Airbrush Eraser */
658
- case 0x10080c : /* Intuos4/5 13HD/24HD Art Pen Eraser */
659
- case 0x16080a : /* Cintiq 13HD Pro Pen Eraser */
660
- case 0x18080a : /* DTH2242 Eraser */
661
- case 0x10080a : /* Intuos4/5 13HD/24HD General Pen Eraser */
662
- wacom -> tool [idx ] = BTN_TOOL_RUBBER ;
663
- break ;
664
-
665
- case 0xd12 :
666
- case 0x912 :
667
- case 0x112 :
668
- case 0x913 : /* Intuos3 Airbrush */
669
- case 0x902 : /* Intuos4/5 13HD/24HD Airbrush */
670
- case 0x100902 : /* Intuos4/5 13HD/24HD Airbrush */
671
- wacom -> tool [idx ] = BTN_TOOL_AIRBRUSH ;
672
- break ;
673
-
674
- default : /* Unknown tool */
675
- wacom -> tool [idx ] = BTN_TOOL_PEN ;
676
- break ;
677
- }
678
- wacom -> shared -> stylus_in_proximity = true;
685
+ wacom -> tool [idx ] = wacom_intuos_get_tool_type (wacom -> id [idx ]);
686
+
679
687
return 1 ;
680
688
}
681
689
0 commit comments