PATENT DOCUMENT

Publication Number: US-9298363-B2
Application Number: US-201113084472-A
Country: US
Kind Code: B2

Title: Region activation for touch sensitive surface

Abstract:
One or more regions of a touch sensitive surface can be activated individually by a user. A region defines an active input area for processing touch input events. Any touch event associated with a beginning touch event that is detected in the active area is processed for display. Any touch input event detected outside the active region that is not associated with the beginning touch event is excluded from the processing. Once a writing gesture is started in the active region, the writing gesture can extend outside of the active region so long as the writing gesture is associated with the beginning touch event.

Claims:
What is claimed is: 
     
       1. A method comprising:
 at an electronic device including one or more processors, memory, and a touch-sensitive display;
 concurrently displaying on the touch-sensitive display
 a plurality of visually delineated regions, including a first visually delineated region, and 
 a plurality of user interface elements, including a first user interface element associated with the first region; 
 
 while displaying the plurality of visually delineated regions on the touch-sensitive display:
 receiving an input that selects the first user interface element; 
 in response to receiving the input that select the first user interface element, activating the first visually delineated region; 
 while the first visually delineated region is activated:
 for all touch gestures that are detected starting at a location on the touch-sensitive display with a beginning touch event that is located within the first visually delineated region, processing additional touch events of a respective touch gesture that are a continuation of the beginning touch event and are made without interruption, including touch events in the respective touch gesture that extend outside the first visually delineated region; and 
 for all touch gestures that are detected starting at a location on the touch-sensitive display with a beginning touch event that is located outside the first visually delineated region, not processing a respective touch gesture as input for the first visually delineated region. 
 
 
 
 
     
     
       2. The method of  claim 1 , wherein:
 processing the additional touch events of a respective touch gesture that are a continuation of the beginning touch event and are made without interruption includes displaying a respective path, corresponding to the respective touch gesture, on the touch-sensitive display. 
 
     
     
       3. The method of  claim 2 , further comprising:
 capturing and storing one or more paths, including the respective path, in the one or more active regions, excluding one or more portions of the one or more paths outside the one or more active regions. 
 
     
     
       4. The method of  claim 1 , including:
 prior to receiving the input that selects the first user interface element, displaying the plurality of visually delineated regions and the plurality of user interface elements on the touch-sensitive surface, wherein respective user interface elements of the plurality of user interface elements indicate whether respective visually delineated regions, of the plurality of visually delineated regions, associated with the respective user interface elements are selected. 
 
     
     
       5. The method of  claim 1 , wherein the first user interface element, distinct from the first visually delineated region, is displayed proximate to the first visually delineated region. 
     
     
       6. The method of  claim 1 , wherein, while the first user interface element is selected, the first user interface element is visually augmented to indicate its selection. 
     
     
       7. The method of  claim 1 , further comprising:
 receiving second input selecting a second visually delineated region of the touch-sensitive display for activation based on selection of a second user interface element, of the plurality of user interface elements displayed on the touch-sensitive surface, associated with the second visually delineated region, wherein the first user interface element is distinct from the second user interface element; and 
 activating the second visually delineated region while maintaining the first visually delineated region as an active region. 
 
     
     
       8. The method of  claim 1 , wherein all the touch gestures are detected with one or more proximity sensors. 
     
     
       9. A system comprising:
 a touch-sensitive display; 
 one or more processors; and 
 memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions for:
 concurrently displaying on the touch-sensitive display
 a plurality of visually delineated regions, including a first visually delineated region, and 
 a plurality of user interface elements, including a first user interface element associated with the first region; 
 
 while displaying the plurality of visually delineated regions on the touch-sensitive display:
 receiving an input that selects the first user interface element; 
 in response to receiving the input that select the first user interface element, activating the first visually delineated region; 
 while the first visually delineated region is activated:
 for all touch gestures that are detected starting at a location on the touch-sensitive display with a beginning touch event that is located within the first visually delineated region, processing additional touch events of a respective touch gesture that are a continuation of the beginning touch event and are made without interruption, including touch events in the respective touch gesture that extend outside the first visually delineated region; and, 
 for all touch gestures that are detected starting at a location on the touch-sensitive display with a beginning touch event that is located outside the first visually delineated region, not processing a respective touch gesture as input for the first visually delineated region. 
 
 
 
 
     
     
       10. The system of  claim 9 , wherein:
 processing the additional touch events of a respective touch gesture that are a continuation of the beginning touch event and are made without interruption includes displaying a respective path, corresponding to the respective touch gesture, on the touch-sensitive display. 
 
     
     
       11. The system of  claim 10 , wherein the one or more programs include instructions for:
 capturing and storing one or more paths, including the respective path, in the one or more active regions, excluding one or more portions of the one or more paths outside the one or more active regions. 
 
     
     
       12. The system of  claim 9 , wherein the one or more programs include instructions for:
 prior to receiving the input that selects the first user interface element, displaying a user interface including the plurality of the visually delineated regions and the plurality of user interface elements on the touch-sensitive surface, wherein respective user interface elements of the plurality of user interface elements indicate whether respective visually delineated regions, of the plurality of visually delineated regions, associated with the respective user interface elements are selected. 
 
     
     
       13. The system of  claim 9 , wherein the first user interface element, distinct from the first visually delineated region, is displayed proximate to the first visually delineated region. 
     
     
       14. The system of  claim 9 , wherein, while the first user interface element is selected, the first user interface element is visually augmented to indicate its selection. 
     
     
       15. The system of  claim 9 , wherein the one or more programs include instructions for:
 receiving second input selecting a second visually delineated region of the touch-sensitive display for activation based on selection of a second user interface element, of the plurality of user interface elements displayed on the touch-sensitive surface, associated with the second visually delineated region, wherein the first user interface element is distinct from the second user interface element; and 
 activating the second visually delineated region while maintaining the first visually delineated region as an active region. 
 
     
     
       16. The system of  claim 9 , wherein all the touch gestures are detected with one or more proximity sensors. 
     
     
       17. A non-transitory computer-readable medium having one or more programs stored thereon for execution by one or more processors of an electronic device with a touch-sensitive display, the one or more programs including instructions for:
 concurrently displaying on the touch-sensitive display
 a plurality of visually delineated regions, including a first visually delineated region, and 
 a plurality of user interface elements, including a first user interface element associated with the first region; 
 
 while displaying the plurality of visually delineated regions on the touch-sensitive display:
 receiving an input that selects the first user interface element; 
 in response to receiving the input that select the first user interface element, activating the first visually delineated region; 
 while the first visually delineated region is activated:
 for all touch gestures that are detected starting at a location on the touch-sensitive display with a beginning touch event that is located within the first visually delineated region, processing additional touch events of a respective touch gesture that are a continuation of the beginning touch event and are made without interruption, including touch events in the respective touch gesture that extend outside the first visually delineated region; and, 
 for all touch gestures that are detected starting at a location on the touch-sensitive display with a beginning touch event that is located outside the first visually delineated region, not processing a respective touch gesture as input for the first visually delineated region. 
 
 
 
     
     
       18. The computer-readable medium of  claim 17 , wherein:
 processing the additional touch events of a respective touch gesture that are a continuation of the beginning touch event and are made without interruption includes displaying a respective path, corresponding to the respective touch gesture, on the touch-sensitive display. 
 
     
     
       19. The computer-readable medium of  claim 18 , wherein the one or more programs include instructions for:
 capturing and storing one or more paths, including the respective path, in the one or more active regions, excluding one or more portions of the one or more paths outside the one or more active regions. 
 
     
     
       20. The computer-readable medium of  claim 17 , wherein the one or more programs include instructions for:
 prior to receiving the input that selects the first user interface element, displaying a user interface including the plurality of the visually delineated regions and the plurality of user interface elements on the touch-sensitive surface, wherein respective user interface elements of the plurality of user interface elements indicate whether respective visually delineated regions, of the plurality of visually delineated regions, associated with the respective user interface elements are selected. 
 
     
     
       21. The computer-readable medium of  claim 17 , wherein the first user interface element, distinct from the first visually delineated region, is displayed proximate to the first visually delineated region. 
     
     
       22. The computer-readable medium of  claim 17 , wherein, while the first user interface element is selected, the first user interface element is visually augmented to indicate its selection. 
     
     
       23. The computer-readable medium of  claim 17 , wherein the one or more programs include instructions for:
 receiving second input selecting a second visually delineated region of the touch-sensitive display for activation based on selection of a second user interface element, of the plurality of user interface elements displayed on the touch-sensitive surface, associated with the second visually delineated region, wherein the first user interface element is distinct from the second user interface element; and 
 activating the second visually delineated region while maintaining the first visually delineated region as an active region. 
 
     
     
       24. The computer-readable medium of  claim 17 , wherein all the touch gestures are detected with one or more proximity sensors.

Description:
TECHNICAL FIELD 
     This disclosure relates generally to devices having touch sensitive surfaces. 
     BACKGROUND 
     Modern mobile devices (e.g., electronic tablets) can run applications that allow a user to capture handwritten notes using a touch sensitive surface. While handwriting on the touch sensitive surface, a typical user may rest their palm or side of their hand on the touch sensitive surface for support, causing the device to register a touch input. To avoid such inadvertent touch input, the user can elevate their hand above the touch surface when writing. This workaround can be awkward and tiring to the user. 
     SUMMARY 
     One or more regions of a touch sensitive surface can be activated individually by a user. A region defines an active input area for processing touch input events. Any touch event associated with a beginning touch event that is detected in the active area is processed for display. Any touch input event detected outside the active region that is not associated with the beginning touch event is excluded from the processing. In some implementations, a region can be visually delineated by horizontal rule lines of a virtual notebook page. A selector/indicator can be displayed at the left or right end of the region for activating the corresponding region. Once a writing gesture is started in the active region, the writing gesture can extend outside of the active region so long as the writing gesture is made without interruption. When a region is activated by a user touching the selector/indicator, the selector/indicator can be visually augmented to indicate that its corresponding region is active. When the writing gesture is completed by the user, the writing gesture displayed in the active region can be captured and stored for use with other applications. 
     Particular implementations of region activation for a touch sensitive surface, provides one or more of the following advantages. A user can independently activate one or more regions of a touch sensitive surface to avoid registering inadvertent touch inputs outside the active region. The active regions can be captured and stored for use with other applications. 
     The details of one or more disclosed implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, the drawings and the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a touch sensitive surface with individually selectable active regions. 
         FIG. 2  illustrates the touch sensitive surface with writing extending outside a selected active region. 
         FIG. 3  is a flow diagram of an exemplary process for activating and processing for display a region on a touch sensitive surface. 
         FIG. 4  is a block diagram of an exemplary device architecture that implements the features and processes described with reference to  FIGS. 1-3 . 
     
    
    
     Like reference symbols in the various drawings indicate like elements. 
     DETAILED DESCRIPTION 
     Exemplary Active Region for Touch Sensitive Surface 
       FIG. 1  illustrates an exemplary touch sensitive surface  100  with individually selectable active regions  102 . In some implementations, touch sensitive surface  100  can be a virtual notepad with pages having horizontal rule lines to provide visual guides for handwritten notes. In the example shown, region  102  is the writing area above rule line  105 . A user has made a handwritten note (“Sample Note”) in region  102  using their finger, a stylus or other suitable writing instrument. 
     In the example shown, a user interface element  104  is displayed on the left end of each region  102 . User interface element  104  is a selector/indicator that can be touched by a user to activate the corresponding region  102 . For example, the user can touch user interface element  104  to activate corresponding region  102 . Activating a region means that touch events (e.g., writing gestures) initiated in region  102  can be detected and processed for display by a processor of the device, resulting in an immediate, real-time display of the user&#39;s handwriting. That is, touch events (e.g., writing gestures) are detected and processed for display in real-time to create the appearance that the user is handwriting on touch sensitive surface  100 . 
     In general, touches started outside of active region  102  are ignored, while touches initiated within active region  102  are used to start a currently active path. The continuation of a touch started within active region  102  (e.g., a writing gesture) causes curves to be added to the currently active path using, for example, a cubic Bézier path generator as described in co-pending U.S. patent application Ser. No. 13/084,355, for “Handwriting Capture Techniques,” filed even date herewith. At any given time, only one active path is recognized by the device as a continuation of a touch gesture. 
     In some implementations, touch screen driver software translates touch signals from hardware (e.g., a capacitive touch screen) into touch events, which can be aggregated into touch gestures using a touch input model. The touch events or gestures can be provided to an operating system or other applications through an Application Programming Interface (API) where the touch events can be further processed. 
     Generally, user interface element  104  can be any size or shape and located anywhere on touch sensitive surface  100 . In the example shown, user interface element  104  is a circle that is visually augmented (e.g., filled with color) when selected to indicate its selection and the active status of its corresponding active region  102 . Visually augmenting user interface element  104  can include, but is not limited to changing the color, shape or size of the element, animating the element, highlighting the user interface element or its background, or the like. In some implementations, selection of region  102  can be indicated by audio or force feedback (e.g., a vibration) in addition or in lieu of visual augmentation. 
     In some implementations, user interface element  104  can be displayed at left or right ends of each region  102  to facilitate selection by left or right-handed users. A settings menu or similar input mechanism can allow users to select the location of user interface element  104  on touch sensitive surface  100 . In some implementations, user interface element  104  can be a hardware button. 
     When the user is finished writing in active region  102 , the user can select the “Accept” button  106  to capture the handwritten note in active region  102  and stored in a digital image format (e.g., .png). Only the content drawn within active region  102  is captured. Once captured and stored, the content can be used with other applications. Upon acceptance, active region  102  can be deactivated automatically. A “Clear” button  108  can be used to clear the entire active region  102  of its contents. 
       FIG. 2  illustrates the touch sensitive surface with a writing gesture extending outside the selected active region. In the example shown, the user activated region  202  using selector/indicator  204 . The user then initiated a beginning touch event in active region  202 . For example, the user placed their finger or stylus on touch screen  100  in active region  202  to begin a writing gesture. After the beginning touch event, the user extended the writing gesture outside active region  202 . The portions of the writing gesture extending outside active region  202  were processed and displayed since the writing gesture began inside the active region and the extended portions are part of the writing gesture, i.e., associated with the beginning touch event. When the user accepts the writing (e.g., by selecting the “Accept” button), the contents of active region  202  are captured and stored for use with other applications. In this example, the portions of the letters “LOC” extending outside active region  202  are truncated and thus excluded from the screen capture. 
     Exemplary Process Flow 
       FIG. 3  is a flow diagram of an exemplary process  300  for activating a region on a touch sensitive surface. Process  300  can be implemented by device architecture  400 , as described in reference to  FIG. 4 . 
     In some implementations, process  300  can begin by receiving input selecting region(s) of touch sensitive surface for activation ( 302 ). In some implementations, the touch sensitive surface can be a touch sensitive display of a device (e.g., computer, mobile phone, electronic tablet). A region can be selected by touching a selector/indicator corresponding to the region, as described in reference to  FIGS. 1 and 2 . 
     The user interface element can be visually augmented to indicate selection of its corresponding region. Other feedback is also possible. For example, audio or force feedback (e.g., a vibration) can be used to indicate selection of a region. A region can be any portion of a touch sensitive surface and have any shape or size. In some implementations, a region can be the writing area between two horizontal rule lines of a virtual notebook page, as shown in  FIGS. 1-2 . Generally, the user interface element for selecting a corresponding region can be located anywhere on the touch sensitive surface and can be any size or shape. In the notebook example of  FIGS. 1-2 , a user interface element is displayed at the left end of each region to facilitate easy selection by a right-handed user. 
     Process  300  can continue by activating the selected region(s) ( 304 ). Once activated, any touch input in the active region will be detected and processed by the device for display. 
     Process  300  can continue by detecting a beginning touch event in the active region ( 306 ). A beginning touch event can occur when the user first touches the active region with a finger, stylus or other writing instrument. 
     Process  300  continues detecting and processing additional touch events in active region(s) associated with the beginning touch event ( 308 ). The processing excludes additional touch events detected outside the active region(s) that are not associated with the beginning touch event in the active region(s). 
     Process  310  continues by receiving input accepting the processed touch events ( 310 ), and capturing and storing the processed touch events ( 312 ). A user can accept touch events by selecting a virtual button or providing other detectable input. Upon acceptance, the content in the active region can be captured into a digital image and stored (e.g., stored in a container object) for use by other applications. 
     Exemplary Device Architecture 
       FIG. 4  is a block diagram illustrating exemplary device architecture implementing features and operations described in reference to  FIGS. 1-5 . Device  400  can be any device capable of capturing handwriting on a touch sensitive surface, including but not limited to smart phones and electronic tablets. Device  400  can include memory interface  402 , one or more data processors, image processors or central processing units  404 , and peripherals interface  406 . Memory interface  402 , processor(s)  404  or peripherals interface  406  can be separate components or can be integrated in one or more integrated circuits. The various components can be coupled by one or more communication buses or signal lines. 
     Sensors, devices, and subsystems can be coupled to peripherals interface  406  to facilitate multiple functionalities. For example, motion sensor  410 , light sensor  412 , and proximity sensor  414  can be coupled to peripherals interface  406  to facilitate orientation, lighting, and proximity functions of the mobile device. For example, in some implementations, light sensor  412  can be utilized to facilitate adjusting the brightness of touch screen  446 . In some implementations, motion sensor  410  (e.g., an accelerometer, gyros) can be utilized to detect movement and orientation of the device  400 . Accordingly, display objects or media can be presented according to a detected orientation, e.g., portrait or landscape. 
     Other sensors can also be connected to peripherals interface  406 , such as a temperature sensor, a biometric sensor, or other sensing device, to facilitate related functionalities. 
     Location processor  415  (e.g., GPS receiver) can be connected to peripherals interface  406  to provide geo-positioning. Electronic magnetometer  416  (e.g., an integrated circuit chip) can also be connected to peripherals interface  406  to provide data that can be used to determine the direction of magnetic North. Thus, electronic magnetometer  416  can be used as an electronic compass. 
     Camera subsystem  420  and an optical sensor  422 , e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, can be utilized to facilitate camera functions, such as recording photographs and video clips. 
     Communication functions can be facilitated through one or more communication subsystems  424 . Communication subsystem(s)  424  can include one or more wireless communication subsystems  424 . Wireless communication subsystems can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. Wired communication system can include a port device, e.g., a Universal Serial Bus (USB) port or some other wired port connection that can be used to establish a wired connection to other computing devices, such as other communication devices, network access devices, a personal computer, a printer, a display screen, or other processing devices capable of receiving or transmitting data. The specific design and implementation of the communication subsystem  424  can depend on the communication network(s) or medium(s) over which device  400  is intended to operate. For example, a mobile device can include communication subsystems  424  designed to operate over a GSM network, a GPRS network, an EDGE network, a WiFi or WiMax network, and a Bluetooth network. In particular, the wireless communication subsystems  424  can include For example, device  400  may include wireless communication subsystems designed to operate over a global system for mobile communications (GSM) network, a GPRS network, an enhanced data GSM environment (EDGE) network, 802.x communication networks (e.g., WiFi, WiMax, or  3 G networks), code division multiple access (CDMA) networks, and a Bluetooth™ network. Communication subsystems  424  may include hosting protocols such that the mobile device  400  may be configured as a base station for other wireless devices. As another example, the communication subsystems can allow the device to synchronize with a host device using one or more protocols, such as, for example, the TCP/IP protocol, HTTP protocol, UDP protocol, and any other known protocol. 
     Audio subsystem  426  can be coupled to a speaker  428  and one or more microphones  430  to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions. 
     I/O subsystem  440  can include touch screen controller  442  and/or other input controller(s)  444 . Touch-screen controller  442  can be coupled to a touch screen  446  or pad. Touch screen  446  and touch screen controller  442  can, for example, detect contact and movement or break thereof using any of a number of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch screen  446 . 
     Other input controller(s)  444  can be coupled to other input/control devices  448 , such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus. The one or more buttons (not shown) can include an up/down button for volume control of speaker  428  and/or microphone  430 . 
     In one implementation, a pressing of the button for a first duration may disengage a lock of the touch screen  446 ; and a pressing of the button for a second duration that is longer than the first duration may turn power to mobile device  400  on or off. The user may be able to customize a functionality of one or more of the buttons. The touch screen  446  can also be used to implement virtual or soft buttons and/or a keyboard. 
     In some implementations, device  110  can present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, mobile device  110  can include the functionality of an MP3 player and may include a pin connector for tethering to other devices. Other input/output and control devices can be used. 
     Memory interface  402  can be coupled to memory  450 . Memory  450  can include high-speed random access memory or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, or flash memory (e.g., NAND, NOR). Memory  450  can store operating system  452 , such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. Operating system  452  may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, operating system  452  can include a kernel (e.g., UNIX kernel). 
     Memory  450  may also store communication instructions  454  to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers. Communication instructions  454  can also be used to select an operational mode or communication medium for use by the device, based on a geographic location (obtained by the GPS/Navigation instructions  468 ) of the device. Memory  450  may include graphical user interface instructions  456  to facilitate graphic user interface processing; sensor processing instructions  458  to facilitate sensor-related processing and functions; phone instructions  460  to facilitate phone-related processes and functions; electronic messaging instructions  442  to facilitate electronic-messaging related processes and functions; web browsing instructions  464  to facilitate web browsing-related processes and functions; media processing instructions  466  to facilitate media processing-related processes and functions; GPS/Navigation instructions  468  to facilitate GPS and navigation-related processes and instructions; camera instructions  470  to facilitate camera-related processes and functions; region activation instructions  472  for the processes and features described with reference to  FIGS. 1-3  Region Ac; and application instructions  474 . The memory  450  may also store other software instructions  476  for facilitating other processes, features and applications. 
     Each of the above identified instructions and applications can correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. Memory  450  can include additional instructions or fewer instructions. Furthermore, various functions of the mobile device may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits. 
     The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language (e.g., Objective-C, Java), including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. 
     Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to, communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. 
     Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits). 
     To provide for interaction with a player, the features can be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the player. The computer can also have a keyboard and a pointing device such as a game controller, mouse or a trackball by which the player can provide input to the computer. 
     The features can be implemented in a computer system that includes a back-end component, such as a data server, that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Some examples of communication networks include LAN, WAN and the computers and networks forming the Internet. 
     The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. 
     One or more features or steps of the disclosed embodiments can be implemented using an API. An API can define on or more parameters that are passed between a calling application and other software code (e.g., an operating system, library routine, function) that provides a service, that provides data, or that performs an operation or a computation. The API can be implemented as one or more calls in program code that send or receive one or more parameters through a parameter list or other structure based on a call convention defined in an API specification document. A parameter can be a constant, a key, a data structure, an object, an object class, a variable, a data type, a pointer, an array, a list, or another call. API calls and parameters can be implemented in any programming language. The programming language can define the vocabulary and calling convention that a programmer will employ to access functions supporting the API. In some implementations, an API call can report to an application the capabilities of a device running the application, such as input capability, output capability, processing capability, power capability, communications capability, etc. 
     A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.

Metadata:
Filing Date: 20110411
Publication Date: 20160329
Grant Date: 20160329
Priority Date: 20110411
Inventors: CRUMLY LYNDLEY
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F3/04883", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/04883", "inventive": true, "first": true, "tree": "[]"}]
Family ID: 46965697