On Mon, Nov 30, 2015 at 04:31:06PM -0800, Aaron Skomra wrote: > Signed-off-by: Aaron Skomra <aaron.sko...@wacom.com> > --- > -pass make check tests
pushed, thanks. Cheers, Peter > > data/ek-remote.tablet | 34 ++++ > data/layouts/ek-remote.svg | 430 > +++++++++++++++++++++++++++++++++++++++++++ > libwacom/libwacom-database.c | 2 + > libwacom/libwacom.c | 1 + > libwacom/libwacom.h | 1 + > test/dbverify.c | 3 + > test/tablet-validity.c | 11 +- > 7 files changed, 479 insertions(+), 3 deletions(-) > create mode 100644 data/ek-remote.tablet > create mode 100644 data/layouts/ek-remote.svg > > diff --git a/data/ek-remote.tablet b/data/ek-remote.tablet > new file mode 100644 > index 0000000..a793bf4 > --- /dev/null > +++ b/data/ek-remote.tablet > @@ -0,0 +1,34 @@ > +# Wacom > +# ExpressKey Remote > +# ACK-411050 > +# > +# C D > +# B A E > +# F > +# G H I > +# J K L > +# M N O > +# P Q R > + > +[Device] > +Name=Wacom ExpressKey Remote > +DeviceMatch=usb:056a:0331 > +Layout=ek-remote.svg > +Class=Remote > + > +[Features] > +Stylus=false > +Ring=true > +NumStrips=0 > +Buttons=18 > +#StatusLEDs=Ring > + > +[Buttons] > +Left=C;A;B;F;G;J;M;N;P;Q > +Right=D;E;I;L;H;K;O;R > + > +#Note that though this device has 3 ring modes > +#this mode selection does not function the same > +#as previous devices. The EKR's mode is read-only. > +#RingNumModes=3 > +Ring=A > diff --git a/data/layouts/ek-remote.svg b/data/layouts/ek-remote.svg > new file mode 100644 > index 0000000..9b6529a > --- /dev/null > +++ b/data/layouts/ek-remote.svg > @@ -0,0 +1,430 @@ > +<?xml version="1.0" encoding="UTF-8" standalone="no"?> > +<svg > + xmlns:dc="http://purl.org/dc/elements/1.1/" > + xmlns:cc="http://creativecommons.org/ns#" > + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > + xmlns:svg="http://www.w3.org/2000/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="ek-remote" > + width="350" > + height="275" > +> > + <metadata > + id="metadata3448"> > + <rdf:RDF> > + <cc:Work > + rdf:about=""> > + <dc:format>image/svg+xml</dc:format> > + <dc:type > + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> > + </cc:Work> > + </rdf:RDF> > + </metadata> > + <defs > + id="defs3446" /> > + > + <title > + id="title">Wacom ExpressKey Remote</title> > + > + <path > + id="ButtonB" > + class="B Button" > + d="m 111,39.5 a 30,30 0 0 0 0,40 l 8,-6 a 20,20 0 0 1 0,-28 l -8,-6" > + /> > + <path > + id="ButtonE" > + class="E Button" > + d="m 157.87831,39.500803 a 30.478094,29.624531 0 0 1 0,39.499377 l > -8.12747,-5.92491 a 20.31873,19.749687 0 0 0 0,-27.64956 l 8.12747,-5.924907" > + /> > + <path > + id="ButtonF" > + class="F Button" > + d="m 111.99446,80.28266 a 30.007371,27.700507 0 0 0 45.01106,0 l > -8.00197,-5.5401 a 20.004914,18.467004 0 0 1 -29.00712,0 l -8.00197,5.5401" > + /> > + <path > + d="m 114.99747,35.267115 a 29.592561,29.014789 0 0 1 17.75554,-6.770118 > l 0,10.638757 a 19.728374,19.343193 0 0 0 -10.85061,3.868638 l > -6.90493,-7.737277" > + id="ButtonC" > + class="C Button" > + /> > + <path > + d="m 138,28.5 a 30,30 0 0 1 17,7 l -8,8 a 20,20 0 0 0 -10,-4 l 1,-11" > + id="ButtonD" > + class="D Button" > + /> > + > +<g id="right side labels" > + > > + <path > + id="LeaderF" > + class="F Leader" > + d="m 132,83 -39,-6 -12,0" > + stroke="grey" > + /> > + <text > + id="LabelF" > + class="F Label" > + x="69" > + y="76" > + style="text-anchor:start">F</text> > +</g> > + > + <g > + id="g3675"> > + <circle > + id="Ring" > + class="Ring TouchRing" > + cx="134" > + cy="60" > + r="19.5" /> > + <path > + id="LeaderRingCCW" > + class="RingCCW Ring Leader" > + stroke="grey" > + d="m 134,44 0,-2 67,0" /> > + <text > + id="LabelRingCCW" > + class="RingCCW Ring Label" > + x="203" > + y="42" > + style="text-anchor:start">CCW</text> > + <path > + id="RingCCW" > + class="RingCCW Button" > + d="m 131,45 3,-1.5 0,1 a 7.5,7.5 0 0 1 5,1.5 6.5,6.5 0 0 0 -5,-0.5 l > 0,1 z" /> > + <path > + id="LeaderRingCW" > + class="RingCW Ring Leader" > + stroke="grey" > + d="m 134,74 0,2 67,0" /> > + <text > + id="LabelRingCW" > + class="RingCW Ring Label" > + x="203" > + y="76" > + style="text-anchor:start">CW</text> > + <path > + id="RingCW" > + class="RingCW Button" > + d="m 131,73 3,-1.5 0,1 a 7.5,7.5 0 0 0 5,-1 6.5,6.5 0 0 1 -5,2 l 0,1 > z" /> > + </g> > + <g > + id="g3699"> > + > + <path > + id="LeaderG" > + class="G Leader" > + stroke="grey" > + d="m 110,96 -27,0 " /> > + <text > + id="LabelG" > + class="G Label" > + x="70" > + y="96" > + style="text-anchor:start">G</text> > + <path > + id="ButtonG" > + class="G Button" > + d="m 105,78 A 30,30 0 0 0 120,89 > + L 120,104 > + L 105,104 > + L 105,78" > + /> > + <path > + id="LeaderH" > + class="H Leader" > + stroke="grey" > + d="m 137,103 50,50 5,0" > + /> > + <text > + id="LabelH" > + class="H Label" > + x="193" > + y="153" > + style="text-anchor:start">H</text> > + <path > + id="ButtonH" > + class="H Button" > + d="m 123,101 A 10,10 0 0 1 143,101 L 143,111 L 123, 111 L 123, 101" > + /> > + <path > + id="LeaderI" > + class="I Leader" > + stroke="grey" > + d="m 156,93 48,0 " > + /> > + <text > + id="LabelI" > + class="I Label" > + x="205" > + y="92" > + style="text-anchor:start">I</text> > + <path > + id ="ButtonI" > + class="I Button" > + d="m 146,89 A 30,30 0 0 0 161,78 L 161,104 L 146,104 L 146,89" > + /> > + <path > + id="LeaderJ" > + class="J Leader" > + stroke="grey" > + d="m 110,122 -27,0 " /> > + <text > + id="LabelJ" > + class="J Label" > + x="75" > + y="121" > + style="text-anchor:start">J</text> > + <path > + id="ButtonJ" > + class="J Button" > + d="m 105,106 L 120,106 L 120,126 L 105,126 L 105,106" > + /> > + <path > + id="LeaderK" > + class="K Leader" > + stroke="grey" > + d="m 137,116 50,50 5,0" > + /> > + <text > + id="LabelK" > + class="K Label" > + x="193" > + y="172" > + style="text-anchor:start">K</text> > + <path > + id="ButtonK" > + class="K Button" > + d="m 123, 113 L 143,113 L 143, 126 L 123, 126 L 123, 113" > + /> > + <path > + id="LeaderL" > + class="L Leader" > + stroke="grey" > + d="m 157,112 50,0" > + /> > + <text > + id="LabelL" > + class="L Label" > + x="204" > + y="110" > + style="text-anchor:start">L</text> > + <path > + id ="ButtonL" > + class="L Button" > + d="m 146,106 L 161,106 L 161,126 L 146,126 L 146,106" > + /> > + </g> > + > + <g > + id="g3700"> > + <path > + id="LeaderM" > + class="M Leader" > + stroke="grey" > + d="m 110,142 -27,0 " /> > + <text > + id="LabelM" > + class="M Label" > + x="70" > + y="140" > + style="text-anchor:start">M</text> > + <path > + id="ButtonM" > + class="M Button" > + d="m 105,128 L 120,128 L 120,148 L 105,148 L 105,128" > + /> > + <path > + id="LeaderN" > + class="N Leader" > + stroke="grey" > + d="m 130,135 -40,30 -5,0" > + /> > + <text > + id="LabelN" > + class="N Label" > + x="70" > + y="165" > + style="text-anchor:start">N</text> > + <path > + id="ButtonN" > + class="N Button" > + d="m 123, 128 L 143,128 L 143, 142 L 123, 142 L 123, 128" > + /> > + <path > + id="LeaderO" > + class="O Leader" > + stroke="grey" > + d="m 152,140 40,56" > + /> > + <text > + id="LabelO" > + class="O Label" > + x="190" > + y="208" > + style="text-anchor:start">O</text> > + <path > + id ="ButtonO" > + class="O Button" > + d="m 146,128 > + L 161,128 > + L 161,148 > + L 146,148 > + L 146,128" > + /> > + </g> > + > + <g > + id="g3701"> > + <path > + id="LeaderQ" > + class="Q Leader" > + stroke="grey" > + d="m 117,175 0,20 " > + /> > + <text > + id="LabelQ" > + class="Q Label" > + x="111" > + y="209" > + style="text-anchor:start">Q</text> > + <path > + id="ButtonQ" > + class="Q Button" > + d="m 105,150 > + L 120,150 A 12,12 0 0 0 132,164 > + L 132,180 > + L 118, 180 A 15,15 0 0 1 105,164 > + L 105,150" > + /> > + <path > + id="LeaderP" > + class="P Leader" > + stroke="grey" > + d="m 130,155 -60,40" > + /> > + <text > + id="LabelP" > + class="P Label" > + x="63" > + y="208" > + style="text-anchor:start">P</text> > + <path > + id="ButtonP" > + class="P Button" > + d="m 123,152 A 10,10 0 0 0 143,152 > + L 143,144 > + L 123,144 > + L 123,152" > + /> > + <path > + id="LeaderR" > + class="R Leader" > + stroke="grey" > + d="m 147,175 0,20 " > + /> > + <text > + id="LabelR" > + class="R Label" > + x="141" > + y="209" > + style="text-anchor:start">R</text> > + <path > + id="ButtonR" > + class="R Button" > + d="m 161,150 > + L 146,150 A 12,12 0 0 1 134,164 > + L 134,180 > + L 150, 180 A 15,15 0 0 0 161,164 > + L 161,150" > + /> > + </g> > + <g > + id="g3684"> > + <circle > + id="ButtonA" > + class="A ModeSwitch Button" > + cx="134" > + cy="59" > + r="6.5" /> > + <path > + id="LeaderA" > + class="A ModeSwitch Leader" > + stroke="grey" > + d="m 134,59 -30,-18 -24,0" /> > + <text > + id="LabelA" > + class="A ModeSwitch Label" > + x="69" > + y="39" > + style="text-anchor:start">A</text> > + </g> > + <g > + id="g3689"> > + <circle > + id="Ring Buttons" > + class="Ring TouchRing" > + cx="134" > + cy="59" > + r="0" /> > + <path > + id="LeaderB" > + class="B Leader" > + stroke="grey" > + d="m 80,59 30,0" /> > + <text > + id="LabelB" > + class="B Label" > + x="70" > + y="59" > + style="text-anchor:start">B</text> > + <path > + id="LeaderC" > + class="C Leader" > + stroke="grey" > + d="m 80,20 20,0 25,12"/> > + <text > + id="LabelC" > + class="C Label" > + x="70" > + y="20" > + style="text-anchor:start">C</text> > + <path > + id="LeaderD" > + class="D Leader" > + stroke="grey" > + d="m 145,35 0,-10 5,-5 50,0" /> > + <text > + id="LabelD" > + class="D Label" > + x="203" > + y="20" > + style="text-anchor:start">D</text> > + <path > + id="LeaderE" > + class="E Leader" > + stroke="grey" > + d="m 162,59 39,0" > + /> > + <text > + id="LabelE" > + class="E Label" > + x="203" > + y="59" > + style="text-anchor:start">E</text> > + </g> > + <path > + style="fill:white" > + d="m 114.13253,36.257524 6.85981,7.45701 -1.31919,1.028553 > -7.91517,-6.171319 z" > + id="LED0" /> > + <path > + style="fill:white" > + d="m 134.02961,38.991736 -0.27117,-10.733474 2.98286,0 > -0.54234,10.733474 z" > + id="LED1" /> > + <path > + style="fill:white" > + d="m 148,43.249999 7.25,-6.75 1.75,2.5 -7.5,5.75 z" > + id="LED2" /> > +</svg> > diff --git a/libwacom/libwacom-database.c b/libwacom/libwacom-database.c > index ed67de9..997b53f 100644 > --- a/libwacom/libwacom-database.c > +++ b/libwacom/libwacom-database.c > @@ -68,6 +68,8 @@ libwacom_class_string_to_enum(const char *class) > return WCLASS_ISDV4; > if (strcmp(class, "PenDisplay") == 0) > return WCLASS_PEN_DISPLAYS; > + if (strcmp(class, "Remote") == 0) > + return WCLASS_REMOTE; > > return WCLASS_UNKNOWN; > } > diff --git a/libwacom/libwacom.c b/libwacom/libwacom.c > index ba61764..d20b66c 100644 > --- a/libwacom/libwacom.c > +++ b/libwacom/libwacom.c > @@ -717,6 +717,7 @@ libwacom_print_device_description(int fd, const > WacomDevice *device) > case WCLASS_INTUOS: class_name = "Intuos"; break; > case WCLASS_INTUOS2: class_name = "Intuos2"; break; > case WCLASS_PEN_DISPLAYS: class_name = "PenDisplay"; > break; > + case WCLASS_REMOTE: class_name = "Remote"; break; > default: g_assert_not_reached(); break; > } > > diff --git a/libwacom/libwacom.h b/libwacom/libwacom.h > index 3d3cbb1..f36b2ac 100644 > --- a/libwacom/libwacom.h > +++ b/libwacom/libwacom.h > @@ -142,6 +142,7 @@ typedef enum { > WCLASS_INTUOS, /**< Any Intuos series */ > WCLASS_INTUOS2, /**< Any Intuos2 series */ > WCLASS_PEN_DISPLAYS, /**< Any "interactive pen display" */ > + WCLASS_REMOTE, /**< Any Wacom Remote */ > } WacomClass; > > /** > diff --git a/test/dbverify.c b/test/dbverify.c > index 5a4b687..799e717 100644 > --- a/test/dbverify.c > +++ b/test/dbverify.c > @@ -151,6 +151,9 @@ compare_written_database(WacomDeviceDatabase *db) > close(fd); > free(path); > > + if (!libwacom_has_stylus(*device)) > + continue; > + > styli = libwacom_get_supported_styli(*device, &nstyli); > for (i = 0; i < nstyli; i++) { > int fd_stylus; > diff --git a/test/tablet-validity.c b/test/tablet-validity.c > index 1fe741b..2fc1142 100644 > --- a/test/tablet-validity.c > +++ b/test/tablet-validity.c > @@ -133,21 +133,26 @@ static void verify_tablet(WacomDeviceDatabase *db, > WacomDevice *device) > assert(libwacom_get_matches(device) != NULL); > > /* ISDv4 are built-in, they may be of varying size */ > - if (libwacom_get_class(device) != WCLASS_ISDV4) { > + if (libwacom_get_class(device) != WCLASS_ISDV4 && > + libwacom_get_class(device) != WCLASS_REMOTE) { > assert(libwacom_get_width(device) > 0); > assert(libwacom_get_height(device) > 0); > } > assert(libwacom_get_num_buttons(device) >= 0); > > styli = libwacom_get_supported_styli(device, &nstyli); > - assert(styli != NULL); > - assert(nstyli >= 1); > + > + if (libwacom_has_stylus(device)) { > + assert(styli != NULL); > + assert(nstyli >= 1); > + } > > switch(libwacom_get_class(device)) { > case WCLASS_BAMBOO: > case WCLASS_ISDV4: > case WCLASS_PEN_DISPLAYS: > case WCLASS_GRAPHIRE: > + case WCLASS_REMOTE: > break; > case WCLASS_INTUOS: > case WCLASS_INTUOS2: > -- > 2.5.0 > > > ------------------------------------------------------------------------------ > Go from Idea to Many App Stores Faster with Intel(R) XDK > Give your users amazing mobile app experiences with Intel(R) XDK. > Use one codebase in this all-in-one HTML5 development environment. > Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. > http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140 > _______________________________________________ > Linuxwacom-devel mailing list > Linuxwacom-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel > ------------------------------------------------------------------------------ Go from Idea to Many App Stores Faster with Intel(R) XDK Give your users amazing mobile app experiences with Intel(R) XDK. Use one codebase in this all-in-one HTML5 development environment. Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140 _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel