On 1/5/2010 9:08 PM, Henrik Rydberg wrote: > Hi Joonyoung, > >> I have some questions about Multi-touch(MT) Protocal. > > Let me start by answering your last question: > >> Finally, what is difference of ABS_MT_TOUCH_MAJOR and >> ABS_MT_WIDTH_MAJOR? > > The TOUCH and WIDTH parameters have a geometrical interpretation; imagine > looking through a window at someone gently holding a finger against the glass. > You will see two regions, one inner region consisting of the part of the finger > actually touching the glass, and one outer region formed by the perimeter of the > finger. The diameter of the inner region is the ABS_MT_TOUCH_MAJOR, the diameter > of the outer region is ABS_MT_WIDTH_MAJOR. Now imagine the person pressing the > finger harder against the glass. The inner region will increase, and in general, > the ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than > unity, is related to the finger pressure. > Aha, i understand :) > In addition to the MAJOR parameters, the oval shape of the finger can be > described by adding the MINOR parameters, such that MAJOR and MINOR are the > major and minor axis of an ellipse. Finally, the orientation of the oval shape > can be describe with the ORIENTATION parameter. > >> First, what is the purpose of ABS_MT_TOUCH_MAJOR event? I wonder how >> it is used at userspace side. > > In a graphical program it can of course be used as is, but in the specific > application of creating gesture events, the TOUCH and WIDTH parameters can be > used to, e.g., approximate finger pressure or distinguish between index finger > and thumb. With the addition of the MINOR parameters, one can also distinguish > between a sweeping finger and a pointing finger, and with ORIENTATION, one can > detect twisting of fingers. > >> Should the ABS_MT_TOUCH_MAJOR be the mininum set of events for multi >> touch? I'm not sure whether this question is valid because of first >> question. > > Each finger packet should have an ABS_MT_TOUCH_MAJOR value. In can be computed > from various types of sensory input, e.g., the size of the contact area or a > pressure sensor. > Hmm, I think ABS_MT_TOUCH_MAJOR is similar to ABS_PRESSURE, of course it can be used other purposes. If the device doesn't support the pressure, the driver doesn't report ABS_PRESSURE, so if the device cannot get a touching size of the finger, how can the driver report it? The ABS_MT_TOUCH_MAJOR needs for several things as you explain, but i think it isn't essential event for multi-touch such ABS_PRESSURE. If we can get only the coodinates of each fingers, is it full enough for minimum supporting of multi-touch? Thanks for explanation. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html