throbber
111111
`
`1111111111111111111111111111111111111111111111111111111111111111111111111111
`US 20090284478Al
`
`(19) United States
`c12) Patent Application Publication
`De Ia Torre Baltierra et al.
`
`(10) Pub. No.: US 2009/0284478 Al
`Nov. 19, 2009
`(43) Pub. Date:
`
`(54) MULTI-CONTACT AND SINGLE-CONTACT
`INPUT
`
`(22) Filed:
`
`May 15,2008
`
`Publication Classification
`
`(75)
`
`Inventors:
`
`Pamela De Ia Torre Baltierra,
`Carnation, WA (US); Scott
`Sheehan, Seattle, WA (US); Xiao
`Tu, Sammamish, WA (US); Bryan
`D. Scott, Mill Creek, WA (US);
`Reed L. Townsend, Kirkland, WA
`(US)
`
`Correspondence Address:
`MICROSOFT CORPORATION
`ONE MICROSOFT WAY
`REDMOND, WA 98052 (US)
`
`(73) Assignee:
`
`MICROSOFT CORPORATION,
`Redmond, WA (US)
`
`(21) Appl. No.:
`
`12/120,820
`
`(51)
`
`Int. Cl.
`G06F 31041
`(2006.01)
`(52) U.S. Cl. ........................................................ 345/173
`
`(57)
`
`ABSTRACT
`
`This document describes tools capable of initiating a function
`based on one or more tactile contacts received through a
`contact detection device, such as a touch pad. In some
`embodiments, the tools identify tactile contacts in accordance
`with the tool's input mode. The tools may use the input mode
`to determine what gestures may be identified for the tactile
`contacts. In some embodiments, these tools switch input
`modes based on a number or characteristic of tactile contacts
`electronically represented in contact data. By so doing, the
`tools may more accurately determine appropriate gestures or
`provide a broader range of functions based on tactile contacts
`received through a contact detection device.
`
`Computing System
`100
`
`Contact Detection Device
`108
`
`Multi-Input System having Computer(cid:173)
`Readable Media
`102
`
`Input Controller
`1.1§
`
`Application
`1.1Q
`
`Identifier
`Module
`104
`
`Contact State
`Machine
`120
`
`Library
`llil.
`
`Monitoring
`State Machine
`122
`
`Petitioner Samsung Ex-1005, 0001
`
`

`

`Computing System
`100
`
`Contact Detection Device
`108
`
`Multi-Input System having Computer(cid:173)
`Readable Media
`102
`
`Input Controller
`116
`
`Application
`110
`
`Identifier
`Module
`104
`
`Contact State
`Machine
`120
`
`I
`
`Library
`118
`
`Monitoring
`State Machine
`122
`
`Contact Detector(s)
`106
`/-----------""
`Zoom
`'
`I
`124
`I
`I
`,......r\...
`I
`I
`I
`I
`I
`
`r
`I
`1
`I
`. . 1
`
`' \ - - - - -
`'
`'
`'
`'
`
`\
`
`' '
`
`{
`------;;
`
`/
`
`/
`
`/
`
`/
`
`/
`
`/
`
`~~ ·{:
`
`107
`
`~
`
`Fig. 1
`
`(')
`
`~ .....
`
`(')
`
`~ .....
`
`'"= ~ .....
`('D = .....
`~ 'e -....
`.... 0 = '"= = 0" -....
`.... 0 =
`z 0
`~ ....
`
`~'-CI
`N
`0
`0
`'-CI
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`....
`0 .....
`
`.j;o.
`
`c
`rFJ
`N
`0
`0
`..._
`'-CI
`0
`N
`QO
`.j;o.
`.j;o.
`-....l
`QO
`
`> ....
`
`Petitioner Samsung Ex-1005, 0002
`
`

`

`Patent Application Publication
`
`Nov. 19, 2009 Sheet 2 of 4
`
`US 2009/0284478 Al
`
`200
`Detect Tactile Input
`and Produce
`Output
`
`208
`Switch Input Mode
`.1-----11~
`to Current Input
`Mode
`
`No
`
`210
`Maintain Current
`Input Mode
`
`214
`Initiate Mapped
`Function/Auxiliary
`Function
`
`Fig. 2
`
`Petitioner Samsung Ex-1005, 0003
`
`

`

`Patent Application Publication
`
`Nov. 19, 2009 Sheet 3 of 4
`
`US 2009/0284478 Al
`
`300
`Detect Tactile
`
`Convert to Contact
`Data
`
`304
`Receive Contact
`Data Indicating
`Movement
`
`310
`Remain in Current
`Input Mode/Sub(cid:173)
`Mode
`
`308
`~--~~~switch Input Mode/
`Sub-mode
`
`314
`Initiate Mapped
`Function/Auxiliary
`Function
`
`Fig. 3
`
`Petitioner Samsung Ex-1005, 0004
`
`

`

`Patent Application Publication Nov. 19, 2009 Sheet 4 of 4
`
`US 2009/0284478 Al
`
`400
`Initiate Function
`Exceeding
`Application's Capacity
`
`No
`
`408
`Initiate/Provide
`Function
`
`Yes
`
`404
`Respond with
`Indication
`
`406
`Initiate/Partially
`Provide Function
`and/or Initiate
`Feedback
`Function
`
`Fig. 4
`
`Petitioner Samsung Ex-1005, 0005
`
`

`

`US 2009/0284478 AI
`
`Nov. 19, 2009
`
`1
`
`MULTI-CONTACT AND SINGLE-CONTACT
`INPUT
`
`BACKGROUND
`
`[0001] People interact with computing systems through
`input devices, such as keyboards, mice, touch pads, and the
`like. These input devices are important because if users can(cid:173)
`not easily or robustly interact with a computing system
`because of its input device, users may reject the computing
`system. For example, if a cellular phone has a clunky, irritat(cid:173)
`ing number pad, the cellular phone may fail in the market.
`Similarly, if a laptop computer has a touch pad that does not
`understand enough functions or requires awkward gestures,
`the laptop may also be rejected in the market.
`[0002] More and more, computing systems are sold with
`touch pad or touch screen input devices. These touch devices
`accept user input based on physical contact with one or more
`detectors in the touch device. Current touch devices, however,
`are not well suited to many computing tasks and applications
`because they often cannot differentiate between enough dif(cid:173)
`ferent types of physical contacts or require users to perform
`awkward gestures.
`
`SUMMARY
`
`[0003] This document describes tools capable of initiating
`a function based on one or more tactile contacts received
`through a contact detection device, such as a touch pad. In
`some embodiments, the tools identify tactile contacts in
`accordance with the tool's input mode. The tools may use the
`input mode to determine what gestures may be identified for
`the tactile contacts. In some embodiments, these tools switch
`input modes based on a number or characteristic of tactile
`contacts electronically represented in contact data. By so
`doing, the tools may more accurately determine appropriate
`gestures or provide a broader range of functions based on
`tactile contacts received through a contact detection device.
`[0004] This Summary is provided to introduce a selection
`of concepts in a simplified form that are further described
`below in the Detailed Description. This Summary is not
`intended to identifY key or essential features of the claimed
`subject matter, nor is it intended to be used as an aid in
`determining the scope of the claimed subject matter. The term
`"tools," for instance, may refer to system( s ), method( s ), com(cid:173)
`puter-readable instructions (e.g., one or more computer-read(cid:173)
`able media having executable instructions), components,
`and/or technique(s) as permitted by the context above and
`throughout this document.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0005] The detailed description is described with reference
`to the accompanying figures. In the figures, the left-most
`digit(s) of a reference number identifies the figure in which
`the reference number first appears. The use of similar refer(cid:173)
`ence numbers in different instances in the description and the
`figures may indicate similar or identical items.
`[0006] FIG. 1 is an illustration of an example environment
`having a computer system and contact detection device.
`[0007] FIG. 2 is a flow diagram depicting a procedure in an
`example implementation by which the tools may act to switch
`input modes based on a state change in tactile contacts.
`[0008] FIG. 3 is a flow diagram depicting a procedure in an
`example implementation by which the tools may act to ini-
`
`tiate a function in accordance with the tools' sub-mode based
`on movement of a contact input.
`[0009] FIG. 4 is a flow diagram depicting a procedure in an
`example implementation by which the tools may act to ini(cid:173)
`tiate a feedback function.
`
`DETAILED DESCRIPTION
`
`[0010] Overview
`[0011] More and more, computing systems are sold with
`contact input devices, such as a touch pad or a touch screen.
`These devices accept user input based on physical contact,
`such as tactile contact for one or more stylus or finger con(cid:173)
`tacts, with one or more contact detectors included in the touch
`pad. Current touch pads, however, are not well suited to many
`computing tasks and applications because they often cannot
`differentiate between enough different types of physical con(cid:173)
`tacts or require users to perform awkward gestures.
`[0012] This document describes an identifier module
`included with a contact detection device to identify or recog(cid:173)
`nize an electronic version of one or more tactile contacts
`represented in contact data obtained from contact detectors in
`the contact detection device. One or more contact state
`machines and a monitoring state machine are included with
`the identifier module to switch the identifier module's input
`mode, which controls which gestures that the identifier mod(cid:173)
`ule can identifY. The contact state machines and/or monitor(cid:173)
`ing state machine may receive and watch the contact data for
`a change in a number of tactile contacts and characteristics of
`the tactile contacts represented in the contact data. In
`response to a change represented in contact data, each contact
`state machine may determine to change state. The monitoring
`state machine monitors the state of the contact state machine
`to determine when the contact state machine changes state.
`The monitoring state machine changes the identifier module's
`input mode in response to the contact state machine changing
`state.
`[0013]
`In at least this way, the monitoring state machine
`determines what gestures the identifier module may identify.
`If a person contacts the contact detection device with two
`fingertips, the identifier module may identify which gesture is
`appropriate or intended by a user that made the tactile con(cid:173)
`tacts to the contact detection device based on the input mode.
`Thus, when identifying gestures, the identifier module may
`analyze individual tactile contacts based on the identifier
`module's input mode or sub-mode. By treating individual
`tactile contacts differently based on the input mode or sub(cid:173)
`mode, the identifier module can distinguish combinations of
`tactile contacts. This feature permits the identifier module to
`identify gestures from multiple tactile contacts without inter(cid:173)
`fering with the identifier module's ability to identifY gestures
`from a single tactile contact.
`[0014] An environment in which the tools may enable these
`and other actions is set forth below in a section entitled
`"Example Operating Environment." This is followed by
`another section describing "Example Techniques." This over(cid:173)
`view, including these section titles and snnnnaries, is pro(cid:173)
`vided for the reader's convenience and is not intended to limit
`the scope of the claims or the entitled sections.
`[0015] Example Operating Environment
`[0016] FIG. 1 references a computing system 100 with a
`multi-input system 102 including an identifier module 104
`that identifies gestures input by a user and detected by one or
`more contact detectors 106 (shown integrated with a display
`107) included in a contact detection device 108. Upon iden-
`
`Petitioner Samsung Ex-1005, 0006
`
`

`

`US 2009/0284478 AI
`
`Nov. 19, 2009
`
`2
`
`tifYing the gestures, the identifier module 104 initiates an
`application 110 to provide the function (e.g., zooming) that is
`mapped to the gestures. Functions include inputting data,
`manipulating data, changing a display (e.g., pan, zoom, and
`rotate), providing audio, and the like.
`[0017] Various systems and devices may benefit from the
`multi-input system 102, such as media players, remote con(cid:173)
`trols, smart phones, personal digital assistants, personal audio
`devices, global positioning systems, Internet appliances,
`wireless connectivity devices, vehicle control systems,
`vehicle entertainment systems, tablet computers, laptop com(cid:173)
`puters, standalone input and/or output devices, and the like.
`Note that the multi-input system 102 may be separate from or
`integral with the contact detection device 108 and that a
`display and the contact detection device 108 may be separate
`or combined. Note also that the multi-input system 102 com(cid:173)
`prises or has access to computer-readable media on which
`various applications, software, or other executable instruc(cid:173)
`tions may be stored.
`[0018]
`In some embodiments, the multi-input system 102 is
`operating system (OS) specific. When the multi-input system
`is OS specific, the multi-input system 102 provides functions
`that are specific to the OS and various applications (e.g., the
`application 110) configured for use with the OS. In other
`embodiments, the multi-input system 102 is configured for a
`specific application. The OS or a module within the OS may
`act as an intermediary between the multi-input system 102
`and the application 110.
`In the example environment of FIG. 1, the multi(cid:173)
`[0019]
`input system 102 is included in the contact detection device
`108. As illustrated, the contact detectors 106 are included in
`the contact detection device 108 and are integrated with the
`display 107 (e.g., a liquid crystal display screen). The indi(cid:173)
`vidual contact detectors may be configured to detect multiple
`physical, tactile contacts, such as a first tactile contact 112 and
`a second tactile contact 114. Multiple individual contact
`detectors may identifY a tactile contact (e.g., a first contact
`detector detects a first tactile contact while a second contact
`detector detects a second tactile contact). The contact detec(cid:173)
`tors 106 may be aligned with the pixels in a column/row
`configuration or otherwise.
`[0020] The contact detectors 106 may be configured to
`detect an x-y position, i.e., a two-dimensional position, of the
`tactile contact. The contact detectors may also detect, for
`example, duration of contact (whether static or moving), con(cid:173)
`tact pressure, contact height, contact width, bounding box for
`multiple contacts, rate of positional change, angular orienta(cid:173)
`tion, contact vectors, movement of the contact, and other
`information set forth herein.
`[0021]
`In some embodiments, an input controller 116 is
`included in the multi-input system 102 to convert the contact
`detector output (e.g., the electrical signals from the contact
`detectors) into contact data. For instance, the input controller
`116 includes appropriate hardware/software for converting
`the contact detector output into contact data that is usable by
`the multi-input system 102. In other embodiments, the input
`controller 116 can be included in the multi-input system 102,
`contained in a separate module, or performed by a general
`purpose processor loaded with firmware or software for con(cid:173)
`verting contact detector output into contact data.
`[0022] The identifier module 104 may heuristically iden(cid:173)
`tifY or recognize gestures from the contact data, such as for
`text recognition. Thus, if a user previously arched his/her
`lines, the identifier module 104 heuristically interprets the
`
`contact data when identifYing gestures to identifY the straight
`line. If the gestures are mapped to a function, the identifier
`module 104 initiates the mapped function upon identifying
`the gestures.
`[0023] For example, the identifier module 104 may com(cid:173)
`bine contact data that indicates physical contact with contact
`detectors included in the contact detection device at x-y posi(cid:173)
`tions to identify a straight line. If a straight line is mapped to
`a function, the identifier module 104 initiates the function. In
`response, the application 110 provides the initiated function.
`[0024] The identifier module 104 may also identifY ges(cid:173)
`tures from contact data within a pre-defined range rather than
`heuristically identifying the gestures. As a result, the identi(cid:173)
`fier module 104 identifies gestures that are within tolerance
`but does not use heuristic techniques. The identifier module's
`range or tolerance can be selected to avoid or minimize misi(cid:173)
`dentification.
`[0025] The identifier module 104 may also or instead use a
`library 118 storing a lookup table to identify the gestures from
`the contact data. For example, the identifier module 104 may
`identify the gestures by comparing contact data with sample
`contact data or parameters included in the lookup table to
`initiate the mapped function.
`[0026] Exemplary physical gestures and mapped functions
`include, but are not limited to:
`
`TABLE 1
`
`Exemplary Gestures/Mapped Function
`
`Tactile Contacts - Contact Data Represents
`
`Gesture
`
`Mapped
`Fnnction
`
`Zoom Out
`
`Zoom Out
`
`Zoom In
`
`Zoom In
`
`Pan
`
`Pinch
`
`Modified
`Pinch
`
`Spread
`
`Modified
`Spread
`
`First and second tactile contacts that both
`move and converge along a common axis
`First tactile contact stationary and second
`tactile contact moves toward first tactile
`contact
`First and second tactile contacts that both
`move and diverge along a common axis
`First tactile contact stationary and second
`tactile contact moves away from first tactile
`contact
`Double
`Both first and second tactile contacts move
`perpendicularly to an axis extending through Slide
`the initial contact points of the first and
`second tactile contacts
`Two momentary and stationary tactile
`contacts
`First tactile contact detected and
`sequentially a second tactile contact is
`detected, neither tactile contact is moving
`Two tactile contacts dwell and are
`positioned with respect to a map
`
`Two-Finger Double Click
`tap
`Sequential
`Tap
`
`Right Click
`
`Two tactile contacts are side-by-side, both
`move diagonally
`
`Two-Finger Route Find
`Press-and-
`(map
`Hold
`directions)
`Flip 3D-
`Diagonal
`view re-
`Double
`Slide
`arrangement
`Two tactile contacts rotating around a center Two-Finger Rotate View
`point
`Rotate
`Four-Finger Launch
`Four momentary and stationary tactile
`Tap
`Application
`contacts
`
`[0027] The multi-input system 102 switches or controls the
`identifier module's input mode based on the number of tactile
`contacts represented in the contact data and/ or other informa(cid:173)
`tion, such as characteristics of the tactile contacts. By switch(cid:173)
`ing identifier module input modes, the multi-input system
`102 determines what gestures can be identified and thus what
`functions can be initiated. Additionally, by switching input
`modes, the identifier module may initiate a large number of
`
`Petitioner Samsung Ex-1005, 0007
`
`

`

`US 2009/0284478 AI
`
`Nov. 19, 2009
`
`3
`
`functions in comparison to the number of tactile contacts
`associated with the functions, misidentification can be
`avoided, and basic tactile contacts can be reused.
`[0028] For example, when the identifier module 104 is in
`single-input mode, the identifier module 104 is prohibited
`from identifYing more than one tactile contact. In this manner,
`inadvertent physical contact with the contact detectors 106
`does not initiate a function.
`[0029]
`In some cases, such as when multiple tactile con(cid:173)
`tacts are represented in the contact data, the identifier mod(cid:173)
`ule's input mode is based on the number of tactile contacts
`present in the contact data. Thus, the identifier module iden(cid:173)
`tifies three tactile contacts when the identifier module's input
`mode is set to identifY three tactile contacts.
`[0030] One or more contact state machines 120 and a moni(cid:173)
`taring state machine 122 may be included in the multi-input
`system 102 to switch or determine the identifier module's
`input mode. The contact state machines 120 (e.g., multiple
`instances of the contact state machine, one for each tactile
`contact) may watch the input controller 116 for contact data
`that indicates a change in the number of tactile contacts (e.g.,
`the addition of a tactile contact or removal of a tactile contact)
`represented in the contact data. Each contact state machine
`120 may change state in response to its tactile contact chang(cid:173)
`ing state (as represented in the contact data).
`[0031]
`In some embodiments, each tactile contact has its
`own instance of a contact state machine. Thus, a first finger
`may have a first contact state machine and a second finger a
`second contact state machine. In these cases, the monitoring
`statement machine 122 monitors the state of the contact state
`machines 120 to determine when each contact state machine
`120 changes state. Each of the contact state machines 120
`may change state when the particular tactile contact changes
`state.
`[0032] Thus, the monitoring state machine 122 monitors
`the change in the number of tactile contacts by monitoring the
`state of the contact state machines 120. Upon determining
`that the contact state machines 120 has changed state and the
`change in the number of tactile contacts, the monitoring state
`machine 122 switches the identifier module's input mode
`from a previous input mode to a current input mode.
`[0033] For example, when a user makes a pinching gesture,
`a user may contact the contact detection device 108 with
`his/her thumb before contacting the contact detection device
`108 with his/her forefinger. In this scenario, the contact state
`machine 120 for the thumb changes state when the user origi(cid:173)
`nally contacts the contact detection device 108 with his/her
`thumb. The contact state machine 120 for the forefinger may
`change state when the user presses his/her forefinger against
`the contact detection device 108. In response to these state
`changes and the number of contacts change, the monitoring
`state machine 122 changes the identifier module's input
`mode.
`[0034] Note also that the contact state machines 120 may
`differ, in some embodiments. For example, a first contact state
`machine for a first or primary tactile contact (e.g., a forefin(cid:173)
`ger) may be backward compatible with single-finger input
`modes and scenarios, such as touch widget, flicks, and
`double-tap support. Other state machines may also have this
`compatibility or they may not. Further, contact state machines
`for non-first or non-primary tactile contacts may have addi(cid:173)
`tional or different logic, such as logic that relates to a second
`contact but that would not pertain to a first or primary contact
`(e.g., for gestures where a second finger's actions are deter-
`
`minative for a gesture but do not pertain to a first finger's
`actions). This logic may also be included in a contact state
`machine for a first or primary tactile contact, though such
`logic may not be used in many situations.
`[0035] The monitoring state machine 122 may also switch
`the identifier module's input mode at a discrete time or on the
`occurrence of an additional event, such as when the contact
`detection device 108 detects a static tactile contact.
`[0036]
`In another example, the identifier module's input
`mode is set at a previous point-in-time or upon the occurrence
`of another event (e. g., one finger is stationary). In this way, the
`identifier module 104 may remain in single tactile contact
`mode because the input mode was set at a previous point-in(cid:173)
`time even though a user accidently contacts the contact detec(cid:173)
`tion device 108 with another finger. The identifier module 104
`may also identify two tactile contacts even though the user is
`currently touching the contact detection device 108 with three
`fingers because the identifier module's input mode was set to
`identify two tactile contacts at a previous point-in-time.
`[0037] The identifier module may also receive a user's
`selection (e.g., a mouse click) and, responsive to receiving the
`selection, refrain from entering another input mode.
`[0038] Turning again to the multi-input system 102, the
`system may include additional contact and monitoring state
`machines. For example, additional combinations of contact
`and monitoring state machines may be included for watching
`additional tactile contacts represented in the contact data. In
`these embodiments, the number of contact state machines and
`monitoring state machines in the multi-input system 102 cor(cid:173)
`responds to the number of tactile contacts that the contact
`detection device 108 can detect.
`[0039] The contact and monitoring state machines may be
`configured to switch or determine a sub-mode for the identi(cid:173)
`fier module 104. For example, when the identifier module 104
`is in multi-input mode, the monitoring state machine 122 may
`switch the identifier module 104 between sub-modes depend(cid:173)
`ing on a characteristic of the tactile contact (e.g., movement)
`as represented in the contact data.
`[0040] The contact state machine 120 (or instances of it)
`may change its state when one or more of the tactile contacts
`start moving. The monitoring state machine 122 switches the
`sub-mode of the identifier module 104 in response to the
`contact state machine 120 changing state. For instance, the
`monitoring state machine 122 switches the identifier module
`104 from a multi-input static sub-mode to a multi-input
`hybrid sub-mode when one of the tactile contacts moves
`while the other tactile contact remains fixed. In this case, the
`contact state machine 120 for the second tactile contact
`changes state in response to the second tactile contact begin(cid:173)
`ning to move. The monitoring state machine 122, monitoring
`the state of the contact state machine 120, switches the iden(cid:173)
`tifier module 104 to the hybrid sub-mode.
`[0041] For reference, Table 2 below lists sample input
`modes and sub-modes with corresponding tactile contacts.
`Additional input modes may be included based on the capa(cid:173)
`bilities of the contact detectors 106.
`
`TABLE2
`
`Example Tactile Contacts and Input Modes and Sub-Modes
`
`Input Modes/Sub-Modes
`
`Corresponding Tactile contact
`
`Zero Mode
`Single-Input Mode
`
`No Tactile Contact Detected
`Single Tactile Contact Detected
`
`Petitioner Samsung Ex-1005, 0008
`
`

`

`US 2009/0284478 AI
`
`Nov. 19, 2009
`
`4
`
`TABLE 2-continued
`
`Example Tactile Contacts and Input Modes and Sub-Modes
`
`Input Modes/Sub-Modes
`
`Corresponding Tactile contact
`
`Press and Hold Sub-Mode
`Moving Sub-Mode
`Multi-Input Mode
`Moving Sub-Mode
`Static Sub-Mode
`Hybrid Sub-Mode
`
`Current Tactile Contact Stationary
`Current Tactile Contact Moving
`Multiple Tactile Contacts Detected
`Current Tactile Contacts-Moving
`Current Inputs Stationary
`At Least One Input is Moving and at
`Least One Input is Stationary
`
`[0042] By changing input modes and sub-modes, the iden(cid:173)
`tifier module 104 can treat an individual tactile contact as a
`subset of the group when identifYing tactile contacts. In addi(cid:173)
`tion, by configuring the identifier module in this manner, the
`multi-input system 102 can identifY multiple tactile contacts
`represented in the contact data without impacting single tac(cid:173)
`tile contact identification. In other words, by configuring the
`identifier module 104 to identify tactile contacts with respect
`to a group (based on the identifier module's input mode),
`misidentification may be minimized or avoided and the multi(cid:173)
`input system may be backward compatible with applications
`that are not multi-input enabled. In this way, the identifier
`module's input mode determines what number of tactile con(cid:173)
`tacts can be identified within the group. Further, by configur(cid:173)
`ing the identifier module in this manner, basic tactile contacts,
`such a tap or a straight line, may be reused between input
`modes.
`[0043] These are not exhaustive. By way of example, the
`identifier module may initiate an initial function and continue
`that initial or subsequent function until interrupted by another
`function that stops the initial function. For example, the appli(cid:173)
`cation 110 may continue to pan with inertia after a pan gesture
`until a user triggers a stop function. In another example, the
`identifier module 104 causes the rate of the function to
`increase the longer the function is active (e.g., without being
`stopped). A user may stop the initial function by triggering a
`stop function. In another example, the multi -input system 102
`determines the extent of the initiated function based on a
`characteristic of the tactile contact-when the contact data
`indicates that the tactile contact was quick, based on a pre(cid:173)
`defined standard, the mapped function is performed in a rapid
`manner, also based on a predefined standard. Further still, the
`identifier module 104 may initiate an ancillary function in
`addition to a primary function. For example, while the iden(cid:173)
`tifier module 104 initiates a zoom function 124, the identifier
`module may additionally initiate a tool bar, an icon, or some
`other interactive graphical object that is associated with the
`primary function.
`[0044] The tools may perform other functions and actions
`as well. For example, a user may inadvertently provide or
`attempt to provide a tactile contact that exceeds the capacity
`of the application 110. In response, the identifier module 104
`may initiate a feedback function to alert a user to a condition
`or situation. If, for example, a user attempts to pan beyond the
`end of a web page, the identifier module 104 initiates a feed(cid:173)
`back function that alerts the user to the condition. In this
`instance, the application 110 signals the multi-input system
`102 that the initiated function exceeds the application's
`capacity. In response, the identifier module 104 initiates a
`feedback function so that the user is alerted to the situation.
`Exemplary feedback functions include, but are not limited to,
`
`jittering and distorting a display (e.g., appearing to stretch a
`document's text), a shaking zoom (zooming in and out rapidly
`to show that the limit of the zoom is reached), a shaking pan
`(panning in opposite directions rapidly to show that the limit
`of the pan is reached), and a window or frame alteration (e.g.,
`a window around a zoomed or panned display shaking, mov(cid:173)
`ing, or stretching when the limit of the zoom or pan is
`reached). By way of example, consider a feedback function
`where the window or frame aronnd a displayed map is panned
`beyond the limit of the application. In this case, when a user
`pans too far (either continuously or with inertia), the applica(cid:173)
`tion shows the farthest reachable edge of the map and then,
`with the feedback function, moves the frame or window on
`the computer screen in the direction of the pan. The moved
`frame or window may stay moved or snap back to its prior
`position, as if the frame or window was attached to its prior
`position on the screen with rubber bands or springs.
`[0045] Generally, any of the functions described herein can
`be implemented using software, firmware, hardware (e.g.,
`fixed-logic circuitry), manual processing, or a combination of
`these implementations. The terms "tool" or "tools" and
`"module" or "modules" as used herein generally represent
`software, firmware, hardware, whole devices or networks, or
`a combination thereof. In the case of a software implementa(cid:173)
`tion, for instance, these may represent program code that
`performs specified tasks when executed on a processor (e.g.,
`CPU or CPUs). The program code can be stored in one or
`more computer-readable memory devices, such as computer(cid:173)
`readable storage media. The features and techniques of the
`tools and modules are platform-independent, meaning that
`they may be implemented on a variety of commercial com(cid:173)
`puting platforms having a variety of processors.
`[0046] Example Techniques
`[0047] The following discussion describes various tech(cid:173)
`niques and procedures, which may be implemented in hard(cid:173)
`ware, firmware, software, or a combination thereof. The pro(cid:173)
`cedures are shown as a set of blocks that specifY operations
`performed by one or more entities, devices, modules, and/or
`the tools (e.g., identifier module 104 of FIG. 1) and are not
`necessarily limited to the orders shown for performing the
`operations by the respective blocks. A variety of other
`examples and sub-techniques are also contemplated.
`[0048] FIG. 2 depicts a procedure in an example implemen(cid:173)
`tation in which the tools switch between input modes based
`on contact data.
`[0049] Block 200 detects tactile contacts from an object
`(e.g., a user's finger or stylus) contacting a contact detection
`device and generates output that represents the detected tac(cid:173)
`tile contact(s). Thus, the tools generate an output that repre(cid:173)
`sents the user's physical interaction (e.g., tactile contact) with
`a tactile contact device (e.g., a touch pad). In one embodi(cid:173)
`ment, the tools detect input from a user touching his/her finger
`to one or more contact detectors included in the contact detec(cid:173)
`tion device. In some embodiments, the tools detect concurrent
`tactile contacts.
`[0050] Block 202 converts the tactile contacts to contact
`data based on the output from block 200. Contact data com(cid:173)
`prises

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket