US10209808B1 - Pressure-based interface system, method, and computer program product with virtual display layers - Google Patents

Pressure-based interface system, method, and computer program product with virtual display layers Download PDF

Info

Publication number
US10209808B1
US10209808B1 US15/957,190 US201815957190A US10209808B1 US 10209808 B1 US10209808 B1 US 10209808B1 US 201815957190 A US201815957190 A US 201815957190A US 10209808 B1 US10209808 B1 US 10209808B1
Authority
US
United States
Prior art keywords
pressure
gesture
user
object
apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US15/957,190
Inventor
Michael S Smith
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
P4tents1 LLC
Original Assignee
P4tents1 LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US201161515835P priority Critical
Priority to US201161566577P priority
Priority to US201161569213P priority
Priority to US201161581918P priority
Priority to US13/567,004 priority patent/US9417754B2/en
Priority to US15/072,351 priority patent/US10013094B1/en
Application filed by P4tents1 LLC filed Critical P4tents1 LLC
Priority to US15/957,190 priority patent/US10209808B1/en
Application granted granted Critical
Publication of US10209808B1 publication Critical patent/US10209808B1/en
Application status is Active legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0414Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using force sensing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 – G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1637Details related to the display arrangement, including those related to the mounting of the display in the housing
    • G06F1/1643Details related to the display arrangement, including those related to the mounting of the display in the housing the display being associated to a digitizer, e.g. laptops that can be used as penpads
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 – G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1637Details related to the display arrangement, including those related to the mounting of the display in the housing
    • G06F1/1647Details related to the display arrangement, including those related to the mounting of the display in the housing including at least an additional display
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Integrated displays and digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control and interface arrangements for touch screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/045Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using resistive elements, e.g. single continuous surface or two parallel surfaces put in contact
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with three-dimensional environments, e.g. control of viewpoint to navigate in the environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for entering handwritten data, e.g. gestures, text
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the screen or tablet into independently controllable areas, e.g. virtual keyboards, menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 -G06F3/045
    • G06F2203/04104Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 -G06F3/045
    • G06F2203/04105Separate pressure detection, i.e. detection of pressure applied on the touch surface using additional pressure sensors or switches not interfering with the position sensing process and generally disposed outside of the active touch sensing part
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance interaction with lists of selectable items, e.g. menus

Abstract

Apparatuses and a computer-readable media are provided to: display an object and at least a portion of an interface in a same virtual display layer; detect a single static gesture being applied to the touch screen on the object, the single static gesture varying in pressure between a plurality of discrete touch states; perform a first pressure-dependent step-wise function in response to a first change in the discrete touch states; perform a second pressure-dependent step-wise function in response to a second change in the discrete touch states; and during at least a portion of the gesture and as a function of an increase in a magnitude of the pressure of the gesture being applied to the touch screen on the object, continuously blur the at least portion of the interface such that the at least portion of the interface and the object are displayed in different virtual display layers.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of and claims priority to U.S. patent application Ser. No. 15/072,351, filed Mar. 16, 2016, now U.S. Pat. No. 10,013,094, which, in turn, is a continuation of and claims priority to U.S. patent application Ser. No. 13/567,004, filed Aug. 3, 2012, now U.S. Pat. No. 9,417,754; which, in turn, claims priority to U.S. Provisional Application No. 61/515,835, filed Aug. 5, 2011, U.S. Provisional Application No. 61/566,577, filed Dec. 2, 2011, U.S. Provisional Application No. 61/569,213, filed Dec. 9, 2011, and U.S. Provisional Application No. 61/581,918, filed Dec. 30, 2011, the entire contents of all of which are incorporated herein by reference.

If any definitions (e.g., figure reference signs, specialized terms, examples, data, information, etc.) from any related material (e.g., parent application, other related application, material incorporated by reference, material cited, extrinsic reference, etc.) conflict with this application (e.g., abstract, description, summary, claims, etc.) for any purpose (e.g., prosecution, claim support, claim interpretation, claim construction, etc.), then the definitions in this application shall apply.

BACKGROUND AND FIELD OF INVENTION

Embodiments of the present invention generally relate to consumer electronic devices, particularly cell phones, tablets, and other mobile devices.

BRIEF SUMMARY

A system, method, and computer program product are provided for operating a mobile device including a touch screen, a memory, and a vibratory feedback mechanism coupled to at least one processor. A plurality of applications including an application is stored, utilizing the memory. A first pressure signal indicative of a first magnitude of pressure being applied to the touch screen is identified. In response to the first pressure signal indicative of the first magnitude of pressure being applied to the touch screen, a first state is identified, utilizing the at least one processor. In response to the identification of the first state, an operation is performed, utilizing the at least one processor. A second pressure signal is identified indicative of a second magnitude of pressure being applied to the touch screen that is greater than the first magnitude, in connection with the indicia. In response to the second pressure signal indicative of the second magnitude of pressure being applied to the touch screen, a second state is identified, utilizing the at least one processor. In response to the identification of the second state, the mobile device is vibrated, utilizing the vibratory feedback mechanism. Also in response to the identification of the second state, another operation is performed.

In one embodiment, an apparatus is provided, comprising: at least one non-transitory memory storing instructions and a plurality of applications; a touch screen; and one or more processors in communication with the at least one non-transitory memory, the touch screen, and the vibrator, wherein the one or more processors execute the instructions to cause the apparatus to: display an object and at least a portion of an interface in a same virtual display layer; detect a single static gesture being applied to the touch screen on the object, the single static gesture varying in pressure between a plurality of discrete touch states; perform a first pressure-dependent step-wise function in response to a first change in the discrete touch states; perform a second pressure-dependent step-wise function in response to a second change in the discrete touch states; and during at least a portion of the gesture and as a function of an increase in a magnitude of the pressure of the gesture being applied to the touch screen on the object, continuously blur the at least portion of the interface such that the at least portion of the interface and the object are displayed in different virtual display layers.

In another embodiment, an apparatus is provided, comprising: at least one non-transitory memory storing instructions and a plurality of applications; a touch screen; a vibrator; and one or more processors in communication with the at least one non-transitory memory, the touch screen, and the vibrator, wherein the one or more processors execute the instructions to cause the apparatus to: display a first object and at least one other object in a same virtual display layer; detect a single static gesture being applied to the touch screen on the first object, the single static gesture varying in pressure between a plurality of touch states; perform a first pressure-dependent step-wise action in response to a first change in the touch states; perform a second pressure-dependent step-wise action in response to a second change in the touch states; and during at least a portion of the single static gesture between the first and second changes in the touch states and before a cessation of the single static gesture, display the first object in a first virtual display layer and the at least one other object in a second virtual display layer, and blur, as a continuous function of an increase in a magnitude of the pressure of the single static gesture being applied to the touch screen on the first object, at least a portion of the second virtual display layer.

In yet another embodiment, a non-transitory computer-readable media is provided for storing computer instructions, that when executed by one or more processors of a mobile device, cause the mobile device to: display an object and at least one other object in a same virtual display layer; detect a gesture being applied to a touch screen on the object, the gesture including a continuous static gesture that varies in pressure; and during at least a portion of the gesture before a cessation thereof, increase, as a function of an increase in a magnitude of the pressure of the gesture being applied to the touch screen on the object, a blurring of the at least one other object, such that the at least one other object appears to be increasing in depth as compared to the object, and the object and the at least one other object appear to be in different virtual display layers.

In still yet another embodiment, an apparatus is provided, comprising: at least one non-transitory memory storing instructions and a plurality of applications; a touch screen; a vibrator; and one or more processors in communication with the at least one non-transitory memory, the touch screen, and the vibrator, wherein the one or more processors execute the instructions to cause the apparatus to: display a first object and at least one other object in a same virtual display layer; detect a gesture being applied to the touch screen on the first object, the gesture including a continuous static gesture that varies in pressure; during at least a portion of the gesture before a completion thereof, display the first object in a first virtual display layer and the at least one other object in a second virtual display layer and increase, as a function of an increase in a magnitude of the pressure of the gesture being applied to the touch screen on the first object, a blurring of at least a portion of the second virtual display layer such that the at least portion of the second virtual display layer appears to be increasing in depth as compared to the first virtual layer; and in response to a completion of the gesture, vibrate the apparatus and perform an action.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

So that the features of various embodiments of the present invention can be understood, a more detailed description, briefly summarized above, may be had by reference to various embodiments, some of which are illustrated in the accompanying drawings. It is to be noted, however, that the accompanying drawings illustrate only embodiments and are therefore not to be considered limiting of the scope of various embodiments of the invention, for the invention may admit to other effective embodiments. The following detailed description makes reference to the accompanying drawings that are now briefly described.

So that the features of various embodiments of the present invention can be understood, a more detailed description, briefly summarized above, may be had by reference to various embodiments, some of which are illustrated in the accompanying drawings. It is to be noted, however, that the accompanying drawings illustrate only embodiments and are therefore not to be considered limiting of the scope of the invention, for the invention may admit to other effective embodiments. The following detailed description makes reference to the accompanying drawings that are now briefly described.

FIG. 1 illustrates a network architecture, in accordance with one embodiment.

FIG. 2 shows a representative hardware environment that may be associated with the servers and/or clients of FIG. 1, in accordance with one embodiment.

FIG. 3 shows a method for altering a user experience based on a received signal, in accordance with one embodiment.

FIG. 4 shows a method for defining a selection made within a user interface based in part on contact pressure, in accordance with one embodiment.

FIG. 5 shows a pressure-sensitive user interface for making a selection, in accordance with one embodiment.

FIG. 6 shows a method for determining the context of a contact pressure-based selection and choosing an appropriate selection function, in accordance with one embodiment.

FIG. 7 shows a device having a backtouch interface, in accordance with one embodiment.

FIG. 8 shows a method for providing feedback to the user of a backtouch interface, in accordance with one embodiment.

FIG. 9 shows a pressure-sensitive user interface for making a selection using a backtouch interface, in accordance with one embodiment.

FIG. 10 shows a user interface for defining settings associated with a backtouch interface, in accordance with one embodiment.

FIG. 11 shows a user interface for defining settings associated with a pressure-sensitive interface, in accordance with one embodiment.

FIG. 12 shows a method for assisting a user in defining touch states, in accordance with one embodiment.

FIG. 13 shows a user interface for assisting a user in defining touch states, in accordance with one embodiment.

FIG. 14 shows a user interface for indicating that a backtouch or pressure-sensitive interface is activated, in accordance with one embodiment.

FIG. 15 shows a user interface for defining a backtouch feedback style, in accordance with one embodiment.

FIG. 16 shows an alternative method for defining a selection made within a user interface based in part on contact pressure, in accordance with one embodiment.

FIG. 17 shows a user interface for performing operations on a selection, in accordance with one embodiment.

FIG. 18 shows a method for utilizing contact pressure-based gestures, in accordance with one embodiment.

FIG. 19 shows an example of a contact pressure-based gesture for scrolling a text field, in accordance with one embodiment.

FIG. 20 shows an example of a multitouch pressure gesture for indicating a direction, in accordance with one embodiment.

FIG. 21 shows an example of a multitouch pressure gesture for indicating a rotation, in accordance with one embodiment.

FIG. 22 shows a 3D layered user interface, in accordance with one embodiment.

While the invention is susceptible to various modifications, combinations, and alternative forms, various embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the accompanying drawings and detailed description are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, combinations, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the relevant claims.

DETAILED DESCRIPTION

Terms that are special to the field of the invention or specific to this description may, in some circumstances, be defined in this description. Further, the first use of such terms (which may include the definition of that term) may be highlighted in italics just for the convenience of the reader. Similarly, some terms may be capitalized, again just for the convenience of the reader. It should be noted that such use of italics and/or capitalization and/or other formatting, highlighting etc, by itself, should not be construed as somehow limiting such terms: beyond any given definition, and/or to any specific embodiments disclosed herein, etc.

In this description there may be multiple figures that depict similar structures with similar parts or components. Thus, as an example, to avoid confusion an Object in FIG. 1 may be labeled and/or referenced as “Object (1)” and a similar, but not identical, Object in FIG. 2 is labeled and/or referenced as “Object (2)”, etc. Again, it should be noted that use of such labeling and reference manner, by itself, should not be construed as somehow limiting such terms: beyond any given definition, and/or to any specific embodiments disclosed herein, etc.

In the following detailed description and in the accompanying drawings, specific terminology and images are used in order to provide a thorough understanding. In some instances, the terminology and images may imply specific details that are not required to practice all embodiments. Similarly, the embodiments described and illustrated are representative and should not be construed as precise representations, as there are prospective variations on what is disclosed that may be obvious to someone with skill in the art. Thus this disclosure is not limited to the specific embodiments described and shown but embraces all prospective variations that fall within its scope. For brevity, not all steps may be detailed, where such details will be known to someone with skill in the art having benefit of this disclosure.

In the following detailed description and in the accompanying drawings, some embodiments and their constituent parts may have been simplified for clarity of explanation. In some cases, a complex system may be broken down into its constituent parts and pieces and each part or piece explained separately. The explanations for each part or piece may possibly use a separate figure along with accompanying text to describe variations and alternative implementations. In some cases, complex elements have been simplified to more clearly define their function. In many cases, a system may be comprised of multiple complex elements with each element being a more complex version of a simple part or piece that has been explained separately. It is not possible to describe every possible combination of complex elements in all possible systems. Thus, the description herein is not limited to just the specific embodiments of parts or pieces described with each figure or in an accompanying explanation, or even those example systems described, but rather the possible combinations of complex elements based on the parts and pieces described.

DEFINITIONS

A computer system (e.g., a host system, host, computer, etc.) may include one or more storage systems (or storage subsystems, disk systems, disk subsystems, etc.) that may include storage arrays that include storage devices. A storage device may include a solid-state storage device, hard-disk drive (HD or HDD), or other device (e.g., tape, optical media, etc.).

A solid-state storage device may refer to a solid-state disk (SSD), but the solid-state storage device is not necessarily an SSD. A solid-state storage device may, for example, comprise memory devices such as flash memory devices (e.g., NAND, NOR, MLC, SLC, etc.), but may also comprise other forms of solid-state memory devices or memory components (e.g., SRAM, DRAM, MRAM, volatile memory, non-volatile memory, etc.), a combination of different types of solid-state components and/or other memory devices, or a combination of solid-state memory with other types of storage devices (e.g., hybrid disk, etc.). An SSD may be in a form-factor that is a drop-in replacement for a hard-disk (3.5″, 2.5″ form factors, etc.) or may be in any other form-factor or with any interface (e.g., Compact Flash CF, MultiMediaCard MMC, miniSD, Memory Stick, SmartMedia, TransFlash, Secure Digital SD, DIMM or other memory module form factor, PCI Express Card, mini PCI-E card, etc.). An SSD may use a standard storage interface (e.g., IDE, SAS, SATA, etc.) or an IO bus interface (e.g., PCI, PCI-E, USB, LightPeak, etc.), a networking interface (e.g., Ethernet, FCoE, Infiniband, etc.), a CPU bus interface (e.g., Intel QPI, HyperTransport, etc.), or other interface (e.g., PCI-E over Ethernet, etc.). An SSD in a storage array may have a capacity of more than 100 Gbytes and contain tens of NAND flash memory chips. A typical 1 Gbit NAND flash memory chip may contain 1024 flash blocks with each flash block containing 64 flash pages and each flash page containing 2 kbytes.

Storage arrays may also include a combination of SSD and HDD, or combinations of various storage devices (e.g., magnetic, optical, tape, solid-state, etc.).

A solid-state storage device may use a disk controller (e.g., storage controller, controller, ASIC, other chips component(s), etc.) to provide the computer system with a standard storage (e.g., disk, storage networking, etc.) interface (e.g., IDE, SATA, SAS, Fibre Channel (FC), etc.), a standard peripheral (e.g., IO bus, IO attach, etc.) interface (e.g., PCI-E, USB, PCI Express, PCI, etc.), other standard interface (e.g., Ethernet, wireless 802.11, etc.), a proprietary (e.g., non-standard, etc.) interface, a combination of these (e.g., PCI-E over Ethernet, FC over Ethernet (FCoE), etc.), or other storage, networking, interconnect interface(s) etc.

A storage array controller (often also called disk controller, host-bus adapter, etc.) may be logically located between the computer system and one or more SSDs or HDDs in a disk subsystem. In the context of the present description, the use of the term disk controller has been avoided as a term to describe a controller that controls one or more disks. The term storage array controller has been used herein for a controller that controls one or more disks. In some cases, each disk (HDD or SSD etc.) may have its own disk controller, thus causing potential confusion over terms. Alternative terms for storage array controller may include host-bus adapter, host adapter, host controller. However, the term host-bus adapter (often abbreviated HBA) and similar terms have been avoided herein to avoid confusion with HBA used here for host block address.

An SSD may include its own SSD controller, but, in some cases, a storage array controller may have more resources than an SSD controller. A storage array controller may use resources, such as memory, CPU, logic, non-volatile memory, etc., as well as unique information (e.g., because a storage array controller is higher than the SSD controller in the storage array hierarchy, i.e., further from the storage devices) in order to manage and control a storage array as well as provide information to an SSD controller.

A computer system typically contains one or more CPUs. A CPU may execute (e.g., run, etc.) an operating system (e.g., Microsoft Windows, Linux. MacOS, etc.). An operating system (OS) typically sees a storage array as a collection of disk sectors or just sectors (and sectors may also be called blocks). Disk sectors may be 512 bytes in length (and typically are in the 2011 timeframe). The sectors or blocks of a storage device are typically addressed as logical blocks using a logical block address (LBA).

To avoid confusion, the term host block address (HBA) is used herein for the LBA used to address a storage array controller. Unless explicitly stated otherwise, it is assumed that the host block size (HBS) is equal to the disk block size (DBS). The HBA may be a composite or union of a logical unit number (LUN) that identifies a logical portion of the storage array or disk or other device in the storage array; an LBA; the virtual machine (VM), if any; a UserID that identifies the user application; a VolumeID that identifies a logical target volume; and other data that may be used for logical access or management purposes. To simplify the description, clarify the figures, and in particular to make it clear that operations may be performed on different LUNs, the LUN may be shown separately from HBA in figures.

A disk number (D) may identify a disk or other storage device in the storage array. A disk logical block address (DBA) is the LBA that identifies the disk sector on the disk or other storage device. An array block address (ABA) is a composite or union of D and DBA, written <D, DBA>. The storage array may be a RAID array, JBOD, or any other particular type of storage array.

A disk controller for an HDD or SSD maintains the relationship between an ABA (or the DBA portion of the ABA) and the disk sectors that are physically part of a storage device (often called the physical disk sectors or physical sectors).

To summarize, with just a single disk, the host may provide an LBA directly to the disk; the disk controller may convert the LBA to the physical disk sector (e.g., for an HDD) or to the PBN (e.g., for an SSD). In the presence of a storage array controller the host may still provide an LBA, but now to the storage array controller (and thus the LBA may be referred to as an HBA to avoid confusion); the storage array controller may then map this HBA to an ABA and may provide the ABA (or possibly just the DBA portion of the ABA) to the disk; the disk (e.g., an HDD or SSD, etc.) may then convert this DBA or ABA (treating the DBA portion of the ABA as though it were just an LBA, which it is) to a physical disk address: either the physical disk sector (e.g., for an HDD) or PBN (e.g., for an SSD).

In various embodiments, structures and their functions, operations and algorithms (e.g., methods, functions, etc.) may be described in terms of software operations, code and pseudo-code. It should be noted that the algorithms may be performed in hardware; software; firmware; microcode; a combination of hardware, software, firmware or microcode; or in any other manner that performs the same function and/or has the same effect. In various embodiments, the data structures, or parts of the structures, may be stored in the storage array controller in SRAM, DRAM, embedded flash, or other memory. Additionally, the data structures, or parts of them, may be stored outside the storage array controller. For example, the data structures may be stored on any of the storage devices of a storage array (the local storage or remote storage, i.e., remote from the storage array connected to the storage array controller) or on a host system (the local host or a remote host, i.e., remote from the host connected to the storage array controller).

A storage command may be directed to a storage device and may specify one or more operations, such as read, write, etc. A storage command may be referred to as a disk command or just command. To help prevent such confusion, the term storage command may be used when referencing commands in general. The term disk command (or disk write, etc.) may be utilized for the command as it arrives at (or is received by) the disk (either SSD or HDD, usually via a standard interface or storage bus, such as SATA, etc.). The term host command (or host write, etc.) may be utilized for the command as it leaves (or is transmitted by) the OS. A disk command may be the same as a host command when there is a direct connection between the OS on a host system and a single disk.

A storage array controller may perform certain functions instead of (or in addition to) an OS running on a host system; and a storage array controller may also perform certain functions instead of (or in addition to) disk controller(s) in a storage array. A storage array controller may be logically located between a host system and storage array (or disk subsystem, storage subsystem, etc.). Each disk may contain its own disk controller, but a storage array controller may have more resources than a disk controller. The algorithms described here allow a storage array controller and attached storage accelerator units (SAUs) to use resources, such as memory, non-volatile memory, etc., as well as unique information (because a storage array controller is higher than a disk controller in a storage array hierarchy, i.e., further from the storage devices) in order to manage and control a storage array as well as provide information to disk controller(s). For example, a storage array controller may be aware of LUNs but a disk controller may not be aware of LUNs. This hierarchical management approach has advantages and potential uses that are explained throughout this description in the forms of various algorithms that may be employed by themselves or in combination.

A device driver is typically (though not necessarily) software that may be manufactured with and sold with a storage array controller. In various embodiments, the device driver may be implemented in software, hardware, firmware or a combination, and may be designed, manufactured and/or sold separately.

In one embodiment, a computer system may comprise multiple virtual machines (VMs), each VM including an operating system, and a hypervisor.

Each OS may include a file system and one or more storage drivers. The file system (sometimes considered part of an OS) may translate or convert from file-based access (i.e., in terms of directories, file names and offsets, etc.) to disk-based access (i.e., in terms of LBAs etc.). The storage driver (sometimes considered part of an OS) may be responsible for handling a disk or other storage device(s). The storage driver may be separate and distinct from the device driver. The storage driver may or may not be part of a storage stack, which is the software that controls access to a file system.

In the context of solid-state storage, typically flash memory, when a flash page (or some other portion) of a storage device is no longer required (i.e., it is obsolete, no longer valid, or is invalid, etc.) that flash page may be marked as dirty. When an entire flash block (e.g., typically between 16 to 256 flash pages) is dirty, the entire flash block may be erased and free space may be reclaimed. If free space on the device is low, a flash block may be chosen that has some dirty flash pages and some clean (i.e., pages that are not dirty, are good, or valid, etc.) flash pages. The clean flash pages may be transferred (i.e., written, moved or copied) to a new flash block. All the original clean flash pages may be marked as dirty and the old flash block may be erased. In the context of solid-state storage, this process of transferring flash pages to new flash blocks and erasing old flash blocks may be referred to as garbage collection

Example embodiments described in this disclosure include one or more computer systems with one or more central processor units (CPUs) and possibly one or more I/O systems coupled to one or more storage systems that contain one or more storage array controllers and one or more storage devices.

In one embodiment, the storage system may include one or more bus structures. Depending on the constraints (e.g., signaling methods used, the intended operating frequencies, space, power, cost, and other constraints, etc.) various alternate bus structures may be used. A point-to-point bus may provide the optimal performance in systems requiring high-speed interconnections, due to the reduced signal degradation compared to bus structures having branched signal lines, switch devices, or stubs. However, when used in systems requiring communication with multiple devices or subsystems, a point-to-point or other similar bus will often result in significant added cost (e.g., component cost, board area, increased system power, etc.) and may reduce the potential memory density due to the need for intermediate devices (e.g., buffers, re-drive circuits, etc.).

Functions and performance similar to that of a point-to-point bus can be obtained by using switch devices. Switch devices and other similar solutions offer advantages (e.g., increased memory packaging density, lower power, etc.) while retaining many of the characteristics of a point-to-point bus. Multi-drop bus solutions provide an alternate solution, and though often limited to a lower operating frequency can offer a cost/performance advantage for many applications. Optical bus solutions permit significantly increased frequency and bandwidth potential, either in point-to-point or multi-drop applications, but may incur cost and space impacts.

Although not necessarily shown in all the Figures, the storage systems may also include one or more separate control (e.g., command distribution, information retrieval, data gathering, reporting mechanism, signaling mechanism, register read/write, configuration, etc.) buses (e.g., a presence detect bus, an I2C bus, an SMBus, combinations of these and other buses or signals, etc.) that may be used for one or more purposes including the determination of the storage device and/or storage system attributes (generally after power-up), the reporting of fault or other status information to part(s) of the system, calibration, temperature monitoring, the configuration of storage device(s) and/or storage subsystem(s) after power-up or during normal operation or for other purposes. Depending on the control bus characteristics, the control bus(es) might also provide a means by which the valid completion of operations could be reported by storage device(s) to the storage controller(s), or the identification of failures occurring during the execution of storage controller requests, etc.

As used herein, the term bus refers to one of the sets of conductors (e.g., signals, wires, traces, and printed circuit board traces or connections in an integrated circuit) connecting two or more functional units in a computing system. The data bus, address bus and control signals may also be referred to together as constituting a single bus. A bus may include a plurality of signal lines (or signals), each signal line having two or more connection points that form a main transmission line that electrically connects two or more transceivers, transmitters and/or receivers.

As used herein, a signal (or line, signal line, etc.) refers to one or more electrical conductors or optical carriers, generally configured as a single carrier or as two or more carriers, in a twisted, parallel, or concentric arrangement, used to transport at least one logical signal. A logical signal may be multiplexed with one or more other logical signals generally using a single physical signal but logical signal(s) may also be multiplexed using more than one physical signal.

As used herein, memory devices are generally defined as integrated circuits that are composed primarily of memory (e.g., storage, etc.) cells, such as DRAMs (Dynamic Random Access Memories), SRAMs (Static Random Access Memories), FeRAMs (Ferro-Electric RAMs), MRAMs (Magnetic Random Access Memories), Flash Memory (e.g., NAND flash, NOR flash, etc.) and other forms of random access and related memories that store information in the form of electrical, optical, magnetic, chemical, biological, combination(s) of these, and/or in other forms.

Dynamic memory device types may include FPM DRAMs (Fast Page Mode Dynamic Random Access Memories), EDO (Extended Data Out) DRAMs, BEDO (Burst EDO) DRAMs, SDR (Single Data Rate) Synchronous DRAMs, DDR (Double Data Rate) Synchronous DRAMs, DDR2, DDR3, DDR4, or any of the expected follow-on devices and related technologies such as Graphics RAMs, Video RAMs, LP RAM (Low Power DRAMs) which are often based on the fundamental functions, features and/or interfaces found on related DRAMs.

Flash memory device types may include: NAND, NOR, SLC, MLC, TLC using any interface (e.g., standard interface (e.g., ONFI, etc.); non-standard interface; etc.). Flash memory device types may also include any of the expected follow-on devices and related technologies.

Memory devices may include chips (die) and/or single or multi-chip or multi-die packages of various types, assemblies, forms, and configurations. In multi-chip packages, the memory devices may be packaged with other device types (e.g., other memory devices, logic chips, CPUs, hubs, buffers, intermediate devices, analog devices, programmable devices, etc.) and may also include passive devices (e.g., resistors, capacitors, inductors, etc.). These multi-chip packages may include cooling enhancements (e.g., an integrated heat sink, heat slug, fluids, gases, micromachined structures, micropipes, capillaries, etc.) that may be further attached to the carrier or another nearby carrier or other heat removal or cooling system. Other forms of packaging (e.g., assemblies, modules, cards, units, molding, encapsulation, etc.) for memory devices are also possible.

Although not necessarily shown in all the Figures, storage and memory support devices (e.g., storage controller(s), network controller(s), chipset(s), adapter(s), expander(s), buffer(s), buffer circuit(s), buffer chip(s), register(s), intermediate circuit(s), power supply regulator(s), VRMs, hub(s), re-driver(s), PLL(s), DLL(s), non-volatile memory, SRAM, DRAM, logic circuits, analog circuits, digital circuits, diodes, switches, LEDs, crystals, active components, passive components, combinations of these and other circuits, etc.) may be comprised of multiple separate chips (e.g., die, dies, dice, integrated circuits, etc.) and/or components, may be combined as multiple separate chips onto one or more substrates, may be combined into a single package (e.g., using die stacking, multi-chip packaging, etc.) or even integrated onto a single device based on tradeoffs such as: technology, power, space, weight, cost, etc.

One or more of the various passive devices (e.g., resistors, capacitors, inductors, combination (a) of these, etc.) may be integrated into the support chip packages, or into the substrate, board, PCB, or raw card itself, based on tradeoffs such as: technology, power, space, cost, weight, etc. These packages may include an integrated heat sink or other cooling enhancements (e.g., such as those described above, etc.) that may be further attached to the carrier or another nearby carrier or other heat removal or cooling system.

Memory and storage devices, intermediate devices and circuits, hubs, buffers, registers, clock devices, passives and other memory and storage support devices etc. and/or other components may be attached (e.g., coupled, connected, etc.) to the storage system(s) and/or subsystem(s) and/or other component(s) via various methods including solder interconnects, conductive adhesives, socket structures, pressure contacts, electrical/mechanical/optical and/or other methods that enable communication between two or more devices (e.g., via electrical, optical, wireless, combinations of these, or alternate means, etc.).

The one or more storage system(s) and/or subsystem(s) and/or other components/devices may be connected (e.g., electrically, optically, wireless, etc.) to the CPU complex, computer system or other system environment via one or more methods such as soldered interconnects, connectors, pressure contacts, conductive adhesives, optical interconnects (e.g., laser, LED, optic fiber, etc.), wireless links (e.g., coupling, coils, etc.) and/or other signal communication and/or power delivery methods. Physical connector systems may include mating connectors (male/female), conductive contacts and/or pins on one carrier mating with a male or female connector, optical connections, pressure contacts (often in conjunction with a retaining, alignment, and/or closure mechanism) and/or one or more of various other communication and power delivery methods. The interconnection(s) may be disposed along one or more edges of an assembly (e.g., module, card, adapter, etc.) and/or placed a distance from the storage or other subsystem depending on such application requirements as ease of upgrade, ease of repair, cost, available space and/or volume, heat transfer constraints, component size and shape and other related physical, electrical, optical, visual/physical access, requirements and constraints, etc. Electrical interconnections on a card are often referred to as contacts, pins, connection pins, tabs, etc. Electrical interconnections on a connector are often referred to as contacts or pins.

The integrity, reliability, availability, serviceability, performance etc. of a communication path, data storage contents, and all functional operations associated with each element of a storage system or storage subsystem may be improved by using one or more fault detection and/or correction methods. Any or all of the various elements of a storage system or storage subsystem may include error detection and/or correction methods such as CRC (cyclic redundancy code, or cyclic redundancy check), ECC (error-correcting code), EDC (error detecting code, or error detection and correction), LDPC (low-density parity check), parity, checksum or other encoding/decoding methods suited for this purpose. Further reliability enhancements may include operation re-try (e.g., repeat, re-send, etc.) to overcome intermittent or other faults such as those associated with the transfer of information, the use of one or more alternate, stand-by, or replacement communication paths to replace failing paths and/or lines, complement and/or re-complement techniques or alternate methods used in computer, storage, communication, and related systems.

Additional functions that may reside local to the storage subsystem and/or storage system include write and/or read buffers, one or more levels of cache, protocol translation, error detection and/or correction circuitry, data scrubbing, local power management circuitry and/or reporting, operational and/or status registers, initialization circuitry, performance monitoring and/or control, and other functions.

Terminology

The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms (e.g., a, an, the, etc.) are intended to include the plural forms as well, unless the context clearly indicates otherwise.

The terms comprises and/or comprising, when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

In the following description and claims, the terms include and comprise, along with their derivatives, may be used, and are intended to be treated as synonyms for each other.

In the following description and claims, the terms coupled and connected may be used, along with their derivatives. It should be understood that these terms are not necessarily intended as synonyms for each other. For example, connected may be used to indicate that two or more elements are in direct physical or electrical contact with each other. Further, coupled may be used to indicate that that two or more elements are in direct or indirect physical or electrical contact. For example, coupled may be used to indicate that that two or more elements are not in direct contact with each other, but the two or more elements still cooperate or interact with each other.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a circuit, component, module or system. Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.

In this description a portable multifunction device (a device) is used as an example. It should be understood, however, that one or more of the embodiments described herein may be applied to any device (e.g., consumer device, phone, phone system, cell phone, internet phone, music player, video player, camera, social interaction device, radios, TV, watch, personal communication device, electronic wallet, smart jewelry, personal computer, tablet, laptop computer, computer, server, embedded system, electronic glasses, displays, projector, computer appliance, kitchen appliance, home control appliance, lighting control, network device, router, switch, TiVO, AppleTV, GoogleTV, set-top box, cable box, modem, cable modem, PC, tablet, media box, streaming device, entertainment center, GPS device, automobile system, ATM, toy, gaming system, camera, video camera, music device, storage device, back-up device, exercise machine, e-book reader, PDA, combinations of these, etc.).

The device may support one or more applications e.g., search applications contacts and/or friends applications, messaging applications, telephone applications, video conferencing applications, e-mail applications, communications applications, voice recognition applications, instant messaging (IM) applications, blog and/or blogging applications, photographic applications (e.g., catalog, management, upload, editing, etc.), shopping, payment, digital camera applications, digital video camera applications, web browsing and browser applications, digital music player applications, digital video player applications, cloud applications, office productivity applications, backup and storage applications, other applications or combinations or multiple instances (e.g., versions, etc.) of these, etc.

Devices themselves may include (e.g., comprise, be capable of including, have features to include, have attachments, communicate with, etc.) one or more devices, e.g., as separate components, working in cooperation, as a collection of devices, as a multi-function device, with sockets or ports for extra devices and/or components, attached (e.g., direct attach, network attached, etc.) devices, upgrade components, expansion devices and/or modules, etc.

The device may have (e.g., execute, perform, capable of being programmed to perform, etc.) multiple functions (e.g., telephone, video conferencing, e-mail, instant messaging, blogging, digital photography, digital video, web browsing, digital music playing, social interaction, shopping, searching, combinations of these, etc.). Instructions for performing the device functions may be included in a computer readable storage medium or other computer program product configured for execution by one or more processors.

Language

The terminology and language used herein is for the purpose of describing particular embodiments only and is not intended to be limiting.

As used herein, the singular forms (e.g., a, an, the, one, etc.) are intended to include the plural forms as well, unless the context clearly indicates otherwise.

As used herein, the terms comprises and/or comprising, when used in this specification, specify the presence of stated features, numbers, integers, steps, operations, elements, and/or components, etc, but do not preclude the presence or addition of one or more other features, numbers, integers, steps, operations, elements, components, etc. and/or groups thereof.

In the following description and claims, the terms include and comprise, along with their derivatives, may be used, and are intended to be treated as synonyms for each other.

In the following description and claims, the terms coupled and connected may be used, along with their derivatives. It should be understood that these terms are not necessarily intended as synonyms for each other. For example, connected may be used to indicate that two or more elements are in direct physical or electrical contact with each other. Further, coupled may be used to indicate that that two or more elements are in direct or indirect physical or electrical contact. For example, coupled may be used to indicate that that two or more elements are not in direct contact with each other, but the two or more elements still cooperate or interact with each other.

The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the following claims are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed.

This description is presented for purposes of illustration and explanation, but is not intended to be exhaustive or limited to the invention in the forms disclosed. Modifications, permutations, combinations, and variations of embodiments will be understood and apparent to those of ordinary skill in the art without departing from the scope and spirit of this description.

The embodiments chosen and described herein are presented in order to best explain the principles of the embodiments and their practical applications, and to enable others of ordinary skill in the art to understand the embodiments with various modifications as are suited to the particular use contemplated.

As will be understood and appreciated by one skilled in the art, one or more embodiments described herein may be a system, device, method, or computer program product, etc. Accordingly, one or more embodiments described herein may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a circuit, component, module or system. Furthermore, one or more embodiments described herein may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.

FIG. 1 illustrates a network architecture 100, in accordance with one embodiment. As shown, a plurality of networks 102 is provided. In the context of the present network architecture 100, the networks 102 may each take any form including, but not limited to a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, peer-to-peer network, etc.

Coupled to the networks 102 are servers 104 which are capable of communicating over the networks 102. Also coupled to the networks 102 and the servers 104 is a plurality of clients 106. Such servers 104 and/or clients 106 may each include a desktop computer, lap-top computer, handheld computer, mobile phone, personal digital assistant (PDA), tablet computer, peripheral (e.g., printer, etc.), any component of a computer, and/or any other type of logic. In order to facilitate communication among the networks 102, at least one gateway 108 is optionally coupled therebetween.

FIG. 2 shows a representative hardware environment that may be associated with the servers 104 and/or clients 106 of FIG. 1, in accordance with one embodiment. Such figure illustrates a typical hardware configuration of a mobile device in accordance with one embodiment having a central processing unit 210, such as a microprocessor, and a number of other units interconnected via a system bus 212.

The mobile device shown in FIG. 2 includes a Random Access Memory (RAM) 214, Read Only Memory (ROM) 216, an I/O adapter 218 for connecting peripheral devices such as disk storage units 220 to the bus 212, a user interface adapter 222 for connecting a keyboard 224, a mouse 226, a speaker 228, a microphone 232, and/or other user interface devices such as a touch screen (not shown) to the bus 212, communication adapter 234 for connecting the mobile device to a communication network 235 (e.g., a data processing network) and a display adapter 236 for connecting the bus 212 to a display device 238.

The mobile device may have resident thereon any desired operating system. It will be appreciated that an embodiment may also be implemented on platforms and operating systems other than those mentioned. One embodiment may be written using JAVA, C, Objective C, and/or C++ language, or other programming languages, along with an object oriented programming methodology. Object oriented programming (OOP) has become increasingly used to develop complex applications.

Of course, the various embodiments set forth herein may be implemented utilizing hardware, software, or any desired combination thereof. For that matter, any type of logic may be utilized which is capable of implementing the various functionality set forth herein.

FIG. 3 shows a method 300, in accordance with one embodiment. As an option, the method may be implemented in the context of the architecture and environment of any subsequent Figure(s). Of course, however, the method may be implemented in any desired environment.

As shown in operation 302, a signal is received in association with a touch interface of a device. In one embodiment, the signal may include a pressure signal which is indicative of a magnitude of pressure. In the context of the present description, such pressure signal may include any signal that is a function of or related to a pressure applied to the device. In one embodiment, such pressure signal may be indicative of a magnitude of pressure being applied to a touch interface of the device. In various embodiments, such pressure signal may be generated by a pressure sensor including, but not limited to those described in the context of subsequently described embodiments, or any other mechanism, for that matter, that is capable of generating the pressure signal.

In other embodiments, the signal may include a touch signal indicative of a touch interface being touched. In the context of the present description, such touch signal may or may not be indicative of a magnitude of pressure being applied to a touch interface of the device. For example, such touch signal may, in one embodiment, simply indicate whether applied pressure is sensed, or not, e.g., not necessarily gauge any more than two pressure states, including pressure-sensed and pressure-not-sensed, etc.

Also in the context of the present description, the aforementioned device may include any device including, but not limited to those described in the context of this and/or subsequently described embodiments. Further, in various embodiments, the touch interface may or may not be combined with a display. For example, if the touch interface is combined with a display, the touch interface may include a touch screen. Thus, the touch interface may, in various embodiments, include, but is not limited to a touch screen or any other interface responsive to touch that is described in the context of this and/or subsequently described embodiments.

In one optional embodiment, the touch interface may be positioned on a first face of a device that includes a display on a second face thereof. Further, the first face and second face may include any respective faces (e.g., front, back, left side, right side, top side, bottom side, etc.) that are different. Just by way of example, in various embodiments, the first face and the second face may be on opposite faces of the device of the device. Further, the first face may include a side face and the second face may include a front face of the device. Even still, the first face may include a back face and the second face may include a front face of the device. Of course, the touch interface may be positioned on the same face as the display, in other embodiments.

As indicated in operation 304, a user experience may be altered, utilizing the signal. In the context of the present description, the user experience may include any aspect of the device that is capable of being directly or indirectly experienced by a user including, but not limited to those described in the context of this and/or subsequently described embodiments.

For example, in the context of an embodiment involving the pressure signal, the user experience may be altered as a function of the magnitude of the pressure being applied to the touch interface, utilizing the pressure signal. Just by way of example, in various embodiments, the user experience may be altered by causing input to the device, by causing output from the device, by causing processing by the device, etc. In other embodiments involving a touch signal, the user experience may be altered in any manner, utilizing the touch signal (dependent or independent of any fluctuation of pressure).

Of course, the foregoing embodiments may be altered by adding and/or removing various features. For example, in one embodiment, the pressure signal may be received which is indicative of the magnitude of pressure being applied to a touch interface positioned on a first face of a device that includes a display on a second face thereof. To this end, the user experience may be altered as a function of the magnitude of the pressure being applied to the touch interface, utilizing the pressure signal.

In another embodiment, a pressure signal may be received which is indicative of a magnitude of pressure being applied to a touch screen. To this end, the user experience may be altered as a function of the magnitude of the pressure being applied to the touch screen, utilizing the pressure signal. In still yet another optional embodiment, a touch signal may be received which is indicative of a touch interface being touched, where the touch interface is positioned on a first face of a device that includes a display on a second face thereof. To this end, the user experience may be altered, utilizing the touch signal. Again, any of the features described above (or hereinafter, for that matter) may or may not be combined in any desired manner.

More illustrative information will now be set forth regarding various optional architectures and features with which the foregoing techniques discussed in the context of any of the present or previous figure(s) may or may not be implemented, per the desires of the user. For instance, various optional examples and/or options associated with the operations 302 and/or 304, and/or other optional features have been and will be set forth in the context of a variety of possible embodiments. It should be strongly noted, however, that such information is set forth for illustrative purposes and should not be construed as limiting in any manner. Any of such features may be optionally incorporated with or without the inclusion of other features described.

FIG. 4 shows a method 400 for defining a selection made within a user interface based in part on contact pressure, in accordance with one embodiment. As an option, the method 400 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the method 400 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.

As shown, it is determined whether sufficient initial contact pressure is being exerted on an interaction surface. See determination 402.

In the context of the present description, an interaction surface refers to a surface through which a user may interact with a device. It may take up the majority of a device face, or just a subset. In various embodiments, an interaction surface may be sensitive to one or more types of interaction, including but not limited to, contact, pressure, and/or proximity. In one embodiment, an interaction surface is receptive to multitouch input. In another embodiment, an interaction surface may be non-planar. In yet another embodiment, an interaction surface may be transparent, and combined with a display. In still another embodiment, an interaction surface may be replaceable. Some embodiments of an interaction surface may have more than one texture, to provide tactile guides to a user when used on the back face of a device. Other embodiments of an interaction surface are non-rectangular.

In various embodiments, an interaction surface may utilize one or more forms of technology to sense contact. These contact-sensing technologies may include, but are not limited to, capacitive, resistive, optical, surface acoustic wave based, and/or any other contact sensing technologies now known or later developed.

In various embodiments, an interaction surface may utilize one or more forms of technology to sense proximity. These proximity-sensing technologies may include, but are not limited to, capacitive, resistive, eddy current, optical, ultrasonic, heat, electric field based, and/or any other contact sensing technologies now known or later developed.

In various embodiments, an interaction surface may utilize one or more forms of technology to sense pressure. These pressure-sensing technologies may include, but are not limited to, conductive, resistive, piezoelectric, and/or any other pressure sensing technologies now known or later developed. In some embodiments, an interaction surface may be able to only detect the total pressure being exerted on the surface. In other embodiments, an interaction surface may be able to discern the contact pressures associated with one or more points or areas of contact.

In the context of the present description, contact pressure is the pressure associated with one or more contact points or contact areas, the pressure being exerted on an interaction surface. For example, in one embodiment, contact pressure may be the pressure exerted on an interaction surface by a single finger press.

In the context of the present description, a contact area refers to the area of an interaction surface which is in physical contact with an implement of interaction. In various embodiments, the contact area may be described, stored, and processed, as a collection of cells that are part of an array. In one embodiment, this array may directly correspond to pixels of a display. In another embodiment, the array may correspond to a grid of discrete areas on an interaction surface which sense contact, pressure, or both. In still another embodiment, the contact area is represented as a primitive shape (e.g., circle, square, etc.) which best fits the actual area in contact with an implement of interaction.

In the context of the present description, an implement of interaction refers to an object which is detectable by an interaction surface in one or more ways (e.g., proximity, contact, pressure, etc.). In various embodiments, implements of interaction may include, but are not limited to, fingers, skin, a stylus, and/or any other object with which a user may interact with a device.

In the context of the present description, a contact point refers to a single location on an interaction surface which is associated with physical contact with an implement of interaction. In various embodiments, the contact point may be determined from a contact area. For example, in one embodiment, a contact point may be located in the center of its associated contact area. In another embodiment, a contact point may be located on an edge of its associated contact area.

Determining whether sufficient initial contact pressure is being exerted on an interaction surface depends on a threshold contact pressure. In some embodiments, the smallest degree of contact pressure may be sufficient, such that the definition of a selection may be triggered by any contact. In other embodiments, the definition of a selection does not occur until a non-negligible threshold contact pressure has been detected. In one embodiment, this threshold contact pressure may be defined by the user. In this way, accidental definitions of a selection may be avoided.

In some embodiments, determination 402 may be performed only after certain events have occurred. For example, in one embodiment, the determination may be made only after receipt of an input or combination of inputs. Possible inputs include, but are not limited to, object proximity to the interaction surface, activation of a hardware switch or button, activation of a software switch or button, and/or any other input capable of being detected. In one embodiment, the determination may not be made until the host device is woken from a sleep state. In another embodiment, the determination itself may also wake the host device from a sleep state.

If the result of determination 402 is that there is sufficient initial contact pressure being exerted on an interaction surface, the current contact pressure level is determined. See operation 404.

In the context of the present description, a contact pressure level is the pressure reading generated from the raw data received from a touch sensor. In various embodiments, the contact pressure level may be represented by a number. For example, in some embodiments, the contact pressure level may be represented by an integer. In another embodiment, the contact pressure level may be represented by a floating-point number. In various embodiments, the contact pressure level may be represented by a percentage of the measurable range of contact pressures. In one embodiment, the contact pressure level may be represented by a unit less number. In another embodiment, the contact pressure level may be represented by an actual measure of the contact pressure, associated with a unit of pressure.

In various embodiments, the contact pressure level may be represented by a touch state. In the context of the present description, a touch state refers to a predefined subset of the range of measurable contact pressures. For example, in one embodiment, contact pressure levels may be represented as one of four predefined touch states: no touch, light touch, medium touch, and heavy touch. As an option, the lowest touch state may require some form of proximity. In some embodiments, the user may be able to specify how the measurable range of contact pressures is partitioned across a predefined number of touch states. In one embodiment, the number and boundaries of touch states may be defined system-wide, for all applications. In another embodiment, the number and boundaries of touch states may be defined on a per-application basis.

As shown, the selection area is calculated. See operation 406. In the context of the present description, the selection area refers to a region of the display, or a region of an object pictured on the display, which has been chosen for selection. The calculation of the selection area may be based upon one or more factors, including, but not limited to, a contact pressure level, a touch state, a contact area, a contact point, a selection boundary, a selection boundary geometry, and/or any other information derived from user interaction. In some embodiments, the selection area may be described as the pixels contained within a selection boundary.

In the context of the present description, a selection boundary describes the boundary of an associated selection area, and is based upon a selection boundary geometry. Additionally, in the context of the present description, a selection boundary geometry refers to the shape of a selection boundary. In some embodiments, a selection boundary geometry may not have reference to actual size or location. For example, in one embodiment, a selection boundary geometry may be described using fractional coordinates on a unit square.

In various embodiments, a selection area may be described, stored, and/or processed as the area contained within a selection boundary. A selection boundary may be represented by a selection boundary geometry, a screen location, and one or more transformations, such as scale or orientation. In one embodiment, the screen location is the point on which the transformed selection boundary geometry is centered.

In some embodiments, the selection area may be described, stored, and/or processed, as a collection of cells that are part of an array. In one embodiment, this array may directly correspond to pixels of a display. In another embodiment, the array may correspond to a grid based on a coordinate system specific to an object being displayed. In still another embodiment, the selection area may be described, stored, and processed as a mathematical function that defines the boundary of the selection area.

In one embodiment, the shape of a selection boundary may be one of a plurality of selection boundary geometries predefined within an operating system. In another embodiment, the shape of a selection boundary may be predefined within an application, independent of selection boundary geometries defined within the operating system. In yet another embodiment, the selection boundary geometry may be specified by a user. In still another embodiment, the geometry of the selection boundary may depend upon at least one form of user input, including but not limited to contact pressure, number of fingers in contact with the screen, device orientation, location of user fingers, and/or any other form of user input. Finally, in another embodiment, the geometry of a selection boundary may depend upon the content within or near a location associated with the selection (e.g., contact point, finger location, focal point of user's eyes, cursor location, etc.).

In some embodiments, selection boundaries may have geometries based upon simple shapes, including, but not limited to, ovals, circles, triangles, squares, rectangles, and/or higher order polygons. In other embodiments, selection boundaries may be based upon regular shapes (e.g., a star, a plus sign, etc.). In one embodiment, a selection boundary may be based upon the geometry of a contact area.

There are numerous ways in which a selection boundary may be described, stored, and/or processed. In various embodiments, a selection boundary may be represented by the combination of an established selection boundary geometry with a location, a scale, and/or a rotation.

In one embodiment, a selection boundary may be described using the vertex coordinates of a selection boundary geometry, in conjunction with location, scale, and/or rotation factors. For example, a rectangular selection boundary geometry may be described by the coordinates of the four corners. As an option, the vertices of a selection boundary geometry may be described using coordinates within the unit square.

In another embodiment, a selection boundary may be described using a mathematical function representing an established selection boundary geometry, in conjunction with location, scale, and/or rotation factors. For example, an elliptical selection boundary geometry may be described by an ellipse function whose foci depend upon the scale factor.

In yet another embodiment, a selection boundary may be described using a spline-based representation of a selection boundary geometry, in conjunction with location, scale, and/or rotation factors. For example, a curled selection boundary geometry may be described using splines combined with location, scale, and rotation factors.

In other embodiments, a selection boundary may be described by a bitmap representation of a selection boundary geometry, in conjunction with location, scale, and/or rotation factors. For example, in one embodiment, a bitmap representation of a contact area may be used as a selection boundary geometry associated with a selection boundary. In another embodiment, a bitmap representation of an irregular shape may be used as a selection boundary geometry associated with a selection boundary. In this way, geometries which may be difficult to describe using vertices, formulas, or splines may be used as the bases for a selection boundary.

The selection area is calculated by determining the selection boundary. In various embodiments, the selection boundary may be determined by transforming an appropriate selection boundary geometry as a function of user input, including but not limited to, contact pressure level, contact point, contact area, number of fingers detected, device orientation, etc. Once the selection boundary has been determined, the selection area is known.

In various embodiments, the selection boundary may be defined by transforming the scale of an appropriate selection boundary geometry as a function of user input. For example, in one embodiment, a selection boundary with a circular geometry may have a larger radius at higher contact pressure levels. In another embodiment, a rectangular selection boundary geometry may be scaled linearly by a factor proportional to the contact pressure level. In some embodiments, the relationship between selection boundary geometry scale and a contact pressure level is proportional. In other embodiments, the relationship between selection boundary geometry scale and a contact pressure level is inversely proportional, such that higher pressure may make the geometry smaller.

In various embodiments, the selection boundary may be defined by transforming the orientation of an appropriate selection boundary geometry as a function of user input. For example, in one embodiment, a selection boundary with a star-shaped geometry may be rotated further clockwise at higher contact pressure levels. In some embodiments, the relationship between selection boundary geometry orientation and a contact pressure level is proportional, such that an increase in pressure may result in a clockwise rotation. In other embodiments, the relationship between selection boundary geometry orientation and a contact pressure level is inversely proportional, such that higher pressure may cause a counterclockwise rotation.

In some embodiments, a selection boundary may have an anchor point. In the context of the present description, an anchor point refers to a point located on or near the selection boundary geometry which remains fixed as the geometry is transformed. In one embodiment, a selection boundary may have a scaling anchor point, which remains fixed as the geometry is scaled. For example, a square selection boundary may have a scaling anchor point in the upper left corner, causing the square to expand down and to the right, keeping the upper left corner stationary.

In another embodiment, a selection boundary may have a rotational anchor point, which is used as an axis of rotation as the selection boundary geometry is rotated. For example, a star-shaped selection boundary may have a rotational anchor point located in the center, such that it rotates along an axis of symmetry.

In various embodiments, the calculation of the selection area may depend upon the context of the selection. Specifically, the selection boundary may be dependent upon the type of content on or near a point or area associated with the selection, including but not limited to, a contact point, a contact area, a cursor, a user focus, etc. In various embodiments, the selection boundary geometry and the manner in which it transforms as a function of user input may be context dependent. For example, in one embodiment, a selection made on or near a text field may cause the selection boundary geometry to be rectangular, with a scaling anchor point located in an upper corner appropriate for the text language (e.g., upper left corner for English, upper right corner for Arabic, etc.). In another embodiment, a selection on or near a text field may cause the rectangular boundary geometry to scale in increments of the same scale as the height and width of the text. In this way, it may be clear to the user which text has been selected, as there may never exist a selection boundary which contains only half a line or character.

In another embodiment, a selection on or near a text field may result in a rectangular selection boundary geometry which scales proportionally to a contact pressure level in a manner similar to how text is selected using a cursor. In this way, a user may select text in a familiar manner, while only having to vary the pressure being exerted on a contact point, for example. In one embodiment, the text selection begins to increase once a predefined contact pressure level has been achieved. As an option, the rate at which the selection grows may be a function of the contact pressure level, once the predefined contact pressure level has been achieved and the selection grown initiated. In another embodiment, the text selection scaling may be tiered, such that at one touch state, the selection grows character by character, at an intermediate touch state the selection grows word by word, and so on, such that the user is able to enlarge the text selection in increments of characters, words, lines, paragraphs, and pages, depending on the touch state. As an option, the selection may also be incremented by sentences.

In other embodiments, the above-mentioned methods for selecting text using a selection which expands in the direction the text would be read in may also be applied to the selection of other linear subject matter. For example, in one embodiment, this method may be used to select a video segment. As an option, the selection scaling may be tiered, growing from frame-by-frame to second-by-second to minute-by-minute, and so on. In another embodiment, this method may be used in the selection of a portion of chronologically arranged material. Possible material with a temporal arrangement may include, but is not limited to, a collection of photos, messages in an email account, text messages, web browser history, and/or any other collection of items which may be arranged chronologically.

In various embodiments, a selection made within a graphic (e.g., photograph, drawing, movie still, bitmapped or rasterized text, etc.) may utilize a default selection boundary geometry with a default scaling anchor point. In one embodiment, the user may be able to predefine the default selection boundary geometry and/or default scaling anchor point, to be used when making a selection within a graphic. In still another embodiment, the default selection boundary geometry and/or default scaling anchor point may be predefined within the operating system. As an option, these defaults may be predefined on a per-application basis.

In various embodiments, a selection made within a photograph may result in the use of a context-specific selection boundary geometry which transforms in a context specific manner. For example, in one embodiment, a selection made within a photograph containing one or more people may utilize the rough shape of the subjects' faces as a selection boundary geometry. As an option, the selection boundary geometry may be composed of the perimeter of all faces within a certain distance of a point related to the selection (e.g., contact point, user focus, etc.), the distance being proportional to a user input (e.g., contact pressure level, touch state, etc.). Face selection may be used to assist the user in establishing the identity of photographed individuals, allowing future identification to be performed automatically using facial recognition. In one embodiment, facial and other forms of recognition may be performed by a host device, a remote computer, a cloud service, or any other computational resource, or combination of these and other resources.

In another embodiment, a selection made within a photograph on or near an eye may utilize a rough shape of the eye as a selection boundary geometry. As an option, the exactness of the method used to automatically detect the shape of an eye may vary as a function of a user input, such as contact pressure level. Eye selection may be used to assist the user in removing the “red eye” effect sometimes seen in photographs.

In one embodiment, a selection made within a graphic may cause the selection boundary geometry to be defined by the collection of pixels near a point associated with the selection (e.g., contact point, user focus, etc.) which are similar in at least one aspect. Possible aspects include, but are not limited to, color, one or more dimensions of an associated color space, brightness, transparency, and/or any other aspect that may be associated with a pixel. As an option, the degree of similarity between pixels required to influence the selection boundary geometry may be a function of a user input, such as a contact pressure level. In this way, a user may be assisted in separating an object within the graphic from a background or other visual elements.

In various embodiments, there may exist limits to the amount a selection boundary geometry may be transformed as a function of user input. For example, in one embodiment, the selection boundary geometry may increase in size as the contact pressure level increases, until an upper contact pressure threshold is reached. Contact pressure levels beyond the upper threshold may not increase the size of the selection boundary geometry any further. In another embodiment, the scale of the selection boundary geometry may be limited by a lower contact pressure threshold, such that reducing the contact pressure level below the threshold may not reduce the scale of the selection boundary geometry any further. In yet another embodiment, both upper and lower contact pressure thresholds may be implemented. In other embodiments, this concept of thresholds may be applied to other variable aspects of the selection boundary, such as the orientation of the selection boundary geometry, and as a function of other user input, including but not limited to the location of a contact point, the size of a contact area, user focus, and/or any other type of user input.

In one embodiment, the user may be able to predefine one or more contact pressure thresholds associated with the limits of a transformation of the selection boundary geometry. As an option, the user may also predefine the limits of the transformation, in addition to the maximum and/or minimum contact pressure level which may affect said transformation. In another embodiment, these contact pressure thresholds and/or transformation limits may be predefined within the operating system. In still another embodiment, the contact pressure thresholds may be automatically optimized over time, by observing the typical range of pressures the user exerts in various use scenarios.

In one embodiment, the selection boundary geometry and/or transformation of the selection boundary geometry may depend upon the proximity of an object to an interaction surface, rather than an aspect of physical contact with an interaction surface.

In various embodiments, the selection boundary may depend, at least in part, upon the user focus. In the context of the present description, user focus refers to a point or area on a display which is the visual and/or interactive focus of the user. For example, in one embodiment, the user focus may be determined by tracking the eyes of a user with one or more device-mounted cameras, and calculating where the user is looking. This may also be referred to as user gaze, or user gaze tracking. As an option, eye movement may also be monitored, to ascertain the manner in which the user is using the device (e.g., methodically reading text, quickly scanning text, examining a picture, visually searching for an icon, etc.). In another embodiment, the user focus may be defined as the location of a cursor in a text environment. In still another embodiment, the user focus may be established through user input, such as a finger tap.

Various aspects of the selection boundary may depend upon the user focus. For example, in one embodiment, the user focus may be used to determine the context of a selection. In another embodiment, the user focus may be used to determine the location of a selection, allowing the user to make a selection without having to change the location of a contact point. In still another embodiment, the tracking of eye movement may be used to determine the type of selection (e.g., reading eye movement may trigger a text selection, etc.).

Once the selection boundary has been determined using an appropriate selection boundary geometry that has been transformed as a function of a user input, the selection area may be calculated.

As shown, the selection area is displayed. See operation 408. In various embodiments, a selection area may be displayed using one or more selection functions. In the context of the present description, a selection function refers to a function of one or more inputs which determines one or more properties of a selection. For example, in one embodiment, possible selection function inputs may include, but are not limited to, touch state, contact pressure level, selection state, finger locations, device orientation, user focus, pressure uncertainty, touch uncertainty, contact point, contact area, gestures, application type and/or context, application flags, operating system flags, and/or any other form of user or system input.

Within the context of the present description, pressure uncertainty refers to any data associated with the uncertainty inherent in measuring pressure exerted on an interaction surface. Pressure uncertainty may include, but is not limited to, the uncertainty of a measured contact pressure level, a multidimensional array of values representing the variance of contact pressure measured for each cell/pixel in the vicinity of a contact point, an uncertainty value inherent to a particular pressure sensor, and/or any other type of data associated with uncertainty in pressure measurement.

Within the context of the present description, touch uncertainty refers to any data associated with the uncertainty inherent in sensing contact with an interaction surface. Touch uncertainty may include, but is not limited to, the error range associated with the location of a contact point, a multidimensional array of values representing the probabilities of contact measured for each cell/pixel in the vicinity of a contact point, an uncertainty value inherent to a particular touch sensor, and/or any other type of data associated with uncertainty in sensing contact.

Within the context of the present description, a selection state refers to whether a selection is ‘dynamic’ and still able to vary as a function of user input, or ‘static’, and not currently varying as a function of user input.

In various embodiments, a selection function may determine one or more presentation properties of a selection. For example, possible presentation properties may include, but are not limited to, shading, color, contrast, brightness, line style, animation routine, transparency, pattern, border style, area style, and/or any other visual property that may describe an object on a display. Examples of animation routines include, but are not limited to, “marching ants”, changing colors, flashing, simulated optical distortions, pulsing highlights, and/or any other routine which varies location, transparency, color, content, and/or any other graphical property over time. In some embodiments, an animation routine may be a function of user input.

In various embodiments, a selection function may vary one or more presentation properties as a function of contact pressure. In this way, the user has visual feedback as to the level of pressure they are exerting on the device. For example, in one embodiment, the selection function may indicate the contact pressure level by shading the selection with a color which is somewhere between a pair of colors which represent the extrema of measurable contact pressure levels.

In various embodiments, a selection function may determine one or more fundamental properties of a selection. Within the context of this description, fundamental selection properties may include, but are not limited to, selection boundary geometry, transformation(s) to be applied to the selection boundary geometry as a function of user input, anchor point(s), and/or any other property which may be associated with a selection area.

In various embodiments, the application of a selection function may display a secondary boundary. Within the context of this description, a secondary boundary is any boundary, radius, or area associated with a selection area, which is not the selection boundary. For example, in one embodiment, a secondary boundary may be the area within which facial detection is being performed, as opposed to the selection boundary, which may be the outline of detected faces. In another embodiment, a secondary boundary may be the area within which eye detection is being performed. In yet another embodiment, the secondary boundary may represent the pressure uncertainty or touch uncertainty associated with a contact area.

In various embodiments, the secondary boundary may be displayed in addition to, or instead of, the selection boundary. For example, in one embodiment where face detection is being performed as part of calculating the selection area, the selection boundary may be indicated with a solid color line while the secondary boundary may be indicated with a thin dotted line.

In various embodiments, the area unique to the secondary boundary (i.e. the portion of the enclosed area which does not overlap with the selection area) may have presentation properties that differ from the selection area. For example, in one embodiment, a user may make a text selection of which the intended boundaries are uncertain. The portion of the text which was almost certainly intended to be selected may be shaded in green, while the text which may or may not have been selected intentionally may be shaded in red. The user intention may be extrapolated from uncertainty associated with the contact and/or contact pressure used to make the selection, in accordance with one embodiment.

In various embodiments, the secondary boundary may be used to indicate uncertainty associated with a form of machine recognition including, but not limited to, facial recognition, OCR, and/or any other form of machine recognition. For example, faces within a selection which have been recognized with a threshold degree of confidence may be outlined in green, while faces whose recognition is suspect (i.e. multiple viable matches, etc.) may be outlined in red (i.e. a secondary border).

As shown, after the selection area has been displayed, it is determined whether the selection establishment conditions have been met. See determination 410.

Within the context of the present description, selection establishment conditions refer to one or more predefined conditions whose satisfaction may cause the selection state to switch from ‘dynamic’ to ‘static’. For example, in one embodiment, once the selection establishment conditions have been satisfied, the selection may no longer vary with contact pressure levels until determination 402 once again detects sufficient initial contact pressure. In various embodiments, the selection establishment conditions may be defined within a selection function.

In various embodiments, one or more selection establishment conditions may depend upon changes in the contact pressure level. For example, in some embodiments, selection establishment may be conditioned upon whether the contact pressure level drops below a predefined level. In one embodiment, this threshold contact pressure level may be defined as being a set amount of pressure less than the current contact pressure level. In this way, a user may reduce the contact pressure a small amount to modify their selection, with further reduction causing a selection establishment condition to be satisfied. In another embodiment, the threshold contact pressure level may be a set pressure amount.

In various embodiments, a selection establishment condition may depend upon contact pressure velocity, or the rate at which the contact pressure level is changing. For example, in one embodiment, a user may be able to satisfy a selection establishment condition by quickly reducing the contact pressure level to a predefined level within a predefined amount of time. In another embodiment, selection establishment may be conditioned upon whether a user has increased the contact pressure level to a predefined level within a predefined amount of time. In yet another embodiment, a selection may be established by exceeding a predefined contact pressure velocity, without regard to the actual pressure levels. As a specific example, a user may establish their selection by a quick pulse of their finger, without having to reach a particular pressure level.

In various embodiments, a selection establishment condition may depend upon how much time has elapsed since a particular event. For example, in one embodiment, a selection may be established if the user maintains a contact pressure level for a predefined amount of time. As an option, there may be a predefine tolerance level for pressure variations which may not reset this timing, allowing for small fluctuations in contact pressure which may be difficult for a user to control. In another embodiment, a selection establishment condition may be satisfied once a predefined amount of time has elapsed since the satisfaction of determination 402.

In various embodiments, a selection establishment condition may depend upon forms of user input that are not related to contact pressure. These forms of user input may include, but are not limited to, gestures, a change in the number of fingers in contact with the device, change in device orientation, surpassing a threshold level of accelerations (e.g., wrist flick, etc.), and/or any other form of user input. It should be noted that selection establishment may also be conditioned upon the satisfaction of a combination of any of the previously described conditions.

If it is determined that the selection establishment conditions have not been met, the selection is updated in a loop through performing operations 404, 406, and 408. The selection may continue to vary as a function of user input until the selection establishment conditions have been met.

If it is determined that the selection establishment conditions have been met, the selection state is changed from ‘dynamic’ to ‘static’. See operation 412.

Setting the selection state to ‘static’ means the selection is no longer being modified by user input. In various embodiments, the selection function may depend in part on the selection state. For example, in one embodiment, when the selection state is ‘static’, the secondary boundary may be removed from the display. In another embodiment, a ‘static’ selection state may cause the selection area to be displayed in a different color, or with a different style of selection boundary. In yet another embodiment, changing a selection state from ‘dynamic’ to ‘static’ may cause one or more application and/or operating system flags to be set.

In various embodiments, changing a selection state from ‘dynamic’ to ‘static’ may prompt the user to choose an action to be performed on or with the contents of the selection. For example, in one embodiment, after the desired faces have been highlighted and the user has reduced the contact pressure level below the dynamic selection minimum threshold pressure, they may be prompted to confirm the identity of the selected faces. In another embodiment, after a text selection has been given a ‘static’ selection state, the user may be prompted with operations that may be performed on the selected text, including but not limited to copy, cut, paste, spell check, style (e.g., bold, underlined, italic, etc.), font, font size, and/or any other operation which may be performed on text.

In some embodiments, once a selection has become ‘static’, it can no longer be modified and may be destroyed upon creation of a new selection. In other embodiments, a user may further modify a static selection by first applying a contact pressure sufficient to satisfy determination 402. In one embodiment, satisfying determination 402 with a static selection already in existence may change the selection state of the previous selection from static to dynamic, allowing further variation as a function of user input. In another embodiment, satisfying determination 402 with a static selection already in existence may create a new selection, as a function of user input, which is combined with the previously made selection. In yet another embodiment, a user may chose whether to replace a previously made selection or augment (i.e. add to, subtract from, etc.) a previously made selection with a new selection. As an option, the user choice may be indicated through gesture, voice command, toggling a hardware control, toggling a software control, and/or any other form of user input.

In various embodiments, method 400 may be adapted to allow for the definition, establishment, and modification of selections through other types of user input. Other types of user input may include, but are not limited to, proximity to an interaction surface, number of contact points, gestures, and/or any other form of user input. For example, in one embodiment, a user may expand a text selection by bringing their finger into proximity to the interaction surface.

FIG. 5 shows a pressure sensitive user interface 500 for making a selection, in accordance with one embodiment. As an option, the user interface 500 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 500 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

As shown, the user interface 500 may be utilized in making a selection based in part on pressure exerted by the user upon one or more interaction surfaces located on a device. For example, in one embodiment, a user's finger 502 may exert a small amount of force over contact area 504, which is centered on contact point 506 located on a pressure sensitive touch screen. If the contact pressure level is sufficient, then a selection area 508 having a selection boundary 510 is calculated and displayed. As the contact pressure is increased, the selection boundary expands to encompass a larger selection area 512.

FIG. 6 shows a method 600 for determining the context of a contact pressure-based selection and choosing an appropriate selection function, in accordance with one embodiment. As an option, the method 600 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the method 600 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

As shown, the context determination zone is defined. See operation 602. Within the context of the present description, a context determination zone refers to the area that is examined while determining the context of a selection. In various embodiments, the context determination zone may be initially defined as a function of one or more elements of user input upon which the selection itself is based. For example, in one embodiment, the context determination zone may be initially defined to be the contact area. In another embodiment, the context determination zone may be a predefined shape (e.g., circle, square, etc.) of predefined size, centered on the contact point. As an option, the user may be able to specify the initial size and shape of the context determination zone. In yet another embodiment, the context determination zone may be located such that the contact point is off-center, to provide a more intuitive user experience (e.g., the zone may be offset to compensate for the user's view being obstructed by their finger, etc.).

In still another embodiment, the context determination zone may have a predefined size. As an option, the predefined initial size for a context determination zone may be chosen such that it is smaller than any user interface elements which may be detected. As an additional option, the predefined initial size may be chosen such that it is large enough to assist a user in distinguishing between potential selection targets which are close to each other.

As shown, once the context determination zone has been defined, it is then determined whether there is a user interface control widget within the context determination zone. See determination 604.

Within the context of the present description, a user interface control widget refers to any element within a user interface which may receive user input, which are typically non-textual. For example, in various embodiments, user interface control widgets may include, but are not limited to, buttons, radio boxes, check boxes, drop down lists, sliders, tabs, and/or any other non-textual UI widget.

In some embodiments, user interface control widgets may also include hyperlinks which are isolated from a text field. For example, text that responds to user interaction like a button, but is not located within a selectable text field. Selectable text fields and hyperlinks embedded within a text field (e.g., links within a web page, links within a word processing document, etc.) are specifically excluded from this definition of user interface control widgets, as they are treated as separate cases within this method.

In various embodiments, the determination as to whether there is a user interface control widget within the context determination zone begins with determining whether there is a UI control widget located at the contact point upon which the zone is based. In this way, time is not wasted determining the context of a well-aimed contact point.

If a UI control widget is not located at the contact point, then it may be determined if there is a UI control widget in the vicinity, within the context determination zone. In various embodiments, this determination may be performed using the bounding boxes associated with user interface elements. Within the context of the present description, a bounding box refers to a rectangle within which a user interface control widget may reside. In some embodiments, a bounding box may be the smallest rectangle which may contain a particular user interface control widget. In this way, detection of user interface control widgets whose shape is not rectangular is simplified.

For example, in one embodiment, the determination as to whether there is a user interface control widget within the context determination zone may be performed by determining if the boundary of the context determination zone intersects with the bounding box of any user interface control widgets. As an option, if the initial size of the context determination zone is larger than a predefined minimum (e.g., smallest bounding box associated with a typical UI control widget, smallest bounding box present within the present UI, etc.), the determination may also verify the absence of any bounding boxes completely contained within the context determination zone, on the initial pass.

In another embodiment, the determination may be performed by calculating the distances between the center of the context determination zone and the center of every UI control widget present in the interface, and comparing them with a distance related to the size of the context determination zone.

If it is determined in 604 that there is at least one user interface control widget within the context determination zone, then a context sensitive UI control widget selection function is chosen. See operation 606. In various embodiments, once an appropriate selection function is chosen, a selection is defined based upon user input. In one embodiment, the selection is defined using method 4.

Within the context of the present description, a context sensitive selection function refers to a selection function adapted for use in making a selection in a context which has been automatically determined. In various embodiments, a context sensitive selection function may include logic to use a different context sensitive selection function to define the user's selection, based upon user input. In this way, a user may be able to indicate that the initial context determination is not correct, and that another selection function should be used.

For example, in one embodiment, a context sensitive UI control widget selection function may include logic such that, if the contact pressure level exceeds a predefined limit P0, further definition of the selection is handled by a different context sensitive selection function, such as one adapted for selecting hyperlinks. In another embodiment, a contact pressure level exceeding P0 may cause the context determination zone to expand, and the process of choosing an appropriate selection function to resume, ignoring the UI control widget previously detected within the zone. As an option, future determinations may ignore all UI control widgets. In this way, a context-aware user selection initiated with a contact point in the vicinity of a UI control widget may be redirected to a different type of subject matter without forcing the user to reposition their finger, for example.

In various embodiments, a context sensitive UI control widget selection function may depend upon the context determination zone. For example, in one embodiment, a context sensitive UI control widget selection function may use the context determination zone as a secondary boundary. In this way, the selection function may be able to continue searching the context determination zone for additional UI control widgets.

In various embodiments, a context sensitive UI control widget selection function may include logic to handle the case where there is more that one UI control widget within the context determination zone. In one embodiment, the selection function may choose the UI control widget whose center is closest to the center of the context determination zone. In another embodiment, the selection function may choose the UI control widget whose bounding box has greatest overlap with the context determination zone. In still another embodiment, the selection function may choose the UI control widget whose bounding box has an edge or corner closest to the center of the context determination zone.

In various embodiments, a context sensitive UI control widget selection function may include logic to allow the user to toggle between multiple widgets found within the context determination zone. For example, in one embodiment, the selection function may include a list of all UI control widgets found at least partially within the context determination zone. As an option, the widgets may be arranged in the list in order of distance from the center of the context determination zone. In another embodiment, the selection function may traverse the list sequentially, selecting a different widget. As an option, the list traversal may occur as a function of user input, including but not limited to, gestures, contact pressure velocity, accelerometer data, and/or any other user input. In still another embodiment, switching between different widgets found within the context determination may occur after a predefined amount of time has elapsed, and the selection establishment conditions have not yet been satisfied. In yet another embodiment, a context sensitive UI control widget selection function may use user focus to choose between multiple UI control widgets found within the context determination zone.

In various embodiments, a context sensitive UI control widget selection function may visually indicate the selection of a widget to the user before the selection has been established. For example, in one embodiment, the selection function may highlight the outline of the widget. In another embodiment, the selection function may shade the widget using a predefined mask of the widget. In still another embodiment, the selection function may shade and/or outline the widget bounding box. In yet another embodiment, the selection function may change and aspect of text associated with the widget, aspects including but not limited to font, text style, text color, and/or any other text property. As a specific example, a context sensitive UI control widget selection function may cause the name of a button to be displayed in blue italics if it is the current context-based selection derived from user input. In this way, the user may see what control is about to be activated before satisfying the selection establishment conditions.

In various embodiments, a context sensitive UI control widget selection function may have selection establishment conditions that depend upon the type of user interface control widget that is being selected. Some user interface control widgets are multi-state in nature (e.g., sliders, drop down lists, etc.), while others are bi-state (e.g., buttons, check boxes, etc.). In some embodiments, it may be assumed that when a user satisfies the selection establishment conditions for a bi-state UI control widget, they intend for the state of the widget to be toggled. The selection establishment conditions for multi-state UI control widgets, on the other hand, may include the election of a widget state.

For example, in one embodiment, the selection establishment conditions for a multi-state widget may include one or more primary conditions to establish that the user intends for that particular multi-state widget to be selected, and a secondary condition, to establish the state of that widget.

In various embodiments, the secondary condition may be satisfied (and the widget state chosen) through user input which includes, but is not limited to, contact pressure. As an option, after the primary selection establishment conditions have been satisfied, the selection function may disregard pre-established pressure triggers (e.g., P0, global pressure triggers, etc.) until the secondary selection establishment condition has been satisfied.

For example, in one embodiment, once the primary conditions for selecting a slider widget have been satisfied, a user may select a slider value by varying the contact pressure level between two predefined threshold pressures which represent the slider state extrema. In another embodiment, the contact pressure level at the time of satisfaction of the primary conditions may be used as a zero point, represented by the middle of the slider values. Increasing the contact pressure may increase the slider value, decreasing the contact pressure may decrease the slider value. In other embodiments, these methods may be used to traverse the items within a drop down list, or any other multi-state UI control widgets which may be assigned a value.

In various embodiments, the secondary selection establishment conditions may be finally satisfied using methods previously discussed, including but not limited to, a contact pressure velocity trigger.

Once the selection establishment conditions have been satisfied, the state of the UI control widget may be set. For example, a button may be toggled, a check box may be checked or unchecked, a slider value may be set, etc.

As a specific example of one embodiment, from a user perspective, a user may make contact with and exert pressure upon an interaction surface, with a contact point near a drop down menu. The user may increase the contact pressure until the drop down menu is highlighted. After maintaining that contact pressure level for a few seconds, the list of menu items becomes visible, after which the user may select an item by varying the contact pressure. Once the desired menu item is highlighted, the user may execute a rapid increase in pressure to finalize the selection of that menu item.

If it is determined in 604 that there is no user interface control widget within the context determination zone, it is then determined whether there is an embedded hyperlink within the context determination zone. See determination 608.

Within the context of the present description, an embedded hyperlink refers to a hyperlink which is embedded within a text field. For example, in one embodiment, embedded hyperlinks may include, but are not limited to, text or image links within a web page, text or image links within a word processing document, and/or any other type of link which may be contained within a document. It should be noted that any link which may be classified as a hyperlink may fall within this definition of embedded hyperlink, or within the definition of a UI control widget.

In various embodiments, the determination as to whether there is an embedded hyperlink within the context determination zone begins with determining whether there is an embedded hyperlink located at the contact point upon which the zone is based.

If an embedded hyperlink is not located at the contact point, then it may be determined if there is an embedded hyperlink in the vicinity, within the context determination zone. In various embodiments, the methods described for locating a UI control widget within the context determination zone may also be applied to determining whether there is an embedded hyperlink in the zone. In one embodiment, the bounding boxes may be handled by the application displaying the document in which an embedded hyperlink may be found. In another embodiment, the bounding boxes may be handled at a lower level, by the operating system.

If it is determined in 608 that there is at least one embedded hyperlink within the context determination zone, then a context sensitive embedded hyperlink selection function is chosen. See operation 610. In various embodiments, once an appropriate selection function is chosen, a selection may be defined based upon user input. In one embodiment, the selection may be defined using method 4.

In various embodiments, a context sensitive embedded hyperlink selection function may include logic to use a different context sensitive selection function to define the user's selection, based upon user input. In this way, a user may be able to indicate that the initial context determination is not correct, and that another selection function should be used.

For example, in one embodiment, a context sensitive embedded hyperlink selection function may include logic such that, if the contact pressure level exceeds a predefined limit P2, further definition of the selection is handled by a different context sensitive selection function, such as one adapted for selecting text. In another embodiment, a contact pressure level exceeding P2 may cause the context determination zone to expand, and the process of choosing an appropriate selection function to resume, ignoring the embedded hyperlink previously detected within the zone. As an option, future determinations may ignore all embedded hyperlinks. In this way, a context-aware user selection initiated with a contact point in the vicinity of an embedded hyperlink may be redirected to a different type of subject matter without forcing the user to reposition their finger, for example.

In various embodiments, a context sensitive embedded hyperlink selection function may depend upon the context determination zone. For example, in one embodiment, a context sensitive embedded hyperlink selection function may use the context determination zone as a secondary boundary. In this way, the selection function may be able to continue searching the context determination zone for additional embedded hyperlinks.

In various embodiments, a context sensitive embedded hyperlink selection function may include logic similar to that used in a context sensitive UI control widget selection function to handle the case where there is more that one embedded hyperlink within the context determination zone. Additionally, in various embodiments, a context sensitive embedded hyperlink selection function may include logic similar to that used in a context sensitive UI control widget selection function to allow a user to toggle between multiple embedded hyperlinks found within the context determination zone.

In various embodiments, a context sensitive embedded hyperlink selection function may visually indicate the selection of an embedded hyperlink before the selection has been established. For example, in one embodiment, the selection function may change the color of an embedded text hyperlink. In another embodiment, the selection function may change the font, style, or font size of an embedded text hyperlink. In yet another embodiment, the selection function may highlight the borders of a linked image. In this way, the user may see which embedded hyperlink is about to be activated before satisfying the selection establishment conditions.

In various embodiments, a context sensitive embedded hyperlink selection function may have selection establishment conditions which change, depending upon previous user input. For example, in one embodiment, if the contact pressure level surpasses a value of P1, but not P2, the selection establishment condition may change to require the selection of an option from a hyperlink contextual menu. The contextual menu may provide options common to web browsers, including but not limited to “open link”, “copy link”, and/or any other action which may be performed on or with a hyperlink. In various embodiments, the selection of the contextual menu item may be established using methods including, but not limited to, those described for multi-state UI control widgets, or other types of selections.

In various embodiments, once the selection establishment conditions have been satisfied, the selected embedded hyperlink may be activated.

If it is determined in 608 that there are no embedded hyperlinks within the context determination zone, it is then determined whether there is a selectable text field within the context determination zone. See determination 612.

Within the context of the present description, a selectable text field refers to a field of text which a user may select and perform operations upon (e.g., copy, cut, paste, etc.). In one embodiment, a selectable text field may also include any rasterized text which is recognized using an optical character recognition routine.

In various embodiments, the determination as to whether there is a selectable text field within the context determination zone begins with determining whether there is a selectable text field located at the contact point upon which the zone is based.

If a selectable text field is not located at the contact point, then it may be determined if there is a selectable text field in the vicinity of the contact point and within the context determination zone. In various embodiments, the methods described for locating a UI control widget within the context determination zone may also be applied to determining whether there is a selectable text field in the zone, including the use of bounding boxes.

If it is determined in 612 that there is at least one selectable text field intersecting with or within the context determination zone, then a context sensitive selectable text selection function is chosen. See operation 614. In various embodiments, once an appropriate selection function is chosen, a selection may be defined based upon user input. In one embodiment, the selection may be defined using method 4.

In various embodiments, if there is a selectable text field located at the contact point, the context sensitive selectable text selection function may behave like other text selection functions. For example, in one embodiment, the selection of the text would start at the contact point, and expand with pressure in the direction in which the text would be read.

In various embodiments, if there is a selectable text field within the context determination zone, but not at the contact point, the selection function may define the selection based upon the entire selectable text field. For example, in one embodiment, the text within selectable text field found in the context determination zone may be selected starting at the beginning of the text field, even if it is not near the contact point. In another embodiment, the selection of the text begins at the location closest to the contact point.

In various embodiments, a context sensitive selectable text selection function may depend upon the context determination zone. For example, in one embodiment, a context sensitive selectable text selection function may use the context determination zone as a secondary boundary. In this way, the selection function may be able to continue searching the context determination zone for additional selectable text fields.

In various embodiments, a context sensitive selectable text selection function may include logic to handle the case where there is more than one selectable text field within the context determination zone. In one embodiment, the selection function may choose the selectable text field which is closest to the contact point, the selection not extending beyond that text field. In another embodiment, the selection function may start the text selection in the selectable text field closest to the contact point; once all of the text in that closest field has been selected, the selection may continue to expand into the next closest text field, starting at the beginning of the field. In still another embodiment, the selection function may include logic similar to that used in a context sensitive UI control widget selection function to handle the case where there is more that one selectable text field within the context determination zone. Additionally, in yet another embodiment, a context sensitive selectable text selection function may include logic similar to that used in a context sensitive UI control widget selection function to allow a user to toggle between multiple selectable text fields found within the context determination zone.

In various embodiments, a context sensitive selectable text selection function may include logic to use a different context sensitive selection function to define the user's selection, based upon user input. In this way, a user may be able to indicate that the initial context determination is not correct, and that another selection function should be used.

For example, in one embodiment, a context sensitive selectable text selection function may include logic such that, if the contact pressure level exceeds a predefined limit P4, further definition of the selection is handled by a different context sensitive selection function, such as one adapted for selecting graphics. In another embodiment, a contact pressure level exceeding P4 may cause the context determination zone to expand, and the process of choosing an appropriate selection function to resume, ignoring the selectable text field previously detected within the zone. As an option, future determinations may ignore all selectable text fields. In this way, a context-aware user selection initiated with a contact point in the vicinity of a selectable text field may be redirected to a different type of subject matter without forcing the user to reposition their finger, for example.

In various embodiments, a context sensitive selectable text selection function may visually indicate the selection of a selectable text field before the selection has been established. For example, in one embodiment, the selection function may shade the selected text within a selectable text field. In another embodiment, the selection function may highlight the borders of an entire selectable text field which has been selected.

In various embodiments, a context sensitive selectable text selection function may have selection establishment conditions which change, depending upon previous user input. For example, in one embodiment, if the contact pressure level surpasses a value of P3, but not P4, the selection establishment condition may change to require the selection of an option from a text selection contextual menu. The contextual menu may provide options including, but not limited to, copy, cut, paste, style, send via email, send via SMS, lookup online, and/or any other action which may be performed on selected text. In various embodiments, the selection of the contextual menu item may be established using methods including, but not limited to, those described for multi-state UI control widgets, or other types of selections.

If it is determined in 612 that there is no text within the context determination zone, it is then determined whether there is a selectable graphic within the context determination zone. See determination 616.

Within the context of the present description, a selectable graphic refers to an image or display, or a portion of an image or display, which a user is able to select and perform operations upon (e.g., copy, cut, paste, save, etc.). In one embodiment, a selectable graphic may refer to any portion of a user interface which is able to be captured with a screenshot.

In various embodiments, the determination as to whether there is a selectable graphic within the context determination zone begins with determining whether there is a selectable graphic located at the contact point upon which the zone is based.

If a selectable graphic is not located at the contact point, then it may be determined if there is a selectable graphic in the vicinity of the contact point and within the context determination zone. In various embodiments, the methods described for locating a UI control widget within the context determination zone may also be applied to determining whether there is a selectable text field in the zone, including the use of bounding boxes. As an option, in addition to determining the boundaries of the bounding boxes within the context determination zone, it may also be determined whether they are able to be selected (e.g., checking a system flag, DRM, copy protection, etc.).

If it is determined in 616 that there is at least one selectable graphic within the context determination zone, then a context sensitive selectable graphic selection function is chosen. See operation 618. In various embodiments, once an appropriate selection function is chosen, a selection may be defined based upon user input. In one embodiment, the selection may be defined using method 4.

In various embodiments, if there is a selectable graphic located at the contact point, the context sensitive selectable graphic selection function may behave like other graphic selection functions. For example, in one embodiment, the selection of the graphic may be defined using method 4.

In various embodiments, if there is a selectable graphic within the context determination zone, but not at the contact point, the selection function may define the selection based upon the entire selectable graphic object. For example, in one embodiment, an image file embedded in a document near the contact point and at least partially within the context determination zone may be selected in its entirety. In another embodiment, said image file may be partially selected, starting at a location within the image that is closest to the contact point, and scaling as a function of user input and in a manner defined by the selection function.

In various embodiments, a context sensitive selectable graphic selection function may depend upon the context determination zone. For example, in one embodiment, a context sensitive selectable graphic selection function may use the context determination zone as a secondary boundary. In this way, the selection function may be able to continue searching the context determination zone for additional selectable graphic objects.

In various embodiments, a context sensitive selectable graphics selection function may include logic to handle the case where there is more than one selectable graphic object within the context determination zone. In one embodiment, the selection function may choose the selectable graphic object which is closest to the contact point.

In another embodiment, the selection function may include logic similar to that used in a context sensitive UI control widget selection function to handle the case where there is more that one selectable graphic object within the context determination zone. Additionally, in yet another embodiment, a context sensitive selectable graphic selection function may include logic similar to that used in a context sensitive UI control widget selection function to allow a user to toggle between multiple selectable graphic objects found within the context determination zone.

In various embodiments, a context sensitive selectable graphics function may pass control to another user interface function, depending upon user input. In this way, a user may be able to indicate that the initial context determination is not correct, and that they wish to activate a different user interface routine (e.g., application launcher, favorites list, system settings, etc.).

For example, in one embodiment, a context sensitive selectable graphic selection function may include logic such that, if the contact pressure level exceeds a predefined limit P6, further user input is handled by a different context sensitive selection function, such as one adapted for selecting graphics. In another embodiment, a contact pressure level exceeding P4 may cause the context determination zone to expand, and the process of choosing an appropriate selection function to resume, ignoring the selectable graphic previously detected within the zone. As an option, future determinations may ignore all selectable graphics. In this way, a context-aware user selection initiated with a contact point in the vicinity of a selectable graphic may be redirected to a different type of subject matter without forcing the user to reposition their finger, for example.

In various embodiments, a context sensitive selectable graphics selection function may visually indicate the selection of a selectable graphic object before the selection has been established. For example, in one embodiment, the selection function may shade the selected graphic object. In another embodiment, the selection function may highlight the borders of a graphic object which has been selected.

In various embodiments, a context sensitive selectable graphics selection function may have selection establishment conditions which change, depending upon previous user input. For example, in one embodiment, if the contact pressure level surpasses a value of P5, but not P6, the selection establishment condition may change to require the selection of an option from a graphic selection contextual menu. The contextual menu may provide options including, but not limited to, copy, cut, paste, set as wallpaper, send via email, send via SMS, and/or any other action which may be performed on selected graphics. In various embodiments, the selection of the contextual menu item may be established using methods including, but not limited to, those described for multi-state UI control widgets, or other types of selections.

If it is determined in 616 that there is no selectable graphics within the context determination zone, then the determination zone is expanded. See operation 620.

In one embodiment, the context determination zone may be expanded by a fixed number of pixels. In another embodiment, the determination zone may be expanded by a scaling factor. Once the context determination zone has been expanded, the context determinations are performed again.

In one embodiment, if the context determination zone reaches a predefined threshold size, the user may be informed that a context could not be determined and a selection cannot be made. Other forms of user feedback indicating a failure to determine context include an alert, a prompt, audio feedback, visual feedback, LED light, and/or any other type of feedback.

In various embodiments, the user may be able to specify which contexts they wish to be detected automatically. In some embodiments, additional types of subject matter may be detectable, including types of text data, such as dates, email addresses, phone numbers, and/or any other type of text information.

In some embodiments, contextual selections may be performed using method 600 only in situations where a contact pressure based form of user interaction has not been defined. In other embodiments, contextual selections may be made system wide using method 600 or similar methods.

FIG. 7 shows a device 700 having a backtouch interface, in accordance with one embodiment. As an option, the device 700 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the device 700 may be implemented out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.

In the context of the present description, a device with a backtouch interface refers to a device with one or more backtouch sensors or backtouch switches. In one embodiment, a device with a backtouch interface may also include one or more other sensors and/or buttons, including but not limited to cameras, hardware buttons, and/or any other type of device or control. A device with a backtouch interface may also be referred to as a backtouch-enabled device.

Within the context of the present description, a backtouch sensor refers to an interaction surface located on a device which has reduced user visibility while the device is being operated, because it is obscured by the device itself. For example, in one embodiment, a backtouch sensor may be located on the back of the device, facing away from the user as they look at a display on the front side. A backtouch sensor may result in a better user interface experience since the user is able to interact with the device without obscuring the front display with an implement of interaction.

Additional embodiments may be described using the terms ‘front’ and ‘back’, but a backtouch-enabled device is not limited to those having parallel surfaces. Within the context of the present description, the terms ‘front’ or ‘front surface’ and ‘back’ or ‘back surface’ refer to any two surfaces of any portion, piece, section, slice, component, part, and/or face of a device or its parts.

In various embodiments, a backtouch interface may also be a display. For example, in one embodiment, a device may have high-resolution touchscreens on the front and back. In another embodiment of a multi-display, backtouch-enabled device, the front face may be a high-resolution touchscreen and the back face may be a low-resolution touchscreen. As an option, one or more of the touch screens in these embodiments may be black and white. In still another embodiment, the front and back displays may utilized different display technologies and/or different display properties. For example, in one embodiment, the front display may be a high-resolution trans missive touchscreen and the back display may be a low-resolution reflective touchscreen.

As shown, device 700 is an example of one embodiment of a backtouch-enabled device, possessing a backtouch sensor 702 and a display 704. In various embodiments, the display 704 may also be an interaction surface.

As previously defined, an interaction surface is a surface capable of sensing touch, pressure, proximity, or any combination thereof. In various embodiments, a backtouch sensor may be capable of sensing one or more of touch, pressure, or proximity.

For example, in one embodiment, a backtouch sensor may be a track pad. Within the context of the present description, a track pad is a touch sensitive pointing device which can detect the motion and position of an implement of interaction (e.g., user finger, stylus, etc.).

In various embodiments, a backtouch sensor may include a resistive touch sensor. In one embodiment, a resistive touch sensor is made up of two thin, conducting layers separated by a narrow gap. When an implement of interaction presses down on the outer layer, the two layers make contact at that point. A voltage may be applied across the upper layer, from top to bottom. The resistive touch sensor may act as a voltage divider; by measuring the output voltage on the lower layer, the vertical position of the touch position may be sensed. Swapping the voltage to the sides of the upper layer may allow the horizontal touch position to be sensed.

In various embodiments, a backtouch sensor may include a capacitive touch sensor. In one embodiment, a capacitive touch sensor is made of two layers of parallel conductive lines, separated by an insulator. The layers are arranged such that the conductive lines are perpendicular. When an implement of interaction is placed over the conducting lines, there is a change in capacitance. A high frequency signal may be applied to pairs of conducting lines; the resulting current that passes between the conducting lings is proportional to the capacitance between the conducting lines. This current may be used to sense the touch or proximity of an implement of interaction. A capacitive touch sensor may be capable of detecting more than one contact point or contact area.

The backtouch-enabled device shown in FIG. 7 is one exemplary embodiment. The geometry of a backtouch-enabled device need not be confined to parallel surfaces, with a distinct front and back. For example, in one embodiment, the device may have fold-out sections with interaction surfaces which become backtouch interfaces once the sections are folded out. In another embodiment, the backtouch-enabled device may be composed of curved parts, multiple parts, or complex plan form parts. In still another embodiment, the backtouch-enabled device may not be rectilinear in any outline and/or cross section. In yet another embodiment, the device may have one or more curved or non-planar surfaces, including but not limited to surfaces which are concave or convex. In some embodiments, the device may have one or more surfaces which are rigid or hard. In other embodiments, the device may have one or more surfaces which are soft or flexible. In still other embodiments, the device may change shape, depending on the mode of operation (e.g., slide-out hardware keyboard, plug-in modules, etc.).

In one embodiment, a backtouch-enabled device may have one or more backtouch sensors located on plane(s) parallel to the plane of a display. For example, see device 700. In another embodiment, a backtouch-enabled device may have one or more backtouch sensors located on plane(s) that are at an angle to the plane of a display.

In one embodiment, a backtouch sensor may be located on a plane which is completely obscured from the display. In another embodiment, a backtouch sensor may be located on a plane which is partially obscured from the display. For example, a backtouch sensor may be located on the back side of a transparent or translucent display.

In one embodiment, a backtouch interface is an interaction surface which may be made up of one or more touch sensors, one or more pressure sensors, one or more proximity sensors, one or more switches, or any combination of one or more such sensors or switches. In another embodiment, the switches which are part of a backtouch interface may be real or virtual, displayed or mechanical, soft or hard, or any combination of these properties.

In various embodiments, gestures and interactions described in terms of a backtouch interface may also be performed on sidetouch (left and right sides of a device) and captouch (top and bottom sides of a device) interfaces.

FIG. 8 shows a method 800 for providing feedback to the user of a backtouch interface, in accordance with one embodiment. As an option, the method 800 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the method 800 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

As shown, it is determined whether the backtouch interface is enabled. See determination 802.

Within the context of the present description, an enabled interface or surface refers to an interface or surface which is not disabled. Within the context of the present description, a disabled interface or surface refers to an interface or surface which is not passing user input to any process, system, application, or routine. In one embodiment, a disabled interface may continue to sense user input, even though it is not used. In another embodiment, a disabled interface may be able to recognize a predefined form or type of user input which then places the interface in an enabled state. As a specific example, in one embodiment, a disabled backtouch interface may not be used to make a selection until it detects a predefined pattern of increases and decreases of contact pressure. In this way, interfaces may be disabled to avoid unwanted input, and easily enabled when desired.

It is important to note that in various embodiments, an interface or surface may be enabled with respect to one type of user input, and disabled with respect to another type of user input. For example, it may be possible for an interaction surface to be enabled with respect to touch interactions, and disabled with respect to contact pressure or proximity.

In various embodiments, a backtouch interface may be enabled in response to user input. For example, in one embodiment, a backtouch interface may be enabled in response to a predefined gesture performed on an interaction surface receptive to touch. In another embodiment, a backtouch interface may be enabled in response to a predefined pattern of increases and decreases of contact pressure exerted upon an interaction surface receptive to pressure. In yet another embodiment, a backtouch interface may be enabled by a predefined series of taps or impacts with the device. As an option, the taps or impacts may be detected by an accelerometer. In still another embodiment, a backtouch interface may be enabled by toggling a hardware or software control (e.g., button, switch, etc.).

In various embodiments, a backtouch interface may be enabled without specific user input. For example, in one embodiment, a backtouch interface may be enabled by a backtouch-enabled application. In another embodiment, a backtouch interface may be enabled when the device orientation is within a predefined range. In yet another embodiment, a backtouch interface may always be enabled.

If it is determined that the backtouch interface is enabled, then it is determined whether there is an implement of interaction in proximity of the backtouch interface. See determination 804.

In various embodiments, there may be a threshold proximity that may be achieved before determination 804 is satisfied. In one embodiment, a user may define the threshold proximity. In another embodiment, the threshold proximity may be predefined within the operating system. In still another embodiment, the threshold proximity may be predefined on a per-application basis.

If it is determined that an implement of interaction is in proximity to the backtouch interface, a visual indication of the proximity is displayed. See operation 806.

In various embodiments, the location of the implement of interaction in proximity to the backtouch interface may be indicated to the user. For example, in some embodiments, a point associated with the location of the implement may be displayed. In one embodiment, the point may be the centroid of the area with the highest proximity value. As an option, the point may be represented as a circle, a crosshair, and/or any other shape or icon.

In one embodiment, the point associated with the location of the implement may be displayed using a predefined color. As an option, the user may be able to select the color used. In yet another embodiment, the point may be displayed by inverting the preexisting contents of the display located at that point.

In various embodiments, an area associated with the location of the implement may be displayed. For example, in one embodiment, the area may be the area with proximity values above a preset threshold value. In another embodiment, the area may be a circle centered upon the centroid of maximum proximity values. As an option, the size of the circle may be similar to a fingertip.

In one embodiment, the area associated with the location of the implement may be displayed with colored shading. As an option, the user may preset the color of the shading. In another embodiment, the area may be indicated by increasing the color brightness (e.g., moving towards white within a color space, etc.) of the display content within the area. In yet another embodiment, the area may be displayed by reducing the color brightness (e.g., moving towards black within a color space, etc.) of the display content outside the area. As an option, the area may be displayed with a sharp boundary, or with a softened boundary, creating a glow effect.

In various embodiments, the degree of proximity of the implement of interaction to the backtouch interface may be indicated to the user. For example, in one embodiment, the color of a point or area being displayed may be given a degree of transparency dependent upon the proximity values, allowing the original display content to be viewed. As an option, the proximity value may be averaged over the area, and a single transparency value given to the color applied. In another embodiment, the color of the content displayed within the area may be given a color brightness based upon the proximity, such that the area is white right before contact is made. In yet another embodiment, the color of the content displayed outside the area may be given a color brightness based upon an inverse relationship with the proximity, such that all but the area is black right before contact is made.

As shown, it is determined if an implement of interaction is in contact with the backtouch interface. See determination 808. If it is determined that there is no contact, the proximity may continue to be determined and displayed.

If it is determined that an implement of interaction is in contact with the backtouch interface, a visual indication of the contact is displayed. See operation 810.

In various embodiments, a visual indication of contact with a backtouch interface may differ from a visual indication of contact with a front display, where the contact point and area is usually obscured by an implement of interaction. For example, in one embodiment, the contact point may be displayed, instead of or in addition to the contact area. In another embodiment, the visual representation of the interior of the contact area may be colored. In yet another embodiment, the contact area may be represented by an iconic version of a fingerprint. In still another embodiment, the contact area may be distorted so as to appear to bulge out of the display. As an option, this distortion may increase as a function of contact pressure.

As shown, once the user has been given feedback regarding contact with the backtouch interface, further user interaction is handled by a different routine. See operation 8. For example, methods 4 or 6 may be implemented at this point, utilizing backtouch contact pressure and contact point to define a selection.

FIG. 9 shows a pressure-sensitive user interface 900 for making a selection using a backtouch interface, in accordance with one embodiment. As an option, the user interface 900 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 900 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

As shown, the user interface 900 may be utilized in making a selection based in part on pressure exerted by the user upon a backtouch interface. For example, in one embodiment, a user's finger 902 may exert a small amount of force over contact area 904, which is centered on contact point 906. In one embodiment, contact area 904 and contact point 906 may be displayed on top of the content already being displayed, to assist the user in making contact at the desired location. In another embodiment, the contact point 906 may be displayed as a symbol, such as a plus sign, which may be rotated to an orientation estimated to match that of the contacting finger. As an option, the finger orientation may be estimated using the size and shape of the contact area, detected location of other fingers, and/or any other user input or observable properties.

If the contact pressure level is sufficient, then a selection area 908 having a selection boundary 910 and a secondary boundary 912 (indicating uncertainty related to the contact area) is calculated and displayed. As an option, the selection may be defined using method 4 or 6, or any other method of defining a selection based upon contact pressure.

FIG. 10 shows a user interface 1000 for defining settings associated with a backtouch interface, in accordance with one embodiment. As an option, the user interface 1000 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 1000 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

In one embodiment, the user interface 1000 may include a plurality of check boxes 1002 which represent various types of user interactions detectable by the backtouch interface. The types of interactions may include, but are not limited to, pressure, touch, proximity, and/or any other type of user interaction. Through these checkboxes, a user may limit a backtouch interface to only certain types of interactions. As an option, the user interface 1000 may only present checkboxes for interaction types detectable by the particular backtouch interface associated with the settings being defined.

In one embodiment, the user interface 1000 may include a plurality of check boxes 1004 which represent various methods of enabling a backtouch interface. As an option, in one embodiment, more than one method of activation may be selected.

In one embodiment, the collection of backtouch interface enablement methods 1004 may include a checkbox 1006 which allows the interface to be activated by a gesture. In one embodiment, the gesture may be predefined within an application or operating system. In another embodiment, the user interface 1000 may include a button 1008 to allow a user to specify a gesture to activate the backtouch interface. As an option, the user may be presented with an interface where they may specify the gesture by performing it. In yet another embodiment, the user may choose from a plurality of predefined gestures.

In one embodiment, the collection of backtouch interface enablement methods 1004 may include a checkbox 1010 which allows the interface to be activated by a grip. In the context of the present description, a grip refers to the set of sensor data associated with a particular manner of holding a device. The sensor data associated with a grip may include, but is not limited to, points and areas of contact on one or more interaction surfaces, device orientation, contact pressure levels exerted in one or more contact areas, proximity data (e.g., proximity to portions of a users hand not in contact with the device, etc.), and/or any other sensor data.

In one embodiment, the backtouch interface-enabling grip may be predefined within an application or operating system. In another embodiment, the user interface 1000 may include a button 1012 to allow a user to specify a grip to enable the backtouch interface. As an option, the user may be presented with an interface where they may specify the grip by performing it. In yet another embodiment, the user may choose from a plurality of predefined grips.

In one embodiment, the collection of backtouch interface enablement methods 1004 may include a checkbox 1014 which keeps the backtouch interface enabled whenever the device is powered on, similar to a primary touch screen, for example. In another embodiment, the collection of backtouch interface enablement methods 1004 may include a checkbox 1016 which keeps the backtouch interface disabled.

In one embodiment, the user interface 1000 may include a check box 1018 which allows the criteria for backtouch interface enablement to be set on a per-application basis. As an option, check box 1018 may allow any application to override the preferences set with the plurality of check boxes 1004.

In one embodiment, the user interface 1000 may include a plurality of check boxes 1020 which represent various methods of indicating that a backtouch interface is enabled. As an option, in one embodiment, more than one indicator may be selected.

In one embodiment, the collection of indicator check boxes 1020 may include a checkbox 1022 which indicates that the backtouch interface is enabled by displaying a colored border around the edge of a display. In one embodiment, the colored border may be animated.

In one embodiment, the collection of indicator check boxes 1020 may include a checkbox 1024 which indicates that the backtouch interface is enabled using an LED. In one embodiment, the LED may indicate the enabled backtouch interface through a specific color, with other colors being reserved for indicating other device states. In another embodiment, the LED may pulse or flash when the backtouch interface is enabled.

In one embodiment, the collection of indicator check boxes 1020 may include a checkbox 1026 which indicates that the backtouch interface is enabled by displaying a colored border around a status bar (e.g., a minimal bar common to most user interfaces, etc.). In one embodiment, the colored border may be animated.

In one embodiment, the collection of indicator check boxes 1020 may include a checkbox 1028 which indicates that the backtouch interface is enabled by displaying an icon. In one embodiment, the icon may be located within a status bar.

In one embodiment, the collection of indicator check boxes 1020 may include a checkbox 1030 which indicates that the backtouch interface is enabled by changing the color of a status bar. In one embodiment, the color change may be animated.

In one embodiment, the collection of indicator check boxes 1020 may include a checkbox 1032 which allows the backtouch interface to be enabled without any indication to the user. As an option, this preference may be overridden by an application.

In various embodiments, the user interface 1000 may allow a user to configure the type and style of feedback provided while an enabled backtouch interface is being used. For example, in one embodiment, the user interface 70.0002.3-00 may include a button 1034 which allows a user to specify whether or not feedback is provided while the backtouch interface is being used. As an option, this preference may be overridden by applications (e.g., an application may be configured such that it provides backtouch interface feedback independent of any system preferences, etc.).

In one embodiment, the user interface 1000 may include a button 1036, which presents a user interface which allows a user to specify the style of feedback provided when a backtouch interface is being used. For example, a user may configure the feedback provided when an implement of interaction is in proximity to, contact with, and/or exerting pressure on the backtouch interface.

In one embodiment, the user interface 1000 may include a button 1038, which allows a user to test the style parameters they defined using button 1036. For example, in one embodiment, button 1038 may present a user interface where a user may experiment with a backtouch interface, observing the feedback styles they have configured. As an option, this interface may provide a quick way to reconfigure the feedback style.

In various embodiments, the user interface 1000 may allow a user to configure the sensitivity of a backtouch interface. In the context of the present description, the sensitivity of a backtouch interface refers to the threshold level of interaction (e.g., proximity, contact, pressure, etc.) which a backtouch interface may receive before treating the interaction as being intentionally made by a user. In this way, backtouch interactions incidental to device usage may be ignored, while intentional backtouch user interactions may be acted upon.

In one embodiment, the user interface 70.0002.3-00 may include a plurality of checkboxes 1040 that represent a plurality of backtouch interface sensitivity levels. The backtouch interface sensitivity levels may include, but are not limited to, predefined levels (e.g., “high”, “standard”, “low”, etc.), user defined levels, automatically defined levels, and/or any other type of sensitivity level.

In one embodiment, the user interface 1000 may allow a user to specify the sensitivity levels for particular aspects of a backtouch interface (e.g., proximity, contact, pressure, etc.). As an option, the user interface may provide the user with the ability to save and load user defined backtouch interface sensitivity profiles.

In the context of the present description, an interface sensitivity profile refers to a collection of sensitivity parameters associated with various aspects of an interaction interface. The sensitivity parameters may include, but are not limited to, an activation threshold, a maximum signal beyond which interaction is ignored, sample rate(s), and/or any other parameter which may be associated with an interaction interface. As an option, the sensitivity parameters may be specific to particular types of interaction (e.g., proximity, contact, pressure, etc.).

In the context of the present description, an activation threshold refers to a threshold signal below which interaction is ignored. An activation threshold may be set for different types of user interaction (e.g., pressure, contact, proximity, etc.). For example, in one embodiment, an interaction surface may have a pressure activation threshold of P, below which all pressure interactions are ignored.

It is important to recognize the distinction between activation and enablement. In various embodiments, activation serves as a filter of incidental interactions, defining the weakest sensor signal which may not be ignored. Enablement serves a similar purpose, to ignore unwanted interactions; a disabled interface may not act upon any sensor signals except those related to enabling the interface. In other words, activation filters sensor signals based on strength, while enablement filters sensor signals based on the signal itself.

In one embodiment, the plurality of checkboxes 1040 may include an “automatic” checkbox, representing a backtouch interface sensitivity profile automatically determined by the device. As an option, if an automatic sensitivity profile has not been created, the user may be presented with the option of initiating the process of automatically determining an optimal backtouch interface sensitivity profile.

In one embodiment, the user interface 1000 may include a button 1042 which allows a user to initiate the process of automatically determining an optimal backtouch interface sensitivity profile. In the context of the present description, an optimal interface sensitivity profile refers to a sensitivity profile which would allow an interface to remain enabled all the time, with minimal accidental inputs. In one embodiment, the process of automatically determining an optimal backtouch interface sensitivity profile may include gathering data over a predefined amount of time. As an option, the time remaining may be displayed in user interface 1000. During this learning period, the backtouch enablement preferences specified in checkboxes 1004 may be overridden, and instead the user is required to enable the backtouch interface with a specific method, chosen such that accidental enablement is highly unlikely (e.g., two step activation using gestures, hardware switch with on-screen confirmation, etc.). This facilitates separating intentional interactions from incidental interactions. Once enabled, the backtouch interface may remain enabled for a short period of time. During the learning period, the device may gather data, including but not limited to sensor data from the backtouch interface, changes in orientation, backtouch interface enablements, and/or any other data related to use of the device. Once the learning period has elapsed, the gathered data may be used to estimate the levels of meaningless, incidental backtouch interaction, such as interaction due to holding the device. As an option, in another embodiment, the user may be able to specify the length of the learning period. In yet another embodiment, the user may be able to specify desired accuracy of the sensitivity level, balancing the reduction of unwanted interactions with a possible increase in intentional interactions being missed.

In one embodiment, the user interface 1000 may include a button 1044 which allows a user to test the specified sensitivity settings. For example, in one embodiment, button 1044 may present a user interface which provides feedback regarding interactions with the backtouch interface. As an option, the testing user interface may utilize a default set of backtouch feedback settings, if the user had previously turned feedback off. In another embodiment, button 1044 may activate a backtouch interface, and present feedback to the user within user interface 1000. As an option, user interface 1000 may ignore any input received from the backtouch interface, only provide feedback related to the user interactions. In this way, a user may test the settings with the backtouch interface without accidentally interacting with any checkboxes, buttons, or other element of user interface 1000.

In various embodiments, the interfaces of FIG. 10, as well as any other previous or subsequent interfaces, may take the form of webpages displayed utilizing a web browser on any desired computer, handheld device, etc. In such case, any of the parameters or other input disclosed herein may be entered without the use of the host device, whereby such parameters or other input (or derivatives thereof) may be pushed to the device for configuration/updating purposes.

FIG. 11 shows a user interface 1100 for defining settings associated with a pressure-sensitive interface, in accordance with one embodiment. As an option, the user interface 1100 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 1100 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

In one embodiment, the user interface 1100 may include a checkbox 1102 to allow the user to enable the pressure-receptive aspect of one or more interaction surfaces. In one embodiment, this checkbox may enable all pressure-receptive surfaces. In another embodiment, the user may be able to specify which pressure-receptive surfaces shall be enabled. In various other embodiments, enablement of pressure-receptive surfaces may be accomplished through user input outside of user interface 1100. Pressure-receptive surface enabling user input may include, but is not limited to, gestures, software buttons, hardware buttons, accelerometer data, contact pressure patterns, and/or any other form of user input.

In one embodiment, the user interface 1100 may include a plurality of check boxes 1104 which allow a user to specify which types of feedback to provide when the pressure-sensitive interface(s) is activated, if any at all. For example, in one embodiment, the user may specify a sound which plays whenever the pressure-sensitive interface is activated. In another embodiment, the user may specify a form of visual feedback to be given when the pressure-sensitive interface is activated. As an option, the user may select from a plurality of predefined forms of feedback.

In one embodiment, the user interface 1100 may include a checkbox 1106 which allows a user to specify whether they want visual feedback regarding contact pressure level. As previously described, contact pressure level may be visually represented in a number of ways, including, but not limited to, a color which is part of a two color spectrum, a percentage, a unitless number, and/or any other representation of a value located within a finite range. In one embodiment, user interface 1100 may allow a user to specify the type of contact pressure level feedback. As an option, a separate user interface may be presented to the user to define the form of the feedback.

In various embodiments, the user interface 1100 may be used to define the pressure activation threshold. In the context of the present description, a pressure activation threshold is the smallest contact pressure level which may not be ignored. In one embodiment, the current pressure activation threshold level 1108 may be displayed within user interface 1100. The current pressure activation threshold level may be displayed as a unitless number, a percentage of the maximum measurable contact pressure level, a color, a scale, and/or any other method of representing a value located within a finite range.

In one embodiment, the user interface 1100 may include a button 1110 which allows a user to manually specify the pressure activation threshold level. In one embodiment, the user may be presented with an interface where they may enter a specific value to be used as the pressure activation threshold. In another embodiment, the user may be prompted to exert the desired threshold pressure on a pressure-sensitive interface, confirming their selection by maintaining the desired contact pressure for a predefined amount of time. As an option, the user may be prompted to repeat this process more than one time, after which the resulting pressure levels may be averages. In yet another embodiment, the user may be given the chance to test the newly specified pressure activation threshold level.

In one embodiment, the user interface 1100 may include a button 1112 which resets the pressure activation threshold level to a predefined, default value. As an option, the user may be prompted to confirm this action before the default value is applied.

In one embodiment, the user interface 1100 may include a button 1114 which initiates a process which determines an optimal pressure activation threshold level. In the context of the present description, an optimal pressure activation threshold level refers to an activation threshold which would allow an interface to remain enabled all the time, with minimal erroneous inputs. In one embodiment, the process of automatically determining an optimal pressure activation threshold level may include gathering data over a predefined amount of time. As an option, the time remaining may be displayed in user interface 1100.

During this learning period, the pressure activation threshold may temporarily be set to a level sufficiently high that an accidental activation is highly unlikely. This facilitates separating intentional interactions from incidental interactions. During the learning period, the device may gather data, including but not limited to sensor data from the pressure-sensitive interface, changes in orientation, pressure-sensitive interface activations, and/or any other data related to use of the device. Once the learning period has elapsed, the gathered data may be used to estimate the levels of meaningless, incidental pressure interaction, such as interaction due to holding the device. As an option, in another embodiment, the user may be able to specify the length of the learning period. In yet another embodiment, the user may be able to specify desired accuracy of the pressure activation threshold level optimization, balancing the reduction of unwanted interactions with a possible increase in intentional interactions being missed.

In one embodiment, the user interface 1100 may display the amount of time remaining in an ongoing learning period. See, for example, text field 1116. In various embodiments, the time remaining in the learning period may be displayed in user interfaces other than 1100. User interfaces where the remaining time may be displayed include, but are not limited to, a status bar, a contextual menu, a shortcut menu, a pop-up interface adapted for managing various interaction interfaces, and/or any other user interface.

In one embodiment, the user interface 1100 may include a plurality of checkboxes 1118 which represent a plurality of forms of feedback associated with the automatic determination of an optimal pressure activation threshold level. During the learning period, it may be helpful to provide the user with feedback every time the pressure-sensitive interface is activated. The forms of feedback include, but are not limited to, a sound, vibration, screen flash, and/or any other form of feedback. In one embodiment, the feedback associated with the automatic determination of an optimal pressure activation threshold level may override preferences set elsewhere. In another embodiment, the user may specify the parameters of these forms of feedback.

The user interface 1100 may be used to define and manage touch states. In one embodiment, a preset number of global touch states may be defined, which the operating system and applications may make use of. In another embodiment, the touch states may be defined on a per-application basis.

In one embodiment, the user interface 1100 may include a button 1120 which presents the user with a user interface that facilitates the definition of touch states. As an option, the user may be able to select from a plurality of predefined touch state definitions. Additionally, the user interface 1100 may display the currently defined touch states. See, for example, text field 1124. The touch states may be represented as a unitless number, a percentage of the range of allowable contact pressure levels, a color, and/or any other representation of a contact pressure level.

In one embodiment, the user interface 1100 may include a button 1122 which allows the user to reset the touch state definitions to a predefined default definition. As an option, the user may be prompted for confirmation before resetting the touch state definition to default values.

FIG. 12 shows a method 1200 for assisting a user in defining touch states, in accordance with one embodiment. As an option, the method 1200 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the method 1200 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

As shown, the highest touch state is defined. See operation 1202. In one embodiment, the highest touch state may be predefined within the operating system. In another embodiment, the highest touch state may be specified by the user, in the form of a contact pressure value.

In various embodiments, the highest touch state may be defined through user interaction with a pressure-sensitive interface. For example, in one embodiment, a user may be prompted to exert a level of contact pressure beyond which the highest touch state may be triggered. As an option, the user may be prompted to exert this pressure multiple times, with the resulting values averaged. In another embodiment, the user may be prompted to exert the highest contact pressure level which is comfortable, and then defining the highest touch state using a contact pressure level slightly lower than that being exerted.

Once the highest touch state has been defined, the remaining spectrum of contact pressures is partitioned into the remaining touch states and displayed. See operation 1204.

In the context of the present description, the spectrum of contact pressures refers to the range of contact pressure levels a user may exert to interact with the device. For example, in one embodiment, the lower end of a spectrum of contact pressures may be equivalent to the pressure activation threshold level. In various embodiments, there may be multiple contact pressure spectrums defined. For example, in one embodiment, there may exist a distinct spectrum of contact pressures for each pressure-sensitive interaction surface. In another embodiment, there may exist a spectrum of contact pressures which is partitioned into touch states (a touch state spectrum), and a different spectrum of contact pressures for use with contact pressure levels (a contact pressure level spectrum).

In one embodiment, the touch state spectrum may have extrema defined by the user. As an option, the lower bound of the touch state spectrum may be the same as pressure activation threshold level.

In one embodiment, the touch state spectrum may be partitioned such that all touch states contain the same fraction of the touch state spectrum. In another embodiment, the touch state spectrum may be partitioned such that all touch states have equal portions of the touch state spectrum except for the highest touch state. In yet another embodiment, the touch state spectrum may be partitioned such that the touch states are weighted, some containing larger fractions of the spectrum than others. As an option, the weight factors may be predefined or may be user definable.

In one embodiment, the partitioned touch state spectrum may be displayed as a geometric shape (e.g., circle, rectangle, etc.) which has been segmented according to the touch state partitions. In another embodiment, the partitioned touch state spectrum may be displayed as an array of percentages of the total spectrum. In yet another embodiment, the touch state spectrum may be displayed as an array of contact pressure levels associated with the boundaries of the partitions.

Once the touch state spectrum has been partitioned and displayed, the user is given the opportunity to adjust the touch states. See operation 1206.

In one embodiment, the user may adjust the contact pressure levels associated with the touch states by specifying the numerical values of specific contact pressure levels. In another embodiment, the user may adjust the touch states by interacting with a graphical representation of the partitioned touch state spectrum. In yet another embodiment, the user may adjust the touch states by defining new partitions using a pressure-sensitive interface. As an option, the user may exert the desired contact pressure level to set the boundaries of a touch state.

Once the touch states have been adjusted, the newly partitioned touch state spectrum is verified. See operation 1208.

In one embodiment, the touch state spectrum may be verified by asking the user to confirm their choice through a user interface. In another embodiment, the user may verify the touch state spectrum by utilizing it in a testing interface. As an option, the user may be given visual feedback regarding the exact contact pressure level being exerted, in addition to the current touch state.

FIG. 13 shows a user interface 1300 for assisting a user in defining touch states, in accordance with one embodiment. As an option, the user interface 1300 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 1300 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

In one embodiment, the user interface 1300 may include a graphical representation 1302 of a touch state spectrum, hereinafter referred to as touch space spectrum rendering 1302. As another embodiment, the touch space spectrum rendering 1302 may be colored with the spectrum of colors between two colors representing spectrum extrema. As an option, the same colors used to provide pressure dependent feedback to the user of a pressure-sensitive interface may be used here.

The touch space spectrum rendering 1302 found in user interface 1300 may be broken up into ranges of contact pressure representing touch states. In various embodiments, the touch space spectrum rendering may be partitioned by one or more touch state dividers 1304. In one embodiment, the touch state dividers may simply be a line drawn between two touch states. In another embodiment, the touch state dividers may also display the contact pressure level separating those two touch states.

In various embodiments, a plurality of touch states may be defined. In one embodiment, the user may specify the number of touch states to define. In another embodiment, the number of touch states may defined within the operating system. In still another embodiment, the number of touch states may be defined on a per-application basis, by the applications themselves or by the user (if so allowed by the application). In yet another embodiment, there may exist a set of default touch states of a fixed number which may be overridden by a different set of touch states defined within an application.

In various embodiments, the touch space spectrum rendering 1302 found in user interface 1300 may have a labeled scale. For example, in one embodiment, the lower boundary 1306 of the lowest touch state (e.g., the touch state associated with the lowest contact pressures) may be displayed. As an option, the lower boundary of the touch space spectrum may be equivalent to the pressure activation threshold, which the user may define using, for example, user interface 1100.

In another embodiment, the upper boundary 1308 of the touch space spectrum rendering may be displayed. As an option, upper boundary 1308 may be automatically set to a value slightly higher than the lower boundary of the highest touch state, since the highest touch state is made up of all pressures above that lower boundary. In this way, the scale of the touch space spectrum rendering is not skewed due to the potentially large range of contact pressures making up the highest touch state. In yet another embodiment, the touch space spectrum rendering may change in scale due to user interaction, with upper boundary 1308 being automatically updated.

In various embodiments, the touch state dividers 1304 found in the user interface 1300 may possess touch state divider handles 1310 with which a user may adjust the partitioning of touch states. For example, in one embodiment, a user may touch and drag a touch state divider handle to change the value of the associated divider. In another embodiment, a user may select a touch state divider handle; after the touch state divider handle has been selected, the divider may be assigned a value equivalent to whatever contact pressure level the user exerts for a predefined amount of time. As a specific example, a user may select a touch state divider handle and then press on an interaction surface. Once the desired contact pressure level is reached, the user maintains the pressure for 3 seconds, after which the value of the touch state divider is updated.

In one embodiment, the user interface 1300 may include a contact pressure gauge 1312 which reports the contact pressure level currently being exerted, to assist the user in selecting a practical partitioning of the touch state spectrum. In another embodiment, the scale of the contact pressure gauge may match that of touch state spectrum rendering 1302. As an option, the scale of both contact pressure gauge 1312 and touch state spectrum rendering 1302 may be set to accommodate the larger of two values: the current contact pressure level, or a value slightly higher than the lower boundary of the highest touch state.

In various embodiments, the touch state dividers 1304 found in the user interface 1300 may each be associated with a plurality of icon buttons 1314 which a user may use to lock a touch state divider at a particular value. In one embodiment, adjusting one touch state divider may cause all other unlocked dividers to shift such that the remaining portions of the touch state spectrum are partitioned as evenly as possible. As an option, the user interface 1300 may include a button to unlock all touch state dividers. In another embodiment, the user interface 1300 may include a button 1316 which distributes all unlocked touch state dividers evenly throughout the remaining parts of the touch state spectrum.

In one embodiment, the user interface 1300 may include a button 1318 which allows the user to establish the highest touch state boundary through pressure-based user input. In another embodiment, the user may be prompted to establish this touch state boundary as soon as user interface 1300 is displayed, in accordance with method 1200. In one embodiment, the user may only specify the highest touch state, with the remaining touch state spectrum being evenly partitioned across the touch states.

In one embodiment, the user interface 1300 may include a button 1320 which resets all touch state boundaries to default values. In another embodiment, the highest touch state boundary may be preserved, only able to be reset within the interface used to define it that may be displayed in response to activating button 1318.

In various embodiments, the user interface 1300 may include a button 1322 which allows a user to test the currently defined touch states. For example, in one embodiment, a user may be asked to achieve various touch states, and maintain them for a certain period of time. In another embodiment, the user may be presented with an interface similar to 1300, but where the touch state spectrum rendering 1302 and the contact pressure gauge 1312 are more predominantly displayed. As an option, a sound may be played every time a touch state boundary is crossed.

FIG. 14 shows a user interface 1400 for indicating that a backtouch and/or pressure-sensitive interface is activated, in accordance with one embodiment. As an option, the user interface 1400 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 1400 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

In one embodiment, the user interface 1400 may include one or more icons 1402 to indicate that a backtouch and/or pressure-sensitive interface has been activated. As an option, the icons may also indicate whether an interface is enabled. For example, an icon may only be visible if the interface is enabled, and only in color if the interface is activated. In another embodiment, the icons may have a color which depends upon the contact pressure level currently being exerted on that particular interface.

In various embodiments, the user interface 1400 may include a status bar 1404 which provides the user feedback regarding various device functions, in addition to other information, such as the date and/or time. The status bar itself may be used to indicate whether a backtouch and/or pressure-sensitive interface has been activated. For example, in one embodiment, the status bar may have a shading color which depends upon the contact pressure level currently being exerted on an activated interface. This may be done in conjunction with displaying an icon 1402 to indicate which interface has been activated. In another embodiment, the change in color may be restricted to just the border 1406 of the status bar. In yet another embodiment, the type of interface which has been activated may be indicated through an animation routine, including, but not limited to, a pulsing of the border, a cyclical variation of transparency of the status bar shading, “marching ants” along the status bar border, and/or any other animation routine.

In one embodiment, the status bar 1404 within the user interface 1400 may include one or more items of textual information 1408. The items of textual information may include, but are not limited to, date, time, network type, battery level, other device or application status information, and/or any other type of textual information.

In one embodiment, the activation of a backtouch and/or pressure-sensitive interface may be indicated through the presentation properties of the textual information 1408. Presentation properties for textual information which may be altered to indicate the activation of an interface include, but are not limited to, font, style, size, color, animation routine (e.g., flashing text, cycling colors, etc.), and/or any other type of presentation property. In another embodiment, activation of a backtouch and/or pressure-sensitive interface may be indicated by temporarily replacing textual information 1408 with a message, which may include, but is not limited to, the identity of the activated interface.

In one embodiment, the user interface 1400 may indicate the activation of a backtouch and/or pressure-sensitive interface by displaying a border 1410 around the display. As an option, border 1410 may change color depending upon the current contact pressure level.

FIG. 15 shows a user interface 1500 for defining a backtouch feedback style, in accordance with one embodiment. As an option, the user interface 1500 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 1500 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

When interacting with a backtouch interface, it may or may not be important to provide the user with some form of feedback regarding the location and/or activity of their chosen implement of interaction. Providing interaction feedback allows the user to interact with the device using an interaction surface they may not be able to see.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1502 which represent various types of feedback which may be provided as an implement of interaction is in proximity to the backtouch interface. The types of feedback may include, but are not limited to, visual (e.g., screen flashes, status bar icons, iconic depictions of the location of the implement, etc.), sound, vibration, and/or any other form of feedback. In another embodiment, one or more of these types of feedback may be configured by the user. For example, in one embodiment, the user may select a sound to be played whenever an implement of interaction is in proximity to the backtouch interface. In yet another embodiment, the feedback may be limited to only those instances where the proximity to the backtouch interface appears intentional, rather than incidental. As a specific example, in one embodiment, feedback might be given for a fingertip, but not for a palm which is in proximity to the backtouch interface due to the user's grip.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1504 which represent various types of visual feedback that may indicate that an implement of interaction is in proximity to a backtouch interface. The types of visual feedback include, but are not limited to, graphical representation of probable implement location, status bar icon, screen flash, and/or any other type of visual feedback.

In various embodiments, a backtouch interface may be able to estimate the location of an implement of interaction in proximity to the backtouch interaction surface. This information can be used to provide useful feedback to the user. For example, in one embodiment, a point associated with the location may be displayed. As an option, the point may be the centroid of the area with the highest proximity value within a predefine threshold. In another embodiment, the point may be replaced or combined with an icon, shape, or symbol.

In another embodiment, the user may be provided with proximity feedback in the form of a visual representation of the proximity data received from the backtouch interface. As an option, the proximity values may be scaled such that the visual representation has the appearance of a glow, centered on the estimated location of the implement.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1506 which represent various styles of visual proximity feedback. The styles include, but are not limited to, dynamic coloring, the feedback described in conjunction with operation 806 of method 800, and/or any other type or style of visual feedback. In the context of the present description, dynamic coloring refers to coloring which varies as a function of proximity to the backtouch interface. For example, in one embodiment, the color of the visual proximity feedback may vary between two colors which represent the least discernable proximity and the greatest proximity before contact. As an option, the colors may include a transparency factor, so the visual feedback does not obstruct display contents any more than necessary.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1508 which represent various types of feedback which may be provided as an implement of interaction comes in contact with the backtouch interface. The types of feedback may include, but are not limited to, visual (e.g., screen flashes, status bar icons, iconic depictions of the location of the implement, etc.), sound, vibration, and/or any other form of feedback. In another embodiment, one or more of these types of feedback may be configured by the user. For example, in one embodiment, the user may select a sound to be played whenever an implement of interaction makes contact with the backtouch interface. In yet another embodiment, the feedback may be limited to only those instances where the contact with the backtouch interface is estimated to be intentional, rather than incidental. As a specific example, in one embodiment, feedback might be given for contact with a fingertip, but not for a palm which is in contact with the backtouch interface due to the user's grip.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1510 which represent various types of visual feedback indicating contact with the backtouch interface. The types of visual feedback include, but are not limited to, graphical representations of contact location and extent (e.g., contact point, contact area, etc.), a status bar icon, screen flash, and/or any other type of visual feedback, including those described in other embodiments.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1512 which cause the visual feedback indicating contact with the backtouch interface to fade after a set amount of time. In another embodiment, the user may specify the amount of time before fading begins, how quickly the fade occurs, and/or the limits of the fade (e.g., completely disappear, fade to 70% transparency, etc.). As an option, the fading of the visual feedback may be reversed if the implement of interaction moves beyond a preset threshold while still in contact with the backtouch interface.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1514 which allow the user to specify the style of visual feedback associated with making contact with the backtouch interface. The styles may include, but are not limited to, shading of a contact area, line style of the border of a contact area, animation routine, and/or any other style aspect of visual feedback, including those described in other embodiments.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1516 which represent various types of feedback which may be provided as an implement of interaction exerts pressure on the backtouch interface. The types of feedback may include, but are not limited to, visual (e.g., screen flashes, status bar icons, iconic depictions of the contact pressure of the implement, etc.), sound, vibration, and/or any other form of feedback. In another embodiment, one or more of these types of feedback may be configured by the user. For example, in one embodiment, the user may select a sound to be played whenever an implement of interaction exceeds a predefined contact pressure level with the backtouch interface. In another embodiment, the sound may play whenever there is a change in touch state. In yet another embodiment, the feedback may be limited to only those instances where the contact pressure on the backtouch interface is estimated to be intentional, rather than incidental. As a specific example, in one embodiment, feedback might be given for a finger press, but not for a palm squeeze incidental to the user's grip.

In one embodiment, the user interface 1500 may include buttons 1518 which allow the user to specify the colors which represent the extrema of measurable contact pressure levels. As an option, the colors may be specified with a transparency value.

In one embodiment, the user interface 1500 may include a plurality of checkboxes 1520 which represent various venues for presenting visual feedback based upon the current contact pressure level. The venues for pressure-related visual feedback include, but are not limited to, an area equivalent to or based upon the contact area, the contact point, the border of the display, the status bar, and/or any other type or example of visual feedback, including those described in other embodiments.

In one embodiment, the user interface 7.002.8-00 may include a button 1522 which returns all settings defined within user interface 7.002.8-00 to predefined default values. As an option, the user may be prompted to confirm the reset before restoring the default values.

In one embodiment, the user interface 7.002.8-00 may include buttons 1524 which allow a user to save and load collections of backtouch feedback settings. As an option, the user may be prompted to confirm loading a new collection of settings before overwriting the current collection.

In one embodiment, the user interface 1500 may include a button 1526 which allows a user to test the current backtouch feedback style settings. In one embodiment, button 1526 may enable the backtouch interface (if not already enabled) and allow the user to experience the current backtouch feedback style without being able to interact with user interface 1500 through the backtouch interface. In other words, the user may be able to expose the backtouch interface to a range of proximity, contact, and pressure interactions without accidentally changing any of the settings found within 1500.

In another embodiment, button 1526 may present to the user a user interface which allows the user to experience the current backtouch feedback style settings within a variety of simulated scenarios. The simulated scenarios may include, but are not limited to, web browsing, photo viewing, an application launcher, an eBook, word processing, and/or any other common use scenario. As an option, the simulated use scenarios may be defined such that the user is able to experience the current feedback style in a wide range of color schemes, subject matter, degrees of screen clutter, etc.

As a specific example of a backtouch feedback style collection in use, in one embodiment, a user may configure the backtouch interface through user interface 1500 such that having a finger in proximity to the backtouch interface causes a faint blue glow to appear on the display, over the location of the finger. The blue glow becomes brighter as the distance between the finger and the backtouch interface decreases, until contact is made. Upon contact, the display shows a small plus sign at the contact point and a thin “marching ants” border around the contact area. The contact area is not shaded. As the user increases contact pressure, the contact area is shaded red, which becomes more opaque as the pressure increases.

FIG. 16 shows an alternative method 1600 for defining a selection made within a user interface based in part on contact pressure, in accordance with one embodiment. As an option, the method 1600 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the method 1600 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.

As shown, it is determined if a touch event has occurred. See determination 1602.

In the context of the present description, a touch event refers to an event in which an implement of interaction comes into contact with an interaction surface. For example, in one embodiment, pressing on a pressure-sensitive backtouch interface with a finger may be a touch event. Another example may be making contact with a touch-sensitive display with a stylus.

If it is determined that a touch event has occurred, then the touch event attributes are determined. See operation 1604.

In the context of the present description, touch event attributes refer to one or more measurable aspects of the user interaction which resulted in a touch event. The measurable aspects may include, but are not limited to, touch state, contact area, contact point, contact pressure level, pressure uncertainty, touch uncertainty, and/or any other measurable aspect of user interaction.

As shown, it is determined whether the system is in a selection mode. See determination 1606.

In the context of the present description, a selection mode refers to a system state where a user may create or modify a selection in a display. In various embodiments, a selection mode may be represented by a system flag. Examples of when a system may be in a selection mode include, but are not limited to, instances where a selection already exists, instances where a user has indicated a desire to create a selection.

In various embodiments, a system may be placed in a selection mode through user input. For example, in one embodiment, the user may activate a selection mode by performing a predefined gesture on an interaction surface. In another embodiment, a user may activate a selection mode by exerting contact pressure on an interaction surface for a sufficient amount of time, the contact pressure exceeding a predefined threshold.

If the system is in a selection mode, then a selection is created and/or modified as a function of the touch event attributes, then displayed. See operation 1608.

In one embodiment, the selection may be created, modified, and/or displayed using one or more selection functions. In another embodiment, a display function may be applied in addition to a selection function, to display the selection.

In the context of the present description, a display function refers to a function of one or more inputs which determines one or more properties of a display. Properties of a display may include, but are not limited to, color values for individual pixels, brightness of a display backlight or portions of a backlight, and/or any other properties of a display. Display functions may apply to an entire display and/or multiple displays.

In one embodiment, the selection may be displayed with a secondary boundary representing the uncertainty in the selection. As a specific example, there may be displayed a small, pale green tinged transparent circle to show the area that the device is certain the user selected and a surrounding pale-red tinged transparent area (a secondary boundary) representing the area where the device thinks the user may have tried to select, but is not certain.

Operation 1608 may continue to be performed, updating the selection with each iteration, until there is a change in the touch state. See determination 1614.

If it is determined in 1606 that the system is not in a selection mode, then it is determined if a gesture has been detected. See determination 1610. In one embodiment, a user may be given feedback when a gesture is detected. Possible feedback may include, but is not limited to, sound, flashing display, appearance of an icon, a colored border on the display, and/or any other form of user feedback.

If a gesture has been detected, then an associated action is performed. See operation 1612. In one embodiment, any gesture may be mapped to any command or operation of the device. In another embodiment, a user may be provided feedback when the action is performed. Possible feedback may include, but is not limited to, sound, flashing display, appearance of an icon, a colored border on the display, and/or any other form of user feedback.

A gesture may be associated with a variety of different actions. These actions may include, but are not limited to, scrolling a display or user interface element, zooming in or out, modifying the display brightness, and/or any other action. With respect to making or modifying a selection through method 1600, it is important to note that, in one embodiment, a gesture may be associated with placing the system in a selection mode.

FIG. 17 shows a user interface 1700 for performing operations on a selection, in accordance with one embodiment. As an option, the user interface 1700 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 1700 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

After selecting an object, using methods, interfaces, and embodiments described above or others, a user may wish to perform an operation upon the object. Providing easily accessible methods to perform operations on a selected object may enhance the user experience. The availability of multiple interaction surfaces and/or multiple sensitivities increases the number of simple, intuitive ways a user may interact with the device.

In various embodiments, once a selection is static, a user may perform operations on the selected object. Possible operations include, but are not limited to, replication operations (i.e. copy, cut, paste, etc.), relocation operations, text-specific operations, image-specific operations, cross-application operations, and/or any other type of operation.

In various embodiments, a user may perform replication operations on a selected object through simple gestures and other types of user input. For example, in one embodiment, a user may copy a selected object to a clipboard (i.e. temporary storage, etc.) by pressing sharply on a pressure-sensitive front interaction surface, on top of the selected object. In another embodiment, a user may cut a selected object by pinching the object (i.e. applying contact pressure on the object through a front and back interaction surface), then applying greater contact pressure on the front interaction surface than the back interaction surface. In yet another embodiment, a user may perform a paste operation, replacing the selected object with the contents of a clipboard, by pinching the selected object, then applying greater contact pressure on the back interaction surface than the front interaction surface. Of course, in other embodiments, these operations and those following may be assigned to any other gesture, depending upon the location, number, and sensing ability of the host device's interaction surface(s).

In various embodiments, a user may perform relocation operations on a selected object through simple gestures and other types of user input. For example, in one embodiment, a user may move a selected object by making contact with the object on an interaction surface (front or back) and dragging the contact point to relocate the object. As an option, if the selection was made within a sequential or ordered environment (i.e. word processing document, etc.), the selected object may become transparent or translucent while being relocated, so the user may better see the insertion point (i.e. cursor, etc.). As shown in this example, the same dragging gesture may have different effects, depending on the state of the selection (i.e. static vs. active, etc.).

In various embodiments, a user may perform text-specific operations on a selected text object using simple gestures and other types of user input. See, for example, user interface 1700 in FIG. 17. As shown, a selection 1702 has been made within a block of text 1704. In accordance with one embodiment, a user has temporarily magnified the selected text by bringing a finger into proximity to a back interaction surface, said proximity localized in an area 1706 on the selection. As an option, the degree of magnification may increase as the finger is brought closer to the interaction surface.

Another example of a text-specific operation is data detection, in accordance with one embodiment. For example, in one embodiment, a user may perform a data detection operation on a selected text object by pressing on the selection with two fingers through a back interaction surface. In various embodiments, the data detection operation may highlight detectable information found within the selected text including, but not limited to, email addresses, phone numbers, dates and times, addresses, web addresses, and/or any other form of information. In another embodiment, the data detection may only highlight types of information which may be further acted upon by the device, such that after detection, a user may initiation further action by touching the highlighted information. For example, in one embodiment, touching a highlighted phone number may dial the number, touching a highlighted address may activate a navigation application, touching a date may create an appointment in a calendar application, and so forth.

Other examples of text-specific operations may include, but are not limited to, highlighting, modifying the style (i.e. bold, italic, underline, strikethrough, color, shadow, etc.), modifying the font, modifying the font size, translating to a different language, and/or any other operation which may be performed on text. In one embodiment, a user may perform a gesture, such as a two finger, double press on the selected text, to bring up a menu of different text operations (or any other operation in the present description). In another embodiment, each operation may be assigned a different gesture.

In various embodiments, a user may perform image-specific operations on a selected object through simple gestures intuitively related to the operation being performed. For example, in one embodiment, a user may apply facial recognition and/or red eye removal by simply tapping (on a front or back interaction surface) on peoples faces within the selection. In another embodiment, a user may resize the selected object using the two finger pinch-to-zoom gesture. In still another embodiment, a user may rotate the selected object by making two points of contact on the object, then twisting the contacting hand. In yet another embodiment, a user may warp or distort a selected object by applying different levels of contact pressure to the selection via a front or back interaction surface. As an option, a front interaction may cause puckering, while a back interaction may cause bulging.

In various embodiments, a user may perform cross-application operations on a selected object through simple gestures. Cross-application operations may include, but are not limited to, placing the selected object in a new email or SMS message, placing the selected object in a social network posting, sending the object to an application capable of performing further operations (i.e. image editing application, word processing application, etc.), and/or any other operation which may involve another application. In other embodiments, a user may be presented with application-specific operations in a menu, in addition to cross-application operations, upon performing a predefined gesture.

FIG. 18 shows a method 1800 for utilizing contact pressure-based gestures, in accordance with one embodiment. As an option, the method 1800 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the method 1800 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.

As shown, it is determined if a touch event has occurred. See determination 1802.

If it is determined that a touch event has occurred, then the initial touch event attributes are determined. See operation 1804.

As shown, the gesture is identified from gesture input. See operation 1806.

In the context of the present description, gesture input refers to the collection of inputs, flags, and signals by which a gesture is identified and parameterized. For example, in one embodiment, a two-finger pinch gesture may be identified by two contact points combined with their motion with respect to each other, and parameterized by the extent of the motion. Possible gesture inputs may include, but are not limited to, touch event attributes (both initial and over time), system and/or application flags, switches, buttons, states, sensor data, and/or any other possible input.

For example, in one embodiment, a gesture may be made up of one or more contact points on an interaction surface, each associated with a different contact pressure level.

In various embodiments, a gesture may be identified from gesture input. Some gestures may be able to be identified solely from initial touch event attributes. Other gestures may only be identified after the gesture has been performed for some period of time. As a specific example, a two finger pinch gesture and a two finger swipe are indistinguishable based solely on initial touch event attributes. However, once the swipe or pinch motion has begun, the gestures are immediately distinguished from each other.

In various embodiments, gestures may include one or more contact pressures being exerted upon an interaction surface. In some embodiments, pressure may be used to distinguish between two gestures. For example, in one embodiment, two gestures involving a two finger pinch on the front display and one finger contact with the backtouch interface may be defined based on the contact pressure level exerted on the back touch interface. In other embodiments, pressure may be used to specify one or more dimensions of the operation linked to a gesture. For example, in one embodiment, a swipe gesture to control scrolling of a text field may use contact pressure to determine the speed of the scrolling (e.g., higher pressure yields faster scrolling, etc.). In still other embodiments, contact pressure may be used to both identify as well as parameterize a gesture.

Once the gesture has been identified, the corresponding operation is performed. See operation 1808.

In various embodiments, a gesture may be associated with the modification of one or more device audio settings. For example, in one embodiment, a user may adjust the device volume by applying contact pressure to a back interaction surface, and dragging the contact point up and down to increase or decrease the device volume. As an option, the ringer volume may be adjusted by dragging left and right. In another embodiment, a user may change where audio is sent (i.e. internal speakers, headphone jack, Bluetooth device, etc.) by quickly pressing twice on a back interaction surface, then selecting an audio destination from a pop-up menu presented in response to the rapid double press. In yet another embodiment, a user may mute the audio by applying pressure on front and back interaction surfaces (i.e. a pinching motion), in a predefined corner of the device. In various embodiments, some or all of these device audio related operations may be available through gesture only after the user provides some form of activation input (i.e. touching an icon in the status bar, performing a simple gesture, etc.). In this way, gesture collisions (i.e. assignment of more than one operation to the same gesture, etc.) may be avoided. Of course, these and the following operations may be associated with any gesture or other user input, in various embodiments.

In various embodiments, a gesture may be associated with the modification of one or more display attributes. For example, in one embodiment, a user may adjust the intensity of a display backlight by applying contact pressure with three fingers on the display of interest. As an option, the backlight intensity may vary as a function of average contact pressure among the three contacts. In another embodiment, a user may activate a “night mode” (i.e. use of a monochrome red/black color space, inverting the display, etc.) by sequentially applying and releasing contact pressure on each corner of a front interaction surface. In various embodiments, some or all of these display attribute related operations may be available through gesture only after the user provides some form of activation input (i.e. touching an icon in the status bar, performing a simple gesture, etc.). In this way, gesture collisions (i.e. assignment of more than one operation to the same gesture, etc.) may be avoided.

In various embodiments, a gesture may be associated with the modification of one or more device attributes. For example, in various embodiments, a device may have a status bar along one side of a display which indicates the status of device hardware including, but not limited to, Wi-Fi signal strength, cellular network type and signal strength, Bluetooth status (i.e. on, off, etc.), system volume, battery remaining, etc. In some embodiments, a user may modify the status of these device attributes by interacting with status bar icons. For example, in one embodiment, a user may apply front surface contact pressure, above a predefined threshold for a predefined amount of time, to a status bar icon to turn off the associated device hardware (i.e. Wi-Fi, cellular modem, Bluetooth, etc.). In another embodiment, a user may apply similar pressure via a back interaction surface to a deactivated status bar icon to turn the associated hardware back on. As an option, applying said contact pressure may present the user with a menu of options associated with that device hardware (i.e. Wi-Fi networks to join, Bluetooth devices to pair, activate cellular voice/data/both, etc.).

In yet another embodiment, a user may apply contact pressure to a status bar battery indicator icon to activate a menu populated with one or more predefined collections of settings for various power scenarios (i.e. extreme cutbacks for low battery, high performance for charged battery, maximum performance while charging, etc.). In this way, a user may activate a power saving mode that allows them to stay connected to a Wi-Fi network while saving power by dimming the display (i.e. while web browsing), and a different power saving mode which turns off Wi-Fi without having to dim the display as much (i.e. reading an eBook, etc.).

In various embodiments, some or all of these device attribute related operations may be available through gesture only after the user provides some form of activation input (i.e. touching an icon in the status bar, performing a simple gesture, etc.). In this way, gesture collisions (i.e. assignment of more than one operation to the same gesture, etc.) may be avoided.

In various embodiments, a gesture may be associated with application-specific operations. For example, in some embodiments, a user may interact with an email client through multiple interaction surfaces. In one embodiment, a user may scroll through a list of messages and select one for viewing using a back interaction surface. In another embodiment, a user may apply a contact pressure on a back interaction surface, then swipe downward, to forward the current message. In yet another embodiment, a user may apply a contact pressure on a back interaction surface, then swipe upward, to reply to the current message. As an option, a user may perform this gesture using two fingers to reply to all recipients of the message.

In other embodiments, a user may interact with a web browser through multiple interaction surfaces. In one embodiment, for example, a user may apply contact pressure on a link within a webpage, then perform a quick flicking gesture, in any direction, to open the link in a background tab or window. In another embodiment, a user may open a link in a new tab or window by pressing on the link through a back interaction surface for a predetermined amount of time.

In still other embodiments, a user may interact with a camera application through multiple interaction surfaces. For example, in one embodiment, a user may indicate a point to be used for white balancing by making contact with the displayed point through a back interaction surface. In another embodiment, a user may adjust one or more camera properties by applying different amounts of contact pressure on an icon shown on the front display. Possible camera properties may include, but are not limited to, aperture settings, simulated film speed, f-stop, degree of fill flash, and/or any other camera property or setting.

In even more embodiments, a user may interact with a movie player through a back interaction surface. For example, in one embodiment, a menu may fade into view when a user applies a contact pressure on the back interaction surface. The menu may allow the user to perform one or more movie-related operations, including but not limited to, toggling subtitles, selecting an audio track, selecting a chapter or bookmark, and/or any other movie related operation or setting.

In other embodiments, a user may interact with a navigation application using a back interaction surface. For example, in one embodiment, a user may cycle through a plurality of map layers by applying different levels of contact pressure on the back interaction surface. Possible map layers may include, but are not limited to, satellite images, street maps, weather maps, traffic maps, points of interest, navigational route, and/or any other type of map or navigational information.

In various embodiments, some or all of these application-specific operations may be available through gesture only after the user provides some form of activation input (i.e. touching an icon in the status bar, performing a simple gesture, etc.). In this way, gesture collisions (i.e. assignment of more than one operation to the same gesture, etc.) may be avoided.

In various embodiments, gestures may be associated with operations that are carried out as functions of the gesture input, when the gesture is performed and identified.

In various embodiments, the operations associated with a gesture may be carried out as a function of the associated gesture dynamics. In the context of the present description, gesture dynamics are aspects of a gesture that may vary without changing the identity of the gesture. Possible aspects may include, but are not limited to, contact point velocity, contact point acceleration, contact pressure velocity, contact pressure acceleration, time to complete gesture, and/or any other aspect which may be associated with a gesture.

In various embodiments, the association between gesture and operation may be context-dependent. In some embodiments, the association depends on application context (e.g., which application is active, etc.). For example, in one embodiment, a gesture which scrolls a text field in one application may turn a page when performed in a different application.

In other embodiments, the association may depend on application or state context (e.g., whether or not there is an active selection, whether or not a control has been activated, etc.). For example, in one embodiment, a gesture which may be used to select text may move text if performed when text has already been selected.

In other embodiments, the association may be independent of context, such that performing the gesture may cause the same operation to be carried out, regardless of what application is active. For example, a gesture which brings up an interface to adjust screen brightness and volume may be defined such that it is always available.

In various embodiments, a user may be given feedback as a gesture is performed. For example, in one embodiment, a representation of the gesture may be temporarily displayed as the gesture is performed. In this way, a user may be more aware of the form of the gesture they are performing. As an option, the geometry of the displayed gesture may be smoothed or otherwise modified.

FIG. 19 shows an exemplary contact pressure-based gesture 1900 for scrolling a text field, in accordance with one embodiment. As an option, the gesture 1900 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the gesture 1900 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.

In one embodiment of a pressure-based gesture, the display properties of one or more display(s) may be altered by the gesture, including the scroll speeds of one or more scrollable objects (e.g., text fields, images, cover art, etc.). Scrolling is a common operation, and is often assigned to a gesture in touch-based devices.

In one embodiment of a pressure-based gesture, one or more inputs may alter the scrolling speeds of one or more areas on the display. As a specific example, a user may wish to scroll quickly through a very large collection of objects (e.g., contact names, pages of text, photographs, etc.), and desires to control the speed of scrolling in a simple fashion. While performing a classic swipe gesture to scroll through the collection, the user may also apply increasing contact pressure to a pressure-sensitive surface as a means of controlling the scroll speed (e.g., increased contact pressure yields increased scroll speed, etc.). A swipe, slide or other simple gesture may be used.

See, for example, exemplary pressure-based gesture 1900. As shown, the gesture starts at touch event 1902, which involves a single finger is making contact at location L1, at time T1, while exerting contact pressure P1, in accordance with one embodiment. The gesture ends at touch event 1904, with touch event attributes L2, T2, and P2. In one embodiment, the sliding motion from L1 to L2 may be described as a swipe gesture.

As shown in plot 1906, as the contact pressure increases from P1 to P2, the scroll speed increases as well, from S1 to S2. In one embodiment, scroll speed may be a display function (in this case, a function of contact pressure). As an option, pressure-dependent display functions may be step-wise, changing in response to changes in discrete touch states, or continuous functions of a contact pressure level.

In various embodiments, pressure-based gestures may be classified as either dynamic gestures or static gestures. In the context of the present description, a dynamic gesture is a gesture that requires movement across or in proximity to an interaction surface. For example, in one embodiment, a swipe gesture may be classified as a dynamic gesture.

In the context of the present description, a static gesture refers to a gesture which does not involve movement across or in proximity to an interaction surface. Examples of static gestures may include, but are not limited to, button presses (real or virtual), multi-finger taps, operating a mechanical switch, a squeeze, and/or any other gesture which does not require motion.

In one embodiment of a pressure-based gesture that alters display properties, a scroll speed display function may be defined such that scroll speed increases in a non-linear fashion with respect to the contact pressure exerted in a swipe gesture.

In various embodiments, pressure-based gestures may be associated with different operations. For example, in one embodiment, pressure-based gestures may alter one or more display properties. Display properties may include, but are not limited to, backlight intensity, pixel color, scroll bar sensitivity, slideshow rate, and/or any other property associated with a display or its contents. As a specific example, a device may be in a sleep mode with the display and backlight inactive. A user may move his finger into proximity of a backtouch sensor in order to activate the display and the display backlight intensity to a low intensity level. By increasing the pressure on the backtouch sensor, the backlight intensity may be increased. Alternatively, the backlight intensity may be initially activated at a high level (e.g., depending on ambient light sensor etc.). In this case increasing pressure on the backtouch display may dim the backlight.

In one embodiment of a pressure-based gesture that alters a scroll speed, as the gesture magnitude is increased, the rate of scroll speed increase is increased. In other words, the scroll acceleration is increased.

In the context of the present description, gesture magnitude refers to the magnitude of the associated gesture dynamics. For example, in one embodiment, the gesture magnitude of a swipe gesture may include the length of the swipe and/or the contact pressure exerted during the swipe.

In one embodiment of a pressure-based gesture to control scroll acceleration, the scroll acceleration may depend on the gesture acceleration. Thus, if the contact is such that the contact point is accelerating with time (e.g., positive contact point acceleration), the scroll acceleration may be positive. In another embodiment, if the contact point acceleration is negative then the scroll acceleration may be negative (e.g., scroll speed decreased, etc.).

In one embodiment of a pressure-based gesture to control scroll acceleration, the scroll acceleration may be both positive and negative, depending on the contact point movement.

In one embodiment of a pressure-based gesture to control scroll acceleration, other display functions may also be altered. Possible display functions include, but are not limited to, selection(s), color, shape, image and/or text magnification, indicator(s) to provide feedback to user, and/or any other display function.

The addition of pressure dependence to already established touch gestures may facilitate user interactions with the device. Often, the efficacy of a gesture is limited by the size of the device. For example, on a device which uses the pinch-to-zoom gesture, zooming far in or out may require repetition of the gesture multiple times, due to screen size.

In one embodiment, the pinch-to-zoom touch gesture may be enhanced as a pressure-based gesture; after performing the pinch motion, the user exerts pressure on the two contact points. So long as the pressure remains above a predefined threshold, the zoom operation may continue inward/outward without requiring additional pinch motions. As an option, the speed of the zooming may be modified by changing the contact pressure level. As another option, any differences in contact pressure level between the two contact points may be dealt with by using the average pressure.

In another embodiment, the swipe to scroll touch gesture may be enhanced as a pressure-based gesture; after performing the swipe, the user exerts pressure on the contact point without further motion. So long as the pressure remains above a predefined threshold, the scroll operation may continue without requiring additional swiping motions. As an option, the scroll speed may vary as a function of the contact pressure level.

FIG. 20 shows an exemplary multitouch pressure gesture 2000 for indicating a direction, in accordance with one embodiment. As an option, the gesture 2000 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the gesture 2000 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.

As previously discussed, touch gestures may sometimes be modified to be pressure-dependent. In various embodiments, multitouch gestures may also be modified to depend upon pressure. As an option, the modified multitouch gestures may depend upon contact pressure differences between different contact points. In the context of the present description, a multitouch pressure gesture refers to a multitouch gesture whose definition relies in part on differences in contact pressure between different contacts. The definition of multitouch pressure gestures may rely on a variation in pressure differences over time, but it is not required of all multitouch pressure gestures.

See, for example, multitouch pressure gesture 2000 shown in FIG. 20. This static gesture is based upon two points of contact, 2002 and 2004. In various embodiments, this gesture may be used to indicate a direction. As depicted in FIG. 20, this multitouch pressure gesture is indicating a left-to-right direction, in accordance with one embodiment. In other embodiments, this gesture may be associated with any other operation, function, or action.

In various embodiments, multitouch pressure gesture 2000 may be performed by first exerting a contact pressure upon contact point 2002 which exceeds a contact pressure being exerted upon contact point 2004. As an option, various embodiments may require that both of these initial contact pressures exceed a predefined threshold contact pressure level. The gesture is completed by altering the contact pressures on the two contact points such that the pressure exerted on 2004 now exceeds that being exerted on 2002. As an option, a user may be required to maintain this pressure inequality for a predefined amount of time. When this gesture is performed using two digits on the same hand, the user's hand may appear to be rocking from left to right. A right to left direction may be indicated by changing the order of the pressures. This type of multitouch pressure gesture is hereinafter referred to as a rocker pressure gesture.

In various embodiments, a rocker pressure gesture may be preferable over simply indicating a side of the device through touch or pressure because it is less likely to be accidentally performed.

In various embodiments, a rocker pressure gesture may be used to modify a selection. For example, in one embodiment, a text selection may be expanded in a particular direction by performing a rocker pressure gesture in the desired direction, and maintaining the contact pressure difference between the two contact points until the text selection is the desired size. As an option, the speed at which the selection expands may be increased/decreased by increasing/decreasing the contact pressure differential. In another embodiment, this gesture may be used to modify the shape of a selection. For example, it may be used to modify the aspect ratio of the selection boundary geometry associated with the selection.

In various embodiments, a rocker pressure gesture may be used in conjunction with a user interface adapted for the visually impaired. For example, in one embodiment, the rocker pressure gesture may be used to move a selection from one UI element (e.g., button, slider, drop down menu, etc.) to the next. When a UI element is selected, the assistive interface may speak the object name and/or magnify it such that the visually impaired user understands. In this way, a visually impaired user may operate a user interface displayed on a screen which often provides zero tactile feedback.

In various embodiments, a rocker pressure gesture may be used to facilitate interaction with the operating system. For example, in one embodiment, this gesture may be used to traverse a list of applications running in a multi-tasking environment. In another embodiment, this gesture may be used to switch between windows in a windowed user environment. In yet another embodiment, a rocker pressure gesture may be used to increase/decrease system settings such as volume and display brightness.

In various embodiments, a rocker pressure gesture may be advantageous in an application environment. For example, in one embodiment, a rocker pressure gesture may be used to turn the pages of an electronic book, or other multipage document displayed as a book. Using a rocker pressure gesture would allow a user to hold the device with both hands while reading, thumbs in contact with the screen, without danger of accidentally triggering a page turn, nor requiring movement of hands or fingers to turn the page.

FIG. 21 shows an exemplary multitouch pressure gesture 2100 for indicating a rotation, in accordance with one embodiment. As an option, the gesture 2100 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the gesture 2100 may be carried out in any desired environment. It should also be noted that the aforementioned definitions may apply during the present description.

In various embodiments, multitouch gestures may enhance the user experience with the addition of pressure sensitivity. For example, in one embodiment, the measured difference in contact pressure levels among different contact points associated with a gesture may determine one or more parameters associated with the gesture. As an option, the one or more parameters may vary as a function of the pressure differential. Possible parameters may include, but are not limited to, speed of transformation, direction of transformation, stringency of a color matching selection, and/or any other parameter which may be associated with any type of action, command, or operation.

In another embodiment, the presence of a pressure differential among contact points associated with a gesture may change the identity of the gesture itself. For example, see FIG. 21.

As shown, multitouch pressure gesture 2100 is a static gesture based upon two points of contact, 2102 and 2104. In various embodiments, this gesture may be used to indicate a rotation. As depicted in FIG. 21, this multitouch pressure gesture is indicating a clockwise rotation, in accordance with one embodiment. In other embodiments, this gesture may be associated with any operation, function, or action.

In various embodiments, multitouch pressure gesture 2100 may be performed by exerting contact pressure upon contact points 2102 and 2104 such that there is a pressure differential. For example, as seen in FIG. 21, the contact pressure associated with contact point 2104 is greater than that associated with contact point 2102. As an option, various embodiments may require that both of these contact pressures exceed a predefined threshold contact pressure level. The gesture is completed by ending one or both contacts, or by performing a different gesture. As an option, a user may be required to maintain this pressure inequality for a predefined amount of time. This type of multitouch pressure gesture is hereinafter referred to as a tipping pressure gesture.

In various embodiments, a tipping pressure gesture may be used to rotate an object or element on a display. For example, in one embodiment, an image or selected portion of an image may be rotated by performing a tipping pressure gesture. As an option, the speed of rotation may depend upon the pressure differential between the two contact points. In another embodiment, the speed of rotation may vary as a function of the distance between the two contact points.

In one embodiment, the rotation may be performed in small angular increments, continuing until the tipping pressure gesture has ended. In another embodiment, the rotation is performed in 90° increments (e.g., changing the orientation of photographs, etc.), independent of gesture length or pressure differential. In some embodiments, the rotation may be performed using one of the contact points as the axis of rotation.

In some embodiments, a tipping pressure gesture may only cause a rotation in one direction (e.g., clockwise, etc.). In other embodiments, the direction of rotation caused by a tipping pressure gesture may depend on the positions of the two contact points with respect to each other. For example, in one embodiment, if the high pressure contact point is to the right of the low pressure contact point, the rotation may be in a clockwise direction, and in a counterclockwise direction otherwise. See, for example, multitouch pressure gesture 2100. In one embodiment, the axis used to make the left/right determination may be the horizontal axis as defined by the current device orientation. In another embodiment, the horizontal axis used to make the left/right determination is defined by device geometry, and is orientation independent. In still other embodiments, the axis used to determine left/right may be independent of device geometry or orientation (e.g., display diagonal, vertical, etc.).

In various embodiments, a tipping pressure gesture may be used to interact with user interface elements. For example, in one embodiment, a tipping pressure gesture may be used to increase/decrease the value of a selected slider or scale. In another embodiment, a tipping pressure gesture may be used to cycle through options on a circular pop-up menu. In still another embodiment, a tipping pressure gesture may be used to quickly scroll through a list of items. Possible items may include, but are not limited to, email messages, songs or videos, files, photos, and/or any other object or data.

In some embodiments, there may exist two or more gestures which are the same or similar in execution. For example, see multitouch pressure gestures 2000 and 2100. While performing a tipping pressure gesture, if a user allows the contact pressure differential to switch sign (i.e. low pressure contact point becomes the high pressure contact point, and visa versa), a rocker pressure gesture may be recognized by the device. In various embodiments, constraints may be placed upon gestures to assist the operating system in differentiating between similar gestures.

In various embodiments, similar or identical gestures may be distinguished from each other through the context of their use. For example, in one embodiment, the recognition of a tipping pressure gesture may be limited to instances where there is a rotatable object selected; the rocker pressure gesture would be available in all other instances. By ensuring similar gestures are not recognizable in the same context, user confusion and erroneous gestures may be reduced. These contexts may include, but are not limited to, selection status, device state, active application, system flags, selection subject matter, and/or any other property or attribute by which contexts may be defined.

In various embodiments, similar or identical gestures may be distinguished from each other by the positions of points of interaction, relative to a common axis system. In the context of the present description, a point of interaction refers to any point on an interaction surface where user interaction may be localized. Points of interaction include, but are not limited to, contact points, localized proximity and/or any other localized user interaction.

In the context of the present description, a common axis system refers to an axis system upon which all gesture data may be evaluated. For example, in one embodiment, the common axis system may be tied to the device geometry (i.e. the “horizontal” axis is always parallel to the long edge of the main display, etc.). In another embodiment, the common axis system may be tied to device orientation, such that the axis system changes depending on accelerometer data (though it is still common to all gestures).

Using a common axis system, an examination of the relative positions of points of interaction associated with a gesture may facilitate differentiation. For example, in one embodiment, rocker pressure gestures may only be recognized if a line between the two contact points is within a predefined deviation from the common horizontal axis (and the tipping pressure gesture available in all other cases). In another embodiment, the similar gestures may all be available at all times, but the location of points of interaction with respect to the common axis system may be used to give priority to certain gestures over others in certain situations.

In various embodiments, similar or identical gestures may be distinguished from each other through the timing associated with their execution. For example, in one embodiment, the performance of a rocker pressure gesture may have to be done within a certain amount of time, otherwise it may be interpreted as multiple tipping pressure gestures. In another embodiment, a tipping pressure gesture may have to be held for a certain amount of time before being recognized, such that the beginning of a rocker pressure gesture may not be identified as a tipping pressure gesture.

In various embodiments, one or more pressure-based gestures may be combined with other multi-touch and/or pressure-based gestures, such that a user may give multiple gesture-based instructions without breaking contact with one or more interaction surfaces. For example, suppose a user finger is at 3 o'clock and a user thumb at 9 o'clock and finger and thumb are one inch apart, both on a front touchscreen. The user may slide finger and thumb further apart. In one embodiment, this may result in an increase in selection area, for example. The user may then increase finger pressure. This may result in the increased selection area being rotated.

In other embodiments, other combinations and permutations of various inputs and gestures on various surfaces and using various sensors may be used to simplify the user interface and make pressure-based gestures more intuitive. As an option, such gestures may be pre-programmed, or programmed by the user, or a combination of both.

Pattern-based gestures may be simple to perform and easy for a user to remember. For this reason, they are well suited to a number of applications. One of the most basic pattern-based gestures is the finger press. In various embodiments, a pattern-based gesture made up of one or more fluctuations of contact pressure between a low level and a higher level at a single contact point may be associated with often used operations. For example, in one embodiment, a double press (i.e. increase then decrease contact pressure twice) may activate an interface to switch between active applications in a multitasking environment. In another embodiment, a triple press may activate a pop-up menu populated with iconic representations of the user's preferred actions, contacts, applications, and scripts. In one embodiment, these gestures may be surface agnostic. For example, the application switching interface may be activated no matter which interaction surface received the double press. In another embodiment, these gestures may be surface specific, allowing other system processes and applications to assign operations to these simple gestures without colliding with a system-wide gesture. For example, a triple press on a side surface may activate a pop-up favorites menu, while a triple press on a back surface may activate an application-specific contextual menu.

Another simple pattern-based gesture is the pinch gesture. In various embodiments, this gesture is performed by making simultaneous contact with two different interaction surfaces such a line connecting the two contact points is roughly parallel to the force vectors being applied at said points. An example is pinching a device between a finger and a thumb, the finger and thumb contacting different interaction surfaces. In another embodiment, this gesture may be pressure based. Variations on this gesture may incorporate multiple pinches (i.e. fluctuations of contact pressure between a low level and a higher level, similar to the finger presses previously described).

These simple gestures may be associated with often used operations, including but not limited to, activating device interfaces (i.e. backtouch interface, proximity sensitivity, pressure sensitivity, etc.), displaying a common system interface (i.e. application launcher, system settings, etc.), displaying a menu of user defined “favorites” (i.e. applications, contacts, songs, movies, web bookmarks, recently used documents, etc.), mute volume, and/or any other often used interface or operation. Of course, in other embodiments, these gestures may be associated with any operation, function, or interface.

Building off the previous gesture, a pinch slide gesture is an example of a pattern-based generalized gesture which combines a pinch with a sliding motion. In some embodiments, it may be described as a 1-6 gesture, though it is not limited to just front/back interaction. In various embodiments, this gesture may be performed by pinching the device, then sliding the pinch across the interaction surfaces while maintaining contact. In one embodiment, a contact pressure above a predefined threshold may also be required. This gesture mimics the tactile experience of pushing or pulling an object such as a lever or cord.

In one embodiment, a pinch slide gesture may be used to quickly move through an alphabetical list, similar to using tabs to quickly find a contact quickly in a paper address book. In another embodiment, this operation may be adopted to moving quickly through other sorted lists of items, including but not limited to song lists, application lists, eBooks, and/or any other collection of organized data. As an option, the display may invite the use of this gesture by displaying virtual tabs (i.e. the alphabet, numbers, etc.) along a side of the display where the gesture would be performed.

In another embodiment, a pinch slide gesture may be used to quickly select text. For example, in one embodiment, a selection may be initiated by pinching at the desired location. The selection may be expanded by sliding the pinch to the desired selection end. In another embodiment, this method of selection may be adapted to selecting a portion of an image or graphic (i.e. pinch at one corner of desired selection bounding box and sliding to opposite corner, etc.).

In another embodiment, a pinch slide may be used to move quickly through a large document (i.e. word processing document, web page, image, etc.). For example, in one embodiment, the user may slide a pinch up and down the device, changing the displayed portion of the document relative to the position of the pinch (i.e. the top of the device represents the start of the document, the bottom of the device represents the end, and the relative location of the pinch becomes the portion of the document displayed. In another embodiment, the pinch slide may have to be initiated at a particular location to activate this document navigation functionality. For example, a web browser may have an icon near the top of the display that activates pinch slide navigation when the gesture is initiated on the icon. This functionality may be adapted to two dimensional navigation in a large image, displaying the portion of the image represented by the relative location of the pinch.

In yet another embodiment, a pinch slide gesture may be used to display menus of common operations or applications. For example, in one embodiment, a pinch slide gesture which begins near an edge of a display and then moves inward may cause a menu or window to slide in from that edge of the display. As an option, the menu or window may remain visible until a selection is made. In another embodiment, there may be different menus or windows associated with each edge of a display. In still another embodiment, a window may be closed (i.e. slid back out of view) by using a pinch slide to pull it out a bit farther, then releasing it, similar to rolling up a window shade.

In one embodiment, a user interface may be utilized to present a context based menu for the user. In one embodiment, a user may interact with a display element by exerting contact pressure on a front interaction surface over contact area. At the same time, the user may be in contact with a back interaction surface, over contact area. In various embodiments, contextual menu may be displayed near the backtouch contact, after the user performs a predefined static gesture within contact area. The user may then select a menu item using small movements and contact pressure applied on the back interaction surface.

In one embodiment, the user interface may be utilized to provide easy, quick access to a plurality of favorite operations, applications, contacts, documents, and/or other types of objects. In various embodiments, favorites panel may be displayed in response to a gesture, the selection of a hardware or software button, voice command, accelerometer input (i.e. shaking the device, flicking the users wrist, etc.), and/or any other form of user input. In one embodiment, once favorites panel is displayed, a user may select an item using a slide pad located on the side of the device.

In one embodiment, a user may configure which items are displayed in the favorites panel. In another embodiment, the favorites panel may be automatically populated by the device, based upon factors which may include, but are not limited to, historical usage, date of last use, frequency of use, popularity information obtained from a remote system, and/or any other factors.

In the various embodiments described above, different combinations of user input have been associated with different actions. It should be understood that the described user inputs may be associated with any action, function, operation or interface, just as the described actions may be triggered by any combination of user inputs, according to different embodiments.

In the context of the present description, a cue refers to feedback, visual or otherwise, which is provided to the user. Examples of cues include, but are not limited to, the display logic within selection functions, visual representation of contact point movement, proximity feedback, contact pressure level feedback, and/or any other form of user feedback. For example, in one embodiment, the anchor object may be highlighted (e.g., change of color, text highlight, 3D representation, flashing or other dynamic selection area behavior, etc.)

In various embodiments, cues may include 3D or pseudo-3D effects. For example, in one embodiment, the anchor object may be made to appear to be floating above a background image, using 3D cues.

In various embodiments, a cue may modify a 2D representation into a pseudo-3D representation responsive to user inputs such as device orientation. For example, in one embodiment, the shadow of an object may be adjusted according to device orientation, to provide the illusion that an object is floating above a background. In another embodiment, the pseudo-3D representation may be responsive to user focus (including, in some embodiments, user gaze).

FIG. 22 shows a 3D layered user interface 2200, in accordance with one embodiment. As an option, the user interface 2200 may be implemented in the context of the architecture and environment of the previous Figures or any subsequent Figure(s). Of course, however, the user interface 2200 may be implemented in any desired environment. The aforementioned definitions may apply during the present description.

In the context of the present description, a 3D layered user interface refers to a user interface in which displayed objects may exist in one of a plurality of layers. For example, see FIG. 22.

As shown, user interface 2200 is comprised of two layers, a front layer 2202 and a back layer 2204. These layers are depicted in a staggered arrangement, to illustrate the depth; it should be noted that in various embodiments, the layers would be aligned. Object 2206 exists in the front layer, while object 2208 exists in the back layer. In various embodiments, a user may interact with the layers separately.

In various embodiments, a 3D layered user interface may be implemented in a layered display device. In the context of the present description, a layered display device refers to a device with at least one display that is made up of a plurality of overlapping display layers, each layer able to display content independent of other layers, with all layers facing the same direction. For example, in one embodiment of a layered display device, the device may have a display made up of a transparent display located on top of a second display, both facing forward. In another embodiment, the display layers may be separated by a non-opaque material, to enhance the layered appearance.

In another embodiment of a layered display device, the display layers may include one or more e-ink layers. In yet another embodiment, the display layers may include one or more LCD layers. In still another embodiment, the display layers may include both e-ink and LCD layers. Other embodiments may include any combination of layers embodying any display technology.

In various embodiments, a 3D layered user interface may be implemented in a device having single layer displays through the use of virtual display layers. In the context of the present description, a virtual display layer refers to a collection of display elements which have all been assigned the same apparent depth within the 3D layered user interface. In various embodiments, a 3D layered user interface may make use of multiple virtual display layers. For example, in one embodiment, a 3D layered user interface may have a virtual foreground display layer and a virtual background display layer.

Additionally, in the context of the present description, a display element refers to the region of the display allotted to an identifiable visual object. Identifiable visual objects may include, but are not limited to, digital objects (i.e. images, text boxes, UI control widgets, selections, etc.), subject matter objects (i.e. people within a photograph, letters and/or words within text, etc.), and/or any other type of identifiable visual object. When located in a virtual display layer, display elements may be referred to as 3D display elements.

In various embodiments, virtual display layers may be given the appearance of depth through the use of 3D depth cues. In the context of the present description, a 3D depth cue refers to an effect, manipulation, transformation, animation, or operation which gives a visual indication of simulated depth. For example, in one embodiment, a 3D depth cue may be a blur operation, such that layers located at successively greater depths may appear blurrier than those closer to the user. In various embodiments, one or more 3D depth cues may be used to give the appearance of depth to one or more virtual display layers. In one embodiment, different 3D depth cues may be used for different virtual display layers. In another embodiment, 3D depth cues may be used in conjunction with a 3D layered user interface implemented in a layered display device, to enhance the layered appearance.

In one embodiment, a 3D depth cue may include the addition of a shadow element to display elements located within a virtual display layer, making them to appear to float above the next virtual display layer. As an option, the location of the light source(s) casting the shadows may be based in part on data obtained from one or more cameras located on the host device.

In one embodiment, a 3D depth cue may include the addition of a depth-based fog, giving the appearance that the layers exist in an environment with a thin, uniform fog. In this way, distant objects may be “foggier” than objects close to the user.

In one embodiment, a 3D depth cue may include a depth-based apparent rate of movement. For example, in a situation where a user is swiping through multiple screens of layered content, the layers closer to the user may appear to move faster than those more distant, giving the appearance of depth.

In one embodiment, a 3D depth cue may include a time-dependent visual transformation. For example, in one embodiment, a background layer may be transformed such that it appears to be below rippling water, while the foreground layer appears to be floating on the surface. In another embodiment, the visual transformation may be static.

In one embodiment, a 3D depth cue may include animated visual elements which appear to exist in between layers. Elements may include, but are not limited to, birds or insects flying, shooting stars, tiny people walking, grass blowing in the wind, and/or any other visual element.

In one embodiment, a 3D depth cue may include moving and/or transforming display elements within a virtual display layer based upon detected user gaze and/or head position. For example, in one embodiment, display elements may be compressed and virtual display layers spread apart if the device determines the user is viewing the display from an angle, the degree of transformation varying with estimated viewing angle. In another embodiment, display elements located on different virtual display layers may be slide around within their respective layers as the user changes their angle of viewing, allowing them to “look around a corner” to see display elements that would be obscured when viewed head on.

In one embodiment, a 3D depth cue may include moving and/or transforming display elements within a virtual display layer based upon changes in device orientation detected through one or more hardware interfaces (i.e. accelerometer, tilt sensor, compass, etc.).

In one embodiment of a 3D layered user interface, the 3D cues may be implemented such that the user interface has an apparent depth equal to the thickness of the device. In another embodiment, the 3D cues may be implemented such that the user interface has an apparent depth equal to the distance between a front display and a backtouch interface.

In various embodiments, a user may interact with the layers separately. For example, in one embodiment, a front interaction surface may be used to interact with display elements in a foreground display layer, and a back interaction surface may be used to interact with display elements in a background display layer. See, for example, FIG. 22.

User interface 2200 is being implemented in a device having front and back touch-sensitive interaction surfaces. As shown, a user may manipulate display element 2206, located in front layer 2202, through a gesture 2210 performed on the front interaction surface. At the same time, a user may manipulated display element 2208, located in back layer 2204, through a gesture 2212 performed on the back interaction surface. In one embodiment, the manipulation of one of these display elements may be done completely independent of the other display element.

In one embodiment of a 3D layered user interface, a front input interface may be used to move display elements on a virtual foreground display layer. In another embodiment of a 3D layered user interface, a rear input interface may be used to move display elements on a virtual background display layer.

In various embodiments, there may be display layers with which a user may not interact. For example, in one embodiment, there may be an emphasis display layer situated in front of all other display layers. In the context of the present description, an emphasis display layer refers to a display layer (virtual or physical) which is used to provide visual emphasis to one or more display elements without providing independent means of user interaction. In other words, when a user interacts with a display element located in an emphasis display layer, they might also interact with one or more other layers. For example, in one embodiment, an emphasis display layer may be used to indicate results of a text search within a document (i.e. target words appear to float above the document, etc.). Although located on a different display layer, any text selection made by the user may incorporate text from both the emphasis display layer and the display layer housing the document. In another embodiment, an emphasis display layer may cause hyperlinks within a webpage to appear to float above the rest of the page, though still able to be selected along with non-hyperlink text.

In another embodiment, an emphasis display layer may be used to display user avatars floating above the text of a chat session; the user may not interact with the avatars. Other examples of the use of an emphasis display layer may include, but are not limited to, a status bar floating at the top of a display, pop-up volume indicators which appear when the volume is changed, icons within the status bar, and/or any other circumstance where visual emphasis is desired.

Another example of a display layer with which a user may not interact is an ambiance display layer. In the context of the present description, an ambiance display layer refers to a display layer (virtual or physical) which is used to display decorative display elements with which a user may not directly interact with. For example, in one embodiment, one or more ambiance display layers may be used to create the appearance of three-dimensional structure within the 3D layered user interface (i.e. walls, shelves, backdrop, etc.). In another embodiment, an ambiance display layer may be used to display a wallpaper or some other backdrop which is present behind the elements and controls of the user interface. In yet another embodiment, a user may customize one or more ambiance display layers through a separate user interface, but not through direct interaction.

In one embodiment of a 3D layered user interface, a rear touch input may be used to control display elements located on a virtual display layer. In another embodiment, a rear touch input may be used together with a front touch input to control one or more display elements on one or more virtual display layers.

In other embodiments of a 3D layered user interface, a user may interact with one of a plurality of layers through a back interaction surface, the layer being selected using a pressure-sensitive front interface. For example, in one embodiment, a user may select one of a plurality of display layers by applying a predefined level of contact pressure on the front interaction surface, and interact with the selected layer using a back interaction surface. As an option, 3D depth cues may be used to indicate “moving” through the display layers as the contact pressure is changed (i.e. magnifying and fading display layers as they are passed by, sharpening previously blurry display layers as they grow closer, etc.).

In one embodiment, one or more display layers associated with a 3D layered user interface may only be interacted with through coordinated user input on multiple interaction surfaces. For example, in one embodiment, a touch input on the front of the device together with a touch input on the back of the device may control the overlap between two or more virtual display layers.

In one embodiment, display elements may be assigned to virtual display layers, just as they may be assigned to physical display layers in a layered display device. In another embodiment, the process of assigning display elements to virtual display layers may be the same as the process of assigning display elements to physical display layers in a layered display device. In yet another embodiment, a 3D layered user interface may be designed such that it may take advantage of physical display layers, if present, or use virtual display layers if only single layer displays are available. It should be understood that all functionality and embodiments described with respect to virtual display layers may also be implemented in a layered display device.

In various embodiments, a 3D layered user interface for augmented reality may use 3D depth cues to visually differentiate augmenting display elements associated with physical locations near the user from those associate with distant physical locations. In one embodiment, 3D depth cues may be used to give augmenting display elements an apparent distance from the user roughly equal to the physical location with which they are associated. In another embodiment, 3D depth cues may be used to augment the video signal such that it has a three dimensional appearance.

The various embodiments set forth herein may be implemented in a variety of devices including, but not limited to, consumer devices, phones, cell phones, internet phones, music players, video players, cameras, social interaction devices, radios, TVs, watches, personal communication devices, electronic wallets, smart jewelry, personal computers, tablets, laptop computers, embedded systems, electronic glasses, and/or any other device that includes one or more sensors or inputs. Possible inputs may include, but are not limited to, keyboard, mouse, touchscreen(s), touchpad(s), interaction surfaces, a joystick, touchwheel, touchknob, touchbutton, touchball, trackball, scroll wheel, thumb-mouse, switch, button, wheel, knob, ball, pedal, voice recognition, audio command, audio prompt, gaze control, eye tracking, head position sensing, facial and/or gestural and/or postural expression recognition, and/or other inputs and combinations of these. Possible sensors may include, but are not limited to, range sensors, scanners, magnetometers, GPS receivers, accelerometers, cameras, depth sensors, light-field cameras, ambient light sensors, pressure sensors, infra-red (IR) sensors, UV sensors, touch and/or proximity sensor(s), grasp sensors, material sensors, chemical sensors, physical sensors, electrical sensors, biological sensors, weight sensors, force sensors, mass sensors, gas sensors, vapor sensors, particle sensors, wireless sensors, RF and other electromagnetic sensors, and/or other sensors and combinations of these.

In various embodiments, the device may include one or more different forms of displays and/or other outputs including, but not limited to, physical or other actuators, motors, tactile feedback or other tactile output, weight or mass feedback, force feedback or other force outputs, mechanical outputs, audio outputs, alarms, horns, bells, indicators, dials, meters, barcodes and/or other display patterns, vibrations, ultrasonic outputs, wireless and RF outputs, optical and light outputs, avatars, visual outputs, multiscreen displays, multilayer displays, 3D displays, holographic projections and outputs, laser displays and other laser outputs, projection systems, heads-up displays, and/or other outputs or combinations of these.

In various embodiments, the device may support one or more types of applications including, but not limited to, search applications, contacts and/or friends applications, messaging applications, telephone applications, video conferencing applications, e-mail applications, communications applications, voice recognition applications, instant messaging (IM) applications, blog and/or blogging applications, photographic applications, shopping applications, payment applications, digital camera applications, digital video camera applications, web browsing and browser applications, digital music player applications, digital video player applications, cloud applications, office productivity applications, and/or other types of applications or combinations or multiple instances of these.

In other embodiments, different applications on the device may use one or more interface devices that may be physical interface devices or virtual interface devices including, but not limited to, touchscreens, touchpads, soft inputs, hard inputs, keyboards, buttons, knobs, sliders, switches, and/or any other kind of interface device.

In various embodiments, the device may have a common physical architecture (i.e. display, touchscreen, etc.) such that the device may be used with different applications with one or more common user interfaces with one or more common properties (i.e. easy to use, simple, intuitive, transparent, etc.).

In various embodiments, user interfaces may include one or more physical interface devices (i.e. keyboard, joysticks, buttons, sliders, switches, knobs, other hard inputs, etc.) and/or one or more virtual or soft interface devices (i.e. soft keyboard, programmable buttons, UI sliders, UI knobs, check boxes, text fields, other soft inputs, etc.).

In various embodiments, the device may implement one or more types of keyboard (i.e. soft keyboard, physical keyboard, virtual keyboard, keypad, etc.). In one embodiment, the keyboard(s) may include standard keyboard arrangements (i.e. QWERTY configurations, etc.), and/or non-standard arrangements and/or symbols on the keys (i.e. soft keys, buttons, pixels, displayed icons etc.). In another embodiment, the keyboard(s) may include a reduced number of symbols (i.e. letters, icons, soft keys, etc.) compared to the number of keys on a conventional physical keyboard. In yet another embodiment, one or more alternative keyboards may make it easier for users to select one or more symbols in the keyboard, and thus, one or more corresponding representations (i.e. letter, number, special symbol, graphics, emoticon, abbreviation, slang, acronym, etc.). In still another embodiment, one or more keyboards and their associated contents and/or layouts may be modified. For example, in one embodiment, one or more displayed symbols on the keyboard may be modified in accordance with application, application state, device state, settings (i.e. language, etc.), and/or user actions.

In various embodiments, one or more keyboards may be customized to one or more applications and/or users. For example, in one embodiment, one or more keyboard embodiments may be customized to one or more users based on factors including, but not limited to, application states, stored application history, web cookies, a word usage history (i.e. lexicography, slang, individual usage, etc.), language, country, and/or any other factor. In another embodiment, one or more keyboards may be modified to reduce the probability of user error when selecting one or more keys when using the soft keyboards.

In various embodiments, the device may have multiple functions or roles including, but not limited to, telephone, video conferencing, e-mail, instant messaging, blogging, digital photography, digital video, web browsing, digital music playing, social interaction, shopping, searching, and/or any other function or role. As an option, instructions for performing the device functions may be included in a computer readable storage medium, or as a computer program product configured for execution by one or more processors.

In various optional embodiments, the features, capabilities, and/or technology, etc. of the tablets, mobile devices, computing devices, networks, hardware, and/or software, etc. disclosed in the following patents/applications may or may not be incorporated into any of the embodiments disclosed herein: U.S. Pat. No. 7,479,949; U.S. Pat. No. 7,748,634; US20060017692; US20100188268; US20110145692; U.S. Pat. No. 7,954,101; US20070103454; US20100210329; US20070091825; US20060013219; U.S. Pat. No. 7,916,166; US20090213205; US20070296805; US20100205148; US20100188473; U.S. Pat. No. 7,441,196; U.S. Pat. No. 7,894,641; U.S. Pat. No. 7,966,578; U.S. Pat. No. 7,479,949; U.S. Provisional Application No. 61/470,336, filed Mar. 31, 2011, titled “SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR UTILIZING IMAGE RECOGNITION TO PERFORM AN ACTION”; U.S. Provisional Application No. 61/470,391, filed Mar. 31, 2011, titled “SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR ENABLING A PERIPHERAL DEVICE TO UTILIZE FUNCTIONALITY ASSOCIATED WITH A MOBILE DEVICE”; and U.S. Provisional Application No. 61/569,213, filed Dec. 9, 2011, titled “SYSTEM, METHOD, AND COMPUTER PROGRAM PRODUCT FOR MODIFYING CONTENT.” Each of the foregoing patents/applications are hereby incorporated by reference in their entirety for all purposes.

While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims (30)

What is claimed is:
1. An apparatus, comprising:
at least one non-transitory memory storing instructions and a plurality of applications;
a touch screen; and
one or more processors in communication with the at least one non-transitory memory and the touch screen, wherein the one or more processors execute the instructions to cause the apparatus to:
display an object and at least a portion of an interface in a same virtual display layer;
detect a single static gesture being applied to the touch screen on the object, the single static gesture varying in pressure between a plurality of discrete touch states;
perform a first pressure-dependent step-wise function in response to a first change in the discrete touch states;
perform a second pressure-dependent step-wise function in response to a second change in the discrete touch states; and
during at least a portion of the single static gesture being detected and as a function of an increase in a magnitude of the pressure of the single static gesture being detected on the touch screen on the object, continuously blur the at least portion of the interface such that the at least portion of the interface and the object are displayed in different virtual display layers.
2. The apparatus of claim 1, wherein the apparatus is configured such that the at least portion of the single static gesture is after the first change in the discrete touch states and before the second change in the discrete touch states.
3. The apparatus of claim 1, wherein the apparatus is configured such that the at least portion of the single static gesture is before the first change in the discrete touch states, and the second change in the discrete touch states is after the first change in the discrete touch states.
4. The apparatus of claim 1, wherein the apparatus is configured such that the first pressure-dependent step-wise function is performed after a cessation of the single static gesture is detected.
5. The apparatus of claim 1, wherein the apparatus is configured such that the second pressure-dependent step-wise function is performed before a cessation of the single static gesture is detected.
6. The apparatus of claim 1, wherein the apparatus is configured such that the first pressure-dependent step-wise function and the second pressure-dependent step-wise function are not performed if a cessation of the single static gesture is detected during the at least portion of the single static gesture.
7. The apparatus of claim 1, wherein the apparatus is configured such that the continuous blurring is a cue to a user regarding the magnitude of the pressure of the single static gesture.
8. The apparatus of claim 1, wherein the apparatus is configured such that the continuous blurring is a cue to a user regarding access to at least one of: the first change in the discrete touch states or the second change in the discrete touch states.
9. The apparatus of claim 1, wherein the apparatus is configured such that the continuous blurring emphasizes an accessibility, via the object, to at least one of: the first change in the discrete touch states or the second change in the discrete touch states.
10. The apparatus of claim 1, wherein the apparatus is configured such that the continuous blurring indicates a movement between a first virtual layer including the at least portion of the interface and a second virtual layer including the object.
11. The apparatus of claim 1, wherein the apparatus is configured such that the continuous blurring indicates a movement of the object between the same virtual display layer and another virtual display layer including the object.
12. The apparatus of claim 1, wherein the apparatus is configured such that the single static gesture includes a press.
13. The apparatus of claim 1, wherein the apparatus is configured such that the single static gesture is a continuous gesture.
14. The apparatus of claim 1, wherein the apparatus is configured such that the single static gesture varies only in pressure.
15. The apparatus of claim 1, wherein the apparatus is configured such that at least one of:
said touch screen includes a touch interface and a display;
said touch screen is a combination of a touch interface and a display;
said touch screen is on a front face of the apparatus;
said touch screen is on a back face of the apparatus;
said one or more processors is in direct communication with the at least one non-transitory memory, and the touch screen;
said one or more processors is in indirect communication with the at least one non-transitory memory, and the touch screen;
said one or more processors is in communication, via at least one bus, with the at least one non-transitory memory, and the touch screen;
said display is carried out by the touch screen;
said detection is carried out by the touch screen;
said detection is carried out by the one or more processors;
said detection is carried out by the touch screen in cooperation with the one or more processors;
said detection is carried out by the touch screen in cooperation with the one or more processors by the processor receiving a signal generated by the touch screen in response to the single static gesture;
each instance of the performing is carried out by the touch screen;
each instance of the performing is carried out by the one or more processors;
each instance of the performing is carried out by the touch screen in cooperation with the one or more processors;
said blurring is carried out by the touch screen;
said blurring includes an obscuring;
said blurring results in a vague presentation;
said blurring results in an indistinct appearance;
said single static gesture includes at least one of a touch gesture and/or a press gesture;
said single static gesture includes a combination of a touch gesture component and a press gesture component;
said single static gesture is a first gesture component of an overall gesture that includes another gesture component;
said single static gesture is a first gesture component of an overall gesture that includes a dynamic gesture component;
said single static gesture is a first gesture component of an overall gesture that includes a slide gesture component;
said single static gesture is a first gesture component of an overall gesture that includes a motion component;
said single static gesture is a gesture component of another gesture;
said single static gesture is not a gesture component of another gesture;
said single static gesture is detected on a single contact point on the object;
said single static gesture includes a single press on the object that varies only in pressure;
said single static gesture includes a single-finger contact on the object that varies only in pressure;
said single static gesture does not include multiple intermittent contacts with the touch screen;
said single static gesture does not include contact with the touch screen involving multiple fingers;
said single static gesture varies only in pressure;
said single static gesture remains in contact with the touch screen from an inception thereof up until a completion thereof;
said single static gesture remains in contact with the touch screen from an inception thereof up until a completion thereof;
said single static gesture remains in contact with the touch screen from an inception thereof up until a completion thereof, where the completion includes a cessation of the pressure;
said single static gesture includes a first gesture component that remains in contact with the touch screen from an inception thereof up until a completion thereof, where the completion includes an inception of a second gesture component;
said single static gesture includes a first gesture component that remains in contact with the touch screen from an inception thereof up until a completion thereof, where the completion includes an inception of a second gesture component that includes a dynamic gesture component;
said single static gesture does not involve movement across an interaction surface of the touch screen;
said single static gesture does not involve movement in proximity to an interaction surface of the touch screen;
in a usage scenario where the magnitude of the pressure of the single static gesture surpasses a first magnitude threshold and then surpasses a second magnitude threshold, the single static gesture remains in contact with the touch screen from an inception thereof and while the magnitude of the pressure of the single static gesture surpasses the first magnitude threshold and then surpasses the second magnitude threshold;
said display of the at least portion of the interface and the object in the different virtual display layers is a result of the blurring;
said at least portion of the interface includes another object;
said object includes an icon and the at least portion of the interface includes another icon;
said object includes at least a portion of a message and the at least portion of the interface includes at least a portion of one or more other messages;
said object includes first text and the at least portion of the interface includes second text;
said object includes a hyperlink and the at least portion of the interface includes surrounding text;
said object includes an image and the at least portion of the interface includes one or more other images;
said pressure is detected utilizing one or more of a plurality of contact-sensing technologies including a capacitive-based contact sensing technology, a resistive-based contact sensing technology, an optical-based contact sensing technology, or a surface acoustic wave-based contact sensing technology;
said touch screen is a two-dimensional layered user interface;
said touch screen is a single layer user interface that simulates a three-dimensional layered user interface through use of virtual display layers;
said pressure on the touch screen on the object is detected, by being detected on a selection boundary that, at least in part, overlaps the object;
said discrete touch states are discrete by involving different pressure magnitude thresholds;
said discrete touch states are discrete by being separate touch states;
said discrete touch states are discrete by involving non-overlapping different pressures;
said discrete touch states are discrete by involving pressures that are different, at least in part;
said discrete touch states are discrete by involving some pressures that are different while involving other pressure that are the same;
said discrete touch states are discrete by involving pressure ranges that overlap only in part;
said discrete touch states are discrete by involving pressure ranges that do not overlap;
said discrete touch states are discrete by triggering different functions;
said first pressure-dependent step-wise function includes a display function;
said second pressure-dependent step-wise function includes a display function;
said first pressure-dependent step-wise function is the same as the second pressure-dependent step-wise function;
said first pressure-dependent step-wise function is different from the second pressure-dependent step-wise function;
one of the different virtual display layers in which the object is located, is a clipboard layer;
one of the different virtual display layers in which the at least portion of the interface is located, is a clipboard layer;
said first pressure-dependent step-wise function is associated with the first change in the discrete touch states, by a user;
said first pressure-dependent step-wise function is associated with the first change in the discrete touch states, by a developer;
said first pressure-dependent step-wise function is associated with the first change in the discrete touch states, via system learning;
said second pressure-dependent step-wise function is associated with the second change in the discrete touch states, by a user;
said second pressure-dependent step-wise function is associated with the second change in the discrete touch states, by a developer;
said second pressure-dependent step-wise function is associated with the second change in the discrete touch states, via system learning;
said at least one non-transitory memory includes a single memory for storing the instructions and the plurality of applications;
said at least one non-transitory memory includes a first memory for storing the instructions and a second memory for storing the plurality of applications;
said interface includes a software interface;
said interface includes a graphical user interface;
said blur results from a three-dimensional depth cue;
said blur indicates a movement through different layers;
said first change includes a first change in pressure to at least one of a first sub-range of a range of measurable contact pressures, and the second change includes a second change in pressure to at least one of a second sub-range of the range of measurable contact pressures;
said first change includes a first change in pressure that exceeds a first threshold pressure within a range of measurable contact pressures, and the second change includes a second change in pressure that exceeds a second threshold pressure within the range of measurable contact pressures;
said first change includes a first change in pressure that surpasses a first threshold pressure within a range of measurable contact pressures that, when surpassed, triggers the first pressure-dependent step-wise function, and the second change includes a second change in pressure that surpasses a second threshold pressure within the range of measurable contact pressures that, when surpassed, triggers the second pressure-dependent step-wise function;
said first pressure-dependent step-wise function is step-wise by virtue of including an operation that is not continuous;
said first pressure-dependent step-wise function is step-wise by virtue of including an operation that occurs immediately in response to the first change;
said first pressure-dependent step-wise function is step-wise by including a single operation that occurs in response to the first change;
said second pressure-dependent step-wise function is step-wise by virtue of including an operation that is not continuous;
said second pressure-dependent step-wise function is step-wise by virtue of including an operation that occurs immediately in response to the second change;
said second pressure-dependent step-wise function is step-wise by including a single operation that occurs in response to the second change;
said first pressure-dependent step-wise function is pressure-dependent by being conditionally performed based on the pressure of the gesture detected on the touch screen on the object;
said second pressure-dependent step-wise function is pressure-dependent by being conditionally performed based on the pressure of the gesture detected on the touch screen on the object;
said first pressure-dependent step-wise function is pressure-dependent by being triggered based on the pressure of the gesture detected on the touch screen on the object;
said second pressure-dependent step-wise function is pressure-dependent by being triggered based on the pressure of the gesture detected on the touch screen on the object;
said first pressure-dependent step-wise function is pressure-dependent by being dependent on the pressure of the gesture detected on the touch screen on the object;
said second pressure-dependent step-wise function is pressure-dependent by being dependent on the pressure of the gesture detected on the touch screen on the object;
said continuous blurring is the function of the increase in the magnitude of the pressure of the gesture being detected on the touch screen on the object, by continuously increasing with the increase in the magnitude of the pressure of the gesture being detected on the touch screen on the object;
said blurring occurs after the first change is detected and before the second change is detected;
said blurring occurs only after the first change is detected;
said blurring remains after the second change is detected;
said first change is detected without the second change being detected in a first use scenario, and the second change is detected without the first change being detected in a second use scenario;
said first change is detected without the second change being detected in a first use scenario, and the second change and the first change are detected in a second use scenario; or
said at least portion of the interface includes at least one other object.
16. An apparatus, comprising:
at least one non-transitory memory storing instructions and a plurality of applications;
a touch screen;
a vibrator; and
one or more processors in communication with the at least one non-transitory memory, the touch screen, and the vibrator, wherein the one or more processors execute the instructions to cause the apparatus to:
display a first object and at least one other object in a same virtual display layer;
detect a single static gesture being applied to the touch screen on the first object, the single static gesture varying in pressure between a plurality of touch states;
perform a first pressure-dependent step-wise action in response to a first change in the touch states;
perform a second pressure-dependent step-wise action in response to a second change in the touch states; and
during at least a portion of the single static gesture between the first and second changes in the touch states and before a cessation of the single static gesture, display the first object in a first virtual display layer and the at least one other object in a second virtual display layer, and blur, as a continuous function of an increase in a magnitude of the pressure of the single static gesture being detected on the touch screen on the first object, at least a portion of the second virtual display layer.
17. The apparatus of claim 16, wherein the apparatus is configured such that the single static gesture is a continuous gesture.
18. The apparatus of claim 16, wherein the apparatus is configured such that the blurring is a cue to a user regarding the magnitude of the pressure of the single static gesture.
19. The apparatus of claim 16, wherein the apparatus is configured such that the blurring is a cue to a user regarding an accessibility of the second pressure-dependent step-wise action via the first object.
20. A non-transitory computer-readable media storing computer instructions that when executed by one or more processors of a mobile device, cause the mobile device to:
display an object and at least one other object in a same virtual display layer;
detect a gesture being applied to a touch screen on the object, the gesture including a continuous static gesture that varies in pressure; and
during at least a portion of the continuous static gesture before a cessation thereof, increase, as a function of an increase in a magnitude of the pressure of the continuous static gesture being detected on the touch screen on the object, a blurring of the at least one other object, such that the at least one other object appears to be increasing in depth as compared to the object, and the object and the at least one other object appear to be in different virtual display layers.
21. The non-transitory computer-readable media of claim 20, wherein the increase of the blurring is a cue to a user regarding the magnitude of the pressure of the continuous static gesture.
22. The non-transitory computer-readable media of claim 20, wherein the increase of the blurring is a cue to a user regarding an accessibility of a subsequent action via the object.
23. An apparatus, comprising:
at least one non-transitory memory storing instructions and a plurality of applications;
a touch screen;
a vibrator; and
one or more processors in communication with the at least one non-transitory memory, the touch screen, and the vibrator, wherein the one or more processors execute the instructions to cause the apparatus to:
display a first object and at least one other object in a same virtual display layer;
detect a gesture being applied to the touch screen on the first object;
during at least a portion of the gesture before a completion thereof, display the first object in a first virtual display layer and the at least one other object in a second virtual display layer and increase, as a function of an increase in a magnitude of a pressure of the gesture being detected on the touch screen on the first object, a blurring of at least a portion of the second virtual display layer such that the at least portion of the second virtual display layer appears to be increasing in depth as compared to the first virtual layer; and
in response to the completion of the gesture, perform an action and provide touch-perceptible output.
24. The apparatus of claim 23, wherein the apparatus is configured such that the increase in the blurring is a cue to a user regarding the magnitude of the pressure of the gesture.
25. The apparatus of claim 23, wherein the apparatus is configured such that the increase in the blurring is a cue to a user regarding an accessibility of the action.
26. The apparatus of claim 23, wherein the apparatus is configured such that:
after the blurring is increased and during at least another portion of the gesture before the completion thereof, at least a portion of a window is resized as a function of a change in the magnitude of the pressure of the gesture being detected on the touch screen.
27. The apparatus of claim 26, wherein the apparatus is configured such that the blurring and the resizing are cues to a user regarding the magnitude of the pressure of the gesture.
28. The apparatus of claim 26, wherein the apparatus is configured such that the increase in the blurring is a cue to a user regarding an accessibility of the at least portion of the window.
29. The apparatus of claim 26, wherein the apparatus is configured such that the resizing is a cue to a user regarding an accessibility of the action.
30. The apparatus of claim 26, wherein the apparatus is configured such that the resizing is a cue to a user regarding a status of the completion of the gesture.
US15/957,190 2011-08-05 2018-04-19 Pressure-based interface system, method, and computer program product with virtual display layers Active US10209808B1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US201161515835P true 2011-08-05 2011-08-05
US201161566577P true 2011-12-02 2011-12-02
US201161569213P true 2011-12-09 2011-12-09
US201161581918P true 2011-12-30 2011-12-30
US13/567,004 US9417754B2 (en) 2011-08-05 2012-08-03 User interface system, method, and computer program product
US15/072,351 US10013094B1 (en) 2011-08-05 2016-03-16 System, method, and computer program product for a multi-pressure selection touch screen
US15/957,190 US10209808B1 (en) 2011-08-05 2018-04-19 Pressure-based interface system, method, and computer program product with virtual display layers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/957,190 US10209808B1 (en) 2011-08-05 2018-04-19 Pressure-based interface system, method, and computer program product with virtual display layers

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/072,351 Continuation US10013094B1 (en) 2011-08-05 2016-03-16 System, method, and computer program product for a multi-pressure selection touch screen

Publications (1)

Publication Number Publication Date
US10209808B1 true US10209808B1 (en) 2019-02-19

Family

ID=56164181

Family Applications (19)

Application Number Title Priority Date Filing Date
US13/567,004 Active 2033-10-16 US9417754B2 (en) 2011-08-05 2012-08-03 User interface system, method, and computer program product
US15/072,351 Active 2033-04-28 US10013094B1 (en) 2011-08-05 2016-03-16 System, method, and computer program product for a multi-pressure selection touch screen
US15/072,352 Active 2033-04-27 US10013095B1 (en) 2011-08-05 2016-03-16 Multi-type gesture-equipped touch screen system, method, and computer program product
US15/072,354 Active 2033-06-03 US10133397B1 (en) 2011-08-05 2016-03-16 Tri-state gesture-equipped touch screen system, method, and computer program product
US15/719,420 Active US10209806B1 (en) 2011-08-05 2017-09-28 Tri-state gesture-equipped touch screen system, method, and computer program product
US15/719,427 Active US10146353B1 (en) 2011-08-05 2017-09-28 Touch screen system, method, and computer program product
US15/719,406 Active US10031607B1 (en) 2011-08-05 2017-09-28 System, method, and computer program product for a multi-pressure selection touch screen
US15/957,133 Active US10162448B1 (en) 2011-08-05 2018-04-19 System, method, and computer program product for a pressure-sensitive touch screen for messages
US15/957,206 Active US10203794B1 (en) 2011-08-05 2018-04-19 Pressure-sensitive home interface system, method, and computer program product
US15/957,435 Active US10222893B1 (en) 2011-08-05 2018-04-19 Pressure-based touch screen system, method, and computer program product with virtual display layers
US15/957,424 Active US10120480B1 (en) 2011-08-05 2018-04-19 Application-specific pressure-sensitive touch screen system, method, and computer program product
US15/957,416 Active US10209809B1 (en) 2011-08-05 2018-04-19 Pressure-sensitive touch screen system, method, and computer program product for objects
US15/957,152 Active US10209807B1 (en) 2011-08-05 2018-04-19 Pressure sensitive touch screen system, method, and computer program product for hyperlinks
US15/957,440 Active US10222894B1 (en) 2011-08-05 2018-04-19 System, method, and computer program product for a multi-pressure selection touch screen
US15/957,165 Active US10156921B1 (en) 2011-08-05 2018-04-19 Tri-state gesture-equipped touch screen system, method, and computer program product
US15/957,190 Active US10209808B1 (en) 2011-08-05 2018-04-19 Pressure-based interface system, method, and computer program product with virtual display layers
US15/957,426 Active US10222892B1 (en) 2011-08-05 2018-04-19 System, method, and computer program product for a multi-pressure selection touch screen
US15/957,420 Active US10222891B1 (en) 2011-08-05 2018-04-19 Setting interface system, method, and computer program product for a multi-pressure selection touch screen
US15/969,893 Active US10222895B1 (en) 2011-08-05 2018-05-03 Pressure-based touch screen system, method, and computer program product with virtual display layers

Family Applications Before (15)

Application Number Title Priority Date Filing Date
US13/567,004 Active 2033-10-16 US9417754B2 (en) 2011-08-05 2012-08-03 User interface system, method, and computer program product
US15/072,351 Active 2033-04-28 US10013094B1 (en) 2011-08-05 2016-03-16 System, method, and computer program product for a multi-pressure selection touch screen
US15/072,352 Active 2033-04-27 US10013095B1 (en) 2011-08-05 2016-03-16 Multi-type gesture-equipped touch screen system, method, and computer program product
US15/072,354 Active 2033-06-03 US10133397B1 (en) 2011-08-05 2016-03-16 Tri-state gesture-equipped touch screen system, method, and computer program product
US15/719,420 Active US10209806B1 (en) 2011-08-05 2017-09-28 Tri-state gesture-equipped touch screen system, method, and computer program product
US15/719,427 Active US10146353B1 (en) 2011-08-05 2017-09-28 Touch screen system, method, and computer program product
US15/719,406 Active US10031607B1 (en) 2011-08-05 2017-09-28 System, method, and computer program product for a multi-pressure selection touch screen
US15/957,133 Active US10162448B1 (en) 2011-08-05 2018-04-19 System, method, and computer program product for a pressure-sensitive touch screen for messages
US15/957,206 Active US10203794B1 (en) 2011-08-05 2018-04-19 Pressure-sensitive home interface system, method, and computer program product
US15/957,435 Active US10222893B1 (en) 2011-08-05 2018-04-19 Pressure-based touch screen system, method, and computer program product with virtual display layers
US15/957,424 Active US10120480B1 (en) 2011-08-05 2018-04-19 Application-specific pressure-sensitive touch screen system, method, and computer program product
US15/957,416 Active US10209809B1 (en) 2011-08-05 2018-04-19 Pressure-sensitive touch screen system, method, and computer program product for objects
US15/957,152 Active US10209807B1 (en) 2011-08-05 2018-04-19 Pressure sensitive touch screen system, method, and computer program product for hyperlinks
US15/957,440 Active US10222894B1 (en) 2011-08-05 2018-04-19 System, method, and computer program product for a multi-pressure selection touch screen
US15/957,165 Active US10156921B1 (en) 2011-08-05 2018-04-19 Tri-state gesture-equipped touch screen system, method, and computer program product

Family Applications After (3)

Application Number Title Priority Date Filing Date
US15/957,426 Active US10222892B1 (en) 2011-08-05 2018-04-19 System, method, and computer program product for a multi-pressure selection touch screen
US15/957,420 Active US10222891B1 (en) 2011-08-05 2018-04-19 Setting interface system, method, and computer program product for a multi-pressure selection touch screen
US15/969,893 Active US10222895B1 (en) 2011-08-05 2018-05-03 Pressure-based touch screen system, method, and computer program product with virtual display layers

Country Status (1)

Country Link
US (19) US9417754B2 (en)

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8316124B1 (en) 2008-09-29 2012-11-20 Amazon Technologies, Inc. Managing network data display
US7865594B1 (en) 2008-09-29 2011-01-04 Amazon Technologies, Inc. Managing resources consolidation configurations
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US7930393B1 (en) 2008-09-29 2011-04-19 Amazon Technologies, Inc. Monitoring domain allocation performance
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
JP5920343B2 (en) * 2011-06-10 2016-05-18 日本電気株式会社 The method of the input device and the touch panel
DE112012004717T5 (en) * 2011-11-10 2014-08-21 Tk Holdings Inc. The pressure-sensitive lighting system
JP5720851B2 (en) * 2012-04-27 2015-05-20 株式会社村田製作所 Operation input device and the information display device
DE112013002412T5 (en) 2012-05-09 2015-02-19 Apple Inc. Device, Method, and Graphical User Interface for providing feedback for changing activation states of a user interface object
WO2013169842A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for selecting object within a group of objects
DE202013012233U1 (en) 2012-05-09 2016-01-18 Apple Inc. Device and graphical user interface to display additional information in response to a user Contact
CN108241465A (en) 2012-05-09 2018-07-03 苹果公司 Device and method for providing tactile feedback for operations performed in a user interface
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
WO2013169875A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for displaying content associated with a corresponding affordance
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
WO2013169845A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for scrolling nested regions
AU2013259630B2 (en) 2012-05-09 2016-07-07 Apple Inc. Device, method, and graphical user interface for transitioning between display states in response to gesture
CN109062488A (en) 2012-05-09 2018-12-21 苹果公司 For selecting the equipment, method and graphic user interface of user interface object
WO2013169882A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving and dropping a user interface object
US10203762B2 (en) * 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
JP2014027448A (en) * 2012-07-26 2014-02-06 Sony Corp Information processing apparatus, information processing metho, and program
US9939963B2 (en) * 2012-08-14 2018-04-10 Christopher V. Beckman Techniques improving displays
JP5798532B2 (en) * 2012-08-23 2015-10-21 株式会社Nttドコモ User interface device, a user interface method, and program
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US20140168093A1 (en) * 2012-12-13 2014-06-19 Nvidia Corporation Method and system of emulating pressure sensitivity on a surface
US9781223B2 (en) * 2012-12-28 2017-10-03 Facebook, Inc. Conserving battery and data usage
WO2014105274A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for navigating user interface hierarchies
WO2014105279A1 (en) 2012-12-29 2014-07-03 Yknots Industries Llc Device, method, and graphical user interface for switching between user interfaces
EP2939096A1 (en) 2012-12-29 2015-11-04 Apple Inc. Device, method, and graphical user interface for determining whether to scroll or select contents
EP2939098B1 (en) 2012-12-29 2018-10-10 Apple Inc. Device, method, and graphical user interface for transitioning between touch input to display output relationships
US20140195961A1 (en) * 2013-01-07 2014-07-10 Apple Inc. Dynamic Index
EP2952037B1 (en) * 2013-01-31 2018-01-31 Hewlett-Packard Development Company, L.P. Scheduling data in background services on mobile devices
JP5870212B2 (en) * 2013-02-20 2016-02-24 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America Control method and program of the mobile information terminal
CN104020935A (en) * 2013-02-28 2014-09-03 国际商业机器公司 Method and device used for controlling display object on display screen
DE112014001371T5 (en) * 2013-03-15 2015-12-03 Tk Holdings Inc. Man-machine interfaces for pressure-sensitive control in a deflected operating environment and method of using same
US20140267114A1 (en) * 2013-03-15 2014-09-18 Tk Holdings, Inc. Adaptive human machine interfaces for pressure sensitive control in a distracted operating environment and method of using the same
JP2014186392A (en) * 2013-03-21 2014-10-02 Fuji Xerox Co Ltd Image processing device and program
KR20140120972A (en) * 2013-04-03 2014-10-15 삼성전자주식회사 Method and apparatus for inputting text in electronic device having touchscreen
US20140300983A1 (en) * 2013-04-05 2014-10-09 Front Porch Digital, Inc. Media storage and management system
KR20140131072A (en) * 2013-05-03 2014-11-12 삼성전자주식회사 Electronic device and method for manipulaton screen of electronic device based control motion
JP2016521891A (en) * 2013-06-11 2016-07-25 イマージョン コーポレーションImmersion Corporation System and method for pressure-based haptic effect
KR101439250B1 (en) * 2013-06-27 2014-09-11 한국과학기술연구원 Transparent display device and method for providing user interface thereof
CN104298436B (en) * 2013-07-15 2019-03-01 腾讯科技(深圳)有限公司 A kind of quickly revert operating method and terminal
US9235564B2 (en) * 2013-07-19 2016-01-12 International Business Machines Corporation Offloading projection of fixed and variable length database columns
US10234988B2 (en) * 2013-09-30 2019-03-19 Blackberry Limited User-trackable moving image for control of electronic device with touch-sensitive display
JP6356411B2 (en) * 2013-11-28 2018-07-11 京セラ株式会社 Electronics
US20150153952A1 (en) * 2013-12-04 2015-06-04 Autodesk, Inc. Techniques for interacting with handheld devices
DE102013021931A1 (en) * 2013-12-20 2015-06-25 Audi Ag Tastenlos user friendly HMI device
EP3087467A4 (en) * 2013-12-27 2017-09-20 Intel Corporation Audio obstruction effects in 3d parallax user interfaces
US20150185827A1 (en) * 2013-12-31 2015-07-02 Linkedln Corporation Techniques for performing social interactions with content
US20150193383A1 (en) * 2014-01-06 2015-07-09 Zoomin, Inc. Automated creation of theme-based image compilations
KR20150084108A (en) * 2014-01-13 2015-07-22 엘지전자 주식회사 Mobile terminal and method for controlling the same
US20150205358A1 (en) * 2014-01-20 2015-07-23 Philip Scott Lyren Electronic Device with Touchless User Interface
US20150227269A1 (en) * 2014-02-07 2015-08-13 Charles J. Kulas Fast response graphical user interface
CN104834456A (en) * 2014-02-12 2015-08-12 深圳富泰宏精密工业有限公司 Multi-task switching method and system of touch interface and electronic device
US9679032B2 (en) * 2014-02-26 2017-06-13 Omron Corporation Device information providing system and device information providing method
US10122978B2 (en) * 2014-04-01 2018-11-06 Sony Corporation Harmonizing a projected user interface
US10162505B2 (en) * 2014-04-17 2018-12-25 Blackberry Limited System and method for enabling customized notifications on an electronic device
KR101671837B1 (en) * 2014-05-20 2016-11-16 주식회사 비주얼캠프 Input device using eye-tracking
JP6409337B2 (en) * 2014-05-23 2018-10-24 日本精機株式会社 Display device
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US20160378967A1 (en) * 2014-06-25 2016-12-29 Chian Chiu Li System and Method for Accessing Application Program
US20160026281A1 (en) * 2014-07-25 2016-01-28 Hannstar Display (Nanjing) Corporation Shadeless touch hand-held electronic device and computer-executed method
US20160034131A1 (en) * 2014-07-31 2016-02-04 Sony Corporation Methods and systems of a graphical user interface shift
EP2983080A1 (en) * 2014-08-07 2016-02-10 Nokia Technologies OY Audio source control
US9530291B2 (en) * 2014-09-19 2016-12-27 General Electric Company Systems and methods for providing qualitative indication of vibration severity while recording
US20160093157A1 (en) * 2014-09-26 2016-03-31 Video Gaming Technologies, Inc. Methods and systems for interacting with a player using a gaming machine
KR20160046121A (en) * 2014-10-20 2016-04-28 삼성전자주식회사 Method and apparatus for securing display
US9746929B2 (en) * 2014-10-29 2017-08-29 Qualcomm Incorporated Gesture recognition using gesture elements
CN105607772A (en) * 2014-11-13 2016-05-25 现代自动车株式会社 Touch input device and vehicle including the same
US10235150B2 (en) * 2014-12-04 2019-03-19 Google Technology Holdings LLC System and methods for touch pattern detection and user interface adaptation
US10027739B1 (en) * 2014-12-16 2018-07-17 Amazon Technologies, Inc. Performance-based content delivery
US9769248B1 (en) 2014-12-16 2017-09-19 Amazon Technologies, Inc. Performance-based content delivery
USD786300S1 (en) * 2014-12-16 2017-05-09 Bioinventors & Entrepeneurs Network Llc Display screen or portion thereof with a graphical user interface
US10225365B1 (en) 2014-12-19 2019-03-05 Amazon Technologies, Inc. Machine learning based content delivery
US10073600B1 (en) * 2014-12-22 2018-09-11 Dassault Systemes Solidworks Corporation Selecting large and small entities on a computer display
DE112014007288T5 (en) * 2014-12-26 2017-09-07 Mitsubishi Electric Corporation Voice recognition system
US10025491B2 (en) * 2014-12-30 2018-07-17 PIQPIQ, Inc. Social messaging system for real-time selection and sorting of photo and video content
CN105808181B (en) * 2014-12-31 2019-02-12 中强光电股份有限公司 Image mediating device, interactive display system and its operating method
US10031638B2 (en) * 2015-02-10 2018-07-24 Etter Studio Ltd. Multi-touch GUI featuring directional compression and expansion of graphical content
US9990107B2 (en) 2015-03-08 2018-06-05 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US10048757B2 (en) 2015-03-08 2018-08-14 Apple Inc. Devices and methods for controlling media presentation
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US9645732B2 (en) 2015-03-08 2017-05-09 Apple Inc. Devices, methods, and graphical user interfaces for displaying and using menus
US9632664B2 (en) * 2015-03-08 2017-04-25 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US9785305B2 (en) 2015-03-19 2017-10-10 Apple Inc. Touch input cursor manipulation
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US10152208B2 (en) 2015-04-01 2018-12-11 Apple Inc. Devices and methods for processing touch inputs based on their intensities
US9740310B2 (en) * 2015-05-22 2017-08-22 Adobe Systems Incorporated Intuitive control of pressure-sensitive stroke attributes
US9690517B2 (en) * 2015-05-22 2017-06-27 Texas Instruments Incorporated Dual-mode error-correction code/write-once memory codec
US10101822B2 (en) * 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9674426B2 (en) 2015-06-07 2017-06-06 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9830048B2 (en) 2015-06-07 2017-11-28 Apple Inc. Devices and methods for processing touch inputs with instructions in a web page
US10200598B2 (en) 2015-06-07 2019-02-05 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9891811B2 (en) 2015-06-07 2018-02-13 Apple Inc. Devices and methods for navigating between user interfaces
JP2017004204A (en) * 2015-06-09 2017-01-05 ファナック株式会社 Information processing device that edits electronic data by touch operation
US10021187B2 (en) * 2015-06-29 2018-07-10 Microsoft Technology Licensing, Llc Presenting content using decoupled presentation resources
US20170017571A1 (en) * 2015-07-17 2017-01-19 Samsung Electronics Co., Ltd. Method and apparatus fori n-line deduplication in storage devices
US10235035B2 (en) * 2015-08-10 2019-03-19 Apple Inc. Devices, methods, and graphical user interfaces for content navigation and manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US9880735B2 (en) 2015-08-10 2018-01-30 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
CN105159590B (en) * 2015-08-27 2017-06-23 广东欧珀移动通信有限公司 A control method of a screen of the user terminal and a user terminal
US9870080B2 (en) * 2015-09-18 2018-01-16 Synaptics Incorporated Method, system, and device for controlling a cursor or user interface action as a function of touch and force input
US9729740B2 (en) * 2015-09-21 2017-08-08 Toshiba Tec Kabushiki Kaisha Image display device
CN105183095B (en) * 2015-10-19 2019-03-15 京东方科技集团股份有限公司 Handheld terminal with transparent display
US20170115867A1 (en) * 2015-10-27 2017-04-27 Yahoo! Inc. Method and system for interacting with a touch screen
US10137777B2 (en) 2015-11-03 2018-11-27 GM Global Technology Operations LLC Systems and methods for vehicle system control based on physiological traits
KR101858694B1 (en) * 2015-11-03 2018-06-27 엘지전자 주식회사 Vehicle and control method for the same
CN106873881A (en) * 2015-12-11 2017-06-20 富泰华工业(深圳)有限公司 Electronic equipment and toy control method
US9792011B2 (en) * 2015-12-22 2017-10-17 International Business Machines Corporation Reconfigurable computing device user interface
US20170220307A1 (en) * 2016-02-02 2017-08-03 Samsung Electronics Co., Ltd. Multi-screen mobile device and operation
JP2017142454A (en) * 2016-02-12 2017-08-17 任天堂株式会社 Information processing program, an information processing system, an information processing method, and an information processing apparatus
US10209821B2 (en) * 2016-04-05 2019-02-19 Google Llc Computing devices having swiping interfaces and methods of operating the same
US10154080B2 (en) * 2016-05-23 2018-12-11 Accenture Global Solutions Limited Enhancing digital content provided from devices
US20170344598A1 (en) * 2016-05-27 2017-11-30 International Business Machines Corporation De-Duplication Optimized Platform for Object Grouping
US20180018064A1 (en) * 2016-07-15 2018-01-18 Kabushiki Kaisha Toshiba System and method for touch/gesture based device control
CN106250037A (en) * 2016-07-25 2016-12-21 珠海市魅族科技有限公司 Mobile terminal control method and mobile terminal
US20180032316A1 (en) * 2016-07-29 2018-02-01 Splunk Syntax templates for coding
US20180081533A1 (en) * 2016-09-20 2018-03-22 Rohde & Schwarz Gmbh & Co. Kg Instrument as well as method of operating an instrument
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US9870098B1 (en) 2016-09-27 2018-01-16 International Business Machines Corporation Pressure-sensitive touch screen display and method
CN106445347A (en) * 2016-09-30 2017-02-22 珠海市魅族科技有限公司 Interface displaying method and device
US9958979B1 (en) * 2016-10-31 2018-05-01 International Business Machines Corporation Web server that renders a web page based on a client pressure profile
US9715307B1 (en) 2016-10-31 2017-07-25 International Business Machines Corporation Pressure-sensitive touch screen display and method
US20180129398A1 (en) * 2016-11-04 2018-05-10 International Business Machines Corporation Dynamic selection for touch sensor
EP3321795A1 (en) * 2016-11-14 2018-05-16 Nokia Technologies OY An apparatus and associated methods
US10217087B2 (en) 2016-12-08 2019-02-26 Bank Of America Corporation Multicomputer processing of client device request data using centralized event orchestrator
US10216830B2 (en) 2016-12-08 2019-02-26 Bank Of America Corporation Multicomputer processing of client device request data using centralized event orchestrator and link discovery engine
KR20180082253A (en) * 2017-01-10 2018-07-18 삼성전자주식회사 Method for Outputting Image and the Electronic Device supporting the same
CN106790828A (en) * 2017-01-24 2017-05-31 珠海市魅族科技有限公司 Mobile terminal and control method thereof

Citations (659)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3524169A (en) 1967-06-05 1970-08-11 North American Rockwell Impulse response correction system
US3633322A (en) 1968-12-13 1972-01-11 Monsanto Co Method for treating the flanges of containers
US3659229A (en) 1970-11-02 1972-04-25 Gen Electric System and method for automatic adaptive equalization of communication channels
US3738166A (en) 1971-10-27 1973-06-12 M Fisher Final approach timer
US3772685A (en) 1972-03-29 1973-11-13 Bunker Ramo Touch responsive electric switch and device for the use thereof
US3777222A (en) 1972-05-12 1973-12-04 Ibm Modular touch sensitive indicating panels with touch and light transmissive overlay cover membrane containing visible printed indicia
US4067060A (en) 1976-07-06 1978-01-03 Canadian Patents And Development Limited Transfer function measurement
US4091418A (en) 1977-03-02 1978-05-23 Zenith Radio Corporation Automatic channel equalization with time base expansion
US4152649A (en) 1976-07-08 1979-05-01 International Business Machines Corporation Channel equalization apparatus and method using the Fourier transform technique
US4293734A (en) 1979-02-23 1981-10-06 Peptek, Incorporated Touch panel system and method
US4296756A (en) 1979-07-26 1981-10-27 Cyber Diagnostics, Inc. Remote pulmonary function tester
US4302011A (en) 1976-08-24 1981-11-24 Peptek, Incorporated Video game apparatus and method
US4353552A (en) 1979-02-23 1982-10-12 Peptek, Incorporated Touch panel system and method
US4524421A (en) 1982-03-11 1985-06-18 Quantel Limited Computerized graphics system and method using an electronically synthesized palette
US4554419A (en) 1983-12-02 1985-11-19 The Coca-Cola Company Touch selection panel for a vending machine
US4636632A (en) 1984-09-17 1987-01-13 Nippondenso Co., Ltd. Photoelectric input apparatus for display system
US4644101A (en) 1985-12-11 1987-02-17 At&T Bell Laboratories Pressure-responsive position sensor
US4694468A (en) 1986-04-25 1987-09-15 Eastman Kodak Company Apparatus useful in channel equalization adjustment
US4770281A (en) 1987-03-20 1988-09-13 Horton Manufacturing Co., Inc. Overload apparatus
US5205173A (en) 1991-06-21 1993-04-27 Palmer Environmental Services Method and apparatus for detecting leaks in pipelines using cross-correlation techniques
US5241308A (en) 1990-02-22 1993-08-31 Paragon Systems, Inc. Force sensitive touch panel
US5247434A (en) 1991-04-19 1993-09-21 Althin Medical, Inc. Method and apparatus for kidney dialysis
US5257413A (en) 1991-10-10 1993-10-26 Motorola, Inc. Option selection method and apparatus
US5276787A (en) 1989-04-17 1994-01-04 Quantel Limited Electronic graphic system
US5285474A (en) 1992-06-12 1994-02-08 The Board Of Trustees Of The Leland Stanford, Junior University Method for equalizing a multicarrier signal in a multicarrier communication system
US5305423A (en) 1991-11-04 1994-04-19 Manfred Clynes Computerized system for producing sentic cycles and for generating and communicating emotions
US5309172A (en) 1989-06-14 1994-05-03 Fox Charles S Computer data and command entry device
US5311302A (en) 1992-07-02 1994-05-10 Hughes Aircraft Company Entertainment and data management system for passenger vehicle including individual seat interactive video terminals
US5343650A (en) 1992-03-30 1994-09-06 Swan Richard E Extended rigid frame receiver sleeve
US5363020A (en) 1993-02-05 1994-11-08 Systems And Service International, Inc. Electronic power controller
US5371760A (en) 1993-04-28 1994-12-06 Telesis Technologies Laboratory Method and apparatus for measuring the impulse response of a radio channel
US5386219A (en) 1991-10-16 1995-01-31 International Business Machines Corp. Touch overlay for improved touch sensitivity
US5448263A (en) 1991-10-21 1995-09-05 Smart Technologies Inc. Interactive display system
US5483557A (en) 1990-10-30 1996-01-09 British Telecommunications Public Limited Company Channel equalisation in particular for fading channels
US5486286A (en) 1991-04-19 1996-01-23 Althin Medical, Inc. Apparatus for performing a self-test of kidney dialysis membrane
US5557653A (en) 1993-07-27 1996-09-17 Spectralink Corporation Headset for hands-free wireless telephone
US5566096A (en) 1992-11-13 1996-10-15 Quinton Electrophysiology Corporation Integrated electrical signal switching and amplifying system
US5581505A (en) 1989-05-15 1996-12-03 Dallas Semiconductor Corp. Ram/ROM hybrid memory architecture
US5680160A (en) 1995-02-09 1997-10-21 Leading Edge Industries, Inc. Touch activated electroluminescent lamp and display switch
US5687733A (en) 1995-10-26 1997-11-18 Baxter International Inc. System and method for estimating cardiac output
US5729249A (en) 1991-11-26 1998-03-17 Itu Research, Inc. Touch sensitive input control device
US5729612A (en) 1994-08-05 1998-03-17 Aureal Semiconductor Inc. Method and apparatus for measuring head-related transfer functions
US5742894A (en) 1995-02-06 1998-04-21 Motorola, Inc. Radio communication device having a moveable housing element and keypad disposed therein
US5805950A (en) 1996-12-20 1998-09-08 Eastman Kodak Company Automatic identification of accessories in a reproduction apparatus
US5825873A (en) 1995-12-27 1998-10-20 Siemens Business Communication Systems, Inc. Interface for providing call control for a headset attached to a telephone providing call control for a headset attached to a telephone
US5838244A (en) 1996-10-08 1998-11-17 Cleveland Medical Devices Inc. Interface pressure measurement device
US5856822A (en) 1995-10-27 1999-01-05 02 Micro, Inc. Touch-pad digital computer pointing-device
US5859522A (en) 1997-07-16 1999-01-12 Motorola, Inc. Accessory identification apparatus and method
US5884191A (en) 1996-09-06 1999-03-16 Ericsson Inc. Interface system for providing hands-free operation of a radiotelephone and accessories in a mobile office environment
US5889236A (en) 1992-06-08 1999-03-30 Synaptics Incorporated Pressure sensitive scrollbar feature
US5925942A (en) 1997-07-16 1999-07-20 Motorola, Inc. Power supply control apparatus and method suitable for use in an electronic device
US5947334A (en) 1996-05-17 1999-09-07 The Coca-Cola Company Post-mix beverage system for use in extra-terrestrial space
US5953674A (en) 1997-02-12 1999-09-14 Qualcomm Incorporated Asynchronous serial communications on a portable communication device serial communication bus
US5970092A (en) 1997-07-25 1999-10-19 Stanford Telecommunications, Inc. Adaptively equalized burst receiver and method for upstream broadband data
US5983100A (en) 1996-03-14 1999-11-09 Telefonaktiebolaget Lm Ericsson Circuit assembly for effectuating communication between a first and a second locally-positioned communication device
US5999892A (en) 1997-05-05 1999-12-07 Fan; Rodric C. Method for providing an instant distance measurement on a map
US6012105A (en) 1997-05-01 2000-01-04 Telefonaktiebolaget L M Ericsson System for interfacing with an external accessory in one of two interface modes based on whether communication can be established with external accessory or not
US6038457A (en) 1997-12-05 2000-03-14 Motorola, Inc. Apparatus and method for detecting and powering an accessory
US6040933A (en) 1997-12-19 2000-03-21 Nortel Networks Corporation Method and apparatus for channel equalization in wavelength division multiplexed systems
US6045512A (en) 1998-06-09 2000-04-04 Baxter International Inc. System and method for continuous estimation and display of cardiac ejection fraction and end diastolic volume
US6081724A (en) 1996-01-31 2000-06-27 Qualcomm Incorporated Portable communication device and accessory system
US6097943A (en) 1997-07-02 2000-08-01 Telefonaktiebolaget L M Ericsson Application bound parameter storage
US6108064A (en) 1997-11-06 2000-08-22 Sharp Kabushiki Kaisha Reflective-type liquid crystal display device including a single polarizer plate
US6119022A (en) 1997-03-18 2000-09-12 Ericsson Inc. System for alerting portable communication device user of incoming call
US6118435A (en) 1997-04-10 2000-09-12 Idec Izumi Corporation Display unit with touch panel
US6138036A (en) 1997-03-13 2000-10-24 Oki Telecom, Inc. Wireless telephone with voice data interface mode
US6138245A (en) 1999-02-05 2000-10-24 Neopoint, Inc. System and method for automatic device synchronization
US6141000A (en) 1991-10-21 2000-10-31 Smart Technologies Inc. Projection display system with touch sensing on screen, computer assisted alignment correction and network conferencing
US6163690A (en) 1999-02-04 2000-12-19 Ericsson Inc. Communications accessory with improved vehicle ignition sense
US6169538B1 (en) 1998-08-13 2001-01-02 Motorola, Inc. Method and apparatus for implementing a graphical user interface keyboard and a text buffer on electronic devices
US6192238B1 (en) 1995-08-29 2001-02-20 Nokia Telecommunications Oy Receiving method and receiver
US6193152B1 (en) 1997-05-09 2001-02-27 Receiptcity.Com, Inc. Modular signature and data-capture system and point of transaction payment and reward system
US20010005692A1 (en) 1999-12-27 2001-06-28 Song O Shik Portable dance game apparatus
US6259729B1 (en) 1997-12-19 2001-07-10 Nec Corporation Method of and an apparatus for training tap coefficients of an adaptive equalizer
US6283763B1 (en) 1997-12-01 2001-09-04 Olympus Optical Co., Ltd. Medical operation simulation system capable of presenting approach data
US6285890B1 (en) 1999-01-26 2001-09-04 Ericsson, Inc. Automatic sensing of communication or accessories for mobile terminals
US20010043291A1 (en) 2000-05-17 2001-11-22 Masao Kono Screen input type display device
US6330247B1 (en) 1999-02-08 2001-12-11 Qualcomm Incorporated Communication protocol between a communication device and an external accessory
US20020002629A1 (en) 1997-10-31 2002-01-03 Tom H Fukushima Method and system for interfacing application software with electronic writeboard
US20020002662A1 (en) 1998-07-13 2002-01-03 Olarig Sompong Paul Method and apparatus for supporting heterogeneous memory in computer systems
US20020005111A1 (en) 1998-05-15 2002-01-17 Ludwig Lester Frank Floor controller for real-time control of music signal processing, mixing, video and lighting
US20020008691A1 (en) 1998-01-16 2002-01-24 Mitsuru Hanajima Information processing apparatus and display control method of the same information processing apparatus
US6351271B1 (en) 1997-10-09 2002-02-26 Interval Research Corporation Method and apparatus for sending and receiving lightweight messages
US20020033919A1 (en) 1999-01-22 2002-03-21 Sanelle Joseph J. Super bright low reflectance liquid crystal display
US6366530B1 (en) 2001-04-09 2002-04-02 Lsi Logic Corporation Synchronizing data operations across a synchronization boundary between different clock domains using two-hot encoding
US6371923B1 (en) 1999-12-07 2002-04-16 Edwards Lifesciences Corporation Time-domain system and method for relaxation measurement and estimation of indicator dilution for continuous estimation and display of cardiac ejection fraction and end diastolic volume
US20020045854A1 (en) 2000-10-16 2002-04-18 Probitis Pharma, S.A. Apparatus for the inflation and deflation of balloon catheters and a method for its use
US6377825B1 (en) 2000-02-18 2002-04-23 Cellport Systems, Inc. Hands-free wireless communication in a vehicle
US6380581B1 (en) 1999-02-26 2002-04-30 Micron Technology, Inc. DRAM technology compatible non volatile memory cells with capacitors connected to the gates of the transistors
US6385463B1 (en) 1999-10-26 2002-05-07 Qualcomm Incorporated Wireless communication device with detachable flip keyboard
US20020085952A1 (en) 2000-09-27 2002-07-04 Ellingboe Bruce S. Blood perfusion system
US20020086711A1 (en) 2000-12-29 2002-07-04 Gateway, Inc. Portable phone with auxiliary display
US6417845B1 (en) 1999-11-10 2002-07-09 Et & T Technology Co., Ltd. Touch controlled device with pressure sensing electronic input pen
US6441807B1 (en) 1997-09-03 2002-08-27 Plus Industrial Corporation Display system
US20020116959A1 (en) 2001-02-28 2002-08-29 Yoshihiro Ohta Washing machine, display/operation panel, and household appliance with the display/operation panel
US6449492B1 (en) 1999-12-02 2002-09-10 Qualcomm Incorporated Apparatus and method for preventing inadvertant operation of a manual input device
US20020129315A1 (en) 2001-03-09 2002-09-12 Onvural O. Raif Packet based ATM CRC-32 calculator
US20020130832A1 (en) 2001-03-13 2002-09-19 Baucom Allan Scott Apparatus for displaying drawings
US6456517B2 (en) 2000-01-26 2002-09-24 Samsung Electronics Co., Ltd. System having memory devices operable in a common interface
US6473630B1 (en) 1999-10-22 2002-10-29 Sony Corporation Method and apparatus for powering a wireless headset used with a personal electronic device
US6476795B1 (en) 2000-01-20 2002-11-05 Hewlett-Packard Company Mouse recharging module
US6477390B1 (en) 1999-09-28 2002-11-05 Qualcomm, Incorporated Apparatus and method for intuitive audio keypad navigation for a wireless communication device
US6480149B1 (en) 1999-12-28 2002-11-12 Nokia Mobile Phones Limited Electrical, mechanical, and logical interface for a user terminal GPS accessory module
US20020180763A1 (en) 2001-06-05 2002-12-05 Shao-Tsu Kung Touch screen using pressure to control the zoom ratio
US6496854B1 (en) 1996-07-01 2002-12-17 Sun Microsystems, Inc. Hybrid memory access protocol in a distributed shared memory computer system
US6509847B1 (en) 1999-09-01 2003-01-21 Gateway, Inc. Pressure password input device and method
US6523124B1 (en) 1999-04-23 2003-02-18 Palm, Inc. System and method for detection of an accessory device connection status
US6526315B1 (en) 2000-03-17 2003-02-25 Tanita Corporation Portable bioelectrical impedance measuring instrument
US6529744B1 (en) 1999-01-26 2003-03-04 Telefonaktiebolaget Lm Ericsson Handling menu information
US6533757B1 (en) 2000-06-08 2003-03-18 Merit Medical Systems, Inc. Monitoring and displaying pressurization data
US6546262B1 (en) 1999-11-12 2003-04-08 Altec Lansing Technologies, Inc. Cellular telephone accessory device for a personal computer system
US6549790B1 (en) 1999-01-27 2003-04-15 Telefonaktiebolaget Lm Ericsson (Publ) Portable telecommunication apparatus for multiple audio accessories
US6564285B1 (en) 1994-06-03 2003-05-13 Intel Corporation Synchronous interface for a nonvolatile memory
US20030117408A1 (en) 2001-12-21 2003-06-26 Forsline Ladd B. Computer painting system with passive paint brush stylus
US20030123328A1 (en) 2001-12-27 2003-07-03 Asulab S.A. Control method for executing functions in a diary watch
US6590568B1 (en) 2000-11-20 2003-07-08 Nokia Corporation Touch screen drag and drop input technique
US6603986B1 (en) 1999-02-01 2003-08-05 Sony Corporation Method and system for controlling cellular telephone accessory functions
US20030147041A1 (en) 2001-12-27 2003-08-07 Lg.Philips Lcd Co., Ltd Method of fabricating liquid crystal display apparatus integrated with film type touch panel
US20030151589A1 (en) 2002-02-13 2003-08-14 Siemens Technology-To-Business Center, Llc Configurable industrial input devices that use electrically conductive elastomer
US6636749B2 (en) 2001-06-25 2003-10-21 At&T Wireless Services, Inc. Method and apparatus for providing power and wireless protocol capability to a wireless device, such as a wireless phone
US6636203B1 (en) 2001-05-17 2003-10-21 Palm, Inc. Keyboard equivalent pad overlay encasement for a handheld electronic device
US6636918B1 (en) 2000-06-29 2003-10-21 International Business Machines Corporation Mobile computing device and associated base stations
US20030232192A1 (en) 2002-02-21 2003-12-18 Nitto Denko Corporation Double-sided pressure-sensitive adhesive sheet and method for sticking and fixing touch panel to display device
US20030235452A1 (en) 2002-06-21 2003-12-25 Microsoft Corporation Method and system for using a keyboard overlay with a touch-sensitive display screen
US6670234B2 (en) 2001-06-22 2003-12-30 International Business Machines Corporation Method of integrating volatile and non-volatile memory cells on the same substrate and a semiconductor memory device thereof
US6714802B1 (en) 1999-09-21 2004-03-30 Telefonaktiebolaget Lm Ericsson (Publ) Portable communication apparatus having first and second user interfaces, and an accessory device comprising a keypad and a display for a portable radio telephone
KR20040036722A (en) 2001-08-20 2004-04-30 디멘셔널 미디어 어소시에이츠 인코포레이티드 Multi-planar volumetric display system and method of operation using three-dimensional anti-aliasing
US6738514B1 (en) 1997-12-29 2004-05-18 Samsung Electronics Co., Ltd. Character-recognition system for a mobile radio communication terminal and method thereof
US20040108995A1 (en) 2002-08-28 2004-06-10 Takeshi Hoshino Display unit with touch panel
US20040109788A1 (en) 2002-07-12 2004-06-10 Lixiong Li Apparatus and method for continuous depyrogenation and production of sterile water for injection
US6751113B2 (en) 2002-03-07 2004-06-15 Netlist, Inc. Arrangement of integrated circuits in a memory module
US20040121855A1 (en) 2002-12-19 2004-06-24 Dmi Sports, Inc. Touch pad scoring apparatus for dart games
US6765812B2 (en) 2001-01-17 2004-07-20 Honeywell International Inc. Enhanced memory module architecture
US20040150644A1 (en) * 2003-01-30 2004-08-05 Robert Kincaid Systems and methods for providing visualization and network diagrams
US6791640B1 (en) 1997-04-23 2004-09-14 Sharp Kabushiki Kaisha Reflection liquid crystal display and reflection liquid crystal display provided with built-in touch panel and comprising the same
US20040191509A1 (en) 2003-01-29 2004-09-30 Nitto Denko Corporation Double-sided pressure-sensitive adhesive sheet and touch panel-provided display device
US6804146B2 (en) 1995-04-21 2004-10-12 Mark B. Johnson Hybrid semiconductor—magnetic spin based memory
US20040207542A1 (en) 2003-04-16 2004-10-21 Massachusetts Institute Of Technology Methods and apparatus for vibrotactile communication
US20040212599A1 (en) 2003-04-24 2004-10-28 Eastman Kodak Company Flexible resistive touch screen
US20040239624A1 (en) 2003-04-02 2004-12-02 Artoun Ramian Freehand symbolic input apparatus and method
US6829297B2 (en) 2001-06-06 2004-12-07 Micronas Semiconductors, Inc. Adaptive equalizer having a variable step size influenced by output from a trellis decoder
US20050018495A1 (en) 2004-01-29 2005-01-27 Netlist, Inc. Arrangement of integrated circuits in a memory module
US20050027928A1 (en) 2003-07-31 2005-02-03 M-Systems Flash Disk Pioneers, Ltd. SDRAM memory device with an embedded NAND flash controller
US6879318B1 (en) 2000-10-06 2005-04-12 Industrial Technology Research Institute Touch screen mounting assembly for LCD panel and method for fabrication
US20050094465A1 (en) 2003-11-03 2005-05-05 Netlist Inc. Printed circuit board memory module with embedded passive components
US6892270B2 (en) 2000-07-28 2005-05-10 Micron Technology, Inc. Synchronous flash memory emulating the pin configuration of SDRAM
US20050102444A1 (en) 2003-11-07 2005-05-12 Cruz Arnaldo R. Memory controller useable in a data processing system
US20050128853A1 (en) 2000-05-26 2005-06-16 Renesas Technology Corp. Semiconductor device including multi-chip
US6919927B1 (en) 1998-06-05 2005-07-19 Fuji Photo Film Co., Ltd. Camera with touchscreen
US6928299B1 (en) 1999-08-06 2005-08-09 Nokia Mobile Phones Ltd. Method for transmitting user identification data to a wireless communication device
US6928110B2 (en) 2000-05-24 2005-08-09 Panasonic Communications Co., Ltd. Adaptive equalizer training circuit, modem apparatus and communication apparatus
US6928512B2 (en) 2001-06-20 2005-08-09 Hitachi Ulsi Systems Co, Ltd. Semiconductor device with non-volatile memory and random access memory
US20050182893A1 (en) 2004-02-16 2005-08-18 Samsung Electronics Co., Ltd. Controller for controlling nonvolatile memory
US20050204091A1 (en) 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface
US6954495B2 (en) 2000-04-06 2005-10-11 Nokia Corporation Optimization of channel equalizer
US6956562B1 (en) 2000-05-16 2005-10-18 Palmsource, Inc. Method for controlling a handheld computer by entering commands onto a displayed feature of the handheld computer
US6956576B1 (en) 2000-05-16 2005-10-18 Sun Microsystems, Inc. Graphics system using sample masks for motion blur, depth of field, and transparency
US20050231461A1 (en) 2002-08-01 2005-10-20 Raap Adriaan Y Touch sensitive display device
US6961015B2 (en) 2002-11-14 2005-11-01 Fyre Storm, Inc. Touch screen display circuit and voltage measurement circuit
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US6968208B2 (en) 2002-11-26 2005-11-22 Texas Instruments Incorporated Data storage for a portable computer device
US20050264521A1 (en) 2004-05-25 2005-12-01 Yu-Chun Liu Multimode key system
WO2005114369A2 (en) 2004-05-06 2005-12-01 Apple Computer, Inc. Multipoint touchscreen
US20050270037A1 (en) 2004-06-07 2005-12-08 Haynes Leonard S Method and system for non-destructive evaluation of conducting structures
US6975853B2 (en) 2002-10-22 2005-12-13 Mitsubishi Electric Research Labs, Inc. Personal identification device for mobile telephone
US20050280746A1 (en) 2004-06-16 2005-12-22 Kenneth North Stress seal for touchscreen systems
US6983169B2 (en) 2003-03-14 2006-01-03 Motorola, Inc. Wireless device allowing for configuration of settings and method therefor
US20060001654A1 (en) 2004-06-30 2006-01-05 National Semiconductor Corporation Apparatus and method for performing data entry with light based touch screen displays
US20060007222A1 (en) 2004-06-21 2006-01-12 Apple Computer, Inc. Integrated sensing display
US6990044B2 (en) 2002-12-18 2006-01-24 Hynix Semiconductor Inc. Composite memory device
US20060022955A1 (en) 2004-07-30 2006-02-02 Apple Computer, Inc. Visual expander
US20060033701A1 (en) 2004-08-10 2006-02-16 Microsoft Corporation Systems and methods using computer vision and capacitive sensing for cursor control
US7003316B1 (en) 2002-02-22 2006-02-21 Virtual Fonlink, Inc. System and method for wireless transactions
US7010325B1 (en) 2002-06-11 2006-03-07 Sprint Spectrum L.P. Wireless repeater with wireless telephone adapter
US7020488B1 (en) 2000-07-19 2006-03-28 Embedded Systems Products Inc. Communications unit, system and methods for providing multiple access to a wireless transceiver
US7024230B2 (en) 2002-02-22 2006-04-04 Kyocera-Wireless Corp Accessory interface system
US20060075402A1 (en) 2004-09-30 2006-04-06 Gilbert Neiger Providing support for a timer associated with a virtual machine monitor
US20060077186A1 (en) 2004-09-24 2006-04-13 Samsung Electronics Co., Ltd. Touch detectable display device and driving method thereof
US7031670B2 (en) 2001-06-25 2006-04-18 Hewlett-Packard Development Company, L.P. Communications accessory and computing unit that operates therewith
US20060085757A1 (en) 2004-07-30 2006-04-20 Apple Computer, Inc. Activating virtual keys of a touch-screen virtual keyboard
US7050783B2 (en) 2002-02-22 2006-05-23 Kyocera Wireless Corp. Accessory detection system
US20060107719A1 (en) 2004-11-19 2006-05-25 Campian Jonathon R Roller tool and positional pressure method of use for the forming and joining of sheet material
US7062261B2 (en) 2003-01-31 2006-06-13 Motorola, Inc. Method and apparatus for automatic detection and installation of Java-enabled accessories
US7062260B2 (en) 2003-03-27 2006-06-13 Nokia Corporation Fetching application and driver for extension device from network
US7064748B2 (en) 2003-03-11 2006-06-20 Eastman Kodak Company Resistive touch screen with variable resistivity layer
US20060138983A1 (en) 2004-12-23 2006-06-29 Samsung Electronics Co., Ltd. Display device and driving apparatus thereof
US20060138630A1 (en) 2004-12-28 2006-06-29 Netlist, Inc. Stacked ball grid array packages
US20060146032A1 (en) 2004-12-01 2006-07-06 Tomomi Kajimoto Control input device with vibrating function
US20060179088A1 (en) 2005-02-04 2006-08-10 Samsung Electronics Co., Ltd Key input device combined with key display unit and digital appliance having the same
US20060195064A1 (en) 2005-02-28 2006-08-31 Fresenius Medical Care Holdings, Inc. Portable apparatus for peritoneal dialysis therapy
US20060203899A1 (en) 2005-02-03 2006-09-14 Gee David M Method of equalising a channel and apparatus therefor
US20060209039A1 (en) 2003-07-21 2006-09-21 Koninklijke Philips Electronics N.V. Touch sensitive display for a portable device
US7123936B1 (en) 1998-02-18 2006-10-17 Ericsson Inc. Cellular phone with expansion memory for audio and video storage
US20060238495A1 (en) 2005-04-26 2006-10-26 Nokia Corporation User input device for electronic device
US7138984B1 (en) 2001-06-05 2006-11-21 Idc, Llc Directly laminated touch sensitive screen
US20060262099A1 (en) 2003-08-23 2006-11-23 Destura Galileo J A Touch-input active matrix display device
US20060260711A1 (en) 2005-04-22 2006-11-23 Audubon Machinery Corporation Oxygen filling apparatus
US20060274050A1 (en) 2005-06-06 2006-12-07 Jia-Yih Lii Touchpad supporting two-side operation
US7149552B2 (en) 2003-09-19 2006-12-12 Radeum, Inc. Wireless headset for communications device
US7149511B1 (en) 2000-08-31 2006-12-12 Rosetta-Wireless Corporation Wireless intelligent personal server
US20060284874A1 (en) 2005-06-15 2006-12-21 Microsoft Corporation Optical flow-based manipulation of graphical objects
US7155254B2 (en) 2003-09-23 2006-12-26 Motorola, Inc. Method and apparatus to self-configure an accessory device
US20060294295A1 (en) 2005-06-24 2006-12-28 Yukio Fukuzo DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device
US20070008064A1 (en) 2005-06-13 2007-01-11 Donohue Kieran L Room monitor for critical environment rooms
US7171239B2 (en) 2004-05-25 2007-01-30 Motorola, Inc. Selecting common features of accessories coupled to a communications device
US20070035526A1 (en) 2005-07-29 2007-02-15 Mikio Takenaka Touch panel display apparatus, electronic device having touch panel display apparatus, and camera having touch panel display apparatus
US20070040814A1 (en) 2005-04-11 2007-02-22 Samsung Electronics Co., Ltd. Liquid crystal display device having improved touch screen
US7184794B2 (en) 2004-09-09 2007-02-27 Motorola, Inc. Electronic apparatus and system with multi-purpose interface
US7190720B2 (en) 2001-07-03 2007-03-13 Zenith Electronics Corporation Tap weight initializer for an adaptive equalizer
US20070070047A1 (en) 2005-09-26 2007-03-29 Jin Jeon Display panel, display device having the same and method of detecting touch position
US20070085837A1 (en) 2005-10-17 2007-04-19 Eastman Kodak Company Touch input device with display front
US20070097151A1 (en) 2006-04-07 2007-05-03 Outland Research, Llc Behind-screen zoom for handheld computing devices
US20070103454A1 (en) 2005-04-26 2007-05-10 Apple Computer, Inc. Back-Side Interface for Hand-Held Devices
US7224992B2 (en) 2003-10-10 2007-05-29 Motorola, Inc. Four pole stereo headset with push to talk capability in a duplex radio
US20070137901A1 (en) 2005-12-16 2007-06-21 E-Lead Electronic Co., Ltd. Micro-keyboard simulator
US20070148371A1 (en) 2005-12-26 2007-06-28 Konica Minolta Opto, Inc. Method of manufacturing cellulose film, manufacturing apparatus, optical film, polarizing plate and liquid crystal display
US20070146313A1 (en) 2005-02-17 2007-06-28 Andrew Newman Providing input data
US20070153215A1 (en) 2005-12-30 2007-07-05 Lg Philips Lcd Co., Ltd. Liquid crystal display device
US7240836B2 (en) 2004-04-23 2007-07-10 Virtual Fonlink, Inc. Enhanced system and method for wireless transactions
US20070176902A1 (en) 2005-02-17 2007-08-02 Andrew Newman Providing input data
US7254036B2 (en) 2004-04-09 2007-08-07 Netlist, Inc. High density memory module using stacked printed circuit boards
US20070182864A1 (en) 2003-04-04 2007-08-09 Evolution Broadcastpty Limited Broadcast control
US20070192563A1 (en) 2006-02-09 2007-08-16 Rajan Suresh N System and method for translating an address associated with a command communicated between a system and memory circuits
US20070195029A1 (en) 2006-02-20 2007-08-23 Samsung Electronics Co., Ltd. Display panel, display apparatus having the same, and method thereof
US20070204079A1 (en) 2006-02-24 2007-08-30 June-On Co., Ltd. Bidirectional convertible KVM switch assembly structure and its KVM switch
US20070204075A1 (en) 2006-02-09 2007-08-30 Rajan Suresh N System and method for reducing command scheduling constraints of memory circuits
US7269708B2 (en) 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US20070229477A1 (en) 1998-05-15 2007-10-04 Ludwig Lester F High parameter-count touchpad controller
US7280849B1 (en) 2006-07-31 2007-10-09 At & T Bls Intellectual Property, Inc. Voice activated dialing for wireless headsets
US20070237170A1 (en) 2006-04-10 2007-10-11 Microsoft Corporation Cable user interface
US7286436B2 (en) 2004-03-05 2007-10-23 Netlist, Inc. High-density memory module utilizing low-density memory components
US20070246494A1 (en) 2006-03-17 2007-10-25 Samsung Electronics Co., Ltd. Wrist wearable type portable terminal
US7289386B2 (en) 2004-03-05 2007-10-30 Netlist, Inc. Memory module decoder
US20070262967A1 (en) 2006-05-10 2007-11-15 Rho Soo Guy Liquid crystal display with built-in touch screen
US20070291009A1 (en) 2006-06-19 2007-12-20 Cypress Semiconductor Corporation Apparatus and method for detecting a touch-sensor pad gesture
US20080010435A1 (en) 2005-06-24 2008-01-10 Michael John Sebastian Smith Memory systems and memory modules
US20080018613A1 (en) 2006-07-18 2008-01-24 Dong-Gyu Kim Touch screen display apparatus and method of driving the same
US20080025137A1 (en) 2005-06-24 2008-01-31 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US20080025122A1 (en) 2006-07-31 2008-01-31 Metaram, Inc. Memory refresh system and method
US20080024712A1 (en) 2006-07-25 2008-01-31 Dong-Gyu Kim Distortion resistant touch-sensitive display panel
US20080025136A1 (en) 2006-07-31 2008-01-31 Metaram, Inc. System and method for storing at least a portion of information received in association with a first operation for use in performing a second operation
US20080025108A1 (en) 2006-07-31 2008-01-31 Metaram, Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US20080027703A1 (en) 2006-07-31 2008-01-31 Metaram, Inc. Memory circuit simulation system and method with refresh capabilities
US20080028135A1 (en) 2006-07-31 2008-01-31 Metaram, Inc. Multiple-component memory interface system and method
US20080028137A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and Apparatus For Refresh Management of Memory Modules
US20080025124A1 (en) 2006-07-31 2008-01-31 Metaram, Inc. Interface circuit system and method for performing power management operations utilizing power management signals
US20080025123A1 (en) 2006-07-31 2008-01-31 Metaram, Inc. Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits
US20080026803A1 (en) 2006-07-28 2008-01-31 Sony Ericsson Mobile Communications Ab Detachable Housings for a Wireless Communication Device
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US20080031072A1 (en) 2006-07-31 2008-02-07 Metaram, Inc. Power saving system and method for use with a plurality of memory circuits
US20080031030A1 (en) 2006-07-31 2008-02-07 Metaram, Inc. System and method for power management in memory systems
JP2008033739A (en) 2006-07-31 2008-02-14 Sony Corp Touch screen interaction method and apparatus based on tactile force feedback and pressure measurement
US20080056014A1 (en) 2006-07-31 2008-03-06 Suresh Natarajan Rajan Memory device with emulated characteristics
US7343177B2 (en) 2005-05-03 2008-03-11 Broadcom Corporation Modular ear-piece/microphone (headset) operable to service voice activated commands
US7343439B2 (en) 1999-05-11 2008-03-11 Socket Communications, Inc. Removable modules with external I/O flexibility via an integral second-level removable slot
US20080060854A1 (en) 2006-08-03 2008-03-13 New York University Retroreflection based multitouch sensor
US20080062773A1 (en) 2006-07-31 2008-03-13 Suresh Natarajan Rajan System and method for simulating an aspect of a memory circuit
US20080062169A1 (en) 2004-08-02 2008-03-13 Koninklijke Philips Electronics, N.V. Method Of Enabling To Model Virtual Objects
US20080068343A1 (en) 2006-09-14 2008-03-20 Takeshi Hoshino Tactile pin display apparatus
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
WO2008037275A1 (en) 2006-09-27 2008-04-03 Nokia Corporation Tactile touch screen
US7360022B2 (en) 2005-12-29 2008-04-15 Intel Corporation Synchronizing an instruction cache and a data cache on demand
US20080094367A1 (en) 2004-08-02 2008-04-24 Koninklijke Philips Electronics, N.V. Pressure-Controlled Navigating in a Touch Screen
US20080098331A1 (en) 2005-09-16 2008-04-24 Gregory Novick Portable Multifunction Device with Soft Keyboards
US20080104344A1 (en) 2006-10-25 2008-05-01 Norio Shimozono Storage system comprising volatile cache memory and nonvolatile memory
US20080100584A1 (en) 2006-11-01 2008-05-01 Immersion Corporation Sanitizing a Touch Panel Surface
US20080109629A1 (en) 2006-11-04 2008-05-08 Virident Systems, Inc. Asymmetric memory migration in hybrid main memory
US20080115006A1 (en) 2006-07-31 2008-05-15 Michael John Sebastian Smith System and method for adjusting the timing of signals associated with a memory system
US20080122796A1 (en) * 2006-09-06 2008-05-29 Jobs Steven P Touch Screen Device, Method, and Graphical User Interface for Determining Commands by Applying Heuristics
US20080130910A1 (en) 2006-11-30 2008-06-05 Motorola, Inc. Gestural user interface devices and methods for an accessory to a wireless communication device
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US20080136790A1 (en) 2006-12-12 2008-06-12 Sony Corporation Video signal output device and operation input processing method
US20080150911A1 (en) 2008-01-21 2008-06-26 Sony Computer Entertainment America Inc. Hand-held device with touchscreen and digital tactile pixels
US20080158171A1 (en) 2006-12-29 2008-07-03 Wong Hong W Digitizer for flexible display
US7398105B2 (en) 2005-09-06 2008-07-08 Sarandis Kalogeropoulos Mobile communication device and accessory therefor
US20080165255A1 (en) 2007-01-05 2008-07-10 Apple Inc. Gestures for devices having one or more touch sensitive surfaces
US7403743B2 (en) 2004-12-31 2008-07-22 Sony Ericsson Mobile Communications Ab System and method to unlock hidden multimedia content
US20080178126A1 (en) * 2007-01-24 2008-07-24 Microsoft Corporation Gesture recognition interactive feedback
US20080204427A1 (en) * 2004-08-02 2008-08-28 Koninklijke Philips Electronics, N.V. Touch Screen with Pressure-Dependent Visual Feedback
US20080210843A1 (en) 2007-03-02 2008-09-04 Samsung Electronics Co., Ltd. Display device and method of compensating for pressure changes thereof
US20080211786A1 (en) 2006-11-17 2008-09-04 Samsung Electronics Co., Ltd. Display device
US20080215192A1 (en) 2004-12-16 2008-09-04 Hardman Brian T Interactive device for legacy cockpit environments
US7424312B2 (en) 2003-09-23 2008-09-09 Motorola, Inc. Interface system for an accessory and a communication device
US20080219493A1 (en) * 2004-03-30 2008-09-11 Yoav Tadmor Image Processing System
US20080240223A1 (en) 2004-11-23 2008-10-02 Diablo Technologies Inc. Receiver-Based Adaptive Equalizer with Pre-Cursor Compensation
US20080250408A1 (en) 2007-04-04 2008-10-09 The Hong Kong University Of Science And Technology Peer to peer sharing of functionality of mobile devices
US7435636B1 (en) 2007-03-29 2008-10-14 Micron Technology, Inc. Fabrication of self-aligned gallium arsenide MOSFETs using damascene gate methods
US20080252616A1 (en) 2007-04-16 2008-10-16 Microsoft Corporation Visual simulation of touch pressure
US20080252607A1 (en) 2004-12-01 2008-10-16 Koninklijke Philips Electronics, N.V. Image Display That Moves Physical Objects and Causes Tactile Sensation
US7442050B1 (en) 2005-08-29 2008-10-28 Netlist, Inc. Circuit card with flexible connection for memory module with heat spreader
WO2008131058A2 (en) 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US20080272478A1 (en) 2007-05-04 2008-11-06 Micron Technology, Inc. Circuit and method for interconnecting stacked integrated circuit dies
US20080290435A1 (en) 2007-05-21 2008-11-27 Micron Technology, Inc. Wafer level lens arrays for image sensor packages and the like, image sensor packages, and related methods
US20080295839A1 (en) 2007-06-01 2008-12-04 Habashi Nader M Ventilator Apparatus and System of Ventilation
US20080298113A1 (en) 2007-05-31 2008-12-04 Micron Technology, Inc. Resistive memory architectures with multiple memory cells per access device
US20080297487A1 (en) 2007-01-03 2008-12-04 Apple Inc. Display integrated photodiode matrix
US20080304431A1 (en) 2007-06-11 2008-12-11 Jeyhan Karaoguz Method And System For A Digital Diary System
US20080308946A1 (en) 2007-06-15 2008-12-18 Micron Technology, Inc. Semiconductor assemblies, stacked semiconductor devices, and methods of manufacturing semiconductor assemblies and stacked semiconductor devices
US20090002312A1 (en) 2007-06-28 2009-01-01 Samsung Electronics Co., Ltd Display apparatus, method of driving the same, and sensing driver of display apparatus
US20090014876A1 (en) 2007-07-13 2009-01-15 Samsung Electronics Co., Ltd. Wafer level stacked package having via contact in encapsulation portion and manufacturing method thereof
US20090022256A1 (en) 2007-07-20 2009-01-22 Frank Boring Fitzgerald Method of generating electrical and heat energies via controlled and fail-safe fusion of deuterium in D2O bubbles cycled in radius from energies of ultra-sonic sound and amplitude modulated UHF EM in a narrow liquid D2O reaction gap between a pair of transducers and reactor therefore
US20090024789A1 (en) 2007-07-18 2009-01-22 Suresh Natarajan Rajan Memory circuit system and method
US20090026600A1 (en) 2007-07-24 2009-01-29 Micron Technology, Inc. Microelectronic die packages with metal leads, including metal leads for stacked die packages, and associated systems and methods
US20090036111A1 (en) 2007-07-30 2009-02-05 Mobile Iron, Inc. Virtual Instance Architecture for Mobile Device Management Systems
US20090036176A1 (en) 2007-08-01 2009-02-05 Ure Michael J Interface with and communication between mobile electronic devices
US20090039492A1 (en) 2007-08-06 2009-02-12 Samsung Electronics Co., Ltd. Stacked memory device
US7492890B2 (en) 2003-10-29 2009-02-17 Sony Ericsson Mobile Communications Ab Integrated corded system connector for a wireless communications device
US7493109B2 (en) 2003-12-02 2009-02-17 Research In Motion Limited Inter-processor parameter management in a multiple-processor wireless mobile communication device operating on a processor specific communication network
US20090045489A1 (en) 2007-08-16 2009-02-19 Micron Technology, Inc. Microelectronic die packages with leadframes, including leadframe-based interposer for stacked die packages, and associated systems and methods
US20090046110A1 (en) 2007-08-16 2009-02-19 Motorola, Inc. Method and apparatus for manipulating a displayed image
US20090052218A1 (en) 2007-08-20 2009-02-26 Samsung Electronics Co., Ltd. Semiconductor package having memory devices stacked on logic device
US20090051659A1 (en) 2004-12-20 2009-02-26 Phillip John Mickelborough Computer Input Device
US20090058828A1 (en) 2007-08-20 2009-03-05 Samsung Electronics Co., Ltd Electronic device and method of operating the same
US20090066660A1 (en) 2007-09-06 2009-03-12 Ure Michael J Interface with and communication between mobile electronic devices
US20090065948A1 (en) 2007-09-06 2009-03-12 Micron Technology, Inc. Package structure for multiple die stack
US20090067256A1 (en) 2007-09-06 2009-03-12 Micron Technology, Inc. Thin gate stack structure for non-volatile memory cells and methods for forming the same
US20090073138A1 (en) 2007-09-13 2009-03-19 Samsung Electronics Co., Ltd. Display panel and display apparatus having the same
US20090085608A1 (en) 2007-10-02 2009-04-02 Micron Technology, Inc. Systems, methods and devices for arbitrating die stack position in a multi-bit stack device
US20090085225A1 (en) 2007-10-02 2009-04-02 Samsung Electronics Co., Ltd. Semiconductor packages having interposers, electronic products employing the same, and methods of manufacturing the same
US20090086420A1 (en) 2007-10-01 2009-04-02 General Dynamics Itronix Corporation Rugged conductive housing structure for portable computing device display
US20090091536A1 (en) 2007-10-05 2009-04-09 Microsoft Corporation Dial Pad Data Entry
US20090091962A1 (en) 2007-10-04 2009-04-09 Samsung Electronics Co., Ltd. Multi-chip memory device with stacked memory chips, method of stacking memory chips, and method of controlling operation of multi-chip package memory
US20090090950A1 (en) 2007-10-05 2009-04-09 Micron Technology, Inc. Semiconductor devices
US7523035B2 (en) 2004-07-26 2009-04-21 Motorola, Inc. Hands-free circuit and method for communicating with a wireless device
US20090103675A1 (en) 2007-10-19 2009-04-23 Diablo Technologies Inc. Linear phase interpolator and phase detector
US7529872B1 (en) 2004-04-27 2009-05-05 Apple Inc. Communication between an accessory and a media player using a protocol with multiple lingoes
US7532537B2 (en) 2004-03-05 2009-05-12 Netlist, Inc. Memory module with a circuit providing load isolation and memory domain translation
US7532492B2 (en) 2005-12-20 2009-05-12 Tektronix, Inc. Host controlled voltage input system for an accessory device
US20090127668A1 (en) 2007-11-21 2009-05-21 Samsung Electronics Co., Ltd. Stacked semiconductor device and method of forming serial path thereof
US20090128991A1 (en) 2007-11-21 2009-05-21 Micron Technology, Inc. Methods and apparatuses for stacked capacitors for image sensors
US20090143652A1 (en) 2007-11-30 2009-06-04 Ziehm Medical Llc Apparatus and Method for Measuring, Recording and Transmitting Primary Health Indicators
US20090158152A1 (en) 2007-12-12 2009-06-18 Kodimer Marianne L System and method for generating context sensitive help for a graphical user interface
US20090160781A1 (en) 2007-12-21 2009-06-25 Xerox Corporation Lateral pressure sensors for touch screens
US7555318B2 (en) 2005-02-15 2009-06-30 Broadcom Corporation Handover of call serviced by modular ear-piece/microphone between servicing base portions
US20090166846A1 (en) 2007-12-28 2009-07-02 Micron Technology, Inc. Pass-through 3d interconnect for microelectronic dies and associated systems and methods
US7558130B2 (en) 2007-06-04 2009-07-07 Micron Technology, Inc. Adjustable drive strength apparatus, systems, and methods
US7558529B2 (en) 2005-01-24 2009-07-07 Broadcom Corporation Earpiece/microphone (headset) servicing multiple incoming audio streams
US7558894B1 (en) 2006-09-11 2009-07-07 Apple Inc. Method and system for controlling power provided to an accessory
US20090180257A1 (en) 2008-01-15 2009-07-16 Samsung Electronics Co., Ltd. Stacked semiconductor apparatus, system and method of fabrication
US7565179B2 (en) 2006-04-24 2009-07-21 Sony Ericsson Mobile Communications Ab No-cable stereo handsfree accessory
US7565458B2 (en) 2003-12-12 2009-07-21 Sony Ericsson Mobile Communications Ab Cell phone accessory identification algorithm by generating and measuring a voltage pulse through a pin interface
US7571295B2 (en) 2005-08-04 2009-08-04 Intel Corporation Memory manager for heterogeneous memory control
US20090197394A1 (en) 2008-02-04 2009-08-06 Micron Technology, Inc. Wafer processing
US20090204928A1 (en) 2008-02-11 2009-08-13 Idean Enterprise Oy Layer-based user interface
US20090207175A1 (en) * 2008-02-15 2009-08-20 Apple Inc. Animation Using Animation Effect and Trigger Element
US20090206431A1 (en) 2008-02-20 2009-08-20 Micron Technology, Inc. Imager wafer level module and method of fabrication and use
US20090213066A1 (en) 2008-02-21 2009-08-27 Sony Corporation One button remote control with haptic feedback
US20090225053A1 (en) 2008-03-06 2009-09-10 Nec Infrontia Corporation input precision
US20090224822A1 (en) 2008-03-04 2009-09-10 Micron Technology, Inc. Structure and method for coupling signals to and/or from stacked semiconductor dies
US20090237970A1 (en) 2008-03-19 2009-09-24 Samsung Electronics Co., Ltd. Process variation compensated multi-chip memory package
US7598607B2 (en) 2007-05-22 2009-10-06 Samsung Electronics Co., Ltd. Semiconductor packages with enhanced joint reliability and methods of fabricating the same
US7603148B2 (en) 2003-12-16 2009-10-13 Sony Ericsson Mobile Communications Ab Integrated wireless headset
US20090255705A1 (en) 2008-04-11 2009-10-15 Micron Technology, Inc. Method of Creating Alignment/Centering Guides for Small Diameter, High Density Through-Wafer Via Die Stacking
US20090259806A1 (en) 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
US20090256807A1 (en) 2008-04-14 2009-10-15 Nokia Corporation User interface
US20090261457A1 (en) 2008-04-22 2009-10-22 Micron Technology, Inc. Die stacking with an annular via having a recessed socket
US20090271731A1 (en) 2008-04-27 2009-10-29 Htc Corporation Electronic device and user interface display method thereof
US7612436B1 (en) 2008-07-31 2009-11-03 Micron Technology, Inc. Packaged microelectronic devices with a lead frame
US7619893B1 (en) 2006-02-17 2009-11-17 Netlist, Inc. Heat spreader for electronic modules
US7620433B2 (en) 2003-01-15 2009-11-17 Gn Netcom, Inc. Display headset
US7623667B2 (en) 2008-01-14 2009-11-24 Apple Inc. Electronic device accessory with ultrasonic tone generator
US7622895B1 (en) 2006-03-23 2009-11-24 Griffin Technology, Inc. Power level display calibration device
US20090289912A1 (en) 2008-05-23 2009-11-26 Innolux Display Corp. Touch-sensitive liquid crystal display device with built-in touch mechanism and method and method for driving same
US7627352B2 (en) 2006-03-27 2009-12-01 Gauger Jr Daniel M Headset audio accessory
US7627307B2 (en) 2003-03-06 2009-12-01 Motorola, Inc. Emergency call-back for a wireless communication device equipped with a user removable module
US7626594B1 (en) 1999-08-01 2009-12-01 Puredepth Limited Interactive three dimensional display with layered screens
US20090300444A1 (en) 2008-06-03 2009-12-03 Micron Technology, Inc. Method and apparatus for testing high capacity/high bandwidth memory devices
US20090300314A1 (en) 2008-05-29 2009-12-03 Micron Technology, Inc. Memory systems and methods for controlling the timing of receiving read data
US20090295747A1 (en) 2008-05-30 2009-12-03 Innolux Display Corp. Touch-sensitive liquid crystal display device with built-in touch mechanism
US20090302484A1 (en) 2008-06-10 2009-12-10 Micron Technology, Inc. Packaged microelectronic devices and methods for manufacturing packaged microelectronic devices
US7633963B1 (en) 1999-09-22 2009-12-15 Plantronics, Inc. Accessory interface bus for telephone headset adapter
US20090309142A1 (en) 2008-06-11 2009-12-17 Micron Technology, Inc. Imager devices having differing gate stack sidewall spacers, method for forming such imager devices, and systems including such imager devices
US20090319703A1 (en) 2008-06-23 2009-12-24 Samsung Electronics Co., Ltd. Stacked semiconductor memory device with compound read buffer
US20090321861A1 (en) 2008-06-26 2009-12-31 Micron Technology, Inc. Microelectronic imagers with stacked lens assemblies and processes for wafer-level packaging of microelectronic imagers
US20090323206A1 (en) 2008-06-25 2009-12-31 Micron Technology, Inc. Imaging module with symmetrical lens system and method of manufacture
US20090321947A1 (en) 2008-06-27 2009-12-31 Micron Technology, Inc. Surface depressions for die-to-die interconnects and associated systems and methods
US7643642B2 (en) 2004-05-10 2010-01-05 Motorola, Inc. Method and system for operating accessory controls
US20100005390A1 (en) 2008-07-01 2010-01-07 Lg Electronics, Inc. Mobile terminal using proximity sensor and method of controlling the mobile terminal
US20100017872A1 (en) 2002-12-10 2010-01-21 Neonode Technologies User interface for mobile computer unit
US20100026640A1 (en) * 2008-08-01 2010-02-04 Samsung Electronics Co., Ltd. Electronic apparatus and method for implementing user interface
US20100035656A1 (en) 2008-08-11 2010-02-11 Yang Pan Delivering Advertisement Messages to a User by the Use of Idle Screens of Mobile Devices with Integrated Sensors
US20100045612A1 (en) 2006-09-09 2010-02-25 Moelne Anders Integrated pressure sensitive lens assembly
US20100053103A1 (en) 2008-08-27 2010-03-04 Samsung Electronics Co., Ltd. Touch screen display
US20100053532A1 (en) 2008-08-26 2010-03-04 Chi Hsin Electronics Corp. Liquid crystal display having touch detecting structure
US7680490B2 (en) 2006-06-30 2010-03-16 Sony Ericsson Mobile Communications Ab System and method for multimedia networking with mobile telephone and headset
US7680514B2 (en) 2006-03-17 2010-03-16 Microsoft Corporation Wireless speech recognition
US20100066764A1 (en) 2008-09-18 2010-03-18 Microsoft Corporation Selective character magnification on touch screen devices
US7689168B2 (en) 2006-03-30 2010-03-30 Sony Ericsson Mobile Communications Ab Remote user interface for Bluetooth™ device
US20100079398A1 (en) 2008-09-26 2010-04-01 Innolux Display Corp. Liquid crystal display panel with touch panel function
US20100077829A1 (en) 2008-09-30 2010-04-01 Anthony Batista Low differential pressure monitoring system for rooms
US20100088654A1 (en) 2008-10-08 2010-04-08 Research In Motion Limited Electronic device having a state aware touchscreen
US20100097347A1 (en) 2008-10-21 2010-04-22 Tzu-Chih Lin Pressure Detection Module, and Touch Panel with Pressure Detection Module
US20100111434A1 (en) 2006-09-11 2010-05-06 Thomas Michael Madden Image rendering with image artifact along a multidimensional path
US7715831B2 (en) 2006-03-24 2010-05-11 Sony Ericssson Mobile Communications, Ab Methods, systems, and devices for detecting and indicating loss of proximity between mobile devices
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US7715873B1 (en) 2006-06-23 2010-05-11 Sprint Communications Company L.P. Wearable accessories providing visual indicia of incoming events for wireless telecommunications device
US20100134429A1 (en) 2008-12-01 2010-06-03 Samsung Electronics Co., Ltd. Touch screen display apparatus and method of manufacturing the same
US20100134448A1 (en) 2008-12-03 2010-06-03 Hydis Technologies Co., Ltd. Liquid Crystal Display Device with Touch Screen Function
US20100149101A1 (en) 2008-12-13 2010-06-17 Yan-Liang Guo Computer keyboard
US20100149124A1 (en) 2007-07-06 2010-06-17 Korea Research Institute Of Standards And Science Method for implementing mouse algorithm using tactile sensor
US20100156656A1 (en) 2008-12-22 2010-06-24 Palm, Inc. Enhanced Visual Feedback For Touch-Sensitive Input Device
US20100164884A1 (en) 2008-12-25 2010-07-01 Chunghwa Picture Tubes, Ltd. Touch display panel and liquid crystal display
US20100164745A1 (en) 2008-12-29 2010-07-01 Microsoft Corporation Remote control device with multiple active surfaces
US7762671B2 (en) 2004-10-19 2010-07-27 Casio Computer Co., Ltd. Projector apparatus, display output method and display output program
US20100188353A1 (en) 2009-01-23 2010-07-29 Samsung Electronics Co., Ltd. Mobile terminal having dual touch screen and method of controlling content therein
US20100188365A1 (en) 2009-01-26 2010-07-29 Sony Corporation Display apparatus and information input apparatus
US7769187B1 (en) 2009-07-14 2010-08-03 Apple Inc. Communications circuits for electronic devices and accessories
US20100194709A1 (en) 2009-02-04 2010-08-05 Sony Corporation Liquid crystal display device, manufacturing method of liquid crystal display device, display device and information input apparatus
US7778601B2 (en) 2005-01-24 2010-08-17 Broadcom Corporation Pairing modular wireless earpiece/microphone (HEADSET) to a serviced base portion and subsequent access thereto
US20100207900A1 (en) 2009-02-16 2010-08-19 Industrial Technology Research Institute Touch panel display system and driving method thereof
US20100208082A1 (en) 2008-12-18 2010-08-19 Band Crashers, Llc Media systems and methods for providing synchronized multiple streaming camera signals of an event
US20100206560A1 (en) 2007-03-29 2010-08-19 Don Atencio Automated closed loop flowback and separation system
US20100225608A1 (en) 2009-03-04 2010-09-09 Beijing Boe Optoelectronics Technology Co., Ltd. Touch display and manufacturing method thereof
US20100225604A1 (en) 2009-03-09 2010-09-09 Fuminori Homma Information processing apparatus, threshold value setting method, and threshold value setting program
US7796652B2 (en) 2006-05-02 2010-09-14 Diablo Technologies Inc. Programmable asynchronous first-in-first-out (FIFO) structure with merging capability
US20100240390A1 (en) 2009-03-19 2010-09-23 Microsoft Corporation Dual Module Portable Devices
US7813715B2 (en) 2006-08-30 2010-10-12 Apple Inc. Automated pairing of wireless accessories with host devices
US7814287B2 (en) 2005-07-15 2010-10-12 Xensource, Inc. Using writeable page tables for memory address translation in a hypervisor environment
US20100259490A1 (en) 2009-04-08 2010-10-14 Cheng-Hao Lee Touch Control Electrophoretic Display Module, and Manufacturing Method and Touch Sensing Method for the same
US7818036B2 (en) 2003-09-19 2010-10-19 Radeum, Inc. Techniques for wirelessly controlling push-to-talk operation of half-duplex wireless device
US7818037B2 (en) 2003-09-19 2010-10-19 Radeum, Inc. Techniques for wirelessly controlling push-to-talk operation of half-duplex wireless device
US7826318B2 (en) 2004-04-27 2010-11-02 Apple Inc. Method and system for allowing a media player to transfer digital audio to an accessory
US20100277432A1 (en) 2009-05-04 2010-11-04 Mitac International Corp. Multi-touch controlled apparatus and method thereof
US7835809B2 (en) 2005-11-23 2010-11-16 Griffin Technology, Inc. Digital media player accessory interface
US20100293460A1 (en) 2009-05-14 2010-11-18 Budelli Joe G Text selection method and system based on gestures
US20100289819A1 (en) 2009-05-14 2010-11-18 Pure Depth Limited Image manipulation
US20100313166A1 (en) * 2006-05-03 2010-12-09 Sony Computer Entertainment Inc. Multimedia reproducing device and background image display method
US7855931B2 (en) 2008-07-21 2010-12-21 Micron Technology, Inc. Memory system and method using stacked memory device dice, and system using the memory system
US7857225B2 (en) 2006-12-01 2010-12-28 Mobeam Inc. System, method and apparatus for communicating information from a personal electronic device
US20100332635A1 (en) 2009-06-26 2010-12-30 Vmware, Inc., Migrating functionality in virtualized mobile devices
US20110001706A1 (en) 2009-07-02 2011-01-06 Emery Sanford Electronic device touch screen display module
US20110007023A1 (en) 2009-07-09 2011-01-13 Sony Ericsson Mobile Communications Ab Display device, touch screen device comprising the display device, mobile device and method for sensing a force on a display device
US20110012921A1 (en) 2009-07-20 2011-01-20 Motorola, Inc. Electronic Device and Method for Manipulating Graphic User Interface Elements
US20110016250A1 (en) 2009-07-16 2011-01-20 Netlist, Inc. System and method utilizing distributed byte-wise buffers on a memory module
US20110025969A1 (en) 2009-07-31 2011-02-03 Chimei Innolux Corporation Touch-sensitive liquid crystal display device
US20110035540A1 (en) 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
US7889786B2 (en) 2003-08-29 2011-02-15 Diablo Technologies Inc. Operating frequency reduction for transversal FIR filter
US20110037726A1 (en) 2008-04-23 2011-02-17 Jung Mok Lee Display device and input device
US20110044064A1 (en) 2009-08-18 2011-02-24 Chi-Hsien Hu Flash light for a bicycle with the function of direction and elevation indication
US20110051334A1 (en) 2008-03-14 2011-03-03 David Griffith Suspension for a pressure sensitive touch display or panel
US20110050576A1 (en) 2009-08-31 2011-03-03 Babak Forutanpour Pressure sensitive user interface for mobile devices
US20110050588A1 (en) 2009-08-27 2011-03-03 Symbol Technologies, Inc. Methods and apparatus for pressure-based manipulation of content on a touch screen
US20110050608A1 (en) 2009-09-02 2011-03-03 Fuminori Homma Information processing apparatus, information processing method and program
US20110050593A1 (en) 2009-09-02 2011-03-03 Kim John T Touch-Screen User Interface
US20110050602A1 (en) 2009-08-26 2011-03-03 Lg Electronics Inc. Mobile terminal and controlling method thereof
US20110050592A1 (en) 2009-09-02 2011-03-03 Kim John T Touch-Screen User Interface
US20110050591A1 (en) 2009-09-02 2011-03-03 Kim John T Touch-Screen User Interface
US20110050594A1 (en) 2009-09-02 2011-03-03 Kim John T Touch-Screen User Interface
US7902886B2 (en) 2007-10-30 2011-03-08 Diablo Technologies Inc. Multiple reference phase locked loop
US20110066790A1 (en) 2009-09-17 2011-03-17 Jeffrey Clifford Mogul Main memory with non-volatile memory and dram
US7916574B1 (en) 2004-03-05 2011-03-29 Netlist, Inc. Circuit providing load isolation and memory domain translation for memory module
US20110075257A1 (en) 2009-09-14 2011-03-31 The Arizona Board Of Regents On Behalf Of The University Of Arizona 3-Dimensional electro-optical see-through displays
US20110080417A1 (en) 2009-10-01 2011-04-07 Apple Inc. Systems and methods for switching between an electronic paper display and a video display
US20110088416A1 (en) 2009-10-16 2011-04-21 CoreRed, LLC Vacuum And Freeze-Up HVAC Sensor
US7932893B1 (