# US 9,438,953 B2 · Program guide application interface system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,438,953 B2
- Document ID: US9438953B2
- Status: Granted
- Kind: B2
- Application number: 12/869,287
- Filed: 2010-08-26
- Published: 2011-04-21
- Granted: 2016-09-06
- Earliest claimed: 1997-09-05
- Assignees: Rovi Guides, Inc.
- Applicants: Michael D. Ellis; Robert A. Knee
- Inventors: Michael D. Ellis; Robert A. Knee
- Web page: https://patentgrep.com/patent/US9438953B2

## CPC

- H04N 21/4508: {Management of client data or end-user data}
- H04N 5/772: {the recording apparatus and the television camera being placed in the same enclosure}
- H04N 5/782: on tape
- H04N 7/17318: {Direct or substantially direct transmission and handling of requests}
- H04N 21/42204: {User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor (constructive details of casings for the remote control device H01H9/0235; user interfaces for controlling a tuning device of a television receiver through a remote control H03J9/00; remote control of peripheral devices connected to a television receiver through the remote control device of the television receiver H04B1/205)}
- H04N 21/426: Internal components of the client {; Characteristics thereof} (H04N5/44 takes precedence)
- H04N 21/4438: {Window management, e.g. event handling following interaction with the user interface}
- H04N 21/4542: {Blocking scenes or portions of the received content, e.g. censoring scenes}
- H04N 21/47: End-user applications
- H04N 21/472: End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content {(end-user interfaces for retrieving video data from a database G06F16/739; network services for supporting unicast streaming H04L65/612)}
- H04N 21/478: Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N 21/482: End-user interface for programme selection
- H04N 21/4828: {for searching programme descriptors (retrieval of video data G06F16/739)}
- H04N 5/775: between a recording apparatus and a television receiver
- H04N 5/7755: {the recorder being connected to, or coupled with, the antenna of the television receiver}
- H04N 21/26216: {involving the channel capacity, e.g. network bandwidth (admission control, resource allocation in open networks H04L12/5692; flow control in packet networks H04L47/10; establishing a schedule or organising the servicing of application requests taking into account QoS H04L67/61)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A program guide system is provided that supports a program guide application and multiple non-guide applications. The program guide system has a program guide application interface that allows the non-guide applications to use both device resources and program guide resources. The application interface maintains a list of registered applications and directs control requests from various applications to the current primary application. The application interface also has a user interface input director that directs keystrokes and other user input commands to the appropriate application. If a keystroke for the program guide application is detected while a non-guide application is running, the program guide application is invoked.

## Claims

### Claim 1

A method for allowing a plurality of applications, each implemented on user equipment and associated with a resource requirement, to assume control of the user equipment, wherein one of the plurality of applications is an interactive program guide, the method comprising:
receiving, with a control request processor, a control request from a requesting application, wherein the requesting application is one of the plurality of applications;
comparing a first plurality of buttons associated with an active mode of the requesting application with a second plurality of buttons associated with an active mode of a second application of the plurality of applications;
determining, with the control request processor and without user input, whether any button in the first plurality of buttons is included in the second plurality of buttons; and
transferring control of the user equipment to the requesting application in response to determining that none of the first plurality of buttons is included in the second plurality of buttons.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
determining whether another one of the plurality of applications has primary control of the user equipment.

### Claim 3 (depends on 2)

The method of claim 2, wherein determining whether to transfer control of the user equipment to the requesting application comprises:
determining whether to transfer control of the user equipment from the application with primary control to the requesting application based on priorities associated with the requesting application and the application with primary control.

### Claim 4 (depends on 2)

The method of claim 2, wherein transferring control of the user equipment to the requesting application comprises:
providing the control request to the application with primary control of the user equipment, wherein the application with primary control relinquishes control of the user equipment in response to receiving the control request.

### Claim 5 (depends on 2)

The method of claim 2, wherein the control request is a first control request, the method further comprising:
transferring control of the user equipment from the requesting application to the application with primary control in response to a second control request.

### Claim 6 (depends on 5)

The method of claim 5, wherein transferring control of the user equipment from the requesting application to the application with primary control comprises:
providing the second control request to the requesting application, wherein the requesting application relinquishes control of the user equipment in response to receiving the second control request.

### Claim 7 (depends on 5)

The method of claim 5, wherein transferring control of the user equipment from the requesting application to the application with primary control comprises:
providing the second control request to the application with primary control of the user equipment, wherein the application with primary control reasserts control of the user equipment in response to receiving the second control request.

### Claim 8 (depends on 2)

The method of claim 2, wherein the control request is a request to terminate operation of the application with primary control of the user equipment, and wherein transferring control of the user equipment to the requesting application comprises:
terminating operation of the application with primary control of the user equipment.

### Claim 9 (depends on 2)

The method of claim 2, wherein the control request is a request to suspend operation of the application with primary control of the user television equipment, and wherein transferring control of the user equipment to the requesting application comprises:
suspending operation of the application with primary control of the user equipment.

### Claim 10 (depends on 1)

The method of claim 1, wherein the control request is tagged with an identifier associated with the requesting application, and wherein transferring control of the user equipment to the requesting application comprises:
identifying the requesting application by comparing the identifier of the control request to a plurality of identifiers included in a registered application list.

### Claim 11 (depends on 1)

The system of claim 1, wherein the control request is tagged with an identifier associated with the requesting application, and wherein the control request processor is further configured to:
identify the requesting application by comparing the identifier of the control request to a plurality of identifiers included in a registered application list.

### Claim 12 (depends on 10)

The method of claim 10, wherein the registered application list comprises a communications address and an identifier for each registered application.

### Claim 13 (depends on 11)

The system of claim 11, wherein the registered application list comprises a communications address and an identifier for each registered application.

### Claim 14 (depends on 1)

The method of claim 1, wherein each of the plurality of applications has a unique function.

### Claim 15 (depends on 1)

The method of claim 1, wherein the user equipment includes a user television equipment.

### Claim 16 (depends on 1)

The method of claim 1, wherein the resource requirement comprises at least one of a database access resource, a graphics library resource, a parental control resource, a scheduling resource, and a tuning resource.

### Claim 17 (depends on 1)

The method of claim 1, wherein the resource requirement of the requesting application comprises a plurality of resources, and transferring control of the user equipment to the requesting application comprises:
transferring control of a subset of the plurality of resources to the requesting applications, wherein the subset of the plurality of resources is determined based on the resource requirement of the requesting application.

### Claim 18 (depends on 1)

The method of claim 1, wherein another one of the plurality of applications has primary control of the user equipment, and determining whether to transfer control of the user equipment to the requesting application comprises:
retrieving the resource requirement of the requesting application; and
comparing the resource requirement of the requesting application to the resource requirement of the other one of the plurality of applications.

### Claim 19

A system for allowing a plurality of applications, each implemented on user equipment and associated with a resource requirement, to assume control of the user equipment, wherein one of the plurality of applications is an interactive program guide, the system comprising:
a control request processor configured to:
receive a control request from a requesting application, wherein the requesting application is one of the plurality of applications;
compare a first plurality of buttons associated with an active mode of the requesting application with a second plurality of buttons associated with an active mode of a second application of the plurality of applications;
determine, without user input, whether any button in the first plurality of buttons is included in the second plurality of buttons; and
transfer control of the user equipment to the requesting application in response to determining that none of the first plurality of buttons is included in the second plurality of buttons.

### Claim 20 (depends on 19)

The system of claim 19, wherein the control request processor is further configured to:
determine whether another one of the plurality of applications has primary control of the user equipment.

### Claim 21 (depends on 20)

The system of claim 20, wherein the control request processor is further configured to:
determine whether to transfer control of the user equipment from the application with primary control to the requesting application based on priorities associated with the requesting application and the application with primary control.

### Claim 22 (depends on 20)

The system of claim 20, wherein the control request processor is further configured to:
provide the control request to the application with primary control of the user equipment, wherein the application with primary control relinquishes control of the user equipment in response to receiving the control request.

### Claim 23 (depends on 20)

The system of claim 20, wherein the control request is a first control request, and wherein the control request processor is further configured to:
transfer control of the user equipment from the requesting application to the application with primary control in response to a second control request.

### Claim 24 (depends on 23)

The system of claim 23, wherein the control request processor is further configured to:
provide the second control request to the requesting application, wherein the requesting application relinquishes control of the user equipment in response to receiving the second control request.

### Claim 25 (depends on 23)

The system of claim 23, wherein the control request processor is further configured to:
provide the second control request to the application with primary control of the user equipment, wherein the application with primary control reasserts control of the user equipment in response to receiving the second control request.

### Claim 26 (depends on 20)

The system of claim 20, wherein the control request is a request to terminate operation of the application with primary control of the user equipment, and wherein the control request processor is further configured to:
terminate operation of the application with primary control of the user equipment.

### Claim 27 (depends on 20)

The system of claim 20, wherein the control request is a request to suspend operation of the application with primary control of the user equipment, and wherein the control request processor is further configured to:
suspend operation of the application with primary control of the user equipment.

### Claim 28 (depends on 19)

The system of claim 19, wherein each of the plurality of applications has a unique function.

### Claim 29 (depends on 19)

The system of claim 19, wherein the user equipment includes a user television equipment.

### Claim 30 (depends on 19)

The system of claim 19, wherein the resource requirement comprises at least one of a database access resource, a graphics library resource, a parental control resource, a scheduling resource, and a tuning resource.

### Claim 31 (depends on 19)

The system of claim 19, wherein the resource requirement of the requesting application comprises a plurality of resources, and the control request processor is further configured to:
transfer control of a subset of the plurality of resources to the requesting application, wherein the subset of the plurality of resources is determined based on the resource requirement of the requesting application.

### Claim 32 (depends on 19)

The system of claim 19, wherein another one of the plurality of applications has primary control of the user equipment, and the control request processor is further configured to:
retrieve the resource requirement of the requesting application; and
compare the resource requirement of the requesting application to the resource requirement of the other one of the plurality of applications.
