Jason Gerecke
2016-11-11 17:59:57 UTC
Note that the MobileStudio Pro introduces a new "Pro Pen" which supports
8K pressure levels. The ID of this pen is identical to that of a (less
featureful) pen used by the Intuos2, so we have to slightly modify the
existing entry. Ideally, we would have some way to define multiple pens
which share the same IDs (which apparently, according to the technical
experts, are not guaranteed unique outside of a hardware generation).
Such a change will require serious design and planning that are outside
of the immediate scope of this patch.
Signed-off-by: Jason Gerecke <***@wacom.com>
---
data/layouts/mobilestudio-pro-13.svg | 279 +++++++++++++++++++++++++++++
data/layouts/mobilestudio-pro-16.svg | 331 +++++++++++++++++++++++++++++++++++
data/libwacom.stylus | 14 +-
data/mobilestudio-pro-13.tablet | 58 ++++++
data/mobilestudio-pro-16.tablet | 60 +++++++
5 files changed, 740 insertions(+), 2 deletions(-)
create mode 100644 data/layouts/mobilestudio-pro-13.svg
create mode 100644 data/layouts/mobilestudio-pro-16.svg
create mode 100644 data/mobilestudio-pro-13.tablet
create mode 100644 data/mobilestudio-pro-16.tablet
diff --git a/data/layouts/mobilestudio-pro-13.svg b/data/layouts/mobilestudio-pro-13.svg
new file mode 100644
index 0000000..172141b
--- /dev/null
+++ b/data/layouts/mobilestudio-pro-13.svg
@@ -0,0 +1,279 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ style="color:#000000;stroke:#7f7f7f;fill:none;stroke-width:.25;font-size:8"
+ id="intuos-pro-m"
+ width="320"
+ height="208">
+ <title
+ id="title">Wacom MobileStudio Pro 13</title>
+ <g>
+ <circle
+ id="Ring"
+ class="Ring TouchRing"
+ cx="34"
+ cy="104"
+ r="19.5" />
+ <path
+ id="LeaderRingCW"
+ class="RingCW Ring Leader"
+ d="M 12 90 L 12 75 L 61 75 L 61 62 L 70 62" />
+ <text
+ id="LabelRingCW"
+ class="RingCW Ring Label"
+ x="72"
+ y="62"
+ style="text-anchor:start;">CW</text>
+ <g transform="rotate(-90,31,80) translate(-20,-20)">
+ <path
+ id="RingCW"
+ class="RingCW Button"
+ d="M 31 80 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 1 5 1.5 a 6.5 6.5 0 0 0 -5 -0.5 l 0 1 z" />
+ </g>
+ <path
+ id="LeaderRingCCW"
+ class="RingCCW Ring Leader"
+ d="M 12 118 L 12 133 L 61 133 L 61 146 L 70 146" />
+ <text
+ id="LabelRingCCW"
+ class="RingCCW Ring Label"
+ x="72"
+ y="146"
+ style="text-anchor:start;">CCW</text>
+ <g transform="rotate(90,31,128) translate(-20,20)">
+ <path
+ id="RingCCW"
+ class="RingCCW Button"
+ d="M 31 128 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 0 5 -1 a 6.5 6.5 0 0 1 -5 2 l 0 1 z" />
+ </g>
+ </g>
+ <g>
+ <rect
+ id="ButtonA"
+ class="A Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="33"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderA"
+ class="A Leader"
+ d="M 47 39 L 49 39 L 49 20 L 60 20" />
+ <text
+ id="LabelA"
+ class="A Label"
+ x="62"
+ y="20"
+ style="text-anchor:start;">A</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonB"
+ class="B Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="47"
+ width="20"
+ height="12" />
+ <circle
+ id="DotB1"
+ cx="34"
+ cy="53"
+ r=".75" />
+ <path
+ id="LeaderB"
+ class="B Leader"
+ d="M 47 53 L 53 53 L 53 34 L 60 34" />
+ <text
+ id="LabelB"
+ class="B Label"
+ x="62"
+ y="34"
+ style="text-anchor:start;">B</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonC"
+ class="C Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="61"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderC"
+ class="C Leader"
+ d="M 47 67 L 57 67 L 57 48 L 60 48" />
+ <text
+ id="LabelC"
+ class="C Label"
+ x="62"
+ y="48"
+ style="text-anchor:start;">C</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonD"
+ class="D Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="135"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderD"
+ class="D Leader"
+ d="M 47 141 L 57 141 L 57 160 L 60 160" />
+ <text
+ id="LabelD"
+ class="D Label"
+ x="62"
+ y="160"
+ style="text-anchor:start;">D</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonE"
+ class="E Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="149"
+ width="20"
+ height="12" />
+ <circle
+ id="DotE1"
+ cx="34"
+ cy="155"
+ r=".75" />
+ <path
+ id="LeaderE"
+ class="E Leader"
+ d="M 47 155 L 53 155 L 53 174 L 60 174" />
+ <text
+ id="LabelE"
+ class="E Label"
+ x="62"
+ y="174"
+ style="text-anchor:start;">E</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonF"
+ class="F Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="163"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderF"
+ class="F Leader"
+ d="M 47 169 L 49 169 L 49 188 L 60 188" />
+ <text
+ id="LabelF"
+ class="F Label"
+ x="62"
+ y="188"
+ style="text-anchor:start;">F</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonG"
+ class="G Button"
+ cx="34"
+ cy="104"
+ r="9.5" />
+ <path
+ id="LeaderG"
+ class="G Leader"
+ d="M 25 95 L 20 85 L 20 80 L 65 80 L 65 76 L 70 76" />
+ <text
+ id="LabelG"
+ class="G Label"
+ x="72"
+ y="76"
+ style="text-anchor:start;">G</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonH"
+ class="H ModeSwitch Button"
+ cx="48.5"
+ cy="104"
+ r=".75" />
+ <path
+ id="LeaderH"
+ class="H ModeSwitch Leader"
+ d="M 56 104 L 70 104" />
+ <text
+ id="LabelH"
+ class="H ModeSwitch Label"
+ x="72"
+ y="104"
+ style="text-anchor:start;">H</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonI"
+ class="I ModeSwitch Button"
+ cx="34"
+ cy="89.5"
+ r=".75" />
+ <path
+ id="LeaderI"
+ class="I ModeSwitch Leader"
+ d="M 38 90 L 70 90" />
+ <text
+ id="LabelI"
+ class="I ModeSwitch Label"
+ x="72"
+ y="90"
+ style="text-anchor:start;">I</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonJ"
+ class="J ModeSwitch Button"
+ cx="19.5"
+ cy="104"
+ r=".75" />
+ <path
+ id="LeaderJ"
+ class="J ModeSwitch Leader"
+ d="M 19 108 L 19 127 L 65 127 L 65 132 L 70 132" />
+ <text
+ id="LabelJ"
+ class="J ModeSwitch Label"
+ x="72"
+ y="132"
+ style="text-anchor:start;">J</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonK"
+ class="K ModeSwitch Button"
+ cx="34"
+ cy="118.5"
+ r=".75" />
+ <path
+ id="LeaderK"
+ class="K ModeSwitch Leader"
+ d="M 38 118 L 70 118" />
+ <text
+ id="LabelK"
+ class="K ModeSwitch Label"
+ x="72"
+ y="118"
+ style="text-anchor:start;">K</text>
+ </g>
+</svg>
diff --git a/data/layouts/mobilestudio-pro-16.svg b/data/layouts/mobilestudio-pro-16.svg
new file mode 100644
index 0000000..afe56a6
--- /dev/null
+++ b/data/layouts/mobilestudio-pro-16.svg
@@ -0,0 +1,331 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ style="color:#000000;stroke:#7f7f7f;fill:none;stroke-width:.25;font-size:8"
+ id="intuos-pro-m"
+ width="380"
+ height="250">
+ <title
+ id="title">Wacom MobileStudio Pro 16</title>
+ <g>
+ <circle
+ id="Ring"
+ class="Ring TouchRing"
+ cx="34"
+ cy="125"
+ r="19.5" />
+ <path
+ id="LeaderRingCW"
+ class="RingCW Ring Leader"
+ d="M 12 111 L 12 96 L 65 96 L 65 83 L 73 83" />
+ <text
+ id="LabelRingCW"
+ class="RingCW Ring Label"
+ x="75"
+ y="83"
+ style="text-anchor:start;">CW</text>
+ <g transform="rotate(-90,31,111) translate(-10,-20)">
+ <path
+ id="RingCW"
+ class="RingCW Button"
+ d="M 31 111 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 1 5 1.5 a 6.5 6.5 0 0 0 -5 -0.5 l 0 1 z" />
+ </g>
+ <path
+ id="LeaderRingCCW"
+ class="RingCCW Ring Leader"
+ d="M 12 139 L 12 154 L 65 154 L 65 167 L 73 167" />
+ <text
+ id="LabelRingCCW"
+ class="RingCCW Ring Label"
+ x="75"
+ y="167"
+ style="text-anchor:start;">CCW</text>
+ <g transform="rotate(90,31,139) translate(-10,20)">
+ <path
+ id="RingCCW"
+ class="RingCCW Button"
+ d="M 31 139 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 0 5 -1 a 6.5 6.5 0 0 1 -5 2 l 0 1 z" />
+ </g>
+ </g>
+ <g>
+ <rect
+ id="ButtonA"
+ class="A Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="40"
+ width="20"
+ height="12" />
+ <circle
+ id="DotA1"
+ cx="34"
+ cy="46"
+ r=".75" />
+ <path
+ id="LeaderA"
+ class="A Leader"
+ d="M 47 46 L 49 46 L 49 27 L 63 27" />
+ <text
+ id="LabelA"
+ class="A Label"
+ x="65"
+ y="27"
+ style="text-anchor:start;">A</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonB"
+ class="B Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="54"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderB"
+ class="B Leader"
+ d="M 46 60 L 53 60 L 53 41 L 63 41" />
+ <text
+ id="LabelB"
+ class="B Label"
+ x="65"
+ y="41"
+ style="text-anchor:start;">B</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonC"
+ class="C Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="68"
+ width="20"
+ height="12" />
+ <circle
+ id="DotC1"
+ cx="34"
+ cy="74"
+ r=".75" />
+ <path
+ id="LeaderC"
+ class="C Leader"
+ d="M 46 74 L 57 74 L 57 55 L 63 55" />
+ <text
+ id="LabelC"
+ class="C Label"
+ x="65"
+ y="55"
+ style="text-anchor:start;">C</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonD"
+ class="D Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="82"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderD"
+ class="D Leader"
+ d="M 46 88 L 61 88 L 61 69 L 63 69" />
+ <text
+ id="LabelD"
+ class="D Label"
+ x="65"
+ y="69"
+ style="text-anchor:start;">D</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonE"
+ class="E Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="156"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderE"
+ class="E Leader"
+ d="M 46 162 L 61 162 L 61 181 L 63 181" />
+ <text
+ id="LabelE"
+ class="E Label"
+ x="65"
+ y="181"
+ style="text-anchor:start;">E</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonF"
+ class="F Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="170"
+ width="20"
+ height="12" />
+ <circle
+ id="DotF1"
+ cx="34"
+ cy="176"
+ r=".75" />
+ <path
+ id="LeaderF"
+ class="F Leader"
+ d="M 46 176 L 57 176 L 57 195 L 63 195" />
+ <text
+ id="LabelF"
+ class="F Label"
+ x="65"
+ y="195"
+ style="text-anchor:start;">F</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonG"
+ class="G Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="184"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderG"
+ class="G Leader"
+ d="M 46 190 L 53 190 L 53 209 L 63 209" />
+ <text
+ id="LabelG"
+ class="G Label"
+ x="65"
+ y="209"
+ style="text-anchor:start;">G</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonH"
+ class="H Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="198"
+ width="20"
+ height="12" />
+ <circle
+ id="DotF1"
+ cx="34"
+ cy="204"
+ r=".75" />
+ <path
+ id="LeaderH"
+ class="H Leader"
+ d="M 46 204 L 49 204 L 49 223 L 63 223" />
+ <text
+ id="LabelH"
+ class="H Label"
+ x="65"
+ y="223"
+ style="text-anchor:start;">H</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonI"
+ class="I Button"
+ cx="34"
+ cy="125"
+ r="9.5" />
+ <path
+ id="LeaderI"
+ class="I Leader"
+ d="M 25 116 L 20 106 L 20 101 L 69 101 L 69 97 L 73 97" />
+ <text
+ id="LabelI"
+ class="I Label"
+ x="75"
+ y="97"
+ style="text-anchor:start;">I</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonJ"
+ class="J ModeSwitch Button"
+ cx="48.5"
+ cy="125"
+ r=".75" />
+ <path
+ id="LeaderJ"
+ class="J ModeSwitch Leader"
+ d="M 56 125 L 73 125" />
+ <text
+ id="LabelJ"
+ class="J ModeSwitch Label"
+ x="75"
+ y="125"
+ style="text-anchor:start;">J</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonK"
+ class="K ModeSwitch Button"
+ cx="34"
+ cy="110.5"
+ r=".75" />
+ <path
+ id="LeaderK"
+ class="K ModeSwitch Leader"
+ d="M 38 111 L 73 111" />
+ <text
+ id="LabelK"
+ class="K ModeSwitch Label"
+ x="75"
+ y="111"
+ style="text-anchor:start;">K</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonL"
+ class="L ModeSwitch Button"
+ cx="19.5"
+ cy="125"
+ r=".75" />
+ <path
+ id="LeaderL"
+ class="L ModeSwitch Leader"
+ d="M 19 129 L 19 148 L 69 148 L 69 153 L 73 153" />
+ <text
+ id="LabelL"
+ class="L ModeSwitch Label"
+ x="75"
+ y="153"
+ style="text-anchor:start;">L</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonM"
+ class="M ModeSwitch Button"
+ cx="34"
+ cy="139.5"
+ r=".75" />
+ <path
+ id="LeaderM"
+ class="M ModeSwitch Leader"
+ d="M 38 139 L 73 139" />
+ <text
+ id="LabelM"
+ class="M ModeSwitch Label"
+ x="75"
+ y="139"
+ style="text-anchor:start;">M</text>
+ </g>
+</svg>
diff --git a/data/libwacom.stylus b/data/libwacom.stylus
index 21c1949..c063370 100644
--- a/data/libwacom.stylus
+++ b/data/libwacom.stylus
@@ -79,8 +79,11 @@ Type=General
[0x842]
# Intuos2
-Name=Designer Pen
-HasEraser=false
+#Name=Designer Pen
+#HasEraser=false
+# MobileStudio Pro
+Name=Pro Pen
+HasEraser=true
Buttons=2
Axes=Tilt;Pressure;Distance;
Type=General
@@ -209,6 +212,13 @@ Buttons=2
Axes=Tilt;Pressure;Distance;
Type=Classic
+[0x84a]
+Name=Pro Pen Eraser
+IsEraser=true
+Buttons=2
+Axes=Tilt;Pressure;Distance;
+Type=General
+
[0x85a]
# Intuos2
Name=Grip Pen Eraser
diff --git a/data/mobilestudio-pro-13.tablet b/data/mobilestudio-pro-13.tablet
new file mode 100644
index 0000000..1b06421
--- /dev/null
+++ b/data/mobilestudio-pro-13.tablet
@@ -0,0 +1,58 @@
+# Wacom
+# MobileStudio Pro 13
+# DTH-W1320
+#
+# Button Map:
+# (A=1, B=2, C=3, ...)
+#
+# *-----------------------*
+# | |
+# A | |
+# B | |
+# C | |
+# | |
+# I | |
+# J G H | DISPLAY |
+# K | |
+# | |
+# D | |
+# E | |
+# F | |
+# | |
+# *-----------------------*
+#
+# Touch Ring Map:
+# (A=1st ring, B=2nd ring, ...)
+#
+# *-----------------------*
+# | |
+# A | TABLET |
+# | |
+# *-----------------------*
+#
+# Note: Buttons H, I, J, K are on a circle
+#
+
+[Device]
+Name=Wacom MobileStudio Pro 13
+Class=Cintiq
+DeviceMatch=usb:056a:034d
+PairedID=usb:056a:034a
+Width=12
+Height=7
+Layout=mobilestudio-pro-13.svg
+Styli=0x842;0x84a;0x160802;0x16080a;0x100802;0x10080a;0x140802;0x14080a;0x120802;0x100804;0x10080c;0x100902;0x10090a
+IntegratedIn=Display;System
+
+[Features]
+Stylus=true
+Touch=true
+Ring=true
+Buttons=11
+
+[Buttons]
+Left=A;B;C;D;E;F;G;H;I;J;K
+
+# This tablet has mode buttons but no LEDs to signal the current mode to the
+# user and thus requires the caller to display an on-screen notification.
+Ring=H;I;J;K
diff --git a/data/mobilestudio-pro-16.tablet b/data/mobilestudio-pro-16.tablet
new file mode 100644
index 0000000..9569d11
--- /dev/null
+++ b/data/mobilestudio-pro-16.tablet
@@ -0,0 +1,60 @@
+# Wacom
+# MobileStudio Pro 16
+# DTH-W1620
+#
+# Button Map:
+# (A=1, B=2, C=3, ...)
+#
+# *-----------------------*
+# | |
+# A | |
+# B | |
+# C | |
+# D | |
+# | |
+# K | |
+# L I J | DISPLAY |
+# M | |
+# | |
+# E | |
+# F | |
+# G | |
+# H | |
+# | |
+# *-----------------------*
+#
+# Touch Ring Map:
+# (A=1st ring, B=2nd ring, ...)
+#
+# *-----------------------*
+# | |
+# A | TABLET |
+# | |
+# *-----------------------*
+#
+# Note: Buttons J, K, L, M are on a circle
+#
+
+[Device]
+Name=Wacom MobileStudio Pro 16
+Class=Cintiq
+DeviceMatch=usb:056a:034e
+PairedID=usb:056a:034b
+Width=14
+Height=8
+Layout=mobilestudio-pro-16.svg
+Styli=0x842;0x84a;0x160802;0x16080a;0x100802;0x10080a;0x140802;0x14080a;0x120802;0x100804;0x10080c;0x100902;0x10090a
+IntegratedIn=Display;System
+
+[Features]
+Stylus=true
+Touch=true
+Ring=true
+Buttons=13
+
+[Buttons]
+Left=A;B;C;D;E;F;G;H;I;J;K;L;M
+
+# This tablet has mode buttons but no LEDs to signal the current mode to the
+# user and thus requires the caller to display an on-screen notification.
+Ring=J;K;L;M
8K pressure levels. The ID of this pen is identical to that of a (less
featureful) pen used by the Intuos2, so we have to slightly modify the
existing entry. Ideally, we would have some way to define multiple pens
which share the same IDs (which apparently, according to the technical
experts, are not guaranteed unique outside of a hardware generation).
Such a change will require serious design and planning that are outside
of the immediate scope of this patch.
Signed-off-by: Jason Gerecke <***@wacom.com>
---
data/layouts/mobilestudio-pro-13.svg | 279 +++++++++++++++++++++++++++++
data/layouts/mobilestudio-pro-16.svg | 331 +++++++++++++++++++++++++++++++++++
data/libwacom.stylus | 14 +-
data/mobilestudio-pro-13.tablet | 58 ++++++
data/mobilestudio-pro-16.tablet | 60 +++++++
5 files changed, 740 insertions(+), 2 deletions(-)
create mode 100644 data/layouts/mobilestudio-pro-13.svg
create mode 100644 data/layouts/mobilestudio-pro-16.svg
create mode 100644 data/mobilestudio-pro-13.tablet
create mode 100644 data/mobilestudio-pro-16.tablet
diff --git a/data/layouts/mobilestudio-pro-13.svg b/data/layouts/mobilestudio-pro-13.svg
new file mode 100644
index 0000000..172141b
--- /dev/null
+++ b/data/layouts/mobilestudio-pro-13.svg
@@ -0,0 +1,279 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ style="color:#000000;stroke:#7f7f7f;fill:none;stroke-width:.25;font-size:8"
+ id="intuos-pro-m"
+ width="320"
+ height="208">
+ <title
+ id="title">Wacom MobileStudio Pro 13</title>
+ <g>
+ <circle
+ id="Ring"
+ class="Ring TouchRing"
+ cx="34"
+ cy="104"
+ r="19.5" />
+ <path
+ id="LeaderRingCW"
+ class="RingCW Ring Leader"
+ d="M 12 90 L 12 75 L 61 75 L 61 62 L 70 62" />
+ <text
+ id="LabelRingCW"
+ class="RingCW Ring Label"
+ x="72"
+ y="62"
+ style="text-anchor:start;">CW</text>
+ <g transform="rotate(-90,31,80) translate(-20,-20)">
+ <path
+ id="RingCW"
+ class="RingCW Button"
+ d="M 31 80 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 1 5 1.5 a 6.5 6.5 0 0 0 -5 -0.5 l 0 1 z" />
+ </g>
+ <path
+ id="LeaderRingCCW"
+ class="RingCCW Ring Leader"
+ d="M 12 118 L 12 133 L 61 133 L 61 146 L 70 146" />
+ <text
+ id="LabelRingCCW"
+ class="RingCCW Ring Label"
+ x="72"
+ y="146"
+ style="text-anchor:start;">CCW</text>
+ <g transform="rotate(90,31,128) translate(-20,20)">
+ <path
+ id="RingCCW"
+ class="RingCCW Button"
+ d="M 31 128 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 0 5 -1 a 6.5 6.5 0 0 1 -5 2 l 0 1 z" />
+ </g>
+ </g>
+ <g>
+ <rect
+ id="ButtonA"
+ class="A Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="33"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderA"
+ class="A Leader"
+ d="M 47 39 L 49 39 L 49 20 L 60 20" />
+ <text
+ id="LabelA"
+ class="A Label"
+ x="62"
+ y="20"
+ style="text-anchor:start;">A</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonB"
+ class="B Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="47"
+ width="20"
+ height="12" />
+ <circle
+ id="DotB1"
+ cx="34"
+ cy="53"
+ r=".75" />
+ <path
+ id="LeaderB"
+ class="B Leader"
+ d="M 47 53 L 53 53 L 53 34 L 60 34" />
+ <text
+ id="LabelB"
+ class="B Label"
+ x="62"
+ y="34"
+ style="text-anchor:start;">B</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonC"
+ class="C Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="61"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderC"
+ class="C Leader"
+ d="M 47 67 L 57 67 L 57 48 L 60 48" />
+ <text
+ id="LabelC"
+ class="C Label"
+ x="62"
+ y="48"
+ style="text-anchor:start;">C</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonD"
+ class="D Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="135"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderD"
+ class="D Leader"
+ d="M 47 141 L 57 141 L 57 160 L 60 160" />
+ <text
+ id="LabelD"
+ class="D Label"
+ x="62"
+ y="160"
+ style="text-anchor:start;">D</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonE"
+ class="E Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="149"
+ width="20"
+ height="12" />
+ <circle
+ id="DotE1"
+ cx="34"
+ cy="155"
+ r=".75" />
+ <path
+ id="LeaderE"
+ class="E Leader"
+ d="M 47 155 L 53 155 L 53 174 L 60 174" />
+ <text
+ id="LabelE"
+ class="E Label"
+ x="62"
+ y="174"
+ style="text-anchor:start;">E</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonF"
+ class="F Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="163"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderF"
+ class="F Leader"
+ d="M 47 169 L 49 169 L 49 188 L 60 188" />
+ <text
+ id="LabelF"
+ class="F Label"
+ x="62"
+ y="188"
+ style="text-anchor:start;">F</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonG"
+ class="G Button"
+ cx="34"
+ cy="104"
+ r="9.5" />
+ <path
+ id="LeaderG"
+ class="G Leader"
+ d="M 25 95 L 20 85 L 20 80 L 65 80 L 65 76 L 70 76" />
+ <text
+ id="LabelG"
+ class="G Label"
+ x="72"
+ y="76"
+ style="text-anchor:start;">G</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonH"
+ class="H ModeSwitch Button"
+ cx="48.5"
+ cy="104"
+ r=".75" />
+ <path
+ id="LeaderH"
+ class="H ModeSwitch Leader"
+ d="M 56 104 L 70 104" />
+ <text
+ id="LabelH"
+ class="H ModeSwitch Label"
+ x="72"
+ y="104"
+ style="text-anchor:start;">H</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonI"
+ class="I ModeSwitch Button"
+ cx="34"
+ cy="89.5"
+ r=".75" />
+ <path
+ id="LeaderI"
+ class="I ModeSwitch Leader"
+ d="M 38 90 L 70 90" />
+ <text
+ id="LabelI"
+ class="I ModeSwitch Label"
+ x="72"
+ y="90"
+ style="text-anchor:start;">I</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonJ"
+ class="J ModeSwitch Button"
+ cx="19.5"
+ cy="104"
+ r=".75" />
+ <path
+ id="LeaderJ"
+ class="J ModeSwitch Leader"
+ d="M 19 108 L 19 127 L 65 127 L 65 132 L 70 132" />
+ <text
+ id="LabelJ"
+ class="J ModeSwitch Label"
+ x="72"
+ y="132"
+ style="text-anchor:start;">J</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonK"
+ class="K ModeSwitch Button"
+ cx="34"
+ cy="118.5"
+ r=".75" />
+ <path
+ id="LeaderK"
+ class="K ModeSwitch Leader"
+ d="M 38 118 L 70 118" />
+ <text
+ id="LabelK"
+ class="K ModeSwitch Label"
+ x="72"
+ y="118"
+ style="text-anchor:start;">K</text>
+ </g>
+</svg>
diff --git a/data/layouts/mobilestudio-pro-16.svg b/data/layouts/mobilestudio-pro-16.svg
new file mode 100644
index 0000000..afe56a6
--- /dev/null
+++ b/data/layouts/mobilestudio-pro-16.svg
@@ -0,0 +1,331 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ style="color:#000000;stroke:#7f7f7f;fill:none;stroke-width:.25;font-size:8"
+ id="intuos-pro-m"
+ width="380"
+ height="250">
+ <title
+ id="title">Wacom MobileStudio Pro 16</title>
+ <g>
+ <circle
+ id="Ring"
+ class="Ring TouchRing"
+ cx="34"
+ cy="125"
+ r="19.5" />
+ <path
+ id="LeaderRingCW"
+ class="RingCW Ring Leader"
+ d="M 12 111 L 12 96 L 65 96 L 65 83 L 73 83" />
+ <text
+ id="LabelRingCW"
+ class="RingCW Ring Label"
+ x="75"
+ y="83"
+ style="text-anchor:start;">CW</text>
+ <g transform="rotate(-90,31,111) translate(-10,-20)">
+ <path
+ id="RingCW"
+ class="RingCW Button"
+ d="M 31 111 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 1 5 1.5 a 6.5 6.5 0 0 0 -5 -0.5 l 0 1 z" />
+ </g>
+ <path
+ id="LeaderRingCCW"
+ class="RingCCW Ring Leader"
+ d="M 12 139 L 12 154 L 65 154 L 65 167 L 73 167" />
+ <text
+ id="LabelRingCCW"
+ class="RingCCW Ring Label"
+ x="75"
+ y="167"
+ style="text-anchor:start;">CCW</text>
+ <g transform="rotate(90,31,139) translate(-10,20)">
+ <path
+ id="RingCCW"
+ class="RingCCW Button"
+ d="M 31 139 l 3 -1.5 l 0 1 a 7.5 7.5 0 0 0 5 -1 a 6.5 6.5 0 0 1 -5 2 l 0 1 z" />
+ </g>
+ </g>
+ <g>
+ <rect
+ id="ButtonA"
+ class="A Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="40"
+ width="20"
+ height="12" />
+ <circle
+ id="DotA1"
+ cx="34"
+ cy="46"
+ r=".75" />
+ <path
+ id="LeaderA"
+ class="A Leader"
+ d="M 47 46 L 49 46 L 49 27 L 63 27" />
+ <text
+ id="LabelA"
+ class="A Label"
+ x="65"
+ y="27"
+ style="text-anchor:start;">A</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonB"
+ class="B Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="54"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderB"
+ class="B Leader"
+ d="M 46 60 L 53 60 L 53 41 L 63 41" />
+ <text
+ id="LabelB"
+ class="B Label"
+ x="65"
+ y="41"
+ style="text-anchor:start;">B</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonC"
+ class="C Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="68"
+ width="20"
+ height="12" />
+ <circle
+ id="DotC1"
+ cx="34"
+ cy="74"
+ r=".75" />
+ <path
+ id="LeaderC"
+ class="C Leader"
+ d="M 46 74 L 57 74 L 57 55 L 63 55" />
+ <text
+ id="LabelC"
+ class="C Label"
+ x="65"
+ y="55"
+ style="text-anchor:start;">C</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonD"
+ class="D Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="82"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderD"
+ class="D Leader"
+ d="M 46 88 L 61 88 L 61 69 L 63 69" />
+ <text
+ id="LabelD"
+ class="D Label"
+ x="65"
+ y="69"
+ style="text-anchor:start;">D</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonE"
+ class="E Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="156"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderE"
+ class="E Leader"
+ d="M 46 162 L 61 162 L 61 181 L 63 181" />
+ <text
+ id="LabelE"
+ class="E Label"
+ x="65"
+ y="181"
+ style="text-anchor:start;">E</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonF"
+ class="F Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="170"
+ width="20"
+ height="12" />
+ <circle
+ id="DotF1"
+ cx="34"
+ cy="176"
+ r=".75" />
+ <path
+ id="LeaderF"
+ class="F Leader"
+ d="M 46 176 L 57 176 L 57 195 L 63 195" />
+ <text
+ id="LabelF"
+ class="F Label"
+ x="65"
+ y="195"
+ style="text-anchor:start;">F</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonG"
+ class="G Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="184"
+ width="20"
+ height="12" />
+ <path
+ id="LeaderG"
+ class="G Leader"
+ d="M 46 190 L 53 190 L 53 209 L 63 209" />
+ <text
+ id="LabelG"
+ class="G Label"
+ x="65"
+ y="209"
+ style="text-anchor:start;">G</text>
+ </g>
+ <g>
+ <rect
+ id="ButtonH"
+ class="H Button"
+ rx="2"
+ ry="2"
+ x="24"
+ y="198"
+ width="20"
+ height="12" />
+ <circle
+ id="DotF1"
+ cx="34"
+ cy="204"
+ r=".75" />
+ <path
+ id="LeaderH"
+ class="H Leader"
+ d="M 46 204 L 49 204 L 49 223 L 63 223" />
+ <text
+ id="LabelH"
+ class="H Label"
+ x="65"
+ y="223"
+ style="text-anchor:start;">H</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonI"
+ class="I Button"
+ cx="34"
+ cy="125"
+ r="9.5" />
+ <path
+ id="LeaderI"
+ class="I Leader"
+ d="M 25 116 L 20 106 L 20 101 L 69 101 L 69 97 L 73 97" />
+ <text
+ id="LabelI"
+ class="I Label"
+ x="75"
+ y="97"
+ style="text-anchor:start;">I</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonJ"
+ class="J ModeSwitch Button"
+ cx="48.5"
+ cy="125"
+ r=".75" />
+ <path
+ id="LeaderJ"
+ class="J ModeSwitch Leader"
+ d="M 56 125 L 73 125" />
+ <text
+ id="LabelJ"
+ class="J ModeSwitch Label"
+ x="75"
+ y="125"
+ style="text-anchor:start;">J</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonK"
+ class="K ModeSwitch Button"
+ cx="34"
+ cy="110.5"
+ r=".75" />
+ <path
+ id="LeaderK"
+ class="K ModeSwitch Leader"
+ d="M 38 111 L 73 111" />
+ <text
+ id="LabelK"
+ class="K ModeSwitch Label"
+ x="75"
+ y="111"
+ style="text-anchor:start;">K</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonL"
+ class="L ModeSwitch Button"
+ cx="19.5"
+ cy="125"
+ r=".75" />
+ <path
+ id="LeaderL"
+ class="L ModeSwitch Leader"
+ d="M 19 129 L 19 148 L 69 148 L 69 153 L 73 153" />
+ <text
+ id="LabelL"
+ class="L ModeSwitch Label"
+ x="75"
+ y="153"
+ style="text-anchor:start;">L</text>
+ </g>
+ <g>
+ <circle
+ id="ButtonM"
+ class="M ModeSwitch Button"
+ cx="34"
+ cy="139.5"
+ r=".75" />
+ <path
+ id="LeaderM"
+ class="M ModeSwitch Leader"
+ d="M 38 139 L 73 139" />
+ <text
+ id="LabelM"
+ class="M ModeSwitch Label"
+ x="75"
+ y="139"
+ style="text-anchor:start;">M</text>
+ </g>
+</svg>
diff --git a/data/libwacom.stylus b/data/libwacom.stylus
index 21c1949..c063370 100644
--- a/data/libwacom.stylus
+++ b/data/libwacom.stylus
@@ -79,8 +79,11 @@ Type=General
[0x842]
# Intuos2
-Name=Designer Pen
-HasEraser=false
+#Name=Designer Pen
+#HasEraser=false
+# MobileStudio Pro
+Name=Pro Pen
+HasEraser=true
Buttons=2
Axes=Tilt;Pressure;Distance;
Type=General
@@ -209,6 +212,13 @@ Buttons=2
Axes=Tilt;Pressure;Distance;
Type=Classic
+[0x84a]
+Name=Pro Pen Eraser
+IsEraser=true
+Buttons=2
+Axes=Tilt;Pressure;Distance;
+Type=General
+
[0x85a]
# Intuos2
Name=Grip Pen Eraser
diff --git a/data/mobilestudio-pro-13.tablet b/data/mobilestudio-pro-13.tablet
new file mode 100644
index 0000000..1b06421
--- /dev/null
+++ b/data/mobilestudio-pro-13.tablet
@@ -0,0 +1,58 @@
+# Wacom
+# MobileStudio Pro 13
+# DTH-W1320
+#
+# Button Map:
+# (A=1, B=2, C=3, ...)
+#
+# *-----------------------*
+# | |
+# A | |
+# B | |
+# C | |
+# | |
+# I | |
+# J G H | DISPLAY |
+# K | |
+# | |
+# D | |
+# E | |
+# F | |
+# | |
+# *-----------------------*
+#
+# Touch Ring Map:
+# (A=1st ring, B=2nd ring, ...)
+#
+# *-----------------------*
+# | |
+# A | TABLET |
+# | |
+# *-----------------------*
+#
+# Note: Buttons H, I, J, K are on a circle
+#
+
+[Device]
+Name=Wacom MobileStudio Pro 13
+Class=Cintiq
+DeviceMatch=usb:056a:034d
+PairedID=usb:056a:034a
+Width=12
+Height=7
+Layout=mobilestudio-pro-13.svg
+Styli=0x842;0x84a;0x160802;0x16080a;0x100802;0x10080a;0x140802;0x14080a;0x120802;0x100804;0x10080c;0x100902;0x10090a
+IntegratedIn=Display;System
+
+[Features]
+Stylus=true
+Touch=true
+Ring=true
+Buttons=11
+
+[Buttons]
+Left=A;B;C;D;E;F;G;H;I;J;K
+
+# This tablet has mode buttons but no LEDs to signal the current mode to the
+# user and thus requires the caller to display an on-screen notification.
+Ring=H;I;J;K
diff --git a/data/mobilestudio-pro-16.tablet b/data/mobilestudio-pro-16.tablet
new file mode 100644
index 0000000..9569d11
--- /dev/null
+++ b/data/mobilestudio-pro-16.tablet
@@ -0,0 +1,60 @@
+# Wacom
+# MobileStudio Pro 16
+# DTH-W1620
+#
+# Button Map:
+# (A=1, B=2, C=3, ...)
+#
+# *-----------------------*
+# | |
+# A | |
+# B | |
+# C | |
+# D | |
+# | |
+# K | |
+# L I J | DISPLAY |
+# M | |
+# | |
+# E | |
+# F | |
+# G | |
+# H | |
+# | |
+# *-----------------------*
+#
+# Touch Ring Map:
+# (A=1st ring, B=2nd ring, ...)
+#
+# *-----------------------*
+# | |
+# A | TABLET |
+# | |
+# *-----------------------*
+#
+# Note: Buttons J, K, L, M are on a circle
+#
+
+[Device]
+Name=Wacom MobileStudio Pro 16
+Class=Cintiq
+DeviceMatch=usb:056a:034e
+PairedID=usb:056a:034b
+Width=14
+Height=8
+Layout=mobilestudio-pro-16.svg
+Styli=0x842;0x84a;0x160802;0x16080a;0x100802;0x10080a;0x140802;0x14080a;0x120802;0x100804;0x10080c;0x100902;0x10090a
+IntegratedIn=Display;System
+
+[Features]
+Stylus=true
+Touch=true
+Ring=true
+Buttons=13
+
+[Buttons]
+Left=A;B;C;D;E;F;G;H;I;J;K;L;M
+
+# This tablet has mode buttons but no LEDs to signal the current mode to the
+# user and thus requires the caller to display an on-screen notification.
+Ring=J;K;L;M
--
2.10.1
2.10.1