1. Field of the Invention
The invention relates to computer applications that are run on one machine and displayed on another; and more particularly to the case where the display is a television that displays the application over video.
2. Description of the Prior Art
The problem is how to run large applications on the television, without needing to add expensive computing resources to the television, while retaining the ability to activate an application at the touch of a single button. One solution would be to run the application remotely, using Remote Desktop Protocol (RDP) or some other remote display technology. The prior art, however, does not provide for such applications to be selected at the touch of a button. Current remote display technologies instead provide for generic inputs, such as mouse and keyboard events, to be sent from the remote display to the host computer. These technologies do not have provisions for applications to be selected at the touch of a single, dedicated button.
Accordingly, the need remains for a simulator that overcomes these drawbacks in the prior art.
The current invention describes a remote display technology which, responsive to button activations from a wireless remote control to a television display device, routes signals to a host computer to activate the application button responsive to the specific remote control button pressed with the application appearing on the television display.
The foregoing and other objects, features and advantages of the invention will become more readily apparent from the following detailed description of a preferred embodiment of the invention that proceeds with reference to the accompanying drawings.
This invention adds an additional channel of information to existing protocols for displaying computer screens on a remote display, herein referred to as “remote display technology”. Examples of existing solutions include Independent Computer Architecture (ICA) from Citrix, Remote Desktop Protocol (RDP) from Microsoft, Virtual Network Computing (VNC) from AT&T, PCAnywhere from Symantec, and PC@TV from RF Link Technologies. Each of these solutions encodes a picture of a graphical display and sends it to a remote device where the picture is decoded and presented to the user on a display (e.g. computer monitor) operated by the remote device (e.g. remote computer). The user may enter keystrokes or mouse actions at the remote device. These actions are sent back to the computer generating the image, which then reacts as programmed. The user experience is that of using a normal computer; however, the actual computer may be far away from the user.
The computer which runs the application is called the “host computer,” and the remote display viewed by the user is called the “remote display.” These prior art systems are shown schematically in the block diagram shown in
As with the prior art system shown in
The remote control includes a housing, buttons formed through the housing with lower surfaces adapted to make electrical contact to complete a circuit on a circuit board positioned beneath the buttons within the housing. When the viewer presses a button on the remote control this completes a specific connection. An IC chip located on the circuit board senses that connection and knows what button was pressed. The IC chip then produces a signal formed of a series of binary pulses specific to that button. That signal is amplified by transistors within the housing and the amplified signal is sent to an infrared LED, which translates the signal into infrared light. The sensor 28 in the TV can see the infrared light and “seeing” the signal reacts appropriately.
Certain keys of the remote control may be assigned certain functions. In the example described below, colored keys 32 are assigned (or re-assigned) certain program functions using a hotkey activator button 34. These colored keys 32 are also referred to as “hotkeys” because, and according to methods of the invention, they each trigger operation of certain programs that have been associated with the button (or more precisely, the remote control signal triggered by pressing the hotkey button).
Hot keys 32 are assigned to a particular function by first navigating to that function using whatever method is normally used to access the function, then pressing the <Hotkey> button 34 to request a hot key assignment, and then pressing the desired hot key to which the function will be assigned. The table of wireless signals received and functions performed that is stored at the television is updated to point to the new function. Any previous function which was already assigned to that button will no longer be assigned to the button. Only one function can be assigned to any one button, however, more than one button can have the same function assigned to it.
Hot keys are assigned to start a program via the Application Manager GUI (AMGUI). The application manager program is stored in flash memory 126 [
Hot keys are assigned to program functions similarly to the method used to assign them to programs. The user navigates through the desired program and highlights the desired function. The user then presses the <Hotkey> button 34 and assigns the hot key 32 as described in the previous paragraph. If a program does not support a hot key for the desired function, a message is displayed on display 20 stating “Hot Key Not Supported”, to inform the user that the desired function does not support hot keys.
A television processor 106 provides basic control functions and viewer input interfaces for television 100. Television processor 106 receives viewer commands, both from buttons located on the television itself (TV controls) and from a handheld remote control unit (not shown in
Analog tuner/input select section 108 allows television 100 to switch between various analog (or possibly digital) inputs for both video and audio. Video inputs can include a radio frequency (RF) signal carrying broadcast television, digital television, and/or high-definition television signals, NTSC video, S-Video, and/or RGB component video inputs, although various embodiments may not accept each of these signal types or may accept signals in other formats (such as PAL). The selected video input is converted to a digital data stream, DV In, in CCIR656 format and supplied to a media processor 110.
Analog tuner/input select section 108 also selects an audio source, digitizes that source if necessary, and supplies that digitized source as Digital Audio In to an Audio Processor 114 and a multiplexer 130. The audio source can be selected—independent of the current video source-as the audio channel(s) of a currently tuned RF television signal, stereophonic or monophonic audio connected to television 100 by audio jacks corresponding to a video input, or an internal microphone.
Media processor 110 and digital video/graphics processor 120 provide various digital feature capabilities for television 100, as will be explained further in the specific embodiments below. In some embodiments, processors 110 and 120 can be TMS320DM270 signal processors, available from Texas Instruments, Inc., Dallas, Tex. Digital video/graphics processor 120 functions as a master processor, and media processor 110 functions as a slave processor. Media processor 110 supplies digital video, either corresponding to DV In or to a decoded media stream from another source, to digital video/graphics processor 120 over a DV transfer bus.
Media processor 110 performs MPEG (Motion Picture Expert Group) coding and decoding of digital media streams for television 100, as instructed by digital video/graphics processor 120. A 32-bit-wide data bus connects memory 112, e.g., two 16-bit-wide×1M synchronous DRAM devices connected in parallel, to processor 110. An audio processor 114 also connects to this data bus to provide audio coding and decoding for media streams handled by media processor 110.
Digital video/graphics processor 120 coordinates (and/or implements) many of the digital features of television 100. A 32-bit-wide data bus connects memory 122, e.g., two 16-bit-wide×1M synchronous DRAM devices connected in parallel, to processor 120. A 16-bit-wide system bus connects processor 120 to media processor 110, an audio processor 124, flash memory 126, and removable PCMCIA cards 128. Flash memory 126 stores boot code, configuration data, executable code, and Java code for graphics applications, etc. PCMCIA cards 128 can provide extended media and/or application capability. Digital video/graphics processor 120 can pass data from the DV Transfer bus to LCD panel driver 104 as is, but processor 120 can also supercede, modify, or superimpose the DV Transfer signal with other content.
Multiplexer 130 provides audio output to the television amplifier and line outputs (not shown) from one of three sources. The first source is the current Digital Audio In stream from analog tuner/input select section 108. The second and third sources are the Digital Audio Outputs of audio processors 114 and 124. These two outputs are tied to the same input of multiplexer 130, since each audio processor is capable of tri-stating its output when it is not selected. In some embodiments, processors 114 and 124 can be TMS320VC5416 signal processors, available from Texas Instruments, Inc., Dallas, Tex.
If the host computer can successfully respond to the application request event, the application is launched in block 214 within the open session to generate display data in block 216 at the host computer. The remote display technology enables the host computer's display data to be shown on the remote display as appropriate, and routes future keyboard and mouse events in block 218 to the host computer as appropriate.
When the user is done with the application, the user may press “exit” (or some similarly labeled button) or may press a button which launches a local application. Such an “exit” button press is detected in query block 220. Upon such an exit action, the remote display notifies the host computer that the application is no longer needed, the remote display ceases to show the display data from the host, and mouse and keyboard events are sent to the local system. In the event that a local function is requested, the remote application can then be ended in block 222 and the local function operated in block 204. In the case that the user presses a button 32 requesting another non-local application, the request is sent to the host computer as before. If successful, the new application becomes active and the old application becomes inactive. If the host computer indicates that it cannot launch the new application, the user is notified (possibly with a “beep”), and the old application remains active.
The invention adds the following novel features. First, the buttons for direct application are on or associated with the remote display. The buttons may select remote applications, select local applications, and end applications. Also, the buttons may be on the remote control, on the device itself, or on a menu screen. Second, requests for applications originating with the remote display are sent to the host computer. Third, responses to the requests for applications result in either “success” or “error” (which may include multiple error codes, each indicating a specific reason for failure). Fourth, a novel feature of the invention is the ability of the host computer to recognize the application requests and to make the application active within the current remote display technology session. Fifth, the remote display is able to recognize responses. And sixth, the remote display is capable of switching between the local display mode and the remote display mode.
Television system 100 couples to a host computer as via a wireless local area network (LAN) PCMCIA card 128 operating using IEEE 802.11 g. In general, there would be a LAN adaptor that connects to the PCMCIA cards. It could be a PCMCIA card or an embedded set of chips. It could be wireless or wired, so long as the DVGP 120 [
There would be software pre-installed on the host computer which would be able to receive a command from the remote display using a socket or some other common means of network communication. The socket would have a pre-defined number for both the host computer and the remote display. The socket number may need to be user-changeable, in case there is a conflict with another socket from an application/service from the 3rd party. Even better: a series of numbers is used. If there is a conflict each side will check the next one in the series. That way a terminal conflict is highly unlikely, and no user intervention is required.
While the remote session is taking place, the remote display would then be able to send “a unique code” to the proprietary application or service running on the PC to the desired socket. The code or bit pattern would be the choice of the designer of the remote display and the application running on the host, as they are coded by the same entity. The specific protocol chosen is an implementation detail operating in a closed manner. The communication could be 100% proprietary. It could be as simple as a “1” means application 1, a “2” means application 2 and so on. This is reflected by the non-local keys 26 in
Having described and illustrated the principles of the invention in a preferred embodiment thereof, it should be apparent that the invention could be modified in arrangement and detail without departing from such principles. We claim all modifications and variation coming within the spirit and scope of the following claims.
This application claims the benefit from U.S. Provisional Patent Application No. 60/535,188 filed Jan. 6, 2004 whose contents are incorporated herein for all purposes.
Number | Date | Country | |
---|---|---|---|
60535188 | Jan 2004 | US |