Directional touch remote
11792256 · 2023-10-17
Assignee
Inventors
- Rainer Brodersen (Santa Cruz, CA, US)
- Alan Cannistraro (San Francisco, CA, US)
- Jeffrey L. Robbin (Los Altos, CA, US)
- Gregory Charles Lindley (Redwood City, CA, US)
Cpc classification
H04N21/41265
ELECTRICITY
G06F3/0488
PHYSICS
H04N21/4227
ELECTRICITY
H04M2250/22
ELECTRICITY
H04N21/42204
ELECTRICITY
H04N21/4222
ELECTRICITY
H04L67/025
ELECTRICITY
H04N21/431
ELECTRICITY
International classification
H04L67/025
ELECTRICITY
G06F3/0488
PHYSICS
H04N21/422
ELECTRICITY
H04N21/4227
ELECTRICITY
H04N21/431
ELECTRICITY
Abstract
A remotely controlled device receives touch input data from a remote controller that includes a touch screen. The remotely controller device interprets the touch input data in combination with a current context of the GUI to determine an appropriate command for the current context of the GUI, and updates the GUI in response to the appropriate command. Further, the remotely controlled device sends information via a bidirectional communication protocol to the remote controller informing the remote controller of a context displaying a keyboard, and the remote controller is configured to display a keyboard on its touch screen in response to the information sent via the bidirectional communication protocol.
Claims
1. A method for remotely controlling a device, comprising: receiving touch input data at a remotely controlled device from a remote controller including a touch screen input device, wherein the touch input data can be interpreted by the remotely controlled device as one of a plurality of potential commands in a first context of a graphical user interface (GUI) of the remotely controlled device and as another of the plurality of potential commands in a second context of the GUI of the remotely controlled device; and in response to receiving the touch input data: interpreting the touch input data in combination with a current context of the GUI of the remotely controlled device to determine an appropriate command for the current context of the GUI; updating the GUI of the remotely controlled device in response to the appropriate command; and sending, from the remotely controlled device, information via a bidirectional communication protocol to the remote controller informing the remote controller of a context of the GUI of the remotely controlled device displaying a keyboard, wherein the remote controller is configured to display a keyboard on the touch screen input device at least partially in response to the information received via the bidirectional communication protocol.
2. The method of claim 1, wherein the received touch input data includes touch input data corresponding to touch inputs received at the remote controller in an unstructured portion of a touch screen interface.
3. The method of claim 1, wherein the touch input data comprises touch input information that includes touch start, touch move, touch end, and touch duration data.
4. The method of claim 1, wherein interpreting the touch input data to determine the appropriate command for the current context of the GUI results in determining a first command in a first GUI context and a second command in a second GUI context.
5. The method of claim 1, wherein the received touch input data is received from the remote controller via a unidirectional communication.
6. The method of claim 1, wherein the touch input data is received from the remote controller in packets of up to 50 bytes.
7. The method of claim 1, wherein the touch input data includes touch input information including a number of touch digits.
8. The method of claim 1, wherein, while receiving touch input data at the remotely controlled device from the remote controller, the remote controller is recognized by the remotely controlled device, and a first potential command of the plurality of potential commands is associated with a first action in the first context and the first potential command is associated with a second action different from the first action in the second context.
9. A non-transitory computer-readable storage medium, storing machine-executable instructions that, when executed by one or more processors of an electronic device, comprising a remotely controlled device, cause the remotely controlled device to perform operations comprising: receiving touch input data at the remotely controlled device from a remote controller including a touch screen input device, wherein the touch input data can be interpreted by the remotely controlled device as one of a plurality of potential commands in a first context of a graphical user interface (GUI) of the remotely controlled device and as another of the plurality of potential commands in a second context of the GUI of the remotely controlled device; and in response to receiving the touch input data: interpreting the touch input data in combination with a current context of the GUI of the remotely controlled device to determine an appropriate command for the current context of the GUI; updating the GUI of the remotely controlled device in response to the appropriate command; and sending, from the remotely controlled device, information via a bidirectional communication protocol to the remote controller informing the remote controller of a context of the GUI of the remotely controlled device displaying a keyboard, wherein the remote controller is configured to display a keyboard on the touch screen input device at least partially in response to the information received via the bidirectional communication protocol.
10. The non-transitory computer-readable storage medium of claim 9, wherein the received touch input data includes touch input data corresponding to touch inputs received at the remote controller in an unstructured portion of a touch screen interface.
11. The non-transitory computer-readable storage medium of claim 9, wherein the touch input data comprises touch input information that includes touch start, touch move, touch end, and touch duration data.
12. The non-transitory computer-readable storage medium of claim 9, wherein interpreting the touch input data to determine the appropriate command for the current context of the GUI results in determining a first command in a first GUI context and a second command in a second GUI context.
13. The non-transitory computer-readable storage medium of claim 9, wherein the received touch input data is received from the remote controller via a unidirectional communication.
14. The non-transitory computer-readable storage medium of claim 9, wherein the touch input data is received from the remote controller in packets of up to 50 bytes.
15. The non-transitory computer-readable storage medium of claim 9, wherein the touch input data includes touch input information including a number of touch digits.
16. The non-transitory computer-readable storage medium of claim 9, wherein, while receiving touch input data at the remotely controlled device from the remote controller, the remote controller is recognized by the remotely controlled device, and a first potential command of the plurality of potential commands is associated with a first action in the first context and the first potential command is associated with a second action different from the first action in the second context.
17. A remotely controlled device, comprising: one or more processors; a display; a communication interface; memory; and machine-executable instructions, stored in the memory, that when executed by the one or more processors cause the remotely controlled device to perform operations including: receiving touch input data from a remote controller including a touch screen input device, wherein the touch input data can be interpreted by the remotely controlled device as one of a plurality of potential commands in a first context of a graphical user interface (GUI) displayed on the display of the remotely controlled device and as another of the plurality of potential commands in a second context of the GUI displayed on the display of the remotely controlled device; and in response to receiving the touch input data: interpreting the touch input data in combination with a current context of the GUI of the remotely controlled device to determine an appropriate command for the current context of the GUI; updating the GUI of the remotely controlled device displayed on the display in response to the appropriate command; and sending, from the remotely controlled device, information via a bidirectional communication protocol to the remote controller informing the remote controller of a context of the GUI of the remotely controlled device displaying a keyboard, wherein the remote controller is configured to display a keyboard on the touch screen input device at least partially in response to the information received via the bidirectional communication protocol.
18. A system comprising: a remote controller including: a touch screen input device configured to receive touch inputs; a communications interface configured to send touch input data corresponding to the touch inputs received by the touch screen input device; a remotely controlled device configured to present a graphical user interface in a plurality of contexts, the remotely controlled device including: a communications interface for receiving the touch input data sent by the remote controller, wherein the received touch input data can be interpreted by the remotely controlled device as one of a plurality of potential commands in a first context of a graphical user interface (GUI) of the remotely controlled device and as another of the plurality of potential commands in a second context of the GUI of the remotely controlled device; one or more processors configured to: interpret the touch input data in combination with a current context of the GUI to determine an appropriate command for the current context of the GUI; update the GUI in response to the appropriate command; and send, from the remotely controlled device, information via a bidirectional communication protocol to the remote controller informing the remote controller of a context displaying a keyboard, wherein the remote controller is configured to display a keyboard on the touch screen input device at least partially in response to the information received via the bidirectional communication protocol.
19. The remotely controlled device of claim 17, wherein the received touch input data includes touch input data corresponding to touch inputs received at the remote controller in an unstructured portion of a touch screen interface.
20. The remotely controlled device of claim 17, wherein the touch input data comprises touch input information that includes touch start, touch move, touch end, and touch duration data.
21. The remotely controlled device of claim 17, wherein interpreting the touch input data to determine the appropriate command for the current context of the GUI results in determining a first command in a first GUI context and a second command in a second GUI context.
22. The remotely controlled device of claim 17, wherein the received touch input data is received from the remote controller via a unidirectional communication.
23. The remotely controlled device of claim 17, wherein the touch input data is received from the remote controller in packets of up to 50 bytes.
24. The remotely controlled device of claim 17, wherein the touch input data includes touch input information including a number of touch digits.
25. The remotely controlled device of claim 17, wherein, while receiving touch input data at the remotely controlled device from the remote controller, the remote controller is recognized by the remotely controlled device, and a first potential command of the plurality of potential commands is associated with a first action in the first context and the first potential command is associated with a second action different from the first action in the second context.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) In order to best describe the manner in which the above-described embodiments are implemented, as well as define other advantages and features of the disclosure, a more particular description is provided below and is illustrated in the appended drawings. Understanding that these drawings depict only exemplary embodiments of the invention and are not therefore to be considered to be limiting in scope, the examples will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION
(12) Various embodiments of the disclosed methods and arrangements are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components, configurations, and steps may be used without parting from the spirit and scope of the disclosure.
(13) With reference to
(14) Although the exemplary environment described herein employs a hard disk, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital versatile disks, cartridges, random access memories (RAMs), read only memory (ROM) may also be used in the exemplary operating environment.
(15) To enable user interaction with the computing device 100, an input device 190 represents any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. The device output 170 can also be one or more of a number of output mechanisms known to those of skill in the art. For example, video output or audio output devices which can be connected to or can include displays or speakers are common. Additionally, the video output and audio output devices can also include specialized processors for enhanced performance of these specialized functions. In some instances, multimodal systems enable a user to provide multiple types of input to communicate with the computing device 100. The communications interface 180 generally governs and manages the user input and system output. There is no restriction on the disclosed methods and devices operating on any particular hardware arrangement and therefore the basic features may easily be substituted for improved hardware or firmware arrangements as they are developed.
(16) For clarity of explanation, the illustrative system embodiment is presented as comprising individual functional blocks (including functional blocks labeled as a “processor”). The functions these blocks represent may be provided through the use of either shared or dedicated hardware, including, but not limited to, hardware capable of executing software. For example the functions of one or more processors presented in
(17) The logical operations of the various embodiments can be implemented as: (1) a sequence of computer implemented steps, operations, or procedures running on a programmable circuit within a general use computer, (2) a sequence of computer implemented steps, operations, or procedures running on a specific-use programmable circuit; and/or (3) interconnected machine modules or program engines within the programmable circuits.
(18) The present system and method is particularly useful for remotely controlling a device having one or more menus via a remote touch interface having at least an unstructured primary input area. A user can provide inputs to a touch interface without needing to view the interface and yet still achieve the desired response from the remotely controlled device. The primary input area of the touch interface may or may not have a background display, such as on a typical touch screen, but the primary input area of the touch interface should be unstructured. In other words, in preferred embodiments, the primary input area of the touch interface should not have independently selectable items, buttons, icons or anything of the like. Since the touch interface is unstructured, the user does not have to identify any selectable buttons. Instead the user can input a gesture into the interface and watch the device respond. In some embodiments, the system does not provide any other visual confirmation.
(19)
(20) The touch sensitive interface 202 comprises a primary touch sensitive area 204, which can receive the majority of the user touch inputs. In the displayed embodiment, the touch sensitive interface also comprises other touch sensitive areas including a menu area 206, a navigation bar 207, a tab bar 208, and a status bar 209.
(21) The primary touch sensitive area 204 is an unstructured area, having no individually selectable items such as buttons or icons. Further, since area 204 is unstructured, there are no selectable items to select or avoid and therefore the primary touch sensitive area is especially conducive to providing input to the remote without needing to view the remote itself. Instead a user can view the remotely controlled device for feedback.
(22) Starting with the navigation bar 207, two independently selectable buttons are displayed. Back button 226, shown here labeled “Settings” because in this example illustration a user can return to the settings menu, can be selected to return the user to the previous screen. The button's label can change to display the name of the screen that the user will be returned to if the button is selected. Button 224 acts as a forward button, but in most cases takes the user to a “Now Playing Screen” (abbreviated as NP) which is present when the remotely controlled device is playing audio or video. It should be appreciated here and throughout the document that that while many of the buttons in the remote interface are indicated as having a specific name, the labeling is not intended to be limiting.
(23) The entire menu area 206 is a touch sensitive area which records inputs to return to the previous menu by receiving taps in the menu area, or to return to the top-level-menu by receiving and detecting a press and hold action. In the illustrated embodiment two other buttons are present. Keyboard button 222 and information button 220 can be displayed when they are needed and not displayed when they are not needed. For example, when a keyboard is present on the user interface of the remotely controlled device, the keyboard button 222 can appear. Selecting the keyboard button 222 can cause a keyboard to appear on the remote interface for easier typing into the remotely controlled device's interface. Similarly, information button 220 can be displayed when an item is displayed on the remotely controlled device's interface for which information is available.
(24) Buttons 220 and 222 are located near the outer edges of the menu area 206 and of the screen 202 in general. Locating buttons 220 and 222 in the corner of the interface helps avoid accidental selections, as it is expected that a user would rarely hit one of the corners of the device accidently.
(25) In some embodiments, the remote device 200 can be a mobile phone, smart phone, portable multimedia player, PDA or other portable computing device capable of a diverse set of functions. In these embodiments a tab bar 208 can be useful to navigate between other functions on the remote device. The tab bar 208 can be a structured touch sensitive area with selectable buttons for this purpose. For example button 218 can instruct the remote device 200 to switch to the albums menu, or button 216, the artists menu, button 212, a search screen. Button 210 can provide additional options. Remote button 214 can return the remote device back to the remote interface.
(26) In some embodiments one or all of areas 206, 207, 208, and 209 may not be present as part of the remote interfaces. In some other embodiments area 206, 207, 208, and 209 can ignore inputs in various contexts so as to avoid accidental selection. For example, when the remote device is held in a substantially horizontal fashion, all individually selectable inputs can be made unselectable, and in complimentary fashion, when the device is held at a substantially vertical angle, the individually selectable inputs can be active to be selected.
(27) In some embodiments, one method to prevent accidental selection requires a selection action to both start and end within the individually selectable area. For example, to activate the menu area, the touch must start and end within the menu area 206. If a touch were to either begin or end outside of the menu area but in the primary touch sensitive area 204, then the input can be considered to be an input of the type usually given and detected in the primary touch sensitive area 204.
(28) As illustrated in
(29) While
(30) Additionally, for purposes of speedy transmission of commands from the touch device 200 to the remotely controlled device 300 the amount of data sent should be kept to minimum. In some embodiments the amount of data transferred comprises around 20 bytes up to about 50 bytes per packet. While it can be appreciated that the touch interface of the touch device 200 is a versatile instrument and is capable of recording and interpreting data into more complex instructions for the remote device, complexity is not beneficial. Instead simple information is recorded and transmitted by touch device 200.
(31) Shown below is an example of data that can be sent from the touch device 200. In this embodiment, enough data is sent that the remotely controlled device can interpret the data into the commands necessary to control the device, but at the same time the amount of transmitted data is kept to a minimum. Data sent by the touch device 200 includes information such as the touch position (start and/or end of touch event), number of digits contacting the touch interface, the type of event, velocity of the touch (alternatively, the duration of the touch event can be transmitted to allow the remotely controlled device to calculate the velocity). The touch device also can send more specific information such as individually selectable items that have been selected, as can be seen in the example below. It should be appreciated that there are many different formats, quantities and types of data that can be used, and the example below is not meant to limit the scope of possibilities for this function.
(32) TABLE-US-00001 typedef struct { UInt32 size; // size of the data structure (20 bytes) RCRemoteNavigationEventType eventType; // see RCRemoteNavigationEventType below CGPoint position; // touch position at time of event UInt32 extendedValue; // if eventType == kRCNavTouchStart: Number of touch digits // if eventType is kRCNavTouchMove or kRCNavTouchEnd: y and Y velocity in pixels/second // All other event types: undefined NSTimeInterval timestamp; // event time stamp } DRTouchEvent; typedef enum { kRCNavButtonSelect, kRCNavButtonMenu, kRCNavButtonContextMenu, kRCNavButtonTopMenu, kRCNavTouchStart, kRCNavTouchMove, kRCNavTouchEnd, } RCRemoteNavigationEventType;
(33) The above example should not be considered exclusive. For example, the above data includes the number of digits in contact with touch screen and the location of one of those digits. In some embodiments, if two or more digits are in contact with the touch screen, the location coordinates of all digits can be recorded and sent to the remotely controlled device.
(34) In the remote context it is important that the commands from the remote 200 are transmitted and received by the remotely controlled device 300 quickly. Therefore, in embodiment illustrated
(35) The generic touch data, (touch start, move, end, time/velocity) can be interpreted by an interpreter such as Touch Event Interpreter 306 that interprets the generic touch event data into events that can be understood and used by the remotely controlled device 300. In this example, the information such as touch start, move and end that was recorded by the remote 200 can be interpreted into events, left, right, up, down, swipe left, swipe right, swipe up, swipe down or interpreted in a generic way as touch start, move or end.
(36) Also illustrated is an Event Handler 308, which can receive inputs and pass them onto a controller for a graphical user interface. As illustrated, the Event Handler 308 can receive events originating from a standard remote control 330 that have been received and interpreted by the Human Interface Event Manager 310, and can also receive events that originate from the touch device 200 that have been interpreted by the Touch Event Interpreter 306.
(37) One or more UI controllers control each graphical user interface of the remotely controlled device. As illustrated in
(38) The focused UI controller 312 receives events from the event handler 308. The focused UI controller 312 receives all of the possible inputs and reacts to whichever input the focused UI controller is configured to accept.
(39)
(40) The event handler 348 passes the left event and swipe left event to the UI controller that is currently “in focus.” A UI controller is said to be “in focus” when it is controlling at least a portion of the currently displayed user interface screen. The focused UI controller receives the events from the event handler 348. In
(41) While in the examples illustrated in
(42) At this point it is informative to compare how the currently described technology works in comparison to a standard remote 330 in
(43) Inputs from the touch device 200 are received by the touch event interpreter 306 which can interpret the touch data into touch events that can potentially be used by the remote device. The event handler 308 forwards the events to the focused UI controller 312. An input from the standard remote 330 can be received by the human interface device event manager 310 and interpreted into an event that can be used by the touch device. Just as with the events received from the touch device 200, the event handler 308 can forward the command from the standard remote 330 to the focused UI controller 312.
(44) In some embodiments the focused UI controller 312 can be configured to accept additional inputs beyond that which is possible using the standard remote 330. In such embodiments, the focused UI controller 312 can choose from among the inputs that it wants to accept. In these embodiments the focused UI controller 312 is configured to make this choice. For example the focused UI controller 312 can be informed that it is receiving events from the touch device 200 and consider those commands more preferable than the simplistic inputs, such as a left event, given by the standard remote 330. In such a case, if the focused UI controller 312 were to receive events from the touch device 200 it would need to choose from the simple event or the higher-level event, such as a swipe, since both are represented. The focused UI controller 312 can learn that the data is from the touch device 200 and choose to a fast forward a movie based on the swipe input as opposed to skipping a movie chapter based on a left event.
(45) Just as the focused UI controller 312 can be configured to accept different commands based on which device is receiving the commands it can also interpret the commands based on the context of the interface that is currently displayed. As mentioned above, each focused UI controller is specific to a different context. There can be many more UI controllers each responsible for their own function. Since each UI controller is responsible for a different part of the UI or different screen having a different context, each focused UI controller can perform different functions given the same input.
(46) As discussed above, a user can provide a variety of inputs into the primary touch sensitive area 204, but the result of the inputs can vary depending on the context in which the input is given. The focused UI controller that is specific to a particular GUI can be programmed to interpret inputs based on elements or characteristics of its context. For example in the case of a remote controlling a multimedia application running on a remote device, for example ITUNES or APPLE TV both by APPLE INC of Cupertino, CA, there can be at least a menu context (
(47) Returning to the example of a multimedia application running on a remote device—in a menu context, a user can potentially browse media, by title, artist, media type, playlists, album name, genre (it should be understood that some of these categories for browsing media are more or less applicable to different media types such as movies or songs). In
(48) Additionally the primary touch sensitive area can also receive tap gestures, which can select an item. Further, dragging a user's finger across the primary touch sensitive area 204 can move a selected or highlighted item.
(49) TABLE-US-00002 TABLE 1 Menu Navigation Context Touch Action Result Single digit drag in the desired direction Move selection Single digit swipe in the desired direction Scroll selection and ease out Single digit tap in main selection area Select item
(50) Many of the same actions can result in different outcomes or actions performed on or by the remotely controlled device in other contexts. For example, and as seen in the chart below, some of the same actions described above cause different results in the media playback context which is illustrated in
(51) TABLE-US-00003 TABLE 2 Media Playback Context Touch Action Result Single digit tap in the selection area Toggle Play/Pause Single digit drag left/right Shuttle transport to left/right Swipe digit swipe left Skip backwards 10 seconds Swipe digit swipe right Skip forwards 10 seconds Swipe digit swipe up Cycle Info Display Swipe Digit swipe down Show Chapter selection Menu
(52) Other inputs do not need to vary by context. For example, a tap in the menu area 206 returns to the previous menu screen. Holding a finger in the menu area returns to the top menu. Also some inputs into the primary touch sensitive area 204 will always result in the same action—a two-digit press and hold in the primary touch sensitive area 204 will return to the menu for the context that the device is currently displaying.
(53) TABLE-US-00004 TABLE 3 Any Context Touch Action Result Single digit tap in menu area Menu Single digit press & hold in menu area Top Menu Two digit press & hold in main selection Context Menu area
(54) In addition to the various touch inputs described above many more inputs are also possible. Nothing in the above discussion should be seen as limiting the available touch inputs or gestures that can be used with the described technology. For example, in additional to the one or two finger inputs described above, three or four finger inputs are also contemplated. Additionally, more complex gestures such as separating two or more fingers and providing inputs relative to each finger can also be useful. Such gestures are already known in the art such as rotating one finger around the other to rotate an onscreen image, or moving two fingers away from each other or towards each other can result in a zoom out or in operation. Many others are considered within the level of skill in the art.
(55) Furthermore, while the term digit is referred to above and throughout the specification it is also not meant to be limiting. While is some embodiments a digit refers to a finger of a human hand, in some embodiments digit can refer to anything that is capable of being sensed by a capacitive device. In some embodiments, digit can also refer to a stylus or other object for inputting into a display-input device.
(56) After the focused UI controller accepts an input it affects the UI of the remotely controlled device. In many cases this may be the first feedback that the user will receive that the proper command was given. Such a feedback loop increases the responsiveness of the system and allows the remote interface to be less complicated. However, in other embodiments, other types of feedback can be supplied. For example, audible feedback can be supplied to the user so she can at least know a command was issued. Alternatively the remote can vibrate or provide any other desirable type of feedback. The feedback can also be command specific, a different sound or vibration for each command is possible.
(57) In some embodiments, the remotely controlled device may not have an event interpreter. In these embodiments, the remote would send the data representative of touch inputs to the remotely controlled device and the focused UI controller can be configured to interpret the data.
(58) In some embodiments it can be useful to allow the remote to learn about changing menus or displays of the remote device. In such embodiments, a separate communications channel can be opened, for example using a hypertext transfer protocol for transferring information between the devices. To maintain remote performance most communications can be single direction communications for faster speed, but bidirectional communications can be used when needed. For example, even though most of the communications from the remote to the remotely controlled device are transferred using TCP, HTTP or DAAP can be used to inform the remote of special cases such as when additional information is available or that a keyboard is being displayed on the remotely controlled device. In such instances, a keyboard for example can be displayed on the remote and inputs into the keyboard can be transferred using the HTTP protocol. Similarly, when information such as that shown in
(59)
(60) In step 426, the remotely controlled device interprets the received data with knowledge of the context of the screen that is currently being displayed by the remotely controlled device. Depending on the inputs received and the context of the current display, the remotely controlled device interprets the data received from the remote and accepts the command in step 428 which causes the remotely controlled device to perform the command and display the result in step 430.
(61) It will be appreciated that while the above description uses a media playback device with associated software, the technology is equally applicable to other remotely controlled devices such as televisions, DVR, DVD players, Blu-ray, cable boxes etc. For example, either the remotely controlled device can be programmed to accept and interpret generic touch screen interface data and respond to those inputs. Alternatively, the remote itself can be provided with instructions on how to communicate with almost any remotely controlled device. As long as either the remote or the remotely controlled device can interpret the touch data based on the context of what is currently being displayed or caused to be displayed by the remote device, the principles of the described technology can apply.
(62) In some embodiments less or more touch sensitive areas are possible. However, additional touch sensitive areas having structured interfaces increase the possibility of accidental commands being input into the remote. The best interfaces provide an overall user experience wherein the user does not need to look at the remote to make a selection in most instances. However, it will be appreciated that if the user is not looking at the remote, in a touch environment wherein the entire device feels similar to the user, accidental inputs are possible and may even become likely if too many individually selectable items are available.
(63) Several methods can be used to prevent accidental inputs. One of which, as described above, uses an accelerometer device to determine the devices orientation and based on that orientation determine what type of command the user is trying to enter. If the device is horizontal the user is probably not looking at the device and gestures are likely intended to control the remotely controlled device. However, if the device is more vertical, or angled so that the user can view the screen, the user is probably viewing the screen and inputs are more likely into the structured interface buttons. Another alternative is illustrated in
(64) Additionally, and as described above, accidental inputs can be avoided by configuring the touch interface to accept any input that drifts into or out of a structured input as a input into the unstructured interface. In this way, only deliberate selections are registered.
(65) Embodiments within the scope of the present invention may also include computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such tangible computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions or data structures. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the tangible computer-readable media.
(66) Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represent examples of corresponding acts for implementing the functions described in such steps.
(67) Those of skill in the art will appreciate that other embodiments of the invention may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
(68) Communication at various stages of the described system can be performed through a local area network, a token ring network, the Internet, a corporate intranet, 802.11 series wireless signals, fiber-optic network, radio or microwave transmission, etc. Although the underlying communication technology may change, the fundamental principles described herein are still applicable.
(69) The various embodiments described above are provided by way of illustration only and should not be construed to limit the invention. For example, the principles herein may be applied to any remotely controlled device. Further, those of skill in the art will recognize that communication between the remote the remotely controlled device need not be limited to communication over a local area network but can include communication over infrared channels, Bluetooth or any other suitable communication interface. Those skilled in the art will readily recognize various modifications and changes that may be made to the present invention without following the example embodiments and applications illustrated and described herein, and without departing from the true spirit and scope of the present disclosure.