U.S. patent number 9,271,033 [Application Number 13/801,540] was granted by the patent office on 2016-02-23 for system and method for saving and recalling state data for media and home appliances.
This patent grant is currently assigned to Universal Electronics Inc.. The grantee listed for this patent is Universal Electronics Inc.. Invention is credited to Paul D. Arling, Christopher Chambers, Mark Momot, Wayne Scott.
United States Patent |
9,271,033 |
Arling , et al. |
February 23, 2016 |
System and method for saving and recalling state data for media and
home appliances
Abstract
A set of media playback and device settings data from each home
appliance of a first set of home appliances is stored on a central
server and/or sent to a remote control device upon initiation of a
suspend command by a user. The stored media and devices states may
be used at a later time to control the first set of home
appliances, or a user may, after relocating to a second set of home
appliances, initiate a resume state command whereupon media
playback and device settings data from the central server and/or
remote control device controls each home appliance in the second
set of home appliances to bring about the same or substantially
similar media and device states as in the first set of home
appliances.
Inventors: |
Arling; Paul D. (Irvine,
CA), Chambers; Christopher (Stanton, CA), Scott;
Wayne (Newport Beach, CA), Momot; Mark (Tustin, CA) |
Applicant: |
Name |
City |
State |
Country |
Type |
Universal Electronics Inc. |
Santa Ana |
CA |
US |
|
|
Assignee: |
Universal Electronics Inc.
(Santa Ana, CA)
|
Family
ID: |
34556275 |
Appl.
No.: |
13/801,540 |
Filed: |
March 13, 2013 |
Prior Publication Data
|
|
|
|
Document
Identifier |
Publication Date |
|
US 20130219438 A1 |
Aug 22, 2013 |
|
Related U.S. Patent Documents
|
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
Issue Date |
|
|
12059609 |
Mar 31, 2008 |
|
|
|
|
10979352 |
Nov 1, 2004 |
|
|
|
|
60517237 |
Nov 4, 2003 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04N
21/47202 (20130101); H04N 21/4131 (20130101); H04N
21/85406 (20130101); H04N 21/42225 (20130101); H04N
21/647 (20130101); H04N 21/4126 (20130101); H04N
21/4432 (20130101); H04N 21/6125 (20130101); H04L
12/2805 (20130101); H04N 21/43615 (20130101); H04N
21/25866 (20130101); H04N 21/6332 (20130101); H04N
21/818 (20130101); H04N 21/25858 (20130101); H04N
21/6543 (20130101); H04N 21/4405 (20130101); H04N
21/436 (20130101); H04L 12/282 (20130101) |
Current International
Class: |
H04N
21/436 (20110101); H04N 21/647 (20110101); H04N
21/81 (20110101); H04N 21/6332 (20110101); H04L
12/28 (20060101); H04N 21/258 (20110101); H04N
21/443 (20110101); H04N 21/4405 (20110101); H04N
21/41 (20110101) |
Field of
Search: |
;725/80,87,102
;348/114 |
References Cited
[Referenced By]
U.S. Patent Documents
Foreign Patent Documents
Primary Examiner: Zhong; Jun Fei
Attorney, Agent or Firm: Greenberg Traurig, LLP
Parent Case Text
RELATED APPLICATION DATA
This application claims the benefit of and is continuation of U.S.
application Ser. No. 12/059,609, filed on Mar. 31, 2009, which
application claims the benefit of and is a divisional of U.S.
application Ser. No. 10/979,352, filed on Nov. 1, 2004, which
application claims the benefit of U.S. Provisional Application Ser.
No. 60/517,237, filed Nov. 4, 2003, which applications are hereby
incorporated by reference in their entirety.
Claims
What is claimed is:
1. A non-transitory computer-readable media having stored thereon
instructions which, when executing by a processing device of a
first streaming media playback device, perform steps for
facilitating a playing of a streaming media, the steps comprising:
receiving a first request to pause a rendering of the streaming
media wherein the steaming media is streamed to the first streaming
media playback device from a source of streaming media using a
first format; causing at least a portion of the streaming media
that the first streaming media playback device receives from the
source of streaming media subsequent to the first request to be
stored in a memory of the first streaming media playback device;
receiving a second request to commence a streaming of the at least
a portion of the streaming media that was caused to be stored in
the memory of the first streaming media playback device to a second
streaming media playback device in communication with the first
streaming media playback device for rendering by the second media
playback device; in response to the second request, commencing the
streaming of the at least a portion of the steaming media that was
caused to be stored in the memory of the first streaming media
playback device to the second streaming media playback device using
a second format different than the first format; and automatically
selecting the second format.
2. The non-transitory computer-readable media as recited in claim
1, wherein the instructions consider a playback capability of the
second streaming media playback device when automatically selecting
the second format.
3. The non-transitory computer-readable media as recited in claim
1, wherein the instructions consider a characteristic of a display
device associated with the second streaming media playback device
when automatically selecting the second format.
4. The non-transitory computer-readable media as recited in claim
1, wherein the instructions consider a characteristic of a media
stream processing device associated with the second streaming media
playback device when automatically selecting the second format.
5. The non-transitory computer-readable media as recited in claim
1, wherein the streaming media comprises an Internet based
audio/video stream.
6. The non-transitory computer-readable media as recited in claim
1, wherein the instructions consider a device identifier received
from the second media streaming media playback device to
automatically select the second format for the streaming media.
7. The non-transitory computer-readable media as recited in claim
6, wherein the device identifier comprises at least a device type
identifier.
8. The non-transitory computer-readable media as recited in claim
1, wherein the streaming media comprises one of a cable, satellite,
or broadband channel being viewed by use of the first media
streaming device.
Description
BACKGROUND
The following relates generally to controlling home appliances and,
more particularly, relates to a system and method for allowing a
user to save, recall, and transfer both media playback and device
setting states for one or more sets of home appliances.
The ability to save and recall a series of commands for a
particular set of home appliances is well known in the form of
macro commands, such as described in U.S. Pat. No. 5,959,751. By
way of example, a macro can be used to transmit a sequence of
command codes to power on all appliances of a home entertainment
center, to access pay-per-view events via a set-top box (STB), etc.
Additionally, suspending and resuming a media playback state or
device settings state for a particular home appliance is known in
the art. For instance, it is customary to pause and play media as
well as preset device settings (such as sound equalization, volume,
or color balance settings) for individual home appliances in a
particular home entertainment center. The use of remote control
devices adapted to perform macro commands and remotely suspend and
resume media and device states is also well known in the art.
A typical home contains multiple home entertainment centers, each
center generally including multiple home appliances which are
operable by a user to play the same desired media. For instance, a
particular user may have access to home entertainment centers in a
living room, home office, and one or more bedrooms of her home,
each of which may be capable of playing the same desired media
(i.e., television broadcast, video, music, images, etc.) using
different appliances in each location. Currently, if the user
desires to save a media state (such as the playback state of a
movie, song or music playlist, or a particular television show) and
associated device settings from one home entertainment center, and
later recall, or transfer the saved media and device states to the
same, or a different home entertainment center, it would involve
significant time and many laborious steps to be performed by the
user.
Accordingly, it is desired to provide a system and method that
functions to save and recall media and device setting states and
which is able to transfer those states from one home entertainment
center to another such that the same or substantially similar media
playback experience is possible across all available entertainment
centers.
SUMMARY
In accordance with these needs and desires, a system and method for
saving and recalling state data for media and appliances is
hereinafter described. Generally, a user will initiate a save state
command for a particular media rendering system from which a movie,
music, television broadcast, slide show, image, or other media
element is being played. Both the playback state of the media, as
well as the rendering system device state(s) during playback, will
be saved either in one or more central state servers (such as a
control pod, Internet based server, PC, etc., in communication with
one or more devices of the media rendering system), sent to a
portable controlling device (such as a remote control) to be saved,
or as a combination of saved data on a central state server and
portable controlling device. Once data has been saved it may be
recalled at a later time in its unaltered state to operate the
devices and media of the same entertainment center from which it
was captured and saved, or it may be recalled and converted (though
the operation of devices and programming of the central state
server and/or remote control) for use in conjunction with a
different media rendering system having analogous or complimentary
functionality. In order to ensure that media playback and rendering
device state settings transfer correctly to the second media
rendering system, a set of device conversion definitions (including
current device selection/state data, standard device definitions,
and data conversion maps) may be applied to each data element from
the first media rendering system (i.e., display settings data,
audio settings data, media source settings data, etc.) in order to
ensure that data and settings saved from the first rendering system
set of device(s) will translate appropriately to the analogous or
complimentary device(s) of the second rendering system.
A better understanding of the objects, advantages, features,
properties and relationships of the subject system and method will
be obtained from the following detailed description and
accompanying drawings which set forth illustrative embodiments
which are indicative of the various ways in which the principles of
the system and method may be employed.
BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of the system and method described
hereinafter, reference may be had to preferred embodiments shown in
the following drawings in which:
FIG. 1 illustrates an exemplary system employing a method for
saving and recalling media and device state settings;
FIG. 2 illustrates the state conversion system of FIG. 1;
FIG. 3 illustrates a block diagram of components of an exemplary
remote control;
FIG. 4 illustrates a block diagram of components of an exemplary
central state server;
FIG. 5 illustrates a flow chart diagram of exemplary steps for use
in saving state commands;
FIG. 6 is a continuation of the flow chart diagram of FIG. 5;
FIG. 7 illustrates a flow chart diagram of exemplary steps for use
in recalling and converting saved state commands; and
FIG. 8 is a continuation of the flow chart diagram of FIG. 7.
DETAILED DESCRIPTION
With reference to the Figures, a system and method is described for
use in saving and recalling media and state data for one or more
sets of appliances.
Generally, a user will initiate a save state command for a
particular media rendering system, such as an exemplary home
entertainment center (i.e., set or group of appliances) from which
a movie, music, television broadcast, image, or other media element
is being played. Any device that can transmit a unique coded signal
in IR/RF or other wireless protocol could be used to initiate the
process of capturing, storing, transmitting, and resuming the
appliance states (i.e., LCD based remote, traditional tactile
remote, single button remote, mobile wireless device, etc.) Both
the playback state of the media, as well as the device
configurations and settings during playback, will be saved either
in a central data/state server (such as a media server, control
Pod, PC, etc. connected to one or more devices of the home
entertainment center), sent to the remote control to be saved, or a
combination thereof. Once data has been saved it may be recalled at
a later time substantially unaltered to operate the devices and
media of the same entertainment center from which it was saved, or
it may be recalled (though the operation of devices by the data
server and/or remote control) for a different home entertainment
center having a set of home appliances of different brand, model,
or type which offer analogous services (audio playback/rendering,
video playback/rendering, etc.). For example, content being played
or rendered on a PVR in one location may be paused, and replayed on
a Media Center PC of another location using the system and method
of the current invention. In order to ensure that media playback
and device state settings transfer correctly to the second home
entertainment center device(s), a set of device conversion
definitions may be applied to each data element from the first
entertainment center (i.e., television settings data, audio
receiver settings data, etc.) in order to ensure that data and
commands saved from the first device(s) will translate
appropriately to the analogous device(s) of the second
entertainment center.
The media states able to be saved include, but are not limited to,
current cable, satellite, or broadband channel being viewed, PPV or
PVR program being viewed, MP3 play list with current track and
track offset, Internet based audio or video streams, or any
streaming content that can be paused and resumed. The appliance
states able to be saved include, are not limited to, input port
setting, output format, audio volume level and equalizer settings,
display brightness and contrast, ambient lighting, etc. It is
envisioned that Internet or other widely accessible network based
content may be suspended and resumed from any set of state
controllable A/V appliances that have access to Internet/network
based content. For example, an Internet based video file could be
started from within a home entertainment environment, paused by the
user (i.e., via a pause or save state button on a remote control or
PDA), and later resumed in a remote hotel room on a different
entertainment environment which is controllable by the user (i.e.,
via the remote or PDA) and which is able to access the Internet
based video file. It will be understood that in order to save and
recall the playback state (play position) of desired media on one
or more entertainment centers, a variety of playback related
information may be saved (including track number, chapter, track
offset, playing time, seek position, etc.) depending on the
capabilities of the playback device for later use. For example, a
first CD player may support saving the track number and seek
position for a given music CD during a pause command, while a
second CD player to which playback is to be resumed supports only
track number navigation. In this case the second CD player may
resume playback from the start of the saved track, or may be caused
to seek an appropriate distance into the track before beginning
playback to effect playback of the track at substantially the same
position as was saved from the first CD player.
It is also envisioned that when integrated with a home control and
automation environment, various location centric "state snapshots"
may be saved in a remote control or by a central server for
playback at a later time on any set of analogous appliances in the
home. For instance, a save room command would capture all current
media and appliances state setting for a given room, including
lighting states (power and dimmer states), audio playback state
(i.e., a given song playing on a given appliance), video playback
state (i.e., a given video playing on a given appliance), room
thermostat state for temperature settings, etc. Many such similar
home, room, environment, or appliance specific states may be saved
for subsequent recall and playback, using the same set of
appliances or a set of analogous appliances. It will be understood
that the extent of saved state data and associated data translation
which may be necessary to accomplish a given playback operation
depends on the number of particular appliances and media elements
involved in a previous save state operation. It should also be
understood that the state data saved may include locally-measured
items gathered by the controlling device. Such locally measured
items may be formatted as data conversion maps to more accurately
enable transference of media and device states as described in more
detail below. For example, when the controlling device includes a
microphone (e.g., is a PDA or a voice activated remote control,
etc.) a measurement of the current volume level may be taken and
saved. Upon resumption of playback, the media stream may be resumed
one or two seconds back from the original pause point in order to
allow a comparable volume measurement to be made and the sound
level adjusted accordingly. Similarly, a controlling device which
includes a light sensor (e.g., an LCD based unit with a sensor for
automatic backlight control, an electroluminescent display based
unit with automatic brightness control, etc.) may make local
measurements of lighting levels in order to duplicate these when
playback is resumed. In all cases, such locally measured data may
be used as a supplement to, or in place of, inferred or explicit
state data, and device conversion definitions collected during the
setup and operation of the appliances or equipment in question. The
particular methods and techniques for scaling a simple single
appliance media and state save and recall operation to support the
saving and recalling of multiple appliance and media states will be
apparent from the descriptions herein, and well within the routine
skill of a programmer skilled in the art.
In the exemplary system, the initiation of save and recall
operations by a user are accomplished via a portable controlling
device (i.e., activation of a button on a remote control), however
it is possible to accomplish the system and method hereof without
use of a separate portable controlling device, for instance a STB
based button, voice and/or gesture command systems, or a system
automation event (i.e., any software automated or event prompted
state save command) could be used to initiate save and recall
operations for state data without departing from the spirit and
scope of the current invention. It will thus be understood that
although the exemplary system is described as being operated via a
remote control, any controlling devices and/or control systems may
be implemented and used in conjunction with the current system and
method in order to bring about the desired results.
Similarly, for receipt of save/recall state commands and effecting
media states in various control environments, one or more central
state servers may be implemented in each appliance, or configured
as a separate physical device for communicating with the remote
control and appliances. By way of example only, the appliances in
the overall control environment for which state data is saved and
recalled can include, but are not limited to, televisions, VCRs,
DVRs, DVD players, cable converter boxes, amplifiers, CD players,
game consoles, home lighting, drapery, fans, HVAC systems,
thermostats, personal computers, etc.
Additionally, according to the exemplary system, some or all of the
above devices, appliances, or components are configured to be
network enabled and interoperable, such as those that are compliant
with, for example, the Home Audio Video interoperability ("HAVi"),
Universal Plug and Play ("UPnP"), and, generally, other such
standards that determine parameter passing and interaction between
appliances. In this regard, various standards are being proposed
which are intended to provide uniform methods of digital
interconnection between appliances. These standards generally
specify not only how to transfer audio video source materials, but
also how to effect the exchange of control functions between
appliances, since it is relatively easy to interleave these
different signals on a single interface when they are encoded at
the digital level. A more detailed description of network enabled
appliances (including HAVi and UPnP compliant appliances) and their
various functions and features may be found in commonly assigned
and co-pending U.S. application "Home Appliance Control System and
Methods in a Networked Environment" which claims priority to U.S.
provisional application No. 60/517,283.
For use in transmitting command codes and other state data to one
or more of the appliances 12 (which include or are able to
communicate with a central state server), the remote control 10 may
include, as needed for a particular application, a processor 24
coupled to a memory device (such as ROM memory 26, RAM memory 27,
and/or a non-volatile memory 34), a key matrix 28 (e.g., physical
buttons, a touch screen display, or a combination thereof), an
internal clock and timer 30, transmission circuit(s) 32, receiver
circuit(s) 33 and/or transceiver circuit(s) (e.g., IR and/or RF), a
means 36 to provide feedback to the user (e.g, LED, display,
speaker, and/or the like), and a power supply 38 as generally
illustrated in FIG. 2. As previously noted, the remote control 10
may also have means for sensing a level of sound (e.g., a
microphone) and/or level of light (e.g., a photo-sensitive
element). As will be understood by those of skill in the art, the
memory device may include executable instructions that are intended
to be executed by the processor 24 to control the operation of the
remote control 10. In this manner, the processor 24 may be
programmed to control the various electronic components within the
remote control 10, e.g., to monitor the power supply 38, to cause
the transmission of signals, etc.
The non-volatile read/write memory 34, for example an EEPROM,
battery-backed up RAM, Smart Card, memory stick, or the like, may
be provided to store setup data, state data, and/or parameters as
necessary. While the memory system is described as comprising all
three classes of memory, it will be appreciated that, in general,
such a memory system need not necessarily support all three, and
can be comprised of any type of computer-readable media, such as
ROM, RAM, SRAM, FLASH, EEPROM, Smart Card, memory stick, a chip, a
hard disk, a magnetic disk, and/or an optical disk or the like in
combination. Preferably, however, at least part of the memory
system should be non-volatile or battery backed such that basic
setup parameters and operating features will survive loss of
battery power. Still further, it will be appreciated that some or
all of the illustrated memory devices 26, 27, and 34 may be
physically incorporated within the same IC chip as the
microprocessor 24 (a so called "microcontroller") and, as such,
they are shown separately in FIG. 2 only for the sake of clarity.
For accomplishing the save and recall operations of the current
invention, the memory devices of the remote control may be
configured to additionally save room and/or appliance and media
state data captured or received from the appliances 12 in response
to a save state command.
To identify home appliances by type and make (and sometimes model)
such that the remote control device 10 is adapted to transmit
recognizable command codes in the format appropriate for such
identified appliances 12, data may be entered into the universal
remote control device 10. Since methods for setting up a remote
control to control the operation of specific home appliances are
well-known, such methods need not be described in greater detail
herein. Nevertheless, for additional information pertaining to
remote control setup, the reader may turn to U.S. Pat. Nos.
4,959,810, 5,614,906, and 6,225,938. It will also be appreciated
that the remote control 10 may be set up to control an appliance 12
by being taught the command codes needed to control such appliance
as described in U.S. Pat. No. 4,623,887.
To cause the remote control 10 to perform an action, the remote
control 10 is adapted to be responsive to events, such as a sensed
user interaction with the key matrix 28, receipt of a transmission,
etc. In response to an event, appropriate instructions within the
memory 26 may be executed. For example, when a command key is
activated on the remote control 10, the remote control 10 may
retrieve a command code corresponding to the activated command key
from memory 26 and transmit the command code to a device in a
format recognizable by the device. It will be appreciated that the
instructions within the memory 26 can be used not only to cause the
transmission of command codes and/or data to the appliances 12 but
also to perform local operations, e.g., modifying command and state
data for transmission to appliances other than the appliances from
which the original command and state data was captured, as
described in greater detail below. While not limiting, other local
operations that may be performed by the remote control 10 include
displaying information/data, favorite channel setup, macro button
setup, function key relocation, remote location sensing, etc.
Examples of local operations can be found in U.S. Pat. Nos.
5,481,256, 5,959,751, and 6,014,092. Additional examples of remote
controls 10 may be found in commonly owned, U.S. Pat. No. 6,225,938
and U.S. Application Ser. No. 60/264,767, Ser. No. 09/905,423, Ser.
No. 09/905,432, and Ser. No. 09/905,396.
For use in facilitating the save and recall operations between the
remote control 10 and one or more appliances 12 (or sets of
appliances 12a and 12b), one exemplary system and method includes
one or more central state servers 14. The central state server(s)
14 may be a device separate and apart from the appliances 12 or may
be integrated into one or more of the appliances as a functional
component. Central state server 14 may additionally be integrated
with other extended function control devices such as the command
receiver described in commonly assigned co-pending U.S. patent
application Ser. No. 10/603,839 entitled "System And Method For
Monitoring Remote Control Transmissions," or state monitor
described in commonly assigned co-pending U.S. patent application
Ser. No. 10/665,650 entitled "System And Method For Monitoring
Remote Control Transmissions" which applications are incorporated
herein by reference in their entirety. In either case, the central
state server 14 may include, as needed for a particular
application, a processor 50 coupled to a ROM memory 52, an internal
clock and timer 53, receiver circuit(s) 54, transmission circuit(s)
55 and/or transceiver circuit(s) (e.g., IR and/or RF), a
non-volatile read/write memory 56, a means 58 to provide feedback
to the user (e.g., LED, display, speaker, and/or the like), a power
supply 62, and input means 64, (e.g., serial I/O port, Ethernet,
1394 firewire, wireless receiver, bar code scanner, etc.), as is
generally illustrated in FIG. 3. As previously noted, the central
state server 14 may also have means for sensing a level of sound
(e.g., a microphone) and/or level of light (e.g., a photo-sensitive
element). The input means 64 may be used to connect each central
state server 14 to a common home control unit (such as a server,
HVAC controller, etc.) in order to enable communication and timing
operations between all central state servers, media servers, and/or
appliances. The ROM memory 52 includes executable instructions that
are intended to be executed by the processor 50 to control the
operation of the central state server 14. In this manner, the
processor 50 may be programmed to control the various electronic
components within the central state server 14, e.g., to monitor the
power supply 62, to cause the transmission of signals, to provide
audio or visual prompts to a user, etc. The non-volatile read/write
memory 56, for example an EEPROM, battery-backed up RAM, Smart
Card, memory stick, or the like, is provided to store state data,
setup data and/or parameters as necessary. While the memory 52 is
illustrated and described as a ROM memory, memory 52 can also be
comprised of any type of readable media, such as ROM, RAM, SRAM,
FLASH, EEPROM, or the like. Preferably, at least part of the memory
56 is non-volatile or battery-backed such that data is not required
to be reloaded after power is removed from central state server 14.
In addition, the memories 52 and 56 may take the form of a chip, a
hard disk, a magnetic disk, and/or an optical disk. It will also be
appreciated that in cases where central state server capability is
integrated into an appliance, some or all of the functional
elements described above in conjunction with FIG. 4 may be combined
with similar elements already present in the appliance for other
purposes.
For transmitting and receiving information between remote control
10, appliances 12, and/or the central state server 14 (as shown in
FIG. 1), communication may be performed using an IR protocol such
as XMP (described in co-pending U.S. patent application Ser. No.
10/431,930) an RF protocol such as Bluetooth or 802.11, X-10
commands, SCP, IP, UPnP, HAVi, or any other suitable wireless
and/or wired transmission methods. All that is required to enable
the system and method of the current invention is that the remote
control 10, appliances 12, and central state server 14 be able to
communicate device and media states between one another. It will be
appreciated that due to the wide variety of communication methods
and protocols that may be required to adequately communicate device
and media states to and from home appliances, the ability of the
remote control and/or central state server to dynamically transmit
and receive a greater number of protocols will enable compatibility
for save and recall operations with a greater number of home
appliances. For example, remote control 10 may first send a save
state request via XMP over RF to central state server 14, which in
turn sends an appropriate communication signal to each appliance of
entertainment center 12a to determine all available devices and
media states associated with the appliances. When attempting to
transfer the saved state data to a new set of appliances 12b,
remote control 10 may be required to communicate using several
different IR protocols to individual appliances (e.g., RC-6, SIRCS,
Kaseikyo, etc.) in addition to initiating a media playback state
via RF to central state server 14. It will additionally be
appreciated that programming on the remote control and/or or
central state server may be used for making determinations as to
which communication methods and protocols may be used for a given
set of appliances to most effectively bring about desired device
and media save and recall operations, as described in greater
detail below.
In keeping with the subject system and method, the remote control
10 and/or central state server 14 preferably include programming
such that the captured appliance and media state data may be stored
in one or more memory locations, used to generate command data
which is assigned or linked to a command button on the remote
control, and recalled at such time and in such a manner as
necessary to bring about a desired user action. The state data
elements and definitions of the current system are illustrated in
FIGS. 1 and 2 as functional block 130 in central state server 14,
however it will be appreciated that the actual state data elements,
device conversion definitions, and other data storage and
processing elements may be configured (and/or distributed) on any
device, appliance, or component of the system, including appliances
12, remote control 10, and/or any software program or elements on
any device. Generally data set 132 is composed of state and media
data captured from a set of source appliances and media 12a (the
particular media in the exemplary system being played back from PVR
123). In the exemplary system source appliances 12a comprise TV
122, receiver 121, and networked appliance 123 (e.g., a PVR, UPnP
media renderer, connected DVD player, etc.). As such corresponding
data elements for source appliances 12a that may be saved for
subsequent command generation, conversion and/or playback include
TV related data 122a (e.g., channel, brightness, contrast, etc.),
receiver data 121a (e.g., mode, volume, surround state, etc.), and
networked appliance data 123a (e.g., media source, output, media
playback position, etc.). The data elements 121a, 122a, and 123a
may be saved in any known format, for example as an XML file (e.g.,
as contemplated by the UPnP specification), or spreadsheet/database
entries on central state server 14, such that further operations as
described below may be performed on the data. Once saved in the
central state server 14 (or on remote control 10 and/or any other
appliance 12), data set 132 may be used to generate command data
(i.e., IR or RF based appliance commands) which may then be
assigned as a macro command or other immediately available command
set on remote control 10 for use by a user in effecting recall of
the device and media states on source appliance set 12a. It will
thus be appreciated that in general, little or no further
processing of a saved data sets and associated commands generated
for use by a remote control may be necessary when recalling device
and media states for the same set of source appliances.
For effecting recall of saved device and media states on a
different set of destination appliances 12b (characterized in that
appliances 12b may correspond to appliances 12a in type, but may
differ in make and/or model and features), a further state
conversion system and process may be used. As shown in FIG. 2, the
general device conversion definitions includes device
selection/state data 136 (which may comprise current device state
data, current room data, current remote location data, or user
specific data), device definitions 135 (which may comprise
available device command and function abilities for individual
appliances), and data conversion maps 138 (which may comprises
preset rules and logic governing data conversion operations). In
general, the device selection/state data 136, device definitions
135, and data conversion maps 138 are used in converting or
modifying data set 132 to data set 134. In the exemplary system,
device selection/state data may include remote location data, for
example, based on a user selected location button on the remote
control 10 or via application of the system and method described in
commonly assigned and co-pending U.S. application entitled "System
and Method for Controlling Device Location Determination" which
claims priority to U.S. provisional application No. 60/517,588). A
determination that remote control 10 is present in a different
location than source appliances 12a (e.g., data indicative of a
location change is present on remote control 10 or central state
server 14) may trigger the process of converting data set 132 to
data set 134 for application to a different set of destination
appliances 12b. Additionally, the actual location data (i.e.,
device selection data 136) may be used by processors 50 and/or 24
in each device state data conversion process.
By way of example only, video display device definitions 135a may
include (among other data) information about the available command
and function states for TV's 122 and 124, audio playback device
definitions 135b may include (among other data) information about
the available command and function states for receivers 121 and
125, and PVR device definitions 135c may include (among other data)
information about the available command and function states for
PVRs 123 and 126. After data set 132 (including TV state data 122a,
receiver state data 121a, and PVR state data 123a) has been saved
using the save state process (described in greater detail below),
location data corresponding to appliance set 12b may be received
which triggers application of the device conversion definitions. TV
state data 122a comprising input selection, brightness, and
contrast state data may be applied with video display device
definitions 135a corresponding to TV 124 to generate new TV state
data 124a (which may include, or may be used to generate specific
command data for TV 124). Additionally, data conversion maps 138a
may be used prior to generation of TV state data 124a such that
more accurate reproductions of device states (i.e., what the user
experiences during media playback from TV 122 versus playback of
the same media from TV 124) may be possible. For example, a
brightness state of "4" out of a possible 10 different brightness
states for TV 122 may have been saved as part of TV state data 122a
during a save operation. During conversion to TV state data 124a,
video display device definitions 135a may include information
indicating TV 124 also includes controllable brightness settings,
however strict application of the brightness setting "4" to the TV
state data 124a for generating commands to operate TV 124 may not
produce the same visual effect as a brightness setting of "4" on TV
122. As such, preset, or dynamically generated data conversion maps
(i.e., based on information from an ambient light sensor in the
room or on the remote control, or stored information as to the
relative lumen output levels of both TV's) may be used to further
adjust or conform TV state data 124a such that the state effected
during a recall state operation for TV 124 produces substantially
the same user experience as saved from TV 122.
Similarly, receiver state data 121a comprising mode, volume, and
surround state data may be applied with audio playback device
definitions 135b corresponding to receiver 125 to generate new
receiver state data 125a (which may include, or may be used to
generate specific command data for receiver 125). Data conversion
maps 138b may be used prior to generation of receiver state data
125a such that more accurate reproductions of device states (i.e.,
what the user experiences during media playback from receiver 125
versus playback of the same media from receiver 121) may be
possible. For example, a volume state of "4" out of a possible 10
different volume states for receiver 121 may have been saved as
part of receiver state data 121a during a save operation. During
conversion to receiver state data 125a, audio playback device
definitions 135b may include information indicating receiver 125
also includes controllable volume settings, however strict
application of the volume setting "4" to the receiver state data
125a for generating commands to operate receiver 125 may not
produce the same auditory effect as a volume setting of "4" on
receiver 121. As such, preset, or dynamically generated data
conversion maps (i.e., based on information from an microphone in
the room or on the remote control, or stored information as to the
relative decibel output levels of both receivers) may be used to
further adjust or conform receiver state data 125a such that the
state effected during a recall state operation for receiver 125
produces substantially the same user experience as saved from
receiver 121.
Likewise, PVR state data 123a comprising source, output, and media
position state data may be applied with PVR device definitions 135c
corresponding to PVR 126 to generate new PVR state data 126a (which
may include, or may be used to generate specific command data for
PVR 126). Data conversion maps 138c may be used prior to generation
of PVR state data 126a such that more accurate reproductions of
device states (i.e., what the user experiences during media
playback from PVR 126 versus playback of the same media from PVR
123) may be possible. For example, an output media format of ".mpg"
for PVR 123 may have been saved as part of PVR state data 123a
during a save operation. During conversion to PVR state data 126a,
PVR device definitions 135c may include information indicating PVR
126 does not include support for .mpg format media files, and thus
streaming or transferring the desired media file to the PVR 126
(via PVR state data 126a for generating commands to operate PVR
126) will not cause playback of the desired media. As such, preset,
or dynamically generated data conversion maps (i.e., media format
converters or alternate sources to search for or access the same
media file in an acceptable format) may be used to further adjust
or conform PVR state data 126a such that the state effected during
a recall state operation for PVR 126 produces a comparable user
experience to that saved from PVR 123 by applying substantially the
same device and media states to PVR 126 and its associated
rendering devices 124,125. In this context though, it will be
appreciated that interdependencies may exist between devices which
may need to be accounted for through the state conversion mapping
process, so achievement of "comparable" device and media states
should be understood to include such adaptations or compromises as
may be necessary to match the capabilities of the target
equipment.
By way of further example, PVR 123 may be playing back
anamorphically compressed video material suitable for presentation
on a 16:9 aspect ratio widescreen display monitor 122. If the
television 124 to which this video data is to be redirected on
resumption of playback has a 4:3 aspect ratio display, this should
be identified so that the video playback may be resumed in
"letterbox" format (i.e., compressed vertically in the same degree
as the horizontal anamorphic compression). In the case where
resumption of playback is implemented by transferring the video
data itself from PVR 123 to PVR 126, this may be inherently
accounted for in the default output settings of PVR 126 as a result
of it's association with 4:3 television 124. However in the more
general case where the resumed video data may be streamed directly
from PVR 123 to TV 124 (via, e.g., an IEEE 1394 or 802.11 network)
this adjustment should be effected at the data source, i.e., PVR
123. By way of still further example, a/v receiver 121 may be
capable of processing a DTS-encoded digital sound stream, while a/v
receiver 125 may only be capable of processing Dolby Digital or
Pro-Logic input. In this case, resumption of playback on system 12b
will also necessitate adjustment of the audio output stream
associated with the video data from PVR 123.
Looking now to FIGS. 5-8, exemplary methods for saving and
recalling device and media states are shown and described. It will
be appreciated the following methods and steps may be performed via
user interaction with the system, programming on the remote
control, programming on the central state server, or as a
combination of operations performed by a user, the remote, or a
central server. As such the exemplary methods should not be taken
as limiting as many various modifications, including the order in
which steps are recited as occurring, are possible without
departing from the teachings of the current invention.
Initially, a save state command is issued to a given set of
appliances (typically those within a defined control environment
such as a room or entertainment center which is current engaged in
user control or media playback) via any of the above described
methods (user interaction with a remote control, or STB button,
voice based commands, gesture based commands, etc.). Programming on
the remote control, central state server, or the appliances
themselves may query the state and type of media currently being
played to determine if a recallable state may be saved without
additional user input. If additional user input is needed for the
system to accurately and adequately save the media state for later
recall and playback, programming may prompt the user to input
necessary media state data. The system may then determine if all
devices for which a save state command is requested are connected
to the central state server, or are controllable only via the
remote control (or other controlling device). If all device states
are able to easily be saved to the central state server by virtue
of their connection to the server or one another (as is
contemplated by UPnP, HAVi, and/or other home interoperability
standards) then all necessary data may be present on the central
state server for appropriately controlling the appliances in a
recall operation, or converting the data for use with a new set of
appliances. As may often be the case, not all appliances in a
particular entertainment center will be connected to a central
state server such that state and command data may be easily and
conveniently saved simply by virtue of such connections. In those
cases, the system may include programming to determine if all
device states can be saved or emulated (i.e., some states may not
be able to be saved directly per se, but may be effected via
operation of a preexisting or dynamically generated macro command
to the appliance) for later playback. A further determination of
device connections, and the particular communication methods and
protocols that may be necessary to save in order to effect a later
recall operation may also be made. If the system determines that
not all state data known to be necessary in effecting a later
recall operation may be saved, the user may be prompted that a
complete state save operation will not be possible. Once all
necessary state data, including media states, appliance
interconnection data, and various command protocol data elements
have been saved, the system may include programming to associate
certain states of commands with the remote control, or central
server as necessary to effect later recall operations. For
instance, during a save state operation it may be determined that
one or more commands captured via the central control server must
be sent to the particular appliance via an IR based command during
a recall operation. As such, that particular data or command
elements may be sent to, or linked with the remote control such
that when a recall operation is initiated, the command is issued
appropriately (e.g., via IR transmission and the appropriate
protocol) to bring about the desired result. The saved state and/or
command data may then be assigned or linked to a particular remote
control, state server, or other controlling device that is most
appropriate to bring about the desired result during later recall
operations. The system may also provide the saved state and/or
command data for availability as a user assignable macro such that
playback of the saved state may easily be effected via a desired
remote control button or macro location.
The recall state command may be issued to a given set of appliances
(typically those within a defined control environment such as a
room or entertainment center which is currently engaged in user
control or media playback) via any of the above described methods
(e.g., user interaction with a remote control, or STB button, voice
based commands, gesture based commands, etc.). If a determination
is made by the system that the recall operation is to apply to the
same set of appliances as state data was originally captured from,
the saved state/command data may be formatted and transmitted to
the appropriate appliances without significant conversion
operations. Specifically, commands for individual appliances may be
formatted correctly for transmission from either or both of the
remote control and central state server, including checking the
current states of applicable appliances for any command
modifications which may be necessary to bringing about the desired
media and device state. Conversely, a determination may be made
that the saved state data is to be applied to a different set of
appliances than the appliances from which the state data was
originally saved. In this case, the new location data, including
data relating to the new appliances that are to receive and recall
the saved state commands is used in a conversion operation. As
described above, various device definitions, current device
selection/state data, and data conversion maps may be used to
perform logical operations on the originally saved state data in
order to present a set of new state and command data for the new
appliances to be controlled. Once the new data sets have been
generated, the state data and commands may be formatted correctly
for transmission from either or both of the remote control and
central state server, including checking the current states of
applicable appliances for any command modifications which may be
necessary to bring about the desired media and device state.
It will be appreciated that for certain save and recall operations,
for example pause and resume operations for live broadcast or
similar media, one aspect of the save state operation may involve
initiation of a media recording function (as is common on many PVR
devices such as Tivo or Replay TV devices) such that the media may
be later resumed at exactly the same spot at which it was saved. As
such, the ability to resume the playback of such saved media will
be available on the same set of appliances from which it was saved,
or from a different set of appliances assuming the second set of
appliances have access to the saved media.
As will also be appreciated, the means for performing conversion
operations (including the application of preset or dynamically
generated rules and/or system logic) on the saved media and state
data may comprise machine-readable instructions loaded in the
memory of one or more system devices, appliances, or servers (for
instance, the remote control, or the hard drive or other
non-volatile memory in the case of a media center PC, central state
server, or similar computing based home control device). The
machine-readable instructions are capable of performing
pre-programmed logic processing on the incoming and saved state
data and command code set(s), such that effective recall operations
(including conversion processes for different sets of appliances)
may be performed with minimal user interaction. The software
(machine-readable instructions) code to implement such a system is
well within the routine skill of a programmer, but may include for
instance, reference to device state and function tables, a
comparative database of command codes and appliance types,
frequently used or desirable appliance states and command code
sets, determination of a particular command code scheme (such as a
particular type of IR command encoding scheme), etc.
In another alternate embodiment of the present invention, the
control environment is connected to a network (such as a LAN, WAN,
or the Internet) such that it may receive close range command codes
(such as via an IR or RF base remote control) and/or long range
command codes (such as from a remote user sending command codes
from a portable phone, wireless enabled PDA, via the Internet,
etc.), in each case one or more of the devices, appliances, or
servers of the control environment being able to initiate the
saving and recalling of media and device states based on remotely
transmitted command codes. By way of example, a remote user
listening to a media broadcast in his car may initiate a pause
state command (for instance representing commands to pause the
current location of the media broadcast) from a user interface on a
wireless enabled PDA or mobile phone via the Internet to the home
control device. The command may cause the desired home appliances
to be activated for immediate recording of the media broadcast, and
volume levels, surround sounds settings and the like from the
user's car stereo may be saved either on the PDA or on the home
control device. The device settings, including the media itself may
then be later recalled for playback at the users home. In cases
where the car audio receiver includes media recording capabilities
(e.g., PVR based functions), the initial pause state command may
cause some or all of the media broadcast to be saved locally on the
car receiver for later transfer to the users home entertainment
system. Because a user may not leave his car running once he has
returned home, and to conserve power consumption by the car system
in general, a command may be sent from the car (either by the user
or automatically by the car's control system by virtue of the car's
wireless communication and syncing capabilities with the home
network in conjunction with location determination capabilities as
described above) upon returning home in order to initiate recording
of the program by the home entertainment system. As such, portions
of the saved media obtained from both the car receiver/recorder
system and the home based audio receiver (also with recording
capabilities) may be combined for later replay as a single media
file. Traditional syncing methods may be used for obtaining and
combining the media files, either by the car or the home control
system, as specified by a user preference or setting. Thus, both
device and media states, and saved media itself may distributed
among various devices and appliances of a networked environment
(including a wirelessly networked environment via the Internet) yet
still be available for immediate recall and playback on any of a
users appliances and devices. In the any of the above scenarios and
embodiments, the remote control, one or more appliances and/or the
server may serve to relay desired state data and command codes
directly to various desired appliances to effectuate the desired
functionality, or may relay one or more signals to a secondary
signal relay/generation device (such as an IR repeater, RF wireless
access point, etc.) to effectuate the desired appliance
functionality.
In still another alternate embodiment of the present invention, a
save state command or routine is used in conjunction with
traditional macro programming methods to enable additional features
and functions in a home control environment. With the onset of
digital based entertainment appliances, especially those which make
use of one or more interoperability protocols (e.g., UPnP, HAVI,
etc), many device settings may be accessed and controlled
absolutely (e.g., Volume=27 or Brightness=75) rather than using
traditionally ramp or slider functions. Additionally, as described
above, a remote control (or other controlling device) having
two-way communication capabilities with the appliances may both
save and recall these absolute/discrete entertainment appliance
settings to enable enhanced functionality. For example, when
programming favorite channels on the remote, the user can
optionally save additional associated settings, such as absolute
volume, tone, color, brightness, etc., settings for that channel.
The data for these additional associated settings could be input
manually by the user, or automatically based on the current state
of such associated settings on the particular entertainment
appliances(s). The state data for associated settings could also be
provided dynamically based on information contained in a particular
media program or file. For example a user could program different
settings for the same channel based on activity, e.g., watching a
movie vs. watching a football game vs. listening to the news. Where
the channel change process is initiated via selection of a guide
listing, or any method by which metadata about the program or media
file may be obtained, different settings could also be selected
based on the genre, category, rating, or other information from the
guide data and/or other metadata source. These above described
additional associated settings (including dynamically generated
settings based on metadata) could be defined as specific to an
individual macro command, or could be globally set for a particular
channel, program, appliance, etc. In the latter case, they would be
invoked no matter how one accessed the channel, program, or
appliance (e.g., by a favorite icon button on a remote control, TV
guide link, manual channel changing on appliance, etc.). As
described above, the state data for all settings can be saved
either locally on the remote control, on a central server
accessible to the remote control, and/or other appliances in the
control environment. Where the channel change process is initiated
via selection of a guide listing, or other methods which may not
involve interaction with the remote control, the appliance which
received a command may query the remote control or central state
server to determine if additional associated settings were
specified in order to initiate the requested command and all
associated state changes. It will be understood and appreciated
that saving and recalling of associated state data with macro
commands, channel changes, etc. may be applied broadly to most any
event initiated in a control environment, and is not limited in
application in certain appliances or control events.
The system and process of the present invention has been described
above in terms of functional modules in block diagram format. It is
understood that unless otherwise stated to the contrary herein, one
or more functions and features may be integrated in a single
physical device or a software module in a software product, or one
or more functions may be implemented in separate physical devices
or software modules, without departing from the scope and spirit of
the present invention. For instance, it will be understood and
appreciated by those skilled in the art that the remote control 10
of the present invention may be any portable control device
(including but not limited to IR and/or RF based remotes, portable
phones, wireless capable PDAs, etc.) capable of transmitting and/or
receiving state data and command codes remotely to and from the
appliances 12 or central state server 14 and, as such, the term
"remote control" is to also encompass all such devices. Likewise,
the central state server 14 of the present invention may be any
home control device (including but not limited to STB's, media
center PC's, home automation systems, etc) capable of receiving
signals representing state date and/or command codes from the
appliances and portable control device, performing conversion
operations on saves state and command data, and effectuating state
changes in one or more appliances (either directly, or through
further operation and interaction with the portable control device
or other control devices) and, as such, the term "central state
server" is to also encompass all such devices.
It is appreciated that detailed discussion of the actual
implementation of each module is not necessary for an enabling
understanding of the invention. The actual implementation is well
within the routine skill of a programmer and system engineer, given
the disclosure herein of the system attributes, functionality, and
inter-relationship of the various functional modules in the system.
A person skilled in the art, applying ordinary skill can practice
the present invention without undue experimentation.
While various concepts have been described in detail, it will be
appreciated by those skilled in the art that various modifications
and alternatives to those concepts could be developed in light of
the overall teachings of the disclosure. As such, the particular
concepts disclosed are meant to be illustrative only and not
limiting as to the scope of the invention which is to be given the
full breadth of the appended claims and any equivalents
thereof.
All patents cited within this document are hereby incorporated by
reference in their entirety.
* * * * *