FIELD OF THE INVENTIONThis invention relates in general to television systems, and more particularly, to the field of television set-top terminals.[0001]
DESCRIPTION OF THE RELATED ARTSubscriber television systems are now capable of providing many services in addition to analog broadcast video. In implementing enhanced programming, the home communication terminal (“HCT”), otherwise known as a set-top box, has become an important computing device for accessing various video services. In addition to supporting traditional analog broadcast video functionality, digital HCTs (or “DHCTs”) now also support an increasing number of two-way digital services such as video-on-demand.[0002]
A DHCT is typically connected to a cable or satellite television network and includes hardware and software for providing various services and functionality. In some systems, software executed by a DHCT can be downloaded and/or updated via the subscriber television network. The ability to download software provides flexibility in adding or updating applications executed by the DHCT. Each DHCT also typically includes a processor, communication components, and memory, and is connected to a television. While many conventional DHCTs are stand-alone devices that are externally connected to a television, a DHCT and/or its functionality may be integrated into a television or other display device, as will be appreciated by those of ordinary skill in the art.[0003]
Many DHCTs are capable of providing a viewer with hundreds of channels. As a result, viewers may have so many viewing options that they often miss television programs that they had intended to watch. Some viewers may plan on recording future programs but forget to set their video cassette recorder timers. Others do not record their favorite programs because video cassette recorder timers often appear too tedious or difficult to set, especially when operating in conjunction with a cable television box. Some viewers who plan on watching a program may invoke an electronic reminder feature provided by a DHCT. However, this reminder feature may be ineffective if the viewer is outside the room in which the DHCT is located at the time that a reminder is provided by the DHCT. As a result, there is a need for systems and methods that address these and/or other problems associated with DHCTs.[0004]
BRIEF DESCRIPTION OF THE DRAWINGSThe invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily drawn to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. In the drawings, like reference numerals designate corresponding parts throughout the several views.[0005]
FIGS. 1A-1C are block diagrams depicting non-limiting examples of DHCT settings transfer systems.[0006]
FIG. 2A is a block diagram illustrating a non-limiting example of selected components of a DHCT.[0007]
FIG. 2B is a block diagram illustrating a non-limiting example of selected components of memory contained in the DHCT shown in FIG. 2A.[0008]
FIG. 3 is a block diagram depicting a non-limiting example of selected components of a headend in accordance with one embodiment of the invention.[0009]
FIG. 4 is a block diagram depicting a non-limiting example of a DHCT-settings server that may be located at a headend shown in FIG. 3.[0010]
FIG. 5 is a schematic diagram depicting a non-limiting example of a remote control device (RCD) that may be used to provide user input to the DHCT depicted in FIG. 2A.[0011]
FIG. 6 is a schematic diagram depicting a non-limiting example of an IPG screen that illustrates an initial program guide arrangement in a time format.[0012]
FIG. 7 is a schematic diagram depicting a non-limiting example of a Future Program Options screen that may be presented to a user in response to the selection of a highlighted listing via the IPG screen shown in FIG. 6.[0013]
FIG. 8 is a schematic diagram depicting a non-limiting example of a Reminder Location screen that may be presented to a user in response to the selection of a corresponding option via the Future Program Options screen shown in FIG. 7.[0014]
FIG. 9 is a schematic diagram depicting a non-limiting example of a Future Program Options screen.[0015]
FIG. 10A is a schematic diagram depicting a non-limiting example of a General Settings screen that may be used to edit a scheduled reminder.[0016]
FIG. 10B is a schematic diagram depicting a non-limiting example of a General Settings screen that may be used to access other General Settings screens.[0017]
FIG. 11 is a flow chart depicting a method for providing a reminder in accordance with one embodiment of the invention.[0018]
FIG. 12A is a flow chart depicting a method for transferring user-preference settings in accordance with one embodiment of the invention.[0019]
FIG. 12B is a flow chart depicting a method for transferring user-preference settings in accordance with another embodiment of the invention.[0020]
FIG. 13 is a flow chart depicting a method for providing a reminder in accordance with another embodiment of the invention.[0021]
FIG. 14 is a flow chart depicting a method for transferring user-preference settings in accordance with another embodiment of the invention.[0022]
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTSThe preferred embodiments of the invention now will be described more fully hereinafter with reference to the accompanying drawings. In particular, preferred embodiments of managing user-defined settings in a subscriber television system will be described. Examples of user-defined settings include, among others, reminder messages (set with a user's input) that are scheduled by the user in order to remind the user of upcoming television programs. In one embodiment of the invention, a first digital home communication terminal (DHCT) receives user input requesting that a reminder be set for a desired television program and then transmits a reminder request to a second DHCT. The second DHCT may or may not be identified at the time that the reminder is set. The reminder request identifies the desired television program for which the reminder was requested. The second DHCT then provides the user at a future time with a reminder notice for the desired television program. Other embodiments of the invention are also described below.[0023]
In the description that follows, FIGS. 1-5 will provide examples of system components that may be used to help implement and/or manage user-defined settings. Furthermore, user interface (UI) screens that may be provided in connection with requesting a reminder notice for a television program are illustrated in FIGS. 6-10. Finally, examples of methods for managing user defined settings are illustrated in the flow charts of FIGS. 11-14. Note, however, that the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Furthermore, all examples given herein are intended to be non-limiting, and are provided in order to help convey the scope of the invention.[0024]
FIG. 1A is a block diagram depicting a non-limiting example of a DHCT settings transfer system[0025]100-1. In this example, the DHCT settings transfer system100-1 includes a headend that is coupled to a DHCT200-1 and to a DHCT200-2 via acommunications network130. In another embodiment (not shown), the DHCT200-2 may be connected to thenetwork130 only via the DHCT200-1. The DHCTs200-1 and200-2 are typically situated at a customer premises120 and are connected to respective television sets140-1 and140-2. The customer premises120 may be a residence or place of business for one or more DHCT users. Each DHCT200 (i.e., DHCT200-1 or200-2) may be a stand-alone unit or may be integrated into another device such as, for example, a television set140. The DHCT200-1 is configured to provide the DHCT200-2 with user defined settings, such as, for example, a reminder setting.
A[0026]DHCT200 receives signals (video, audio and/or other data) from theheadend300 through thenetwork130 and provides any reverse information to theheadend300 through thenetwork130. Thenetwork130 may be any suitable means for communicating television services data and may be, for example, a cable television network or a satellite communication network. Upstream information may be carried through an auxiliary network such as, for example, a telephone network.
The[0027]headend300 may include one or more server devices (not shown) for providing video, audio, and textual data toDHCTs200. Theheadend300 and eachDHCT200 cooperate to provide a user with television services via a television140. The television services may include, for example, broadcast television services, cable television services, premium television services, video-on-demand (VOD) services, and/or pay-per-view (PPV) services.
Alternative implementations of the DHCT settings transfer system[0028]100-1 are shown in FIGS. 1B and 1C. In the example of FIG. 1B, a DHCT settings transfer system100-2 includes a first DHCT200-1 that is located at a first customer premises120-1, and a second DHCT200-2 that is located at a second customer premises120-2. The DHCT200-1 may be configured to provide the DHCT200-2 with user defined settings, such as, for example, a reminder setting. The user defined settings may be first transmitted by the DHCT200-1 to theheadend300 where they are stored and subsequently downloaded to the DHCT200-2.
In the example of FIG. 1C, a DHCT settings transfer system[0029]100-3 includes a first DHCT200-1 that is served by a first headend300-1, and a second DHCT200-2 that is served by a second headend300-2. User defined settings may be transmitted by the DHCT200-1 to the DHCT200-2 via the headend300-1 and the headend300-2. The headends300-1 and300-2 may be coupled via anetwork150, which may be, for example, the Internet. In another embodiment, a user may be able to receive DHCT settings (e.g., program reminders) via a device that is not a DHCT (e.g., via a personal computer).
FIG. 2A is a block diagram illustrating a non-limiting example of selected components of a DHCT[0030]200 (i.e., DHCT200-1 or200-2). TheDHCT200 comprises acommunications interface222 for receiving video, audio and other data from the headend300 (FIG. 1), and for providing any reverse information to theheadend300. TheDHCT200 further includes at least oneprocessor224 for controlling operations of theDHCT200, anoutput system228 for driving a display device (e.g., a television140), and atuner system225.
The[0031]tuner system225 tunes to a particular television service to be displayed via a television140 and sends and receives various types of data to/from theheadend300. Thetuner system225 includes in one implementation, an out-of-band tuner for bi-directional quadrature phase shift keying (QPSK) data communication and an in-band quadrature amplitude modulation (QAM) tuner for receiving television signals and/or other in-band data. Areceiver226 receives user inputs that are provided via an input device such as, for example, among others, a transmitter with buttons located on the exterior of the terminal, a hand-held remote control device, or a keyboard.
A home network communications application (HNCA)[0032]260 (FIG. 2B) enables communication with another DHCT via a home network interface (HNI)290. TheHNI290 acts as an interface for transmitting and/or receiving data to/from other DHCTs that are coupled to aDHCT200. TheHNI290 may be, for example, a USB (Universal Serial Bus), an Ethernet port, an IEEE-1394 connection, a serial port, a parallel port, a wireless radio frequency (RF) interface, a telephone line interface, or a coaxial cable interface, among others. In one possible implementation, theHNI290 may be coupled to a DHCT via an Ethernet or USB hub. In another embodiment, theDHCT200 may be connected to another DHCT via another communication port (not shown) and/or via the communications network130 (FIGS. 1A-1C).
The[0033]system memory230, which may include volatile and/or non-volatile memory, stores one or more programmed software applications (herein referred to as applications) containing instructions that may be executed by theprocessor224 under the auspices of theoperating system231. Data required as input by an application is stored inmemory230 and read byprocessor224 frommemory230 as need be during the course of the application's execution. Input data for an application may be data stored inmemory230 by a secondary application or other source, either internal or external to theDHCT200, or may be data that was included with the application at the time that it was created. Data generated by an application is stored inmemory230 byprocessor224 during the course of the application's execution. The availability, location, and amount of data generated by one application for consumption by another application is communicated between applications with the help of an operating system.
The format of the data generated by a first application running in a first DHCT[0034]200-1 (FIGS. 1A-1C) for consumption by a second instance of the same application executing in a second DHCT200-2 (FIGS. 1A-1C) is preferably predetermined. Likewise, the format of the data generated by a first application running in a first DHCT200-1 for consumption by a different application executing in a second DHCT200-2 is also preferably predetermined. In another embodiment, the format of the data generated by a first application running in a first DHCT200-1 for consumption by a second application executing in a second DHCT200-2 is communicated between the two applications (e.g., the format may be carried as part of the data transferred between the applications). In such embodiment, the format of the data may be interpreted with the assistance of an operating system.
FIG. 2B is a block diagram depicting a non-limiting example of selected content of the[0035]system memory230. A Navigator (application)233 allows a user to select a service and helps provide various functionality, including volume and channel control. To implement its functionality, theNavigator233 communicates with aplatform235. Theplatform235 includes a collection of utilities, such as a Services Application Manager (SAM)236, atimer manager263, and aWindow Manager245, that are useful to the applications. Theplatform235 also contains aViewer Preference Manager250 that serves to configure and set certain viewer preferences (e.g., a preferred font type or color for displayed graphics). Theplatform235 may also include other utilities such as, for example, a compression manager, an HTML parser, a database manager, a widget toolkit, among others (not shown).
In one implementation, the[0036]Window Manager245 maintains a user input registry232 which is accessed to determine which of the various applications running on theDHCT200 should receive a user input or a message and in what order. TheNavigator233 registers with thewindow manager245 in order to receive user input commands that correspond to certain functions, such as, for example, channel up/down navigation and program guide initiation.
After the[0037]Navigator233 is activated in response to a user input or a received message, it sends a query to the SAM236 requesting information about a service. The received message may have been transmitted by a server at theheadend300 or by a second DHCT200-2. When the SAM236 receives a query from theNavigator233, it accesses aservice database237 to inform theNavigator233 about the existence and status of the requested service. TheNavigator233 can further query the SAM236 to determine if the service is authorized for theDHCT200 and, if so, can request the SAM236 to activate the service. In response to a request for a service activation, the SAM236 initiates a service activation message to the application that is identified in the service database as providing the desired service. As a non-limiting example, striking the “GUIDE” key580 on the remote control device500 (FIG. 5) may cause the SAM236 to activate the interactive program guide (IPG)application238.
The[0038]IPG application238 displays a program guide to the user and populates the guide with information about television services. TheIPG application238 includes an IPG user interface module239 that helps create an IPG screen for presentation to a user. The IPG user interface module239 accesses configuration settings stored in an IPG configuration module241 to implement an appropriate configuration for the IPG screen. The IPG configuration module241 includes a configuration database243 for storing a plurality of IPG configurations. The IPG user interface module239 populates the IPG screen with information contained in anIPG database240 which contains data files corresponding to a plurality of programs and services. For example, theIPG database240 may include one or more database records per respective program and/or service available via theDHCT200.
Based on the configuration information stored in the IPG configuration module[0039]241, the IPG user interface module239 utilizes thewindow manager245 and other graphics utilities provided by theoperating system231 to render an IPG screen on a television140. Thewindow manager245 is a component that, in one embodiment, is part of theplatform235, but in other embodiments may be part of theoperating system231. In addition to the user input registry mentioned previously, thewindow manager245 contains functionality for allocating screen areas and managing screen use among multiple applications. Theoperating system231 provides primitives to the IPG user interface module239 in order to help render images on a television140 (FIG. 1).
As a screen is generated via a display device, the IPG user interface[0040]239 registers with thewindow manager245 for particular user input commands that may be required for selecting options provided by the newly-created screen. TheIPG application238 also contains adaemon application246 that operates as a background process. Thedaemon application246 receives IPG data files transmitted by theheadend300 and stores them in theIPG database240 for utilization by the user interface239.
When the[0041]DHCT200 receives a message requesting a program reminder, the SAM236 activates a background process of thetimer manager263 that associates data in the received message with one or more records in theIPG database240. In another embodiment, a background process of the interactive program guide (IPG)application238 associates the data in the received message with one or more records in theIPG database240. Data in the received message may identify, for example, among others, a television program, a corresponding start time, and/or a corresponding duration.
One or more records in the[0042]IPG database240 may be accessed while a background process associates data of a received message with records in theIPG database240. Associations of message data with IPG records may be stored insystem memory230 as an identifiable subset of data belonging to either thetimer manager263 or to theIPG database240.
The background process of the[0043]IPG application238 may occur without the activation of thenavigator233 when the reminder message is received prior to the start time of the television program for which a reminder notice is to be implemented. The SAM236 may cause thetimer manager263 to activate a timer that is responsive to the time specified by the received message, and to keep the timer active during the television program. Maintaining the timer active during the television program allows a reminder notice to be displayed when a viewer begins viewing a television140 (FIG. 1) after the start time of the television program.
Applications executed by the resources of a DHCT[0044]200 comprise executable instructions for implementing logical functions. The applications can be embodied in any computer-readable medium for use by or in connection with an instruction execution system. The instruction execution system may be, for example, a computer-based system, a processor-containing system, or any other system capable of executing instructions.
In the context of this document, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer readable medium can be, for example, but is not limited to, an electronic, solid-state, magnetic, optical, electromagnetic, or semiconductor based medium, either internal to the[0045]DHCT200 or externally connected to theDHCT200 via one or more communication ports or network interfaces.
More specific examples (a non-exhaustive list) of a computer-readable medium include the following: an electrical connection having one or more wires, a portable computer diskette, a hard drive storage device, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), an optical fiber, and a portable compact disc read-only memory (CDROM). Note that the computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via for instance optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in a computer memory.[0046]
FIG. 3 is a block diagram depicting a non-limiting example of selected components of a[0047]headend300 in accordance with one embodiment of the invention. Theheadend300 includes a DHCT-settings server400 that is connected to a digital network control system (DNCS)323 via a high-speed network such as anEthernet connection332.
The[0048]DNCS323 provides management, monitoring, and control of the network's elements and of the broadcast services provided to users. In one implementation, theDNCS323 uses adata insertion multiplexer329 and a quadrature amplitude modulation (QAM) modulator330 to insert in-band broadcast file system (BFS) data or messages into an MPEG-2 transport stream that is broadcast and received via a DHCT'scommunication interface222 and tuner system225 (FIG. 2A). Alternatively, a message may be transmitted by theDNCS323 as a file or as part of a file.
A quadrature-phase-shift-keying (QPSK)[0049]modem326 is responsible for transporting out-of-band IP (internet protocol) datagram traffic between theheadend300 and aDHCT200. Data from theQPSK modem326 is routed by aheadend router327. TheDNCS323 can also insert out-of-band broadcast file system (BFS) data into a stream that is broadcast by theheadend300 and received by aDHCT200 via itscommunication interface222 and tuner system225 (FIG. 2A). Theheadend router327 is also responsible for delivering upstream application traffic to the various servers such as, for example, the DHCT-settings server400. A gateway/router device340 is routes data between theheadend300 and the Internet.
A service application manager (SAM)[0050]server325 is a server component of a client-server pair of components, with the client component being located at theDHCT200. Together, the client-server SAM components provide a system in which the user can access services that are identified by an application to be executed and a parameter that is specific to that service. An example of an application is the Watch-TV application262 (FIG. 2B), and an example of a parameter is the ABC channel. The client-server SAM components also manage the life cycle of applications in the system, including the definition, activation, and suspension of services they provide and the downloading of applications into aDHCT200 as necessary.
Applications on both the[0051]headend300 and a DHCT200 can access the data stored in a broadcast file system (BFS)server328 in a similar manner to a file system found in operating systems. TheBFS server328 and its counterpart, the BFS client244 (FIG. 2B), are part of a file broadcasting system. TheBFS server328 repeatedly sends data for applications on a data carousel (not shown) over a period of time in a cyclical manner so that aDHCT200 may access the data, as needed, via theBFS client244 either via an “in-band radio-frequency (RF) channel” or an “out-of-band RF channel.”
FIG. 4 is a block diagram depicting a non-limiting example of a DHCT-[0052]settings server400 that may be located at a headend300 (FIG. 3). In this example, the DHCT-settings server400 is a digital computer that, in terms of hardware architecture, generally includes aprocessor402,memory404, non-volatile memory such as astorage device420, and an input/output (I/O)interface406. These components (402,404, and406) are communicatively coupled via alocal interface410.
The[0053]local interface410 can be, for example but not limited to, one or more buses or other wired or wireless connections. Thelocal interface410 may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, to enable communications. Further, the local interface may include address, control, and/or data connections to enable appropriate communications among the aforementioned components.
The[0054]processor402 is a hardware device for executing software, particularly that stored inmemory404. Theprocessor402 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the DHCT-settings server400, a semiconductor-based microprocessor (in the form of a microchip or chip set), or generally any device for executing software instructions. Theprocessor402 may be one of a plurality of processors that implement a multiple processor server architecture. When the DHCT-settings server400 is in operation, theprocessor402 is configured to execute software stored within thememory404, to communicate data to and from thememory404, and to generally control operations of the DHCT-settings server400 pursuant to the software.
The[0055]memory404 can include any one or combination of read/write volatile memory elements (e.g., RAM, DRAM, SRAM, SDRAM, etc.) and nonvolatile memory elements. The non-volatile memory elements may include one or more read-write memory elements (e.g., a hard disk, a tape, and/or a DVD-RW) and/or read-only elements (e.g., ROM and/or CDROM. Moreover, thememory404 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that thememory404 can have a distributed architecture, where various components are situated remote from one another, but can be accessed by theprocessor402.
The software in[0056]memory404 may include one or more software programs, each of which comprises executable instructions for implementing logical functions. In the example of FIG. 4, the software in thememory404 includes a DHCT settings management application (DSMA)412 and a suitable operating system (O/S)411. The O/S411 essentially controls the execution of other computer programs, such as theDSMA412, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
The[0057]DSMA412 may be used for receiving and storing DHCT settings from a first DHCT200-1 and for transmitting the DHCT settings at a future time to the first DHCT200-1 or to a second DHCT200-2. The second DHCT200-2 may be located at the same or different customer premises as the first DHCT200-1. When theDSMA412 is implemented in software, as is shown in FIG. 4, it may be stored on any computer readable medium for use by or in connection with any computer related system or method.
DHCT settings may be specified, transmitted and stored in a predetermined format. The[0058]DSMA412 may store and organize a plurality of sets of DHCT settings instorage device420 in a structured and organized way by using, for example, a database technology or an organized file system. Each set of DHCT settings may be specified by a plurality of data fields. In one example, some or all of the following information, among others, may be provided by respective data fields corresponding to a set of DHCT settings:
1. Identification of the data fields as corresponding to DHCT settings.[0059]
2. Whether settings are to be implemented or cancelled. For example, a “SET” indication causes settings to be implemented, whereas a “CANCEL” indication causes a prior setting to be cancelled (assuming it has not yet expired).[0060]
3. The identity of a first DHCT[0061]200-1 that originated the DHCT settings. The DHCT200-1 may be identified via, for example, its media access control (MAC) address.
4. The identity of a user that requested the DHCT settings.[0062]
5. The identity of a second DHCT[0063]200-2 or a group of DHCTs entitled to receive the DHCT settings, if applicable.
6. When the settings originated (e.g., date and/or time).[0064]
7. When the DHCT settings expires (e.g., date and/or time).[0065]
8. The number of settings included in the set of DHCT settings.[0066]
9. Information regarding the accessibility of the DHCT settings, including one or more of the following:[0067]
i. The DHCT settings are transmittable only to the DHCT that originated the DHCT settings.[0068]
ii. The DHCT settings are transmittable to another DHCT.[0069]
iii. The DHCT settings are transmittable only to a DHCT located at the same customer premises.[0070]
iv. The DHCT settings are transmittable only to a DHCT with the same account registration[0071]
v. The DHCT settings are accessible from a non-DHCT device (e.g., a personal computer).[0072]
vi. The DHCT settings are accessible from a remote location (e.g., via the Internet).[0073]
vii. The DHCT settings are accessible with user authentication.[0074]
10. Information associated with one or more television programs or services. For example, some or all of the following information may be provided by respective data fields corresponding to a certain television program or service:[0075]
a. A title or identity of the program or service[0076]
b. A start time for the program[0077]
c. An end time for the program[0078]
d. A duration of the program[0079]
e. Actions to be taken in connection with the program or service[0080]
i. Providing a reminder in connection with the program or service[0081]
ii. Recording the program or service[0082]
iii. Blocking the program or service from being viewed[0083]
iv. Requiring parental authorization to view the program or service[0084]
The[0085]DSMA412 stores a first set of DHCT settings received from afirst DHCT200 instorage device420. For the purpose of transmitting a first set of DHCT settings over the out-of-band channel, theDSMA412 reads the first set of DHCT settings fromstorage device420 and writes it tomemory404. Theprocessor402 may then include the DHCT settings in a file that is to be transmitted using a broadcast file system (BFS). Theprocessor402 may also packetize the DHCT settings prior to their transmission over an in-band or out-of-band transmission channel. TheDSMA412 may impose predetermined limits relating to the DHCT settings that are stored in thestorage device420. These limits may include one or more of the following, among others:
1—A limit on the duration that the DHCT settings are stored in the[0086]storage device420.
2—A limit on the number of sets of DHCT settings corresponding to a[0087]certain DHCT200 that are stored in thestorage device420.
3—A limit on the overall number of programs and/or services for which DHCT settings corresponding to a[0088]certain DHCT200 are stored in thestorage device420.
In an alternative embodiment, the[0089]DSMA412 may be implemented in hardware using, for example, any or a combination of the following technologies which are each well known in the art: a discrete logic circuit(s) having logic gates for implementing logic functions upon data signals, an application specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array(s) (PGA), a field programmable gate array (FPGA), etc.
A first DHCT[0090]200-1 that originates a set of DHCT settings stored at theserver400 may later retrieve such DHCT settings. Therefore, the DHCT200-1 may implement the DHCT settings at a future time without having to store such settings within the first DHCT200-1. This feature enables the first DHCT200-1 to provide certain functionality to users without the need for additional non-volatile memory within the DHCT200-1 for storing the related settings. As a result, the first DHCT200-1 may be manufactured at a lower cost.
The[0091]destination DHCTs200 allowed to receive a set of DHCT settings generated by a first DHCT200-1 may be constrained by the cable operator. For instance, a cable operator may allowonly destination DHCTs200 that are located within the same premise or that are under the same account registration to access such DHCT settings. Furthermore, a destination DHCT may be required to be located within the same network hub or cable headend network as the first DHCT200-1 in order to receive DHCT settings generated by the first DHCT200-1.
In one embodiment, a second DHCT[0092]200-2 must be pre-authorized through user input to receive DHCT settings from a first DHCT200-1. The pre-authorization may be accomplished, for example, by inputting the identification of the first DHCT200-1 into the DHCT200-2 (e.g., via a remote control device). Ageneral settings application264 running in DHCT200-2 may be configured to allow a user to interactively enter the respective identification of one or more DHCTs200 from which the second DHCT200-2 may receive DHCT settings. Likewise, a first DHCT200-1 may be pre-authorized through user input to transmit (directly or indirectly) DHCT settings to a second DHCT200-2. The pre-authorization may be accomplished, for example, by inputting the identification of the second DHCT200-2 into the DHCT200-1.
The transfer of DHCT settings from a first DHCT[0093]200-1 to a second DHCT200-2 may either be performed at no extra charge to a user, or may be enabled in exchange for a fee. Furthermore, a user may be required to be in good standing with a cable operator (e.g., not in default on a bill payment) in order to be authorized to transmit or receive DHCT settings to/from anotherDHCT200.
FIG. 5 depicts a non-limiting example of a remote control device (RCD)[0094]500 that may be used to provide user input to theDHCT200. TheRCD500 described herein is merely illustrative and should not be construed as implying any limitations upon the scope of the present invention. Fourarrow keys510 are provided including an uparrow key511, adown arrow key512, aleft arrow key513, and aright arrow key514. Thearrow keys510 can be used to scroll through and/or highlight on-screen options, whereas theselect key520 may be used to select a currently highlighted option. Theguide key580 may be used to access a television program guide such as, for example, IPG screen600 (FIG. 6).
The function of the “A”[0095]key571, the “B” key572, and the “C” key573 varies depending on the screen being presented to a user at the time of a key's activation. In one embodiment, the “A”key571 can be used to access a browse-by list for requesting an IPG screen that contains a subset of listings corresponding to a selected browse-by category (e.g., comedy, drama, sports, etc.); the “B” key572 can be used to request an IPG screen containing service listings for a user selected date; and the “C” key573 can be used to request service listings corresponding to a current time and a currently tuned TV channel.
In one embodiment of the invention, the[0096]RCD500 comprises a first key (not shown) that can be used to initiate retrieval of DHCT settings from another DHCT, and a second key (not shown) that can be used to initiate the transmission of DHCT settings to the headend300 (FIG. 1) and/or to anotherDHCT200. Alternatively, a single key may be used to initiate retrieval or transmission of the DHCT settings.
In an alternative embodiment of the invention, different and/or additional systems and methods for providing user input may be used including, for example, a remote control device having different keys and/or key layouts, a keyboard device, a mouse, a voice activated input system, a touch-screen display, etc. The invention described herein is not limited by the type of device used to provide user input.[0097]
With additional reference to FIGS. 1-5 throughout the remaining figure descriptions, FIG. 6 depicts a non-limiting example of an[0098]IPG screen600 that illustrates an initial program guide arrangement in a time format. TheIPG screen600 may be presented byIPG application238 in response to user input that is provided via, for example, the activation of the guide key580 (FIG. 5). The IPG application238 (FIG. 2B) works in cooperation with the window manager245 (FIG. 2B) to present a user with IPG screens that are formatted in accordance with IPG configuration data that is stored in an IPG configuration database243 (FIG. 2B). Furthermore, anIPG application238 may retrieve television program information from anIPG database240 as needed for presentation via an IPG screen.
The top left portion of[0099]IPG screen600 is adetailed focus area610 that includes detailed television service information for a currently highlighted program listing which, in the current example, is the ABC News listing620. The detailed service information may include channel number, service name, television program name, television program description, television program duration, and/or any episode information or rating.
A television program occupying the full TV screen before the user is presented with[0100]IPG screen600 is displayed in avideo area630. Immediately below thevideo area630 is aninformation banner640 for displaying the television channel number to which theDHCT200 is currently tuned (e.g., television channel 5), the current day and date (e.g., Thursday, January 17), and the current time (e.g., 5:00 p.m.).
An[0101]IPG grid665 includes aprogram listing area660, atime listing area670, and achannel listing area680. Theprogram listing area660 contains a listing of titles corresponding to television programs that are available for viewing during the time periods listed in thetime listing area670, and that are provided via respective television services identified in televisionchannel listing area680. The televisionchannel listing area680 includes a vertical list of television services organized sequentially from top to bottom by increasing television channel number (except for the lowest numbered television service which is typically listed immediately below the highest numbered television service). In one embodiment, the arrow keys510 (FIG. 5) can be used to scroll through theprogram listing area660 and to highlight a desired program listing. Thebottom area650 ofIPG screen600 indicates the selected day for which television program data is being displayed as well as information about the current functions of the “A”, “B”, and “C” keys on theremote control500.
In an alternative embodiment, an IPG screen may have fewer, additional, or different components and may have a different layout. For example, an IPG screen might not include a[0102]detailed focus area610, avideo area630, aninformation banner640, and/or abottom area650.
FIG. 7 is a non-limiting example of a Future Program Options screen[0103]700-1 that may be presented to a user in response to the selection of a highlighted program listing via the IPG screen600 (FIG. 6). As shown in FIG. 7, a FutureProgram Options menu701 provides the user with three options: anoption702 to tune to a channel corresponding to the selected TV program, anoption703 to set a video cassette recorder (“VCR”) timer to record the TV program, and anoption704 to schedule a reminder notice for the TV program. Additional options (not shown) can include, for example, an option for blocking a selected program and/or an option for requiring a parental authorization PIN to be entered for the selected program.
If the user selects[0104]option702, then the Future Program Options screen700-1 disappears, and the user is presented with a television program that is currently available on the channel (e.g., channel 2) identified byoption702. If the user selectsoption703, then theDHCT200 is scheduled to output the desired television program during its scheduled broadcast time to a VCR. Furthermore, upon selection ofoption703, the Future Program Options screen700-1 disappears and the user is once again provided with the IPG screen600 (FIG. 6).
If the user selects[0105]option704, then theDHCT200, at a future time, presents the user with a reminder notice for reminding the user that the desired television program has begun or is about to begin. In one embodiment, the reminder may be in the form of a banner that is displayed at the bottom of the user's television screen and that informs the user of the title, start time, and channel number corresponding to the desired television program. Such a banner is preferably displayed a short time (e.g., five minutes) prior to the start time of the desired television program. In one embodiment, multiple reminders may be scheduled for a single television program.
Implementing a reminder setting may be performed by the[0106]timer manager263 or by theIPG application238 using data contained in theIPG database240. A reminder setting may associate a timer with a program title (or other identifier), a corresponding start time, and a corresponding duration. Records in theIPG database240 may be accessed while a timer is being associated with a television program identified in theIPG database240. Reminder settings associating timers with IPG records may be stored insystem memory230 as an identifiable subset of data belonging to either thetimer manager263 or to theIPG database240. Reminder settings may be readily identifiable for rapid retrieval and portability.
The SAM[0107]236 may cause thetimer manager263 to activate a timer that is responsive to a time specified by a reminder setting, and to keep the timer active during the corresponding television program. Maintaining the timer active during the television program allows a reminder notice to be displayed when a viewer begins viewing a television140 (FIG. 1) after the start time of the television program.
FIG. 8 is a non-limiting example of a[0108]Reminder Location screen800 that may be presented to a user in response to the selection ofoption704 via the Future Program Options screen700-1 (FIG. 7). AReminder Location menu801 provides the user with reminder location options802-804. These options802-804 allow a user to designate one or more locations where a reminder may be provided for a desired television program.
A user may select[0109]option803 to schedule a reminder that is to be provided by a DHCT (e.g., DHCT200-1) that is driving the television that the user is currently viewing. A user may alternatively selectoption802 in order to schedule a reminder that is to be provided by another DHCT (e.g., DHCT200-2) located remotely or at the customer premises (i.e., a DHCT that is not driving the television that the user is currently viewing). If the user desires that a reminder be provided at more than one location (e.g., via DHCT200-1 and DHCT200-2), then the user may selectoption804 which results in a reminder being provided by a plurality of DHCTs located at the customer premises. Alternatively, the user may enter identification information for eachrespective DHCT200 for which the user wishes to transmit the reminder or applicable information.
FIG. 9 is a schematic diagram depicting a non-limiting example of a Future Program Options screen[0110]700-2. The Future Program Options screen700-2 may be presented to a user who selects the highlighted television program620 (FIG. 6) after having selected option704 (FIG. 7) to set a reminder for the desired television program. Thedetailed focus area610 now contains areminder icon901 indicating that a reminder is scheduled for the desired television program. The user may select anoption902 to cancel the scheduled reminder. Alternatively, the user may select anoption903 to edit the scheduled reminder, in which case the General Settings screen1000 shown in FIG. 10A may be provided to the user by theDHCT200.
FIG. 10A is a schematic diagram depicting a non-limiting example of a General Settings screen[0111]1000-1 that may be used to edit a scheduled reminder. The General Settings screen1000-1 may be presented to a user in response to the selection ofoption903 via the Future Program Options screen700-2 (FIG. 9), or in response to the selection of a certain option on a preceding General Settings screen (e.g., as shown in FIG. 10B). The user may use a remote control device (e.g.,RCD500, FIG. 5) to edit a scheduled reminder. For example, a user may use the left andright arrow keys513 and514 to highlight a desired parameter, and the up and downarrow keys511 and512 to modify a highlighted parameter.
In this example, the parameters include a[0112]start time indication1002,television channel indication1004, and aday indication1006. Thestart time indication1002 and theday indication1006 indicate the time and day, respectively, that a reminder is scheduled to be presented to a user. Thetelevision channel indication1004 indicates the television channel that will provide the television program for which the reminder is scheduled. Once the parameters of a scheduled reminder are edited, the General Settings screen1000 may be exited by activating the “A”key571 on the RCD500 (FIG. 5).
FIG. 10B is a schematic diagram depicting a non-limiting example of a General Settings screen[0113]1000-2 that may be used to help specify DHCT settings. The General Settings screen1000-2 may be presented to a user in response to the activation of a certain key (e.g., the settings key560) on theremote control device500. As shown in FIG. 10B, the General Settings screen1000-2 includes anoption1011 for setting a reminder, anoption1012 for canceling a reminder, and anoption1012 for specifying the location of a reminder.
Selecting[0114]option1011 may, for example, result in the presentation of the General Settings screen1000-1 shown in FIG. 10A. Selectingoption1012 may result in the presentation of another General Settings screen (not shown) that provides a list of reminder settings which may be cancelled. A user may then use the remote control device500 (FIG. 5) to select a reminder setting that is to be cancelled. Selectingoption1013 may result in the presentation of yet another General Settings screen (not shown) that prompts the user to select or enter a location where a reminder setting is to be transmitted.
One or more modes of transmission of a set of DHCT settings from a first DHCT[0115]200-1 to a second DHCT200-2 may be available in a cable network, including, for example, one or more of the following, among others:
1. DHCT settings may be uploaded by a first DHCT[0116]200-1 to a remote server, and then downloaded by a second DHCT200-2 from the remote server. As a non-limiting example, the DHCT settings may be transmitted to the DHCT settings server400 (FIG. 4) where they may be stored in thestorage device420 by theDSMA412. The DHCT settings may then be downloaded from the remote server by a second DHCT200-2 (e.g., in response to user input).
2. DHCT settings may be transmitted from a first DHCT[0117]200-1 to a second DHCT200-2. The address used for transmitting the DHCT settings to the second DHCT200-2 may be, for example, a media access control (MAC) address. Prior to receiving DHCT settings from the DHCT200-1, the second DHCT200-2 may be enabled to receive such settings through user input. DHCT settings that are received from anon-authorized DHCT200 may be filtered out or otherwise not received by the DHCT200-2. Once the DHCT200-2 is enabled to receive DHCT settings, further user input may not be required prior to the DHCT200-2 receiving DHCT settings. In one implementation, when DHCT settings are received by the DHCT200-2, they are forwarded to one or more application(s) that is/are responsible for implementing such DHCT settings. For example, the IPG application238 (FIG. 2B) may receive and implement DHCT settings for a program reminder.
3. DHCT settings stored in a first DHCT[0118]200-1 may be retrieved by a second DHCT200-2. The first DHCT200-1 may be configured to enable retrieval of DHCT settings by the second DHCT200-2. User authentication may be required to enable retrieval of DHCT settings. Once the first DHCT200-1 is configured to allow retrieval of DHCT settings, a user may be able to retrieve DHCT settings using the second DHCT200-2 without the need for providing additional user input to the first DHCT200-1.
Note that DHCT settings that are communicated between[0119]DHCTs200 may be stored or buffered at theheadend300. In one embodiment all DHCT settings that are communicated betweenDHCTs200 are stored at theheadend300 to enable error recovery and/or to provide additional flexibility.
DHCT settings may be communicated between[0120]DHCTs200 using a predetermined format. For example, DHCT settings generated by a first application residing at a first DHCT200-1 may be communicated to a second application residing at a second DHCT200-2 using a standardized format. This standardized format enables the second application to interpret and implement the DHCT settings, even if the second application is a different type of application than the first application.
In one embodiment, the second DHCT[0121]200-2 executes an application that searches the IPG database240 (FIG. 2B) for the programs and services specified in a set of DHCT settings received from the first DHCT200-1. Thereafter, a background process of an IPG application238 (FIG. 2B) residing at the second DHCT200-2 may associate timers and/or reminders with the desired programs based on instruction contained in the DHCT settings.
FIG. 11 is a flow chart depicting a[0122]method1100 in accordance with one embodiment of the invention. As indicated inblock1101, a DHCT receives a first user input requesting a reminder notice for a television program. The DHCT also receives a second user input identifying one or more DHCTs that are to provide the reminder notice (block1102). In response to receiving the user inputs, the DHCT (e.g., DHCT200-1) transmits a reminder request (block1103) to one or more other DHCTs (e.g., DHCT200-2) identified by the second user input. The reminder request preferably includes data identifying the title, start time, and television channel corresponding to a desired television program.
Once a reminder request is received by a DHCT, a reminder notice for the desired television program is scheduled and is subsequently presented to a user via a television. The reminder notice may be in the form of text message that is displayed on a television screen indicating that a desired television program is scheduled to start at a certain time and at a certain TV channel. In an alternative embodiment, a DHCT may automatically transmit a reminder request to one or more other DHCTs after receiving a first user input (block[0123]1101) requesting a reminder notice for a television program.
FIG. 12A is a flow chart depicting a method[0124]1200-1 in accordance with one embodiment of the invention. As indicated inblock1201, a first DHCT200-1 receives a user input requesting that a DHCT setting be transmitted to a second DHCT200-2. The DHCT setting may identify for example, among others, a favorite television channel, a favorite television program, and/or a scheduled reminder for a television program.
In response to receiving the user input, the DHCT[0125]200-1 transmits (as indicated in block1202) the DHCT setting to the DHCT200-2, where it may be stored in a DHCT settings database261 (FIG. 2B). The DHCT200-2 then uses the received DHCT setting to provide a user with a function that is responsive to the DHCT setting, as indicated instep1203. For example, if the DHCT setting identifies a reminder for a television program, then the reminder may be presented to a user (via a television) a short time prior to the program's start time. Furthermore, if the DHCT setting identifies a favorite television channel and/or favorite television program, then such channel and/or program may, for example, be exclusively or preferentially displayed via an IPG screen. In one embodiment, user authentication or log-in may be required by the DHCT200-1 prior to the transmission of the DHCT setting to the DHCT200-2.
FIG. 12B is a flow chart depicting a method[0126]1200-2 in accordance with one embodiment of the invention. As indicated inblock1211, a second DHCT200-2 receives a user input requesting that a DHCT setting be retrieved from a first DHCT200-1. In response to receiving the user input, the DHCT200-2 retrieves (as indicated in block1212) the DHCT setting from the first DHCT200-1, and stores the DHCT setting in a DHCT settings database261 (FIG. 2B). The DHCT200-2 then uses the retrieved DHCT setting to provide a user with a function that is responsive to the DHCT setting, as indicated instep1213. In one embodiment, user authentication or log-in may be required by the DHCT200-2 prior to the retrieval of the DHCT setting from the first DHCT200-1.
FIG. 13 is a flow chart depicting a[0127]method1300 in accordance with one embodiment of the invention. As indicated inblock1301, a server400 (FIG. 3) receives a message from a first DHCT200-1 (FIG. 1) identifying a television program for which a reminder has been requested. In response to receiving the message, theserver400 transmits, at a future time, a reminder message (block1302) to at least a second DHCT200-2 (FIG. 1). The reminder message, which identifies the television program, is preferably transmitted by the server400 a short time prior to the start time of the desired television program.
After the second DHCT[0128]200-2 receives the reminder message, it provides a user with a reminder notice for the television program. The reminder may include or may be based on data contained in the reminder message that is received from theserver400. The reminder may be in the form of text message that is displayed on a television screen indicating that a desired television program is scheduled to start at a certain time and/or on a certain TV channel.
FIG. 14 is a flow chart depicting a[0129]method1400 in accordance with one embodiment of the invention. As indicated inblock1401, aserver400 receives DHCT settings from a first DHCT200-1. The DHCT settings may identify for example, among others, favorite television channels, favorite television programs, and scheduled reminders for television programs.
After the DHCT settings are received by the[0130]server400, they may be stored in a DHCT settings database412 (FIG. 4). Theserver400 then transmits the DHCT settings to at least a second DHCT200-2. The DHCT settings may be transmitted to the second DHCT200-2 either automatically or in response to a request from the second DHCT200-2, depending on a desired implementation.
Any blocks or steps shown in FIGS. 11-14 represent modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in a process. The functionality provided by the methods illustrated in FIGS. 11-14 may be embodied in any computer-readable medium for use by or in connection with a computer-related system or method. Furthermore, the functionality provided by the methods illustrated in FIGS. 11-14, may also be implemented through hardware (e.g., an application specific integrated circuit (ASIC) and supporting circuitry) or a combination of software and hardware.[0131]
It should be emphasized that the above-described embodiments of the present invention, particularly any “preferred embodiments”, are merely possible examples, among others, of the implementations, setting forth a clear understanding of the principles of the invention. Many variations and modifications may be made to the above-described embodiments of the invention without departing substantially from the principles of the invention. All such modifications and variations are intended to be included herein within the scope of the disclosure and present invention and protected by the following claims. In addition, the scope of the present invention includes embodying the functionality of the preferred embodiments of the present invention in logic embodied in hardware and/or software-configured mediums.[0132]