# Patent

## Title
State-based remote control system

## Abstract

A remote control system includes a remote control device configured to control a plurality of consumer electronic devices. The remote control system further includes a programming system configured to: i) receive identifying information, which identifies each of the consumer electronic devices, ii) generate at least one macro, which is configured for collectively controlling the consumer electronic devices to perform a media function; and iii) issue a query to a user to determine whether the macro is to be used by the remote control device. If a positive response is received by the programming system in response to the query, then configuring the remote control device for using the macro. If a negative response is received by the programming system in response to the query, then not configuring the remote control device for using the macro.

## Background
This application is a continuation of abandoned U.S. Patent Application No. 11/841,753, filed Aug. 20, 2007, titled “State-Based Remote Control System”, of Glen McLean Harris et al., which is a continuation of U.S. Patent Application No. 11/411,398, filed Apr. 25, 2006, now U.S. Pat. No. 8,531,276 titled “State-Based Remote Control System” of Glen McLean Harris et al., which is a continuation of U.S. Patent Application No. 10,870,339, filed Jun. 16, 2004 (now U.S. Patent No. 8,026,789), titled “State-Based Remote Control System,” of Glen McLean Harris et al., which is a continuation of U.S. Patent Application No. 09/804,718, (U.S. Patent No. 6,784,805), filed Mar. 12, 2001, titled “State-Based Remote Control System,” of Glen McLean Harris et al., which claims the benefit of expired U.S. Provisional Patent Application No. 60/253,727, filed Nov. 29, 2000, titled “State-Based Remote Control System,” of Glen McLean Harris et al. and claims the benefit of expired U.S. Provisional Patent Application No. 60/189,487, filed Mar. 15, 2000, titled “System, Method and Apparatus for an Internet Enabled User Interaction Device”, of Glen McLean Harris et al. each of which is incorporated by reference herein in its entirety for all purposes.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to remote control devices and more specifically it relates to a state-based remote control system for providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task.
2. Description of the Prior Art
Remote control devices have been in use for years. Remote control devices are utilized to operate various external electronic devices including but not limited to televisions, stereos, receivers, VCRso, DVD players, CD players, amplifiers, equalizers, tape players, cable units, lighting, window shades and other electronic devices. A conventional remote control is typically comprised of a housing structure, a keypad within the housing structure for entering commands by the user, electronic circuitry within the housing structure connected to the keypad, and a transmitter electrically connected to the electronic circuitry for transmitting a control signal to an electronic device to be operated.
The user depresses one or more buttons upon the keypad when a desired operation of a specific electronic device is desired. For example, if the user desires to turn the power off to a VCR, the user will depress the power button upon the remote control which transmits a “power off” control signal that is detected by the VCR resulting in the VCR turning off.
Because of the multiple electronic devices currently available within many homes and businesses today, a relatively new type of remote control is utilized to allow for the control of a plurality of electronic devices commonly referred to as a “universal remote control.” Most universal remote controls have “selector buttons” that are associated with the specific electronic device to be controlled by the remote control (i.e., television, VCR, DVD player, etc.).
Example: A few universal remote controls allow for “macros” to be programmed into the remote control so that when a preprogrammed button is depressed a string of commands is executed as programmed. For example, if the user desires to operate their television along with the stereo receiving input from the television, the user would program a macro for turning on the television, turning on the stereo and then switching the input to the stereo for receiving audio input from the television. The main problem with conventional universal remote controls is that they are unable to detect or monitor the state of a particular electronic device. Another problem with conventional universal remote controls is that when a preprogrammed macro is executed, an undesirable effect can occur wherein electronic devices that are desired to be turned on are actually turned off. For example, if the television is already on but the stereo is tuned to a .local radio station and the user selects the above macro the power to the television would actually be turned off instead of maintained on.
Recently, universal remote controls have been developed that communicate via radio frequency (RF) with external sensing devices that are connected to the electronic devices for detecting the current state of the electronic device. Other remote controls are able to receive and display information from the electronic device they control such as displaying the name of a radio station on a display of the remote. These devices are relatively expensive and again difficult to utilize for the average consumer.
The main problem with conventional remote control devices is that they are typically unable to know the particular “state” of an electronic device they are to control, particularly universal remote controls. A further problem with conventional remote controls that do allow for advanced configuration thereof to compensate for the various states of the electronic device is that they are often times difficult for the average consumer to utilize. Another problem with conventional remote control devices is that they force consumers to heir electronic devices “individually” (i.e., turn television on, turn stereo on, switch audio input on stereo to television) rather than in broad “tasks” (e.g., watch television).
While these devices may be suitable for the particular purpose to which they address, they are not as suitable for providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task. Conventional remote controls are typically programmed to operate only one electronic device. Conventional universal remote controls are typically programmed to operate electronic devices “individually” or are difficult to configure to automated control of a plurality of electronic devices.
In these respects, the state-based remote control system according to the present invention substantially departs from the conventional concepts and designs of the prior art, and in so doing provides an apparatus primarily developed for the purpose of providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task.
BRIEF SUMMARY OF THE INVENTION
In view of the foregoing disadvantages inherent in the known types of remote controls now present in the prior art, the present invention provides a new state-based remote control system construction wherein the same can be utilized for providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task.
The general purpose of the present invention, which will be described subsequently in greater detail, is to provide a new state-based remote control system that has many of the advantages of the remote controls mentioned heretofore and many novel features that result in a new state-based remote control system which is not anticipated, rendered obvious, suggested, or even implied by any of the prior art remote controls, either alone or in any combination thereof.
To attain this, the present invention generally comprises a housing, a keypad in communication with an electronic system contained within the housing, and a communication device in communication with the electronic system for communicating with external electronic devices. The electronic system constantly monitors the buttons selected by a user to determine the state of all external electronic devices that are to be controlled. When the user selects a task (e.g., watch television), the electronic system automatically determines the actions required to achieve the desired task based upon the current state of the external electronic devices. After the task has been fulfilled, the electronic system updates the data to reflect the modified state of the external electronic devices.
There has thus been outlined, rather broadly, the more important features of the invention in order that the detailed description thereof may be better understood, and in order that the present contribution to the art may be better appreciated. There are additional features of the invention that will be described hereinafter and that will form the subject matter of the claims appended hereto.
In this respect, before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of the description and should not be regarded as limiting.
A primary object of the present invention is to provide a state-based remote control system that will overcome the shortcomings of the prior art devices.
A second object is to provide a state-based remote control system for providing efficient and simple operation of a plurality of electronic devices as a coordinated system based upon an overall task.
Another object is to provide a state-based remote control system that provides for intuitive operation of a plurality of electronic devices.
An additional object is to provide a state-based remote control system that allows for the simple operation of a plurality of electronic devices based upon an 25 overall “task” instead of specific controls for specific electronic devices.
A further object is to provide a state-based remote control system that is simple and easy to utilize for the average consumer.
Another object is to provide a state-based remote control system that does not require significant programming prior to usage.
An additional object is to provide a state-based remote control system that is affordable.
Other objects and advantages of the present invention will become obvious to the reader and it is intended that these objects and advantages are within the scope of the present invention.
To the accomplishment of the above and related objects, this invention may be embodied in the form illustrated in the accompanying drawings, attention being called to the fact, however, that the drawings are illustrative only, and that changes may be made in the specific construction illustrated and described within the scope of the appended claims.



BRIEF DESCRIPTION OF THE DRAWINGS
Various other objects, features and attendant advantages of the present invention will become fully appreciated as the same becomes better understood when considered in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the several views, and wherein:
FIG. 1 is an upper perspective view of the present invention.
FIG. 2 is a side view of the present invention.
FIG. 3 is a side view of the present invention illustrating electronic circuitry within.
FIG. 4 is a block diagram illustrating the communications between the present invention and a plurality of external electronic devices.
FIG. 5 is a block diagram illustrating the electronic system of the present invention electrically connected to the power source and in communication with the external electronic devices.
FIG. 6 is a block diagram illustrating the electronic system along with a plurality of accessory devices connected to thereof.
FIG. 7 is a flowchart illustrating the initial programming of the present invention prior to usage.
FIG. 8 is a flowchart illustrating the modification of the state of external electronic devices not in the desired state as desired within a task to be performed.
FIG. 9 is a flowchart illustrating an action performed upon one or more external devices and modifying the memory within the electronic system accordingly.
FIG. 10 is a flowchart illustrating the modification of the memory within the electronic system to reflect the changed state of the external electronic devices after a task or an action has been completed.
FIGS. 11a-11b is a flowchart providing an example task for watching television being executed
FIG. 12 is a simplified schematic of a remote control system according to one embodiment of the present invention; and
FIG. 13 is a simplified schematic of a remote control system according to another embodiment of the present invention.



DETAILED DESCRIPTION OF THE INVENTION
Turning now descriptively to the drawings, in which similar reference characters denote similar elements throughout the several views, FIGS. 1 through 11 illustrate a state-based remote control system 10, which comprises a housing 20, a keypad 114 in communication with an electronic system 100 contained within the housing 20, and a communication device 108 in communication with the electronic system 100 for communicating with external electronic devices 12. The electronic system 100 constantly monitors the buttons of the keypad 114 and other switches selected by a user to determine the state of all external electronic devices 12 that are to be controlled. When the user selects a task (e.g., watch television), the electronic system 100 automatically determines the actions required to achieve the desired task based upon the current state of the external electronic devices 12. After the task has been fulfilled, the electronic system 100 updates the data to reflect the modified state of the external electronic devices 12.
A. Housing Structure
The present invention generally is comprised of a housing 20 having a structure and shape similar to conventional remote control devices. The housing 20 may be constructed of various types of materials and shapes as can be appreciated by one skilled in the art. The housing is preferably structured to be ergonomic for a majority of users.
B. Electronic System
The present invention is utilized to control and operate various external electronic devices including but not limited to televisions, stereos, receivers, VCRs, DVD players, CD players, amplifiers, equalizers, tape players, cable units, satellite dish receivers, lighting, window shades and other electronic devices. Almost any number of external electronic devices may be controlled by the present invention as will be discussed in further detail.
FIG. 6 is a block diagram of an exemplary electronic system 100 for practicing the various aspects of the present invention. The electronic system 100 is preferably enclosed within the housing. A portable power source 140 is electrically connected to the electronic system 100 for providing electrical power to the electronic system 100. The power source 140 may be comprised of any power source such as a battery structure (disposable or rechargeable), solar cells, or direct power.
The electronic system 100 preferably includes a display screen 104, a network interface 112, a keypad 114, a microprocessor 116, a memory bus 118, random access memory (RAM) 120, a speaker 102, read only memory (ROM) 122, a peripheral bus 124, a keypad controller 126, and a communications device 108. As can be appreciated, the electronic system 100 of the present invention may be comprised of any combination of well-known computer devices, personal digital assistants (PDAs), laptop computers, remote control devices and other similar electronic structures.
The microprocessor 116 is a general-purpose digital processor that controls the operation of the electronic system 100. The microprocessor 116 can be a single-chip processor or implemented with multiple components. Using instructions retrieved from memory, the microprocessor 116 controls the reception and manipulations of input data and the output and display of data on output devices.
The memory bus 118 is utilized by the microprocessor 116 to access RAM 120 and ROM 122. RAM 120 is used by microprocessor 116 as a general storage area and as scratch-pad memory, and can also be used to store input data and processed data. ROM 122 can be used to store instructions or program code followed by microprocessor 116 as well as other data.
Peripheral bus 124 is used to access the input, output and storage devices used by the electronic system 100. In the described embodiment(s), these devices include a display screen 104, an accessory device 106, a speaker 102, a communications device 108, and a network interface 112. A keypad controller 126 is used to receive input from the keypad 114 and send decoded symbols for each pressed key to microprocessor 116 over bus 128.
The display screen 104 is an output device that displays images of data provided by the microprocessor 116 via the peripheral bus 124 or provided by other components in the electronic system 100. Other output devices such as a printer, plotter, typesetter, etc. can be utilized as an accessory device 106.
The microprocessor 116 together with an operating system operate to execute computer code and produce and use data. The computer code and data may reside on RAM 120, ROM 122, or other storage mediums. The computer code and data could also reside on a removable program medium and loaded or installed onto the electronic system 100 when needed. Removable program mediums include, for example, PC-CARD, flash memory, and floppy disk.
The network interface 112 is utilized to send and receive data over a network connected to other electronic systems. The network interface may be comprised of a Universal Serial Bus (USB), an external bus standard that supports data transfer rates of 12 Mbps (12 million bits per second). A single USB port can be used to connect up to 127 peripheral devices, such as mice, modems, and keyboards. An interface card or similar device and appropriate software implemented by microprocessor 116 can be utilized to connect the electronic system 100 to an existing network and transfer data according to standard protocols including data over a global computer network such as the Internet.
The keypad 114 is used by a user to input commands and other instructions to the electronic system 100. Other types of user input devices can also be used in conjunction with the present invention. For example, pointing devices such as a computer mouse, a jog switch 22, a track ball, a stylus, or a tablet to manipulate a pointer on a screen of the electronic system 100.
The present invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can be thereafter be read by a electronic system. Examples of the computer readable medium include read-only memory, random-access memory, magnetic data storage devices such as diskettes, and optical data storage devices such as CD-ROMs. The computer readable medium can also be distributed over a network coupled electronic systems so that the computer readable code is stored and executed in a distributed fashion.
The communications device 108 may be comprised of any well-known communication system that allows communications with external electronic devices. The communications device 108 may provide for various types of communication such as but not limited to via infrared (IR), wireless (e.g., BLUETOOTH), unidirectional, bidirectional, radio frequency (RF), visible light, ultrasonic and various other means for communicating with external electronic devices.
The environmental unit 110 senses environmental information such as lighting, motion, orientation, temperature, audio and other environmental information. The environmental unit 110 communicates the detected environmental information to the microprocessor 116 for consideration in controlling the external electronic devices. The environmental unit 110 includes the appropriate sensors such as light sensors, temperature sensors, sound sensors and other desirable sensors to determine the environment conditions external of the housing.
Input into the electronic system is accomplished mainly through the usage of the keypad 114. The keypad 114 includes a plurality of buttons that allow the user to execute one or more commands. The keypad 114 allows for the control of basic functions such as volume, channel manipulation, mute, and last channel. However, the keypad 114 may also include several buttons that represent a specific task such as watch television, listen to radio and various other tasks. Various other input devices may be utilized to input data into the electronic system such as a jog switch 22 (i.e., dial), motion and orientation detectors, touch sensitive screens and voice recognition. The display 104 provides information to the user such as possible tasks to complete or the current state of the external electronic devices.
C. Initializing/Synchronizing of Electronic System with External Devices
Prior to utilizing the present invention, the user must program the electronic system 100 to not only recognize all of the external electronic devices 12 to be controlled but also as to each external electronic device 12 respective current “states” (i.e., on, off, current input, current output, etc.) as is shown in FIG. 7 of the drawings.
The initial programming of the electronic system 100 may be accomplished through various well-known means such as entering a code for each specific external electronic device. “Sampling” of a signal from a remote control utilized to control a specific electronic device may also be utilized to assist in the programming of the electronic system 100. Various other methods may be utilized to program the electronic system 100 to recognize and control the external electronic devices 12 which are well known in the art.
After all of the external electronic devices 12 have been properly programmed into the electronic system 100, the user then must program the “current state” of each external electronic device into the electronic system 100. This is accomplished typically by the user answering a series of questions shown on the display regarding each display. For example, the display may ask “Is the television turned on?” which the user would respond to. It can be appreciated that there can also be a default state for all of the external devices as being “off.” All of the programmed “Current State Data” is stored within memory of the electronic system 100.
D. Current State Data
“Current State Data” is data information relating to the current state of each of the external electronic devices 12 stored within the electronic system 100. The “state” of an external electronic device 12 is comprised of various variables such as but not limited to power on, power off, volume level, mute on, mute off, audio input, audio output, video input, video output, lights on, lights off, shades open, shades closed, and various other states common to external electronic devices 12. The Current State Data is updated as actions and/or tasks are performed to provide an accurate reflection of the actual current state of the external electronic devices 12. The Current State Data is utilized by the electronic. system 100 to determine what external electronic devices 12 require modification when a “task” is selected by the user to prevent undesirable events from occurring.
E. Actions
An “action” is a specific event that occurs that typically only affects one of the external devices. An example of an action is when the user selects the power button on the keypad 114 to turn off the television which causes the television to switch from on to off or vice-versa.
The Current State Data is immediately modified to reflect the changed state of the television or other external electronic device after an action occurs as shown in FIGS. 9 and 10 of the drawings. The Current State Data is constantly updated to maintain an accurate reflection of the actual current state of the external electronic devices 12.
F. Tasks
A “task” may be comprised of one or more “actions” depending upon (1) the desired state of all external devices as prescribed by the task, and (2) the current state of all external devices. Examples of tasks are “watch television,” “listen to radio,” “watch video,” “listen to CD's,” “watch DVD”, and so forth. There are many more tasks that may accomplished with the present invention that are not discussed but are deemed readily apparent to one skilled in the art.
Each task has a “desired state” for each of the external electronic devices 12. When a task is selected, either through the keypad or the display, the electronic system 100 immediately determines the Current State Data and compares this data to the “Desired State Data” for all of the external electronic devices 12. After determining which external electronic devices 12 are in the desired state and which are not in the desired state, the electronic system 100 transmits a communication signal to the external electronic devices 12 that are not in the desired state to switch to the desired state based upon the task to be performed.
Another function of the present invention is to allow for the electronic system 100 to determine what menu options (i.e., “tasks”) that are available upon the display 104 based upon the current state of the external electronic devices 12. For example, if the television is currently on, the menu within the display may display the “Turn Television Off” task instead of the “Turn Television On” task which is not required.
G. Watch Television Task Example
Assuming for the sake of example that a user using the present invention has (1) interior lighting, (2) electronically controlled shades, (3) a stereo, (4) a television, (5) a CD player, and (6) a VCR which are programmed and synchronized within the electronic system as stated above. FIG. 11 illustrates the “WATCH TELEVISION” task. Below is a sample listing of the “Current State Data” prior to the selection of the WATCH TELEVISION task as shown in FIG. 11 of the drawings.










Current State Data










External Device
Initial State Prior to Execution Task







1. Room Lighting
Lights turned on and shades open during




evening hours.



2. Stereo
Turned on with input audio from CD player.



3. Television
Turned off with volume very high.



4. CD Player
On and playing CD.



5. VCR
Off.










After selecting the desired WATCH TELEVISION task, the electronic system 100 immediately reads the Current State Data and compares the same to the “Desired State Data.” Below is -a listing of the Desired State Data for the WATCH TELEVISION task.










Desired State Data








External Device
Initial State Prior to Execution Task





1. Room Lighting
Light threshold at a minimum.


2. Stereo
Turned on with input audio from television.


3. Television
Turned on with volume at a low-medium setting.


4. CD Player
Off.


5. VCR
Off.









After comparing the Current State Data to the Desired State Data, the electronic system 100 determines that the room lighting needs to be reduced by turning off lights 15 and closing shades along with switching the audio input to the television. The electronic system 100 further determines that the television needs to be turned on and the CD player turned off. Below is a listing of the individual actions that the electronic system 100 takes to perform the WATCH TELEVISION task.










Actions Performed to Reach Desired State








External Device
Initial State Prior to Execution Task





1. Room Lighting
Turn lighting off and close shades.


2. Stereo
Switch input audio to television.


3. Television
Turn on and reduce volume to low-medium setting.


4. CD Player
Turn off.


5. VCR
No action taken.









After the specific actions are executed to accomplish the overall task, the memory within the electronic system 100 is automatically updated to reflect the various changes to the state of each individual external electronic device 12 for reference later. Below is a listing of the Current State Data after the WATCH TELEVISION task has been performed.










Current State Data


(After Execution of Task)








External Device
Initial State Prior to Execution Task





1. Room Lighting
Light threshold at a minimum.


2. Stereo
Turned on with input audio from television.


3. Television
Turned on with volume at a low-medium setting.


4. CD Player
Off.


5. VCR
Off.









The above process is repeated for the life of the state-based remote control system 10. If additional external electronic devices are added to the overall entertainment system of the user, the user simply programs the added device 12 into the electronic system 100 and synchronizes the electronic system 100 accordingly.
As to a further discussion of the manner of usage and operation of the present invention, the same should be apparent from the above description. Accordingly, no further discussion relating to the manner of usage and operation will be provided.
With respect to the above description then, it is to be realized that the optimum dimensional relationships for the parts of the invention, to include variations in size, materials, shape, form, function and manner of operation, assembly and use, are deemed to be within the expertise of those skilled in the art, and all equivalent structural variations and relationships to those illustrated in the drawings and described in the specification are intended to be encompassed by the present invention.
H. Configuration
The user wishes to configure the remote control to operate the user's home entertainment system. Based on the devices previously identified by the user, the Programming System provides a default configuration for the remote control that will allow the user to operate all components of the home entertainment system. Because the home entertainment system includes a television, the Programming System prompts the user to select which cable provider is being used. Because the home entertainment system includes a CD jukebox, then user is asked if he wishes to enter CD title information. With each CD selected by the user, the Programming System uses the Internet to connect to a CD database server and obtain artist, title, and track information. The Programming System then provides the user with a list of common macros which the user may be interested in adding to his configuration. The Programming System then uses the Internet to connect to TVGuide.com and download the current television schedule. The Programming System then transfers all necessary code and data to the remote control. Finally, the Programming System asks the user if he wishes to print out a booklet that describes the operation of the configured remote control.
Example: The user wishes to add the television channel “Global” to his list of preferred content. The user uses the Programming System to add the channel, and then the Programming System transfers the changed configuration to the remote control. Now, when the user browses available television channels on the remote control, the television channel “Global” is at the top of the list.
Example: The user wishes to customize the operation of the remote control. The user uses the Programming System to change the default television show reminder to be ‘Sound an alarm 1 minute before the show starts’, and changes the navigation up key to select the function ‘View cable television channel 50’.
It is noted that the Programming System may store the configuration information to allow the user to incrementally modify the configuration. For example, the user may add a new CD title to the CD jukebox. It is noted that the Programming System may be used to modify any aspect of the configuration (data and/or code) of the remote control. For example, this can even include complete functionality changes where one user develops software designed to control a home automation system, and then allows other users to use the Programming System to configure their remote control s with the new software and associated data.
It is noted that the Programming System may use any available information to assist the user in customizing the operation of the remote control, including but not limited to:
Device Network Information
User Preferences
Sample configurations provided by other users.
It is noted that the Programming System is designed to make the remote control simple to configure for a novice user. For example, if the user has specified to the Programmer 10 (see FIGS. 12 and 13) that they wish to control a television and videocassette recorder, then the Programmer 10 may allow the user to select from common operations that are performed with systems containing a television and videocassette recorder. Examples of such operations include ‘Play a videotape’ and ‘Record a television show’. If the user chooses to accept such an operation, then the Programming System configures the remote control in such a manner as to ensure that when the user selects the operation ‘Play a videotape’ then the remote control sends control signals as required to direct the Device Network to perform the desired operation (if possible).
It is noted that the remote control may be purchased pre-configured to the user's preferences, in which case configuration via the Programming System is optional.
It is noted that the remote control may be configured using the user input module 5, user output module 6 and device communication module 3, in which case the remote control is the sole component of the Programming System, and the connection to the Interface System 10 is optional. For example, the remote control can be instructed to ‘learn’ a remote control code from an infrared remote control, as is well known in the art.
It is noted that the remote control may be configured using just the Interface System 10, in which case the Interface System 10 is sole component of the Programming System.
It is noted that the Programming System may display arbitrary information to the user. For example, while the remote control is communicating with the Programming System the user may be shown advertising based on the types of television shows that the user enjoys watching.
It is noted that the user may use the remote control to alter any aspect of the configuration of the remote control. For example, the user may instruct the remote control to remember a sequence of commands and assign them to a new menu option.
It is noted that the user may interact with the Programming System when the remote control is not connected to the Programming System, in which case any changes will be transferred to the remote control at a later date.
Therefore, the foregoing is considered as illustrative only of the principles of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation shown and described, and accordingly, all suitable modifications and equivalents may be resorted to, falling within the scope of the invention.

## Claims

1. A remote control system comprising:
a remote control device configured to control a plurality of consumer electronic devices; and
a programming system configured to:
i) receive identifying information, which identifies each of the consumer electronic devices,
ii) generate, based at least in part upon the identifying information, at least one dynamic command code set, which is configured for collectively controlling the consumer electronic devices to perform a media function; and
iii) issue a query to a user to determine whether the generated dynamic command code set is to be used by the remote control device, and, as a result of a positive response to the query being received by the programming system, configure the remote control device for using the dynamic command code set,

wherein, the dynamic command code set is configured to be modified by the remote control device based at least in part on state data stored by the remote control device for the consumer electronic devices.

2. The remote control system of claim 1, wherein the programming system forms a portion of the remote control device.

3. The remote control system of claim 1, wherein the programming system is configured to communicate with the remote control device.

4. The remote control system of claim 3, wherein the programming system is configured to transfer command codes to the remote control device for the dynamic command code set.

5. The remote control system of claim 1, wherein the remote control device is configured to send command codes from the dynamic command code set to at least one of the plurality of consumer electronic devices to collectively control the at least one of the plurality of consumer electronic devices.

6. The remote control system of claim 1, wherein the remote control device includes an input module configured to receive input from a user for receiving the identifying information.

7. The remote control system of claim 1, wherein the remote control device includes an output module configured to issue the query.

8. The remote control system of claim 1, wherein the dynamic command code set is a macro.

9. A remote control comprising:
an electronic module configured to control a plurality of consumer electronic devices;
input module configured to receive a user input for identifying information, which identifies each of the consumer electronic devices; and
a programming system configured to:
i) generate, based at least in part upon the identifying information, at least one macro, which is configured for collectively controlling the consumer electronic devices to perform a media function; and
ii) issue a query to a user to determine whether the generated macro is to be used by the remote control device, and, as a result of a positive response to the query being received by the programming system, configure the remote control device for using the macro,

wherein, the macro is configured to be modified by the remote control based at least in part on state data stored by the remote control for the consumer electronic devices.

10. The remote control of claim 9, wherein the electronic module is configured to send command codes from the macro to at least one of the plurality of consumer electronic devices to collectively control the at least one of the plurality of consumer electronic devices.

11. The remote control of claim 10, further comprising an output module configured to issue the query.

12. The remote control of claim 10, wherein the macro is dynamically generated by the programming system.

13. The remote control system of claim 1, wherein the remote control device has a touch screen.

14. The remote control system of claim 13, wherein the programming system forms a portion of the remote control device.

15. The remote control of claim 9, wherein the input module is a touch screen.

16. The remote control of claim 15, wherein the touch screen also comprises the output module.

17. The remote control of claim 9, wherein the electronic module is physically separate from the input module and the programming system.

18. The remote control of claim 17, further comprising a touch screen, wherein the touch screen incorporates the input module and an output module configured to issue the query.

19. A method for remotely controlling a plurality of consumer electronic devices, comprising:
obtaining identifying information about the plurality of consumer electronic devices;
generating, based at least in part upon the obtained identifying information, at least one dynamic command code set that is configured to control the plurality of consumer electronic devices to perform a media function;
querying a user whether to use the generated dynamic command code set to control the plurality of consumer electronic devices;
as a result of receiving a positive response to the querying from the user, then using the at least one dynamic command code set to control the plurality of consumer electronic devices; and
then modifying the at least one dynamic command code set based at least in part on state data for the plurality of consumer electronic devices.

20. The method of claim 19, wherein the dynamic command code set is a macro.

21. The method of claim 20, wherein the macro is used by sending the macro to at least one of the consumer electronic devices to collectively control the at least one of the consumer electronic devices.

22. The method of claim 20, wherein the macro is dynamically generated.

23. One or more non-transitory computer-readable storage media having collectively stored thereon executable instructions that, when executed by one or more processors of a computer system, cause the computer system to at least:
obtain identifying information about a plurality of consumer electronic devices;
generate, based at least in part upon the obtained identifying information, at least one dynamic command code set that is configured to control the plurality of consumer electronic devices to perform a media function; and
query a user whether to use the generated dynamic command code set to control the plurality of consumer electronic devices;
as a result of receiving a positive response to the querying from the user, then use the at least one dynamic command code set to control the plurality of consumer electronic devices, and
then modifying the at least one dynamic command code set based at least in part on state data for the plurality of consumer electronic devices.

24. The computer-readable storage media of claim 23, wherein the instructions cause the computer system to further send command codes from the dynamic command code set to at least one of the consumer electronic devices to collectively control the at least one of the consumer electronic devices.

25. The computer-readable storage media of claim 23, wherein the instructions cause the computer system to further obtain the identifying information by processing input from a user of the computer system.