US20040010793A1 - Method and system for flexible time-based control of application appearance and behavior - Google Patents

Method and system for flexible time-based control of application appearance and behavior Download PDF

Info

Publication number
US20040010793A1
US20040010793A1 US10/427,343 US42734303A US2004010793A1 US 20040010793 A1 US20040010793 A1 US 20040010793A1 US 42734303 A US42734303 A US 42734303A US 2004010793 A1 US2004010793 A1 US 2004010793A1
Authority
US
United States
Prior art keywords
index point
attribute change
computer system
index
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/427,343
Inventor
Michael Wallace
Larry Westerman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ensequence Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=29712260&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US20040010793(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Individual filed Critical Individual
Priority to US10/427,343 priority Critical patent/US20040010793A1/en
Assigned to ENSEQUENCE, INC. reassignment ENSEQUENCE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WALLACE, MICHAEL W., WESTERMAN, LARRY ALAN
Publication of US20040010793A1 publication Critical patent/US20040010793A1/en
Assigned to FOX VENTURES 06 LLC reassignment FOX VENTURES 06 LLC SECURITY AGREEMENT Assignors: ENSEQUENCE, INC.
Assigned to ENSEQUENCE, INC. reassignment ENSEQUENCE, INC. RELEASE OF SECURITY INTEREST Assignors: FOX VENTURES 06 LLC
Assigned to CYMI TECHNOLOGIES, LLC reassignment CYMI TECHNOLOGIES, LLC SECURITY AGREEMENT Assignors: ENSEQUENCE, INC.
Assigned to ENSEQUENCE, INC. reassignment ENSEQUENCE, INC. ASSIGNMENT AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Assignors: CYMI TECHNOLOGIES, LLC
Assigned to CYMI TECHNOLOGIES, LLC reassignment CYMI TECHNOLOGIES, LLC SECURITY AGREEMENT Assignors: ENSEQUENCE, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/322Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier used signal is digitally coded
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43074Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/818OS software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only

Definitions

  • This invention relates generally to computer software applications and, more specifically, to timing, control, and execution of software applications.
  • Many computer applications are time sensitive. Some computer applications merely signify that time is passing by changing the appearance of a graphical display. For example, a program copying a file from a source folder to a destination folder may show symbols that look like pages of text passing from the first folder to the second folder. Similarly, Internet browsers change the appearance of a status bar, or rotate or otherwise change the appearance of a symbol on the screen to show the computer's acknowledgment that time is passing even if the browser is slow to respond with the desired page. Slightly more complicated examples include games in which players have a limited period of time to complete some activity or in which the players' scores are based on how long it takes them to perform some task.
  • STBs set-top boxes
  • the STBs therefore, make interactive television possible.
  • a user potentially can play along with a game show, take courses by distance learning, bid in on-line auctions, and otherwise engage the television medium actively.
  • the STB thus allows the user to engage in a highly time-dependent computer program where results depend on the user reacting in a limited time period.
  • the timing of user interaction is correlated with a broadcast or replay of a program.
  • the user may have to respond to a question within a limited time period. It is important that the user be able to see the question, wager points, choose an answer, and know when the time to answer expires.
  • a developer To create programming carrying this time-dependent additional content, a developer first identifies time points at which informational and interactive content will be shown. Then, the developer faces the challenge of translating a list of identified time points into programmatic elements that initiate the additional content to be seen by the user. Taking the example of an interactive game show with which users can play along as depicted in FIG. 1A, the developer faces a number of specific tasks.
  • an object may be to create a display 100 showing a number of graphical items.
  • the developer may be working from an audiovisual recording, the image content of which includes only a host 102 . Upon this background, the developer is tasked with creating the rest of the visual content shown in FIG. 1A.
  • the developer may be tasked with displaying a current question 104 and a range of multiple choice answers 106 , 108 , and 110 from which a user can choose, perhaps from a keyboard, a remote control, or a similar input device.
  • the developer also want do visually communicate to the user that some questions are worth double points with a banner message 112 .
  • the developer may also provide a status window 114 that tells users what round or question is in progress so that users can track where they are in the course of the game.
  • Creating such content generally is a familiar task to a video editor.
  • the video editor may begin with multiple recordings of live action from multiple camera angles, recorded or filmed without interruption. From these recordings, the video editor may select specific segments to make up the program, edit out unnecessary recorded footage, choose camera angles, and add titles, graphics, and other content like that shown in FIG. 1A.
  • this has been done with video editing equipment and text generating equipment. Text generating equipment creates rasterized text as though it were visually recorded by a camera, then superimposes the text over the originally recorded video and rerecords the composite video. This process is familiar to television creators and viewers, but does not include means for creating user interaction.
  • Video production designers already are familiar with non-linear editing tools that allow designers to examine video footage, underlying scripts, audio tracks, and other content associated with the video. Using these non-linear editing tools, designers can select specific time points in a video at which titles, annotations, overdubbing, or other content might be added. If production designers could associate the additional content with time points in the data representing the original program, playback devices such as STBs could decode and append this additional content to present it to users.
  • synchronization points can be stored within the application data content to asynchronously initiate the additional content.
  • SMPTE Society for Motion Picture and Television Engineers
  • An application or program 120 is embedded with a number of trigger points 122 .
  • An application (not shown) executing the program 120 then monitors the video time codes 124 or frame numbers 126 and, using conventional conditional logic, determines when a trigger point 122 has been reached.
  • the application (not shown) can then execute specific program logic to generate the change in appearance or behavior associated with the trigger points 122 .
  • This method is self-contained in that the encoded synchronization points can initiate display of the additional content.
  • this method does suffer a disadvantage in that is consumes a significant amount of programming logic and a corresponding amount of program memory within the STB to operate. It also will be appreciated that, if there is a miscommunication in transmission of the reference point, none of the synchronization points will execute at the appropriate time.
  • a control operator 150 at a broadcast site from which a program 152 is being transmitted can transmit control signals 154 to initiate the additional content.
  • the control operator 150 might engage a semiautomatic computer application (not shown) to monitor the program 152 and view previously conceived timelines.
  • the control operator 150 in real time could actuate a control device to insert trigger signals 154 into the broadcast stream at the appropriate times.
  • the application executing the program 152 receives these trigger signals 154 , interprets the instructions encoded therewith, and then effects the desired change in behavior or appearance of the program related to the additional content.
  • the code needed to initiate the additional content may have been previously stored in the program memory, or may be transmitted along with the trigger signals 154 .
  • This second approach has the potential advantage of using less computer memory storage than does the first method, but requires human intervention during the broadcast and real-time bandwidth capable of supporting this remote control of the content.
  • either method would allow for questions 104 , answers 106 , 108 , and 110 , and other information 112 and 114 , to be selectively displayed.
  • the first method entails time-monitoring of the program and the previously-described application and hardware burdens.
  • the second method involves an operator, supporting software at transmission and reception sites, and additional bandwidth. Both involve the potential expense of a software engineer to create the complex combinations of programming statements required to facilitate accurate triggering of the additional content.
  • Embodiments of the present invention enable providing program content or changing program behavior during execution of a computer system. Changes in appearance or behavior and attributes of a computer system to take place during computer system execution are identified. The attribute changes are associated with events, and these events are identified as index points. The index points implicate characteristics with which the attribute changes are implemented, such as whether the attribute change associated with the index point will be triggerable if computer system execution commenced after the event associated with the index point has passed. The index points allow a program developer flexible control over whether users will be experience attribute changes depending upon when the users engage the program by commencing execution of the computer system. Different types of index points can be assigned to different attribute changes so that different attribute changes can have different properties. Moreover, the index points can be revised and stored separately from the attribute changes, allowing for flexibility and efficiency in revising programs and in transmitting the revisions.
  • embodiments of the present invention provide a method, a computer readable medium, and a data system for controlling computer system operation during execution of the computer system.
  • at least one attribute change of a computer system to occur during execution of the computer system is identified.
  • the attribute change is associated with an event during computer system execution such that indication of the event triggers the attribute change.
  • An index point is identified at which point the attribute change is to occur, and an index point type is specified for determining whether the attribute change is triggerable depending on when the execution of the computer system commenced relative to occurrence of the index point.
  • the attribute change is triggered upon reaching the event, and the attribute change is made in accordance with characteristics of the attribute change determined by the index point specified.
  • the index points are collected into an index list file, and the index points collected thereby are associated with the state changes that the index points initiate.
  • a plurality of index point types can be specified to allow for program developer control of the content associated with the index points.
  • An index point type suitably may be a first index point type for which the associated attribute change will be initiated only if computer system execution commenced before the event associated with the index point is reached.
  • an index point type suitably may be a second index point type for which the attribute state change is initiated upon reaching the index point, and will continue until the attribute change is countermanded.
  • an index point type suitably may be a third index point type having a start point and a stop point for which the associated attribute change is initiated upon reaching the index point if computer system execution commenced before the event associated with the stop point is reached.
  • FIG. 1A is a screen display from a hypothetical prior art interactive software application
  • FIG. 1B is a timeline of event triggers for the hypothetical prior art interactive software application of FIG. 1A;
  • FIG. 1C is another timeline of event triggers for the hypothetical prior art interactive software application of FIG. 1A;
  • FIG. 2A is a timeline showing operational characteristics of a first index point type
  • FIG. 2B is a timeline showing operational characteristics of a second index point type
  • FIG. 2C is a timeline showing operational characteristics of a third index point type having associated stop points
  • FIG. 3A is an index table collecting events associated with the index points
  • FIG. 3B is an index table collecting events associated with the third type of index points listing the times of start points and stop points associated with the index point;
  • FIG. 3C is an index table collecting the index point types; a start point and a stop point for each index point providing for possible use of the third index point type, and a state change initiated by the index point;
  • FIG. 4 is a graphical depiction of a data stream showing a table of attribute changes and an associated index table being loaded to control behavior of an interactive application
  • FIGS. 5 A- 5 F are screens from an interactive computer application controlled using an embodiment of the present invention.
  • FIG. 6A is an index table triggering state changes of the interactive computer application shown in FIGS. 4 A- 4 F;
  • FIG. 6B is a state table driven by the index table of FIG. 6A and controlling the run-time operation of the interactive computer application displayed to the user in FIGS. 5 A- 5 F;
  • FIG. 7 is a flowchart of a routine for creating an index points for controlling attribute changes according to an embodiment of the present invention.
  • FIG. 8 is a flowchart of a routine for executing a computer application responsive to an index table for controlling attribute changes according to an embodiment of the present invention.
  • FIG. 8 is a block diagram of a data processing/media control system of an embodiment of the present invention.
  • embodiments of the present invention provide a method, a computer readable medium, and a data system for controlling computer system operation during execution of the computer system.
  • at least one attribute change of a computer system to occur during execution of the computer system is identified.
  • the attribute change is associated with an event during computer system execution such that indication of the event triggers the attribute change.
  • An index point is identified at which point the attribute change is to occur, and an index point type is specified for determining whether the attribute change is triggered depending on when the execution of the computer system commenced relative to occurrence of the index point.
  • FIGS. 2 A- 3 C show timelines 200 , 201 , and 203 , respectively, depicting at least three types of index points that can be used in accordance with embodiments of the present invention.
  • FIG. 2A shows a plurality of a first index point type 211 which for purposes of this detailed description are termed momentary index points.
  • a momentary index point 211 is momentary in a sense that an attribute change associated with the index point is triggered only if computer system execution commenced before the event associated with the momentary index point 211 was reached.
  • program designers may wish to display a time-limited question if the user engaged the program before the question was first presented. This may be to prevent a user from being confused or distracted by an object effectively flickering across the screen because the user engaged the program after the question was asked but without the user having time to respond.
  • FIG. 2A shows four momentary index points at M0 212 , M1 214 , M2 216 , and M3 218 .
  • M0 212 and M3 216 trigger the display of information
  • M1 214 and M3 218 turn off the display of the information.
  • the user initiates computer system execution at t* 220 , which is at a point after M0 212 .
  • a cross-hatched region 222 represents a duration from M0 212 to M1 214 during which the information is programmed to be displayed.
  • the user initiated computer system execution at t* 220 that is after M0 212 which initiated display of the information, the information will not be displayed.
  • index points M1 214 and M3 218 are used to turn off the display of information by triggering a countermanding attribute removing the information from the display. If computer system execution commenced at t** 224 and there were no index point such as M3 218 to turn off the display of the information, the information would remain displayed. In the case of computer system execution commencing at t* 220 , the index point M1 214 does not turn off the information because the information was never turned on, but the index point M1 214 suitably is included for users engaging computer system execution prior to M0 212 . It will be appreciated that index points M1 214 and M3 218 could be other types of index points, such as a progressive index point which will be described in connection with FIG. 2B. It will be further appreciated that a duration could be associated with the index points M0 212 and M1 214 , thereby making a second index point to deactivate the attribute superfluous.
  • FIG. 2B shows two index points 230 and 232 of a second index point type which for purposes of this detailed description is termed a progressive index point 231 .
  • the progressive index point 231 initiates an associated attribute change with an event associated with the progressive index point 231 .
  • the progressive index point 231 causes the associated attribute change to be initiated regardless of when computer system execution commences relative to the occurrence of the event associated with the progressive index point 231 . Attribute changes associated with a progressive index point 231 suitably are deactivated by subsequent attribute changes.
  • the progressive index point P0 230 initiates an attribute change such as a display of information, whereas progressive index point P1 232 countermands the attribute change and removes the information from display.
  • the user may initiate computer execution at point t′ 234 , t′′ 236 , or t′′′ 238 , and in any of those cases the attribute change will be made until countermanded by the second progressive index point P1 232 , as indicated by a solid region 240 .
  • a progressive index point 231 operates in the nature of conventional video editing today where superimposed content appears regardless of when a user engages the program.
  • FIG. 2C shows two index points 250 and 256 of a third index point type which for purposes of this detailed description is termed a segmented index point 251 .
  • a segmented index point 251 has a start point and a stop point. Like a momentary index point (FIG. 2A), the segmented index point 251 will only initiate an associated attribute change if computer system execution is commenced by an indicated time. Unlike the momentary index point (FIG. 2A), however, the segmented index point 251 enables initiation of the attribute change as long as computer system execution commences between the start point and the stop point, and until countermanded by a subsequent attribute change.
  • FIG. 2C shows a segmented index point 250 as having a start point S start 0 252 and a stop point S stop 0 253 .
  • An attribute change associated with the segmented index point 250 if initiated, persists until countermanded by a subsequent attribute change.
  • the attribute change initiated by segmented index point 250 is shown to be countermanded by an attribute change triggered by a progressive index point P0 259 .
  • another type of index point suitably serves to countermand a previous attribute change, or a durational parameter could be associated with the segmented index point to deactivate an associated attribute change. As shown in FIG.
  • a user commences computer system execution at t+ 262, which is after the stop point S stop 0 253 . Because computer system execution commenced after the stop point S stop 0 253 , the attribute change will not be initiated. The non-triggered attribute change is indicated by the cross-hatched region 266 which would have represented a duration of the attribute change.
  • segmented index point 256 has a start point S start 2 257 and a stop point S stop 2 258 for an attribute change which subsequently is countermanded by index point P1 260 .
  • the user engages computer system execution at t++ 264, which precedes stop point S stop 2 258 .
  • the attribute change is made, as shown by a solid region 268 .
  • a cross-hatched region 269 shows a portion of a duration of the attribute change for which the attribute change was not initiated.
  • a segmented index point 251 operates comparably to a momentary index point (FIG.
  • segmented index point 251 allows an attribute change to be initiated even if computer system execution commences after a start point 252 or 257 as long as computer system execution is commenced before an end of either “grace period” ending with a stop point 253 or 258 .
  • FIGS. 3A, 3B, and 3 C show three different types of index tables which might be used in accordance with embodiments of the present invention.
  • FIG. 3A shows an index table 300 with a single column 302 .
  • the single column lists a series of events 304 that trigger a sequence of index points.
  • a single column table for example, suitably controls a series of attribute changes keyed by index points of a single type such as momentary index points (FIG. 2A). If each event in a program is keyed to a momentary index point, an index table that lists events which trigger those index points suitably provides enough information to initiate attribute changes upon reaching the listed events.
  • the index table 300 also is suitable for initiating a series of progressive index points (FIG. 2B) which will initiate attribute changes associated therewith which will persist until countermanded. Further, the index table 300 is suitable for initiating a series of segmented index points (FIG. 2C) where the events are listed in pairs for start points and stop points.
  • time 0 306 suitably may be a start point for initiating an attribute change
  • time 1 308 suitably may be a stop point marking an end of a period during which the attribute change may be initiated.
  • an index table 300 with a single column 302 suitably triggers associated attribute changes.
  • FIG. 3B shows a more complex index table 320 having two columns 322 and 324 .
  • the index table 320 is suitable for a system using one or more segmented index points (FIG. 2C) in addition to other types of index points such as momentary index points (FIG. 2A) and progressive index points (FIG. 2B).
  • segmented index points FIG. 2C
  • FIG. 2A momentary index points
  • progressive index points FIG. 2B
  • an attribute change associated with a first event uses a segmented index point with a start point time 0 326 and a stop point time 0 328 .
  • the first column 322 can store start points and the second column 324 can store stop points.
  • a second attribute change is initiated by a momentary index point, only a start point is needed.
  • specifying time 2 330 as a stop point for an attribute change is sufficient to trigger the attribute change if computer system execution commenced prior to time 2 330 and, suitably, no event is logged in the second column 324 because stop points are not used by momentary index points.
  • a single-column table like the index table 300 could also be used for initiating attribute changes triggered by segmented index points. If accommodation is made in the single-column table to accept a second operand in the single column which can specify a stop point for a segmented index point, the index table could control operation of segmented index points as well.
  • FIG. 3C shows a still more detailed index table 350 .
  • a program using the index table stores in the index table index point types to determine whether attribute change initiation is dependent on computer system execution commencing before the events are reached.
  • a program using the index points in FIGS. 3A and 3B is programmed to sequentially apply index points to attribute changes, and the index points in the index table are not associated to particular attribute changes in the index table.
  • these types of information suitably are included in an index table.
  • the index table 350 has four columns including an index point type column 352 , an event column for start points 354 , an event column for stop points for segmented index points 356 , and an attribute change column 358 . Accordingly, it is manifest in the index table 350 that, for example, at time 0 360 , a momentary index point (M) 362 triggers attribute change A 364 if computer system execution commenced before time 0 360 and until attribute change A 364 is countermanded. Similarly, at time 1 370 , a progressive index point P 372 triggers attribute change B 374 until attribute change B is countermanded.
  • M momentary index point
  • a segmented index change S 382 triggers an attribute change C 386 provided computer system execution commences before stop point time 3 388 and until attribute change C 386 is countermanded.
  • a multiplicity of index point information can be manifested in an index table for controlling a series of attribute changes within the broad concepts of the present invention.
  • FIG. 4 shows a data stream 400 including a series of attribute changes stored in an attribute change table 410 and index points stored in an index table 420 in accordance with an embodiment of the present invention.
  • a suitably enabled receiver can use these tables 410 and 420 to direct execution of a program, with or without receiving additional application-specific code, according to the data in the tables 410 and 420 .
  • Such a suitably enabled receiver of the tables 410 and 420 using a method, program, or system to direct an application is described in the concurrently-filed, co-pending patent application entitled “METHOD AND SYSTEM FOR PROVIDING FLEXIBLE TIME-BASED CONTROL OF APPLICATION APPEARANCE AND BEHAVIOR,” bearing attorney docket number ENSE-1-1009, the contents of which are hereby incorporated by reference.
  • the attribute change table 410 and the index table 420 can be separately modified and/or communicated as desired to the computer system executing the program to provide for flexibility in creating and modifying programs, as well as for saving bandwidth when only one or the other is to be communicated.
  • FIGS. 5 A- 5 F show displays from a hypothetical interactive television program, such as a game show.
  • attributes presented to a user are changed according to an index file list 600 (FIG. 6A) and a state table 620 (FIG. 6B) as a function of when the user engages the program, as will be further explained.
  • the representative displays shown in FIGS. 5 A- 5 F represent a series of consecutive images that a program designer wants a user to see depending on the point at which the user engages the program.
  • FIG. 5A shows a display seen by a user when computer system execution commences before suitable index points associated with an event X is reached.
  • the index points invokes a collection of attribute changes shown.
  • a host 500 appears on-screen. It will be appreciated that the images of the host 500 suitably may represent the only actual camera footage incorporated by the program, whereas other attributes suitably can be computer-generated under control of the index file list 600 (FIG. 6A) and the state table 620 (FIG. 6B).
  • FIG. 6A the index file list 600
  • FIG. 6B shows a display seen by a user when computer system execution commences before suitable index points associated with an event X is reached.
  • the index points invokes a collection of attribute changes shown.
  • FIG. 5A a host 500 appears on-screen. It will be appreciated that the images of the host 500 suitably may represent the only actual camera footage incorporated by the program, whereas other attributes suitably can be computer-generated under control of the index file list 600 (FIG. 6A) and the state table
  • FIG. 5A are a first question 502 , three possible answers 504 , 506 , and 508 , and a status indicator 510 that, in this case, informs a user that this is the first question.
  • FIG. 5B shows a display seen by a user when computer system execution commences after the event X has passed. In FIG. 5B, only the image of the host 500 and the status indicator 510 remain.
  • attributes 502 , 504 , 506 , and 508 suitably are associated with event X by a momentary index point, as will be further explained in connection with FIG. 6B.
  • the status indicator 510 is shown regardless of the fact that computer system execution began after event X.
  • the status indicator 510 suitably is associated with event X by a progressive trigger.
  • the program designer may choose not to display the question 502 and answers 504 , 506 , and 508 on the screen unless the user commenced computer system execution in time to engage the program before the question was shown. However, the program designer may want to inform the user of the progress of the game, and thus uses a progressive index point for the status indicator 510 to inform the user of the question number even if the user has missed the question.
  • FIG. 5C shows a display seen by a user who has engaged the program before suitable index points associated with an event Y is reached.
  • the attributes displayed in FIG. 5C are a second question 522 , two possible answers 524 and 526 , along with the status indicator 510 that, in this case, informs a user that this is now the second question.
  • a banner 530 is added to inform a user that the “BONUS ROUND IS NEXT!”
  • FIG. 5D shows a display seen by a user when computer system execution commenced after the event Y has passed but before a segmented index point stop point is reached, as will be further described.
  • FIG. 5E shows a display seen by a user when computer system execution commenced after the index point invoking the attribute changes in FIG. 5C and the stop point for the segmented index point stop point is reached. In FIG. 5E, the only attribute remaining is the status indicator 510 .
  • attributes 522 , 524 , and 526 suitably are associated with event Y by a momentary index point as will be further explained in connection with FIG. 6B. Also, there are only two available answers to this question, control of which also will be further explained in connection with FIG. 6B.
  • the status indicator 510 is shown regardless of the fact that computer system execution began after event Y, although at event Y an index point caused a value of the status indicator 510 to change from “1” to “2.” Therefore, the status indicator 510 suitably is associated with event Y by a progressive trigger which changes the value displayed.
  • the program designer may choose not to display the question 522 and answers 524 and 526 on the screen unless the user commenced computer system execution to engage the program before the question was shown.
  • the program designer suitably wants to keep the user informed of the progress of the game, and thus uses a progressive index point for the status indicator 510 to inform the user of the question number.
  • the banner 530 continues to be displayed for a time after the event Y triggering the display of attributes 522 , 524 , and 526 has passed.
  • the program designer may wish to inform a loyal viewer that the “BONUS ROUND IS NEXT!” so that, even if the user has missed the chance to answer question 2 , he or she may wish to remain for the promised bonus round. Nonetheless, the program designer wishes to unclutter the screen at a time before the next question is displayed, thus, the program designer suitably chooses a segmented index point to associate the banner 530 with the event Y.
  • FIG. 5F shows a display seen by a user who has engaged the program before suitable index points associated with an event Z is reached. Presentation of these attributes can be controlled by the program designer as in the foregoing examples, or the program designer may exercise prerogatives involving different index point choices.
  • FIGS. 6A and 6B show an index table 600 and an attribute change table 620 which can be used to direct presentation of the program to the user.
  • the attribute change and control information can be sent to the receiver without having to create application specific code or consume the bandwidth or memory to transmit and store application specific code, respectively.
  • a typical set-top box (STB) which suitably is used to execute a program has little memory to spare on storing application specific code.
  • Attribute changes keyed to common events can be associated with each other into state changes, and the series of state changes collected into a state table.
  • Methods, computer readable media, and systems for creation and use of state table are described in the application entitled “METHOD AND SYSTEM FOR AUTOMATIC CONTROL OF GRAPHICAL COMPUTER APPLICATION APPEARANCE AND EXECUTION,” bearing attorney docket number ENSE-1-1003, incorporated by reference.
  • attribute changes keyed to common events will be collected into states as marked in FIGS. 6A and 6B.
  • FIG. 6A shows an exemplary index table 600 configured to direct attribute changes as dictated by the attribute change table 620 (FIG. 6B).
  • the index table 600 has three columns.
  • a first column is an event column 602 listing events X 604 , Y 606 , and Z 608 triggering attribute changes. It will be appreciated that, instead of using chronological time, the events also could be measured in frame numbers or another counting mechanism that marks the passage of the program with which the index points in the index table 600 are associated.
  • a second column is stop point column 610 used for storing stop points associated with segmented index points (FIG. 2C). One stop point at event Y′ 611 is stored. The operation of stop point 611 will be described in connection with the attribute change table 620 (FIG.
  • a third column is a state column 612 which lists State 0 614 , State 1 616 , and State 2 618 .
  • Each of these states 614 , 616 , and 618 represents a collection of attribute changes corresponding to a common event such as event X 604 , event Y 606 , and event Z 608 , respectively.
  • event X 604 is reached, an index point keys the transition to State 0 614 .
  • reaching event Y 606 keys the transition to State 1 616
  • reaching event Z 608 keys the transition to State 618 .
  • FIG. 6B shows the attribute change table 620 in which the attribute changes are collected into states associated with index points in the index table 600 (FIG. 6A).
  • the combination of the index table 600 and the attribute change table 620 determines when and if attributes are viewed by a user of the program as shown in FIGS. 5 A- 5 F.
  • attribute changes are listed which will determine the appearance of the attributes 632 - 660 presented to a user.
  • An index point column 624 lists index point types for each of the attribute changes listed in the attribute column 622 .
  • the index point types can be stored in the index point table 600 (FIG. 6A), they can be set or assumed by an application receiving the tables 600 and 620 , they can be specified in an attribute change table 620 as shown, or they can be set in other ways known to a person of ordinary skill in the art.
  • operands modify the attribute changes 632 - 660 listed in the attribute change column 632 .
  • the attribute changes 632 - 660 are keyed to one of the types of index points previously described in connection with FIGS. 2 A- 2 C.
  • the following discussion cross-references the contents of FIG. 6B with the index table 600 of FIG. 6A and the display screens shown in FIGS. 5 A- 5 F.
  • entries are referenced by a column 622 - 630 and an attribute change 632 - 660 , the latter making up the rows of the attribute change table 620 .
  • the first attribute changes listed are for the status indicator 510 (FIGS. 5 A- 5 F), “Store in Qnumber.Visible” 632 and “Store in Qnumber.Text” 634 .
  • the status indicator 510 remains visible regardless of whether the user engaged the program before an index point triggering a question was initiated (FIGS. 5 A, 5 C, and 5 E) or after an index point triggering a question was initiated (FIGS. 5B, 5D, and 5 F).
  • the programming element “Store in Qnumber.Visible” 632 that determines the attribute change for the status indicator suitably is a progressive index point (FIG. 3B) as signified by the operand “P” in the index point column type 624 .
  • a progressive index point initiates an attribute change that will persist until the attribute change is countermanded by a subsequent attribute change.
  • the argument “T” for “True” is entered in the State 0 column 626 , in the State 1 column 628 , and the State 2 column 630 .
  • the status indicator 510 (FIGS. 5 A- 5 F) is made visible at event X 604 (FIG. 6A) keying a progressive index point for the attribute change 632 which remains visible throughout the events in this example.
  • the status indicator 510 remains visible, but the data it conveys does change.
  • the operand for attribute change “Store in Qnumber.Text” 634 changes from “1” in the State 0 column 626 to “2” in the State 1 column 628 to “3” in the State 2 column 630 .
  • the operand for “Store in Qbox.Visible” 636 is set to “T” for “True” in the State 0 column 626 , the State 1 column 628 , and the State 2 column 630 , indicating that the question number remains visible at all times as shown in FIGS. 5 A- 5 F.
  • a progressive index point “P” is specified in the index point type column 624 for the attribute change “Store in Qnumber.Text” 634 because, as shown in FIGS. 5 A- 5 F, the number of a current question is desired to remain visible at all times, regardless of whether computer system execution commences before or after the index point is reached.
  • New questions 502 , 522 , and 542 are presented in FIGS. 5A, 5C, and SF, respectively, but are removed from display in FIGS. 5B, 5D, and SE where computer system execution commenced after the event associated with the index point passed as previously described.
  • Display of the question is controlled by the attribute change “Store in Qbox.Visible” 636 , and its presentation is controlled by a momentary index point “M” in the index point type column 624 .
  • event X 604 (FIG. 6A) the index point associated with State 0 614 is triggered.
  • a “T” in the State 0 column 626 results in the question being displayed if computer system execution commences before event X 604 (FIG. 6A) is reached initiating the attribute change.
  • the text of the questions changes from State 0 614 to State 1 616 to State 2 618 as shown in the attribute change table where the attribute change “Store in Qbox.Text” 638 takes invokes the text for “Q1,” “Q2,” and “Q3,” in the State 0 column 626 , the State 1 column 628 , and the State 2 column 630 , respectively.
  • the index point type P is used to designate a progressive index point (FIG. 2B) to indicate that the question text can be stored in the question box without change regardless of when computer system execution commences relative to events listed in the index table 600 (FIG. 6A). Whether the question text persists whether computer execution begins after the triggering event is reached is irrelevant.
  • the question's visibility is controlled by the attribute change “Store in Qbox.Visible” 636 which is governed by a momentary index point, thereby achieving the program designer's desired appearances regardless of the index point type assigned to the attribute change “Store in Qbox.Text” 638 .
  • a momentary index point type “M” is selected in the index point type column 624 for the attribute changes “Store in AnswerA.Visible” 640 , “Store in AnswerB.Visible” 646 , and “Store in AnswerC.Visible” 652 so that the questions will not be presented if a user commences program execution after the triggering event is reached.
  • a progressive index point type “P” is selected in the index point type column 624 for the attribute changes “Store in AnswerA.Text” 642 , “Store in AnswerB.Text” 648 , and “Store in AnswerC.Text” 644 because content index point type is irrelevant when the visibility of the question is controlled as previously described.
  • these attributes provide data which result in the appearance of displays as elected by the program designer in FIGS. 5 A- 5 F.
  • a function is named so that the user can interact with the game.
  • “Store in AnswerA.Func” 644 , “Store in AnswerB.Func” 650 , and “Store in AnswerC.Func” 656 are attribute changes representing function calls calling functions “Func_Rgt” for a right answer and “Func_Wrg” for a wrong answer.
  • Answer choice A is the right answer for the first question, thus the argument for “Store in AnswerA.Func” 644 is “Func_Rgt” for State column 0 626 , and the argument for “Store in AnswerB.Func” 650 and “Store in AnswerC.Func” 656 is “Func_Wrg.”
  • the arguments for “Store in AnswerA.Func” 644 , “Store in AnswerB.Func” 650 , and “Store in AnswerC.Func” 656 similarly are changed to make choice B the right answer for the second question in State column 1 628 and to make choice C the right answer for the third question in State column 2 630 .
  • FIG. 2C shows a segmented index point
  • FIG. 5D shows the banner 530 displayed, even though no question or answer choices are displayed.
  • FIG. 5E shows that at some point the program designer desires preventing the user from seeing the banner 530 if the user commences program execution some time after event Y 606 (FIG.
  • the segmented index point (FIG. 2C) is a suitable choice because the program designer can specify a stop point setting a time after the start point for the segmented index point (FIG. 2C) for which the attribute change still will be initiated.
  • the attribute change for the banner 530 is “Store in BonusNxt.Visible” 658 .
  • the index point type entry in the index point type column 624 is “S” for “segmented.”
  • “NO_CHANGE” is argument for a default nondisplayed condition.
  • the argument is changed to “T” for “True” so that the banner 530 (FIGS. 5C and 5D) will be displayed if the user commences computer system execution at or before the event Y 606 (FIG. 6A) initiating the state change or at or before the stop point Y′ 613 .
  • a last entry in the attribute change table 620 is the “Call function Scr( ) with arg” 660 .
  • This is a scorekeeping function, the results of which are not shown.
  • the attribute change still is responsive to an index point type specified in the index point type column 624 . It can be presumed that the scorekeeping function is only active for questions the user can see and answer, as indicated by the specification of “M” for a momentary index point in the index point type column for “Call function Scr( ) with arg” 660 . Accordingly, it will be appreciated that background program attributes not related to display of information are responsive to index points. It will also be appreciated that in such an attribute change table 620 there is flexibility for programming involving function calls capable of processing functions named as arguments or with known functions with specified arguments.
  • FIG. 7 depicts a routine 700 for selecting index points.
  • the routine begins at a block 702 .
  • objects affected by state changes during execution of the program are identified.
  • one or more points during computer system execution for which the object should change are identified and logged in an index file list.
  • the appropriate index point type is identified.
  • a start point is inserted to initiate the attribute change
  • a stop point is inserted marking a last time computer system execution can commence and still initiate the associated attribute change.
  • it is determined if the appropriate index point is a progressive index point. If so, at a decision block 722 , a starting point is inserted along with identification of a stopping point for the attribute change.
  • FIG. 8 depicts a routine 800 for executing a program according to an index list.
  • the routine begins at a block 802 .
  • a block 804 as computer system execution reaches each listed index point, associated state and/or attribute changes are initiated.
  • the type of index point triggering the attribute change is examined.
  • a decision block 808 it is determined if the index point is a momentary index point. If so, at a decision block 810 it is determined if the index point has passed before computer system execution commenced. If not, at a block 812 , the associated attribute change is initiated. However, if the index point passed before computer system execution commenced, the index point is skipped and the routine progresses to a decision block 824 to determine if that index point was the last index point.
  • the index point is determined not to be a momentary index point
  • a decision block 814 it is determined if the index point is a segmented index point. If it is, at a decision block 816 it is determined if the stop point for the segmented index point passed before computer system execution commenced. If not, at a block 818 the associated attribute change is initiated. However, if the stop point did pass before computer system execution commenced, the index point is skipped and the routine progresses to the decision block 824 to determine if that index point was the last index point.
  • the index point is determined not to be a segmented index point
  • a decision block 820 it is determined if the index point is a progressive index point. If so, at a block 822 the associated attribute changes are initiated. However, if at the decision block 820 it is determined that the index point is not a progressive index point, the index point is skipped and the routine progresses to the decision block 824 to determine if that index point was the last index point. It will be appreciated that if three different types of index points are used and the first two types have been ruled out, that the decision block 820 can be avoided.
  • the decision block 820 is used to indicate flexibility in that other forms of index points can be devised and used within the broad principles of the present invention.
  • the routine 800 loops to the block 804 to identify the next index point. If the index point just processed is determined to have been the last index point, the routine ends at a block 826 .
  • FIG. 9 shows a computer system 900 , which could be in the form of a media controller or a set-top box (STB) operable for using embodiments of the present invention.
  • the computer system 900 is operable for controlling a display 902 , such as a television, and an audio subsystem 904 , such as a stereo or a loudspeaker system.
  • the computer system 900 receives input from a network 906 , such as a broadband data network.
  • the computer system 900 also receives user input from a wired or wireless user keypad 908 , which may be in the nature of a STB remote.
  • the computer system 900 receives input from the network 906 via an input/output controller 910 , which directs signals to and from a video controller 912 , an audio controller 914 , and a central processing unit (CPU) 916 .
  • the input/output controller 910 suitably is a multiplexer for routing video data blocks received from the network 906 to a video controller 912 in the nature of a video decoder, audio data blocks to an audio controller 914 in the nature of an audio decoder, and for routing other data blocks to a CPU 916 for processing.
  • the CPU 916 communicates through a system controller 918 with input and storage devices such as read only memory (ROM) 920 , system memory 922 , system storage 924 , and input device controller 926 .
  • ROM read only memory
  • the computer system 900 shown in FIG. 9 thus can receive state tables or state table files, pass them through the input/output controller 910 to the CPU 916 where it will be processed through the system controller 918 , suitably in response to user input gathered through the user keypad 908 and the input device controller 926 .
  • the state table can then be executed as previously described in connection with the foregoing examples, method flowcharts, and block diagrams.

Abstract

A method, a computer readable medium, and a data system are provided for controlling computer system operation during execution of the computer system. At least one attribute change of a computer system to occur during the execution of the computer system is identified. The attribute change is associated with an event during computer system execution such that indication of the event triggers the attribute change. An index point is identified at which point the attribute change is to occur, and an index point type is specified for determining whether the attribute change is triggered depending on when the execution of the computer system commenced relative to occurrence of the index point.

Description

    FIELD OF THE INVENTION
  • This invention relates generally to computer software applications and, more specifically, to timing, control, and execution of software applications. [0001]
  • BACKGROUND OF THE INVENTION
  • Many computer applications are time sensitive. Some computer applications merely signify that time is passing by changing the appearance of a graphical display. For example, a program copying a file from a source folder to a destination folder may show symbols that look like pages of text passing from the first folder to the second folder. Similarly, Internet browsers change the appearance of a status bar, or rotate or otherwise change the appearance of a symbol on the screen to show the computer's acknowledgment that time is passing even if the browser is slow to respond with the desired page. Slightly more complicated examples include games in which players have a limited period of time to complete some activity or in which the players' scores are based on how long it takes them to perform some task. [0002]
  • As price-performance of computer hardware continues to improve, computers have proliferated to televisions and set-top boxes (STBs) which receive digital cable television or satellite signals and decode those signals from a digital data stream and convert the data into audio-visual programs. The STBs, therefore, make interactive television possible. With an appropriately configured STB, a user potentially can play along with a game show, take courses by distance learning, bid in on-line auctions, and otherwise engage the television medium actively. The STB thus allows the user to engage in a highly time-dependent computer program where results depend on the user reacting in a limited time period. [0003]
  • In these examples and other forms of interactive multimedia, the timing of user interaction is correlated with a broadcast or replay of a program. Again taking the example of a quiz show, the user may have to respond to a question within a limited time period. It is important that the user be able to see the question, wager points, choose an answer, and know when the time to answer expires. Even in the cases of non-interactive programs, it may be desirable to display information about the events transpiring on-screen. It may be important to be able to display this information at relevant points in the program, such as when a character appears, when a scene changes, when an advertisement is being shown or is about to be shown, and at other times. [0004]
  • To create programming carrying this time-dependent additional content, a developer first identifies time points at which informational and interactive content will be shown. Then, the developer faces the challenge of translating a list of identified time points into programmatic elements that initiate the additional content to be seen by the user. Taking the example of an interactive game show with which users can play along as depicted in FIG. 1A, the developer faces a number of specific tasks. In creating the application, an object may be to create a [0005] display 100 showing a number of graphical items. The developer may be working from an audiovisual recording, the image content of which includes only a host 102. Upon this background, the developer is tasked with creating the rest of the visual content shown in FIG. 1A. For example, the developer may be tasked with displaying a current question 104 and a range of multiple choice answers 106, 108, and 110 from which a user can choose, perhaps from a keyboard, a remote control, or a similar input device. The developer also want do visually communicate to the user that some questions are worth double points with a banner message 112. In addition, the developer may also provide a status window 114 that tells users what round or question is in progress so that users can track where they are in the course of the game.
  • Creating such content generally is a familiar task to a video editor. The video editor may begin with multiple recordings of live action from multiple camera angles, recorded or filmed without interruption. From these recordings, the video editor may select specific segments to make up the program, edit out unnecessary recorded footage, choose camera angles, and add titles, graphics, and other content like that shown in FIG. 1A. Historically, this has been done with video editing equipment and text generating equipment. Text generating equipment creates rasterized text as though it were visually recorded by a camera, then superimposes the text over the originally recorded video and rerecords the composite video. This process is familiar to television creators and viewers, but does not include means for creating user interaction. [0006]
  • Improved technology has provided video designers with improved video production tools. Video production designers already are familiar with non-linear editing tools that allow designers to examine video footage, underlying scripts, audio tracks, and other content associated with the video. Using these non-linear editing tools, designers can select specific time points in a video at which titles, annotations, overdubbing, or other content might be added. If production designers could associate the additional content with time points in the data representing the original program, playback devices such as STBs could decode and append this additional content to present it to users. [0007]
  • Conventionally, two basic methods are used for triggering the presentation of additional content within a program. In a first method, synchronization points can be stored within the application data content to asynchronously initiate the additional content. For example, Society for Motion Picture and Television Engineers (SMPTE) time codes or frame numbers, counted from a selected reference point, can be used to trigger additional content as shown in FIG. 11B. An application or [0008] program 120 is embedded with a number of trigger points 122. An application (not shown) executing the program 120 then monitors the video time codes 124 or frame numbers 126 and, using conventional conditional logic, determines when a trigger point 122 has been reached. The application (not shown) can then execute specific program logic to generate the change in appearance or behavior associated with the trigger points 122. This method is self-contained in that the encoded synchronization points can initiate display of the additional content. However, this method does suffer a disadvantage in that is consumes a significant amount of programming logic and a corresponding amount of program memory within the STB to operate. It also will be appreciated that, if there is a miscommunication in transmission of the reference point, none of the synchronization points will execute at the appropriate time.
  • Referring now to FIG. 1C, in a second method, a [0009] control operator 150 at a broadcast site from which a program 152 is being transmitted can transmit control signals 154 to initiate the additional content. The control operator 150 might engage a semiautomatic computer application (not shown) to monitor the program 152 and view previously conceived timelines. Using such a system, the control operator 150 in real time could actuate a control device to insert trigger signals 154 into the broadcast stream at the appropriate times. The application executing the program 152 receives these trigger signals 154, interprets the instructions encoded therewith, and then effects the desired change in behavior or appearance of the program related to the additional content. The code needed to initiate the additional content may have been previously stored in the program memory, or may be transmitted along with the trigger signals 154. This second approach has the potential advantage of using less computer memory storage than does the first method, but requires human intervention during the broadcast and real-time bandwidth capable of supporting this remote control of the content.
  • Referring back to FIG. 1A, in the context of the game show example, either method would allow for [0010] questions 104, answers 106, 108, and 110, and other information 112 and 114, to be selectively displayed. The first method entails time-monitoring of the program and the previously-described application and hardware burdens. The second method involves an operator, supporting software at transmission and reception sites, and additional bandwidth. Both involve the potential expense of a software engineer to create the complex combinations of programming statements required to facilitate accurate triggering of the additional content.
  • Thus, there is an unmet need in the art for generating synchronization or trigger points during the execution of an interactive application and for invoking additional content associated with these trigger points as a result. [0011]
  • SUMMARY OF THE INVENTION
  • Embodiments of the present invention enable providing program content or changing program behavior during execution of a computer system. Changes in appearance or behavior and attributes of a computer system to take place during computer system execution are identified. The attribute changes are associated with events, and these events are identified as index points. The index points implicate characteristics with which the attribute changes are implemented, such as whether the attribute change associated with the index point will be triggerable if computer system execution commenced after the event associated with the index point has passed. The index points allow a program developer flexible control over whether users will be experience attribute changes depending upon when the users engage the program by commencing execution of the computer system. Different types of index points can be assigned to different attribute changes so that different attribute changes can have different properties. Moreover, the index points can be revised and stored separately from the attribute changes, allowing for flexibility and efficiency in revising programs and in transmitting the revisions. [0012]
  • More specifically, embodiments of the present invention provide a method, a computer readable medium, and a data system for controlling computer system operation during execution of the computer system. Using embodiments of the present invention, at least one attribute change of a computer system to occur during execution of the computer system is identified. The attribute change is associated with an event during computer system execution such that indication of the event triggers the attribute change. An index point is identified at which point the attribute change is to occur, and an index point type is specified for determining whether the attribute change is triggerable depending on when the execution of the computer system commenced relative to occurrence of the index point. [0013]
  • In accordance with further aspects of the invention, the attribute change is triggered upon reaching the event, and the attribute change is made in accordance with characteristics of the attribute change determined by the index point specified. Also, the index points are collected into an index list file, and the index points collected thereby are associated with the state changes that the index points initiate. Further, a plurality of index point types can be specified to allow for program developer control of the content associated with the index points. An index point type suitably may be a first index point type for which the associated attribute change will be initiated only if computer system execution commenced before the event associated with the index point is reached. Also, an index point type suitably may be a second index point type for which the attribute state change is initiated upon reaching the index point, and will continue until the attribute change is countermanded. In addition, an index point type suitably may be a third index point type having a start point and a stop point for which the associated attribute change is initiated upon reaching the index point if computer system execution commenced before the event associated with the stop point is reached.[0014]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The preferred and alternative embodiments of the present invention are described in detail below with reference to the following drawings. [0015]
  • FIG. 1A is a screen display from a hypothetical prior art interactive software application; [0016]
  • FIG. 1B is a timeline of event triggers for the hypothetical prior art interactive software application of FIG. 1A; [0017]
  • FIG. 1C is another timeline of event triggers for the hypothetical prior art interactive software application of FIG. 1A; [0018]
  • FIG. 2A is a timeline showing operational characteristics of a first index point type; [0019]
  • FIG. 2B is a timeline showing operational characteristics of a second index point type; [0020]
  • FIG. 2C is a timeline showing operational characteristics of a third index point type having associated stop points; [0021]
  • FIG. 3A is an index table collecting events associated with the index points; [0022]
  • FIG. 3B is an index table collecting events associated with the third type of index points listing the times of start points and stop points associated with the index point; [0023]
  • FIG. 3C is an index table collecting the index point types; a start point and a stop point for each index point providing for possible use of the third index point type, and a state change initiated by the index point; [0024]
  • FIG. 4 is a graphical depiction of a data stream showing a table of attribute changes and an associated index table being loaded to control behavior of an interactive application [0025]
  • FIGS. [0026] 5A-5F are screens from an interactive computer application controlled using an embodiment of the present invention;
  • FIG. 6A is an index table triggering state changes of the interactive computer application shown in FIGS. [0027] 4A-4F;
  • FIG. 6B is a state table driven by the index table of FIG. 6A and controlling the run-time operation of the interactive computer application displayed to the user in FIGS. [0028] 5A-5F;
  • FIG. 7 is a flowchart of a routine for creating an index points for controlling attribute changes according to an embodiment of the present invention; [0029]
  • FIG. 8 is a flowchart of a routine for executing a computer application responsive to an index table for controlling attribute changes according to an embodiment of the present invention; and [0030]
  • FIG. 8 is a block diagram of a data processing/media control system of an embodiment of the present invention.[0031]
  • DETAILED DESCRIPTION OF THE INVENTION
  • By way of overview, embodiments of the present invention provide a method, a computer readable medium, and a data system for controlling computer system operation during execution of the computer system. Using embodiments of the present invention, at least one attribute change of a computer system to occur during execution of the computer system is identified. The attribute change is associated with an event during computer system execution such that indication of the event triggers the attribute change. An index point is identified at which point the attribute change is to occur, and an index point type is specified for determining whether the attribute change is triggered depending on when the execution of the computer system commenced relative to occurrence of the index point. [0032]
  • FIGS. [0033] 2A- 3 C show timelines 200, 201, and 203, respectively, depicting at least three types of index points that can be used in accordance with embodiments of the present invention. FIG. 2A shows a plurality of a first index point type 211 which for purposes of this detailed description are termed momentary index points. A momentary index point 211 is momentary in a sense that an attribute change associated with the index point is triggered only if computer system execution commenced before the event associated with the momentary index point 211 was reached. Taking the example of an interactive game show, program designers may wish to display a time-limited question if the user engaged the program before the question was first presented. This may be to prevent a user from being confused or distracted by an object effectively flickering across the screen because the user engaged the program after the question was asked but without the user having time to respond.
  • More specifically, FIG. 2A shows four momentary index points at [0034] M0 212, M1 214, M2 216, and M3 218. In this example M0 212 and M3 216 trigger the display of information, while M1 214 and M3 218 turn off the display of the information. Relative to the index point M0 212, the user initiates computer system execution at t* 220, which is at a point after M0 212. A cross-hatched region 222 represents a duration from M0 212 to M1 214 during which the information is programmed to be displayed. However, because the user initiated computer system execution at t* 220, that is after M0 212 which initiated display of the information, the information will not be displayed. On the other hand, if the user continues with computer system execution after t* 220 or, for the sake of further example, initiates computer system execution at t** 224, then the information initiated by M2 216 (as indicated by the solid region 226) will be displayed. By continuing with computer system execution after t* 220 or commencing computer system execution at t** 224, computer system execution will have commenced before M2 216. The momentary index point 216 provides for the information to be displayed as long as computer system execution commences before the event associated with a momentary index point is reached.
  • It will be appreciated that index points [0035] M1 214 and M3 218 are used to turn off the display of information by triggering a countermanding attribute removing the information from the display. If computer system execution commenced at t** 224 and there were no index point such as M3 218 to turn off the display of the information, the information would remain displayed. In the case of computer system execution commencing at t* 220, the index point M1 214 does not turn off the information because the information was never turned on, but the index point M1 214 suitably is included for users engaging computer system execution prior to M0 212. It will be appreciated that index points M1 214 and M3 218 could be other types of index points, such as a progressive index point which will be described in connection with FIG. 2B. It will be further appreciated that a duration could be associated with the index points M0 212 and M1 214, thereby making a second index point to deactivate the attribute superfluous.
  • FIG. 2B shows two [0036] index points 230 and 232 of a second index point type which for purposes of this detailed description is termed a progressive index point 231. Like the momentary index point (FIG. 2A), the progressive index point 231 initiates an associated attribute change with an event associated with the progressive index point 231. On the other hand, unlike the momentary index point (FIG. 2A), the progressive index point 231 causes the associated attribute change to be initiated regardless of when computer system execution commences relative to the occurrence of the event associated with the progressive index point 231. Attribute changes associated with a progressive index point 231 suitably are deactivated by subsequent attribute changes.
  • The progressive [0037] index point P0 230, for purposes of this example, initiates an attribute change such as a display of information, whereas progressive index point P1 232 countermands the attribute change and removes the information from display. As shown on a timeline 201, the user may initiate computer execution at point t′ 234, t″ 236, or t′″ 238, and in any of those cases the attribute change will be made until countermanded by the second progressive index point P1 232, as indicated by a solid region 240. It will be appreciated that a progressive index point 231 operates in the nature of conventional video editing today where superimposed content appears regardless of when a user engages the program.
  • FIG. 2C shows two [0038] index points 250 and 256 of a third index point type which for purposes of this detailed description is termed a segmented index point 251. A segmented index point 251 has a start point and a stop point. Like a momentary index point (FIG. 2A), the segmented index point 251 will only initiate an associated attribute change if computer system execution is commenced by an indicated time. Unlike the momentary index point (FIG. 2A), however, the segmented index point 251 enables initiation of the attribute change as long as computer system execution commences between the start point and the stop point, and until countermanded by a subsequent attribute change.
  • More specifically, FIG. 2C shows a [0039] segmented index point 250 as having a start point S start 0 252 and a stop point S stop 0 253. An attribute change associated with the segmented index point 250, if initiated, persists until countermanded by a subsequent attribute change. In the example of FIG. 2C, the attribute change initiated by segmented index point 250 is shown to be countermanded by an attribute change triggered by a progressive index point P0 259. It will be appreciated that another type of index point suitably serves to countermand a previous attribute change, or a durational parameter could be associated with the segmented index point to deactivate an associated attribute change. As shown in FIG. 2C, a user commences computer system execution at t+ 262, which is after the stop point S stop 0 253. Because computer system execution commenced after the stop point S stop 0 253, the attribute change will not be initiated. The non-triggered attribute change is indicated by the cross-hatched region 266 which would have represented a duration of the attribute change.
  • By contrast, [0040] segmented index point 256 has a start point S start 2 257 and a stop point S stop 2 258 for an attribute change which subsequently is countermanded by index point P1 260. As shown, the user engages computer system execution at t++ 264, which precedes stop point S stop 2 258. As a result, the attribute change is made, as shown by a solid region 268. It will be appreciated that a cross-hatched region 269 shows a portion of a duration of the attribute change for which the attribute change was not initiated. For sake of comparison, it will be appreciated that a segmented index point 251 operates comparably to a momentary index point (FIG. 2A) which has a “grace period.” Thus, the segmented index point 251 allows an attribute change to be initiated even if computer system execution commences after a start point 252 or 257 as long as computer system execution is commenced before an end of either “grace period” ending with a stop point 253 or 258.
  • For a program having a number of attribute changes initiated by a number of events, the index points suitably are collected in index tables. FIGS. 3A, 3B, and [0041] 3C show three different types of index tables which might be used in accordance with embodiments of the present invention. FIG. 3A shows an index table 300 with a single column 302. The single column lists a series of events 304 that trigger a sequence of index points. A single column table, for example, suitably controls a series of attribute changes keyed by index points of a single type such as momentary index points (FIG. 2A). If each event in a program is keyed to a momentary index point, an index table that lists events which trigger those index points suitably provides enough information to initiate attribute changes upon reaching the listed events. Associated attribute changes will be initiated if computer system execution commenced before the event associated with the index point was reached. The index table 300 also is suitable for initiating a series of progressive index points (FIG. 2B) which will initiate attribute changes associated therewith which will persist until countermanded. Further, the index table 300 is suitable for initiating a series of segmented index points (FIG. 2C) where the events are listed in pairs for start points and stop points. For example, time 0 306 suitably may be a start point for initiating an attribute change and time 1 308 suitably may be a stop point marking an end of a period during which the attribute change may be initiated. Thus, depending on a configuration of a system using the index points, an index table 300 with a single column 302 suitably triggers associated attribute changes.
  • Alternatively, FIG. 3B shows a more complex index table [0042] 320 having two columns 322 and 324. For example, the index table 320 is suitable for a system using one or more segmented index points (FIG. 2C) in addition to other types of index points such as momentary index points (FIG. 2A) and progressive index points (FIG. 2B). For sake of example, it is assumed that an attribute change associated with a first event uses a segmented index point with a start point time 0 326 and a stop point time 0 328. The first column 322 can store start points and the second column 324 can store stop points. On the other hand, if a second attribute change is initiated by a momentary index point, only a start point is needed. Thus, specifying time 2 330 as a stop point for an attribute change is sufficient to trigger the attribute change if computer system execution commenced prior to time 2 330 and, suitably, no event is logged in the second column 324 because stop points are not used by momentary index points.
  • It will be appreciated that a single-column table like the index table [0043] 300 (FIG. 3A) could also be used for initiating attribute changes triggered by segmented index points. If accommodation is made in the single-column table to accept a second operand in the single column which can specify a stop point for a segmented index point, the index table could control operation of segmented index points as well.
  • FIG. 3C shows a still more detailed index table [0044] 350. As described in the foregoing examples of FIGS. 3A and 3B, it is assumed that a program using the index table stores in the index table index point types to determine whether attribute change initiation is dependent on computer system execution commencing before the events are reached. It also is assumed that a program using the index points in FIGS. 3A and 3B is programmed to sequentially apply index points to attribute changes, and the index points in the index table are not associated to particular attribute changes in the index table. However, these types of information suitably are included in an index table. The index table 350 has four columns including an index point type column 352, an event column for start points 354, an event column for stop points for segmented index points 356, and an attribute change column 358. Accordingly, it is manifest in the index table 350 that, for example, at time 0 360, a momentary index point (M) 362 triggers attribute change A 364 if computer system execution commenced before time 0 360 and until attribute change A 364 is countermanded. Similarly, at time 1 370, a progressive index point P 372 triggers attribute change B 374 until attribute change B is countermanded. Also, at time 2 380, a segmented index change S 382 triggers an attribute change C 386 provided computer system execution commences before stop point time 3 388 and until attribute change C 386 is countermanded. In sum, a multiplicity of index point information can be manifested in an index table for controlling a series of attribute changes within the broad concepts of the present invention.
  • FIG. 4 shows a [0045] data stream 400 including a series of attribute changes stored in an attribute change table 410 and index points stored in an index table 420 in accordance with an embodiment of the present invention. A suitably enabled receiver can use these tables 410 and 420 to direct execution of a program, with or without receiving additional application-specific code, according to the data in the tables 410 and 420. Such a suitably enabled receiver of the tables 410 and 420 using a method, program, or system to direct an application is described in the concurrently-filed, co-pending patent application entitled “METHOD AND SYSTEM FOR PROVIDING FLEXIBLE TIME-BASED CONTROL OF APPLICATION APPEARANCE AND BEHAVIOR,” bearing attorney docket number ENSE-1-1009, the contents of which are hereby incorporated by reference. The attribute change table 410 and the index table 420 can be separately modified and/or communicated as desired to the computer system executing the program to provide for flexibility in creating and modifying programs, as well as for saving bandwidth when only one or the other is to be communicated.
  • For clarity, an extended non-limiting example of operation of such a index table-driven system is provided in FIGS. [0046] 5A-5F. FIGS. 5A-5F show displays from a hypothetical interactive television program, such as a game show. During presentation of the game show, attributes presented to a user are changed according to an index file list 600 (FIG. 6A) and a state table 620 (FIG. 6B) as a function of when the user engages the program, as will be further explained. The representative displays shown in FIGS. 5A-5F represent a series of consecutive images that a program designer wants a user to see depending on the point at which the user engages the program.
  • FIG. 5A shows a display seen by a user when computer system execution commences before suitable index points associated with an event X is reached. The index points invokes a collection of attribute changes shown. More specifically, in FIG. 5A, a [0047] host 500 appears on-screen. It will be appreciated that the images of the host 500 suitably may represent the only actual camera footage incorporated by the program, whereas other attributes suitably can be computer-generated under control of the index file list 600 (FIG. 6A) and the state table 620 (FIG. 6B). Among the attributes displayed in FIG. 5A are a first question 502, three possible answers 504, 506, and 508, and a status indicator 510 that, in this case, informs a user that this is the first question. FIG. 5B shows a display seen by a user when computer system execution commences after the event X has passed. In FIG. 5B, only the image of the host 500 and the status indicator 510 remain.
  • To achieve the result shown in FIGS. 5A and 5B, attributes [0048] 502, 504, 506, and 508 suitably are associated with event X by a momentary index point, as will be further explained in connection with FIG. 6B. The status indicator 510 is shown regardless of the fact that computer system execution began after event X. Thus, the status indicator 510 suitably is associated with event X by a progressive trigger. The program designer may choose not to display the question 502 and answers 504, 506, and 508 on the screen unless the user commenced computer system execution in time to engage the program before the question was shown. However, the program designer may want to inform the user of the progress of the game, and thus uses a progressive index point for the status indicator 510 to inform the user of the question number even if the user has missed the question.
  • FIG. 5C shows a display seen by a user who has engaged the program before suitable index points associated with an event Y is reached. Among the attributes displayed in FIG. 5C are a [0049] second question 522, two possible answers 524 and 526, along with the status indicator 510 that, in this case, informs a user that this is now the second question. Also, a banner 530 is added to inform a user that the “BONUS ROUND IS NEXT!” FIG. 5D shows a display seen by a user when computer system execution commenced after the event Y has passed but before a segmented index point stop point is reached, as will be further described. In FIG. 5D, the attributes added in FIG. 5C are gone except for the status indicator 510 and the banner 530. FIG. 5E shows a display seen by a user when computer system execution commenced after the index point invoking the attribute changes in FIG. 5C and the stop point for the segmented index point stop point is reached. In FIG. 5E, the only attribute remaining is the status indicator 510.
  • To achieve the result shown in FIGS. 5C, 5D, and [0050] 5E, attributes 522, 524, and 526 suitably are associated with event Y by a momentary index point as will be further explained in connection with FIG. 6B. Also, there are only two available answers to this question, control of which also will be further explained in connection with FIG. 6B. The status indicator 510 is shown regardless of the fact that computer system execution began after event Y, although at event Y an index point caused a value of the status indicator 510 to change from “1” to “2.” Therefore, the status indicator 510 suitably is associated with event Y by a progressive trigger which changes the value displayed. Again, the program designer may choose not to display the question 522 and answers 524 and 526 on the screen unless the user commenced computer system execution to engage the program before the question was shown. Again, the program designer suitably wants to keep the user informed of the progress of the game, and thus uses a progressive index point for the status indicator 510 to inform the user of the question number. Finally, the banner 530 continues to be displayed for a time after the event Y triggering the display of attributes 522, 524, and 526 has passed. The program designer may wish to inform a loyal viewer that the “BONUS ROUND IS NEXT!” so that, even if the user has missed the chance to answer question 2, he or she may wish to remain for the promised bonus round. Nonetheless, the program designer wishes to unclutter the screen at a time before the next question is displayed, thus, the program designer suitably chooses a segmented index point to associate the banner 530 with the event Y.
  • Finally, FIG. 5F shows a display seen by a user who has engaged the program before suitable index points associated with an event Z is reached. Presentation of these attributes can be controlled by the program designer as in the foregoing examples, or the program designer may exercise prerogatives involving different index point choices. [0051]
  • FIGS. 6A and 6B show an index table [0052] 600 and an attribute change table 620 which can be used to direct presentation of the program to the user. As previously mentioned, with a receiver at a user location using a suitable method, computer readable medium, or system, only the index table 600 and attribute change table 620 are needed to provide and control the attribute changes described in connection with FIGS. 5A-5F. Advantageously, the attribute change and control information can be sent to the receiver without having to create application specific code or consume the bandwidth or memory to transmit and store application specific code, respectively. For example, a typical set-top box (STB) which suitably is used to execute a program has little memory to spare on storing application specific code. Moreover, the bandwidth of digital transmission media is fairly crowded with video and audio data, and there is little bandwidth left for transmitting large bodies of application specific code. Methods, computer readable media, and systems for creating and executing a program using embodiments of the present invention are described in concurrently-filed patent applications entitled “METHOD AND SYSTEM FOR AUTOMATIC CONTROL OF GRAPHICAL COMPUTER APPLICATION APPEARANCE AND EXECUTION,” bearing attorney docket number ENSE-1-1003, “METHOD AND SYSTEM FOR PROVIDING FLEXIBLE TIME-BASED CONTROL OF APPLICATION APPEARANCE AND BEHAVIOR,” bearing attorney docket number ENSE-1-1009, and “METHOD AND SYSTEM FOR GENERATING FLEXIBLE TIME-BASED CONTROL OF APPLICATION APPEARANCE AND BEHAVIOR,” bearing attorney docket number ENSE-1-1010, all of which are incorporated by reference.
  • Attribute changes keyed to common events, such as the display of questions and answers and other processes to be herein described, can be associated with each other into state changes, and the series of state changes collected into a state table. Methods, computer readable media, and systems for creation and use of state table are described in the application entitled “METHOD AND SYSTEM FOR AUTOMATIC CONTROL OF GRAPHICAL COMPUTER APPLICATION APPEARANCE AND EXECUTION,” bearing attorney docket number ENSE-1-1003, incorporated by reference. For the sake of brevity in the following example, attribute changes keyed to common events will be collected into states as marked in FIGS. 6A and 6B. [0053]
  • FIG. 6A shows an exemplary index table [0054] 600 configured to direct attribute changes as dictated by the attribute change table 620 (FIG. 6B). The index table 600 has three columns. A first column is an event column 602 listing events X 604, Y 606, and Z 608 triggering attribute changes. It will be appreciated that, instead of using chronological time, the events also could be measured in frame numbers or another counting mechanism that marks the passage of the program with which the index points in the index table 600 are associated. A second column is stop point column 610 used for storing stop points associated with segmented index points (FIG. 2C). One stop point at event Y′ 611 is stored. The operation of stop point 611 will be described in connection with the attribute change table 620 (FIG. 6B), below. A third column is a state column 612 which lists State 0 614, State 1 616, and State 2 618. Each of these states 614, 616, and 618 represents a collection of attribute changes corresponding to a common event such as event X 604, event Y 606, and event Z 608, respectively. In other words, when event X 604 is reached, an index point keys the transition to State 0 614. Similarly, reaching event Y 606 keys the transition to State 1 616, and reaching event Z 608 keys the transition to State 618. As will be appreciated, there is one index point and one state for each of the three questions presented in FIGS. 5A-5F.
  • FIG. 6B shows the attribute change table [0055] 620 in which the attribute changes are collected into states associated with index points in the index table 600 (FIG. 6A). The combination of the index table 600 and the attribute change table 620 determines when and if attributes are viewed by a user of the program as shown in FIGS. 5A-5F. In an attribute change column 622, attribute changes are listed which will determine the appearance of the attributes 632-660 presented to a user. An index point column 624 lists index point types for each of the attribute changes listed in the attribute column 622. As previously described, the index point types can be stored in the index point table 600 (FIG. 6A), they can be set or assumed by an application receiving the tables 600 and 620, they can be specified in an attribute change table 620 as shown, or they can be set in other ways known to a person of ordinary skill in the art.
  • In columns for [0056] State 0 626, State 1 628, and State 2 630, operands modify the attribute changes 632-660 listed in the attribute change column 632. For the sake of a nonlimiting example, the attribute changes 632-660 are keyed to one of the types of index points previously described in connection with FIGS. 2A-2C. The following discussion cross-references the contents of FIG. 6B with the index table 600 of FIG. 6A and the display screens shown in FIGS. 5A-5F. In the following discussion, for the sake of visual clarity, entries are referenced by a column 622-630 and an attribute change 632-660, the latter making up the rows of the attribute change table 620.
  • In the attribute change table [0057] 620, the first attribute changes listed are for the status indicator 510 (FIGS. 5A-5F), “Store in Qnumber.Visible” 632 and “Store in Qnumber.Text” 634. The status indicator 510 remains visible regardless of whether the user engaged the program before an index point triggering a question was initiated (FIGS. 5A, 5C, and 5E) or after an index point triggering a question was initiated (FIGS. 5B, 5D, and 5F). The programming element “Store in Qnumber.Visible” 632 that determines the attribute change for the status indicator suitably is a progressive index point (FIG. 3B) as signified by the operand “P” in the index point column type 624. As previously described, a progressive index point initiates an attribute change that will persist until the attribute change is countermanded by a subsequent attribute change. For the programming element “Store in Qnumber.Visible”-632, the argument “T” for “True” is entered in the State 0 column 626, in the State 1 column 628, and the State 2 column 630. Accordingly, the status indicator 510 (FIGS. 5A-5F) is made visible at event X 604 (FIG. 6A) keying a progressive index point for the attribute change 632 which remains visible throughout the events in this example.
  • The [0058] status indicator 510 remains visible, but the data it conveys does change. The operand for attribute change “Store in Qnumber.Text” 634 changes from “1” in the State 0 column 626 to “2” in the State 1 column 628 to “3” in the State 2 column 630. The operand for “Store in Qbox.Visible” 636 is set to “T” for “True” in the State 0 column 626, the State 1 column 628, and the State 2 column 630, indicating that the question number remains visible at all times as shown in FIGS. 5A-5F. Again, a progressive index point “P” is specified in the index point type column 624 for the attribute change “Store in Qnumber.Text” 634 because, as shown in FIGS. 5A-5F, the number of a current question is desired to remain visible at all times, regardless of whether computer system execution commences before or after the index point is reached.
  • [0059] New questions 502, 522, and 542 are presented in FIGS. 5A, 5C, and SF, respectively, but are removed from display in FIGS. 5B, 5D, and SE where computer system execution commenced after the event associated with the index point passed as previously described. Display of the question is controlled by the attribute change “Store in Qbox.Visible” 636, and its presentation is controlled by a momentary index point “M” in the index point type column 624. Upon reaching event X 604 (FIG. 6A) the index point associated with State 0 614 is triggered. A “T” in the State 0 column 626 results in the question being displayed if computer system execution commences before event X 604 (FIG. 6A) is reached initiating the attribute change.
  • The text of the questions changes from [0060] State 0 614 to State 1 616 to State 2 618 as shown in the attribute change table where the attribute change “Store in Qbox.Text” 638 takes invokes the text for “Q1,” “Q2,” and “Q3,” in the State 0 column 626, the State 1 column 628, and the State 2 column 630, respectively. The index point type P is used to designate a progressive index point (FIG. 2B) to indicate that the question text can be stored in the question box without change regardless of when computer system execution commences relative to events listed in the index table 600 (FIG. 6A). Whether the question text persists whether computer execution begins after the triggering event is reached is irrelevant. As previously described, the question's visibility is controlled by the attribute change “Store in Qbox.Visible” 636 which is governed by a momentary index point, thereby achieving the program designer's desired appearances regardless of the index point type assigned to the attribute change “Store in Qbox.Text” 638.
  • The presentation of the answers for the questions works in the same way as for the questions. Attribute changes “Store in AnswerA.Visible” [0061] 640, “Store in AnswerB.Visible” 646, and “Store in AnswerC.Visible” 652 control the visibility of each of the answer choices. Attribute changes “Store in AnswerA.Text” 642, “Store in AnswerB.Text” 648, and “Store in AnswerC.Text” 654 control the content of the answer blocks displayed. Like the attribute change pairs for the questions, a momentary index point type “M” is selected in the index point type column 624 for the attribute changes “Store in AnswerA.Visible” 640, “Store in AnswerB.Visible” 646, and “Store in AnswerC.Visible” 652 so that the questions will not be presented if a user commences program execution after the triggering event is reached. Also like the attribute change pairs for the questions, a progressive index point type “P” is selected in the index point type column 624 for the attribute changes “Store in AnswerA.Text” 642, “Store in AnswerB.Text” 648, and “Store in AnswerC.Text” 644 because content index point type is irrelevant when the visibility of the question is controlled as previously described. Again, these attributes provide data which result in the appearance of displays as elected by the program designer in FIGS. 5A-5F.
  • There are two differences to note about attribute changes relative to the answer choices. First, as shown in FIG. 5C, there are only two answer choices for the second question. As a result, in the [0062] State 1 column, the argument for “Store in AnswerC.Visible” 652 is changed to “F” for “False.” Thus, even if computer system execution commences before reaching the event initiating the attribute change 652, no answer choice will be shown for “C.” Further, because the answer choice will not be shown, for the attribute change “Store in AnswerC.Text” 654, the argument is “NO_CHANGE” because there is no point in changing the content if the answer choice will not be displayed. For the third question as pictured in FIG. 5F, there is a third answer choice 548. Therefore, for “Store in AnswerC.Visible” 652 the argument is changed back to “T” for “True” in the State 2 column 630, and the argument for “Store in AnswerC.Text” 654 is changed to “C3” to give an answer for the current question.
  • Second, for each of the answer choices a function is named so that the user can interact with the game. “Store in AnswerA.Func” [0063] 644, “Store in AnswerB.Func” 650, and “Store in AnswerC.Func” 656 are attribute changes representing function calls calling functions “Func_Rgt” for a right answer and “Func_Wrg” for a wrong answer. Answer choice A is the right answer for the first question, thus the argument for “Store in AnswerA.Func” 644 is “Func_Rgt” for State column 0 626, and the argument for “Store in AnswerB.Func” 650 and “Store in AnswerC.Func” 656 is “Func_Wrg.” The arguments for “Store in AnswerA.Func” 644, “Store in AnswerB.Func” 650, and “Store in AnswerC.Func” 656 similarly are changed to make choice B the right answer for the second question in State column 1 628 and to make choice C the right answer for the third question in State column 2 630. It may be assumed that a user has buttons A, B, and C on a keypad or STB remote allowing him or her to choose one of the three answers. It will be appreciated that the index point type for “Store in AnswerA.Func” 644, “Store in AnswerB.Func” 650, and “Store in AnswerC.Func” 656 in the index point type column 624 is “M” for momentary. Accordingly, just as the user cannot see the answer choices if computer system execution commences after the initiating event is reached, he or she also cannot choose an answer and thereby engage the associated functions.
  • There is one attribute change which is controlled by a segmented index point (FIG. 2C), the “BONUS ROUND NEXT!” banner [0064] 530 (FIGS. 5C and 5D). As previously described, the program designer desires to leave the banner 530 displayed even if a user missed the second question by commencing computer system execution after event Y 606 (FIG. 6A) was reached, thereby initiating the attribute changes in the State 1 column 628. FIG. 5D shows the banner 530 displayed, even though no question or answer choices are displayed. FIG. 5E shows that at some point the program designer desires preventing the user from seeing the banner 530 if the user commences program execution some time after event Y 606 (FIG. 6A) was reached but before the next event initiating a state change at event Z 608 (FIG. 5F) initiates display of the third question in the State 2 column 630. Accordingly, the segmented index point (FIG. 2C) is a suitable choice because the program designer can specify a stop point setting a time after the start point for the segmented index point (FIG. 2C) for which the attribute change still will be initiated.
  • The attribute change for the banner [0065] 530 (FIGS. 5C and 5D) is “Store in BonusNxt.Visible” 658. The index point type entry in the index point type column 624 is “S” for “segmented.” In the State 0 column 626, “NO_CHANGE” is argument for a default nondisplayed condition. In the State 1 column 628, the argument is changed to “T” for “True” so that the banner 530 (FIGS. 5C and 5D) will be displayed if the user commences computer system execution at or before the event Y 606 (FIG. 6A) initiating the state change or at or before the stop point Y′ 613. It will be appreciated that there is no state column for the stop point Y′ 613 in the attribute change table 630. As will be appreciated by programmers ordinarily skilled in the art, it may be more efficient for an event handler to process the stop point Y′ 613 when it is the only change being made, rather than initiate a mechanism to process all attribute changes for a state change collecting many attribute changes. Accordingly, an event handler will process stop points such as Y′ 613, preventing the associated attribute change Store in BonusNxt.Visible” 658 from being triggered if computer system execution commenced after Y′ 613.
  • A last entry in the attribute change table [0066] 620 is the “Call function Scr( ) with arg” 660. This is a scorekeeping function, the results of which are not shown. The attribute change still is responsive to an index point type specified in the index point type column 624. It can be presumed that the scorekeeping function is only active for questions the user can see and answer, as indicated by the specification of “M” for a momentary index point in the index point type column for “Call function Scr( ) with arg” 660. Accordingly, it will be appreciated that background program attributes not related to display of information are responsive to index points. It will also be appreciated that in such an attribute change table 620 there is flexibility for programming involving function calls capable of processing functions named as arguments or with known functions with specified arguments.
  • FIG. 7 depicts a routine [0067] 700 for selecting index points. The routine begins at a block 702. At a block 704, objects affected by state changes during execution of the program are identified. At a block 706, for each object affected by state changes, one or more points during computer system execution for which the object should change are identified and logged in an index file list. At a block 708, for an identified attribute change, the appropriate index point type is identified. At a decision block 710, it is determined if the appropriate index point is a momentary index point. If so, at a block 712 the momentary index point is inserted. If not, at a decision block 714, it is determined if the appropriate index point is a segmented index point. If so, at a block 716 a start point is inserted to initiate the attribute change, and at a block 718 a stop point is inserted marking a last time computer system execution can commence and still initiate the associated attribute change. If not, at a decision block 720, it is determined if the appropriate index point is a progressive index point. If so, at a decision block 722, a starting point is inserted along with identification of a stopping point for the attribute change. At a decision block 724 it is determined if all the index points have been assigned in order to effect the changes identified at the block 704. If not, the routine continues with identification of the appropriate index point at the block 708. On the other hand, if all the index points have been assigned, the routine 700 concludes at a block 726 once all suitable index points have been inserted.
  • FIG. 8 depicts a routine [0068] 800 for executing a program according to an index list. The routine begins at a block 802. At a block 804, as computer system execution reaches each listed index point, associated state and/or attribute changes are initiated. At a block 806, the type of index point triggering the attribute change is examined. At a decision block 808, it is determined if the index point is a momentary index point. If so, at a decision block 810 it is determined if the index point has passed before computer system execution commenced. If not, at a block 812, the associated attribute change is initiated. However, if the index point passed before computer system execution commenced, the index point is skipped and the routine progresses to a decision block 824 to determine if that index point was the last index point.
  • If at the [0069] decision block 808 the index point is determined not to be a momentary index point, at a decision block 814 it is determined if the index point is a segmented index point. If it is, at a decision block 816 it is determined if the stop point for the segmented index point passed before computer system execution commenced. If not, at a block 818 the associated attribute change is initiated. However, if the stop point did pass before computer system execution commenced, the index point is skipped and the routine progresses to the decision block 824 to determine if that index point was the last index point.
  • If at the [0070] decision block 814 the index point is determined not to be a segmented index point, at a decision block 820 it is determined if the index point is a progressive index point. If so, at a block 822 the associated attribute changes are initiated. However, if at the decision block 820 it is determined that the index point is not a progressive index point, the index point is skipped and the routine progresses to the decision block 824 to determine if that index point was the last index point. It will be appreciated that if three different types of index points are used and the first two types have been ruled out, that the decision block 820 can be avoided. The decision block 820 is used to indicate flexibility in that other forms of index points can be devised and used within the broad principles of the present invention.
  • If at the [0071] decision block 824 the index point just processed is determined not to have been the last index point, the routine 800 loops to the block 804 to identify the next index point. If the index point just processed is determined to have been the last index point, the routine ends at a block 826.
  • FIG. 9 shows a [0072] computer system 900, which could be in the form of a media controller or a set-top box (STB) operable for using embodiments of the present invention. The computer system 900 is operable for controlling a display 902, such as a television, and an audio subsystem 904, such as a stereo or a loudspeaker system. The computer system 900 receives input from a network 906, such as a broadband data network. The computer system 900 also receives user input from a wired or wireless user keypad 908, which may be in the nature of a STB remote.
  • The [0073] computer system 900 receives input from the network 906 via an input/output controller 910, which directs signals to and from a video controller 912, an audio controller 914, and a central processing unit (CPU) 916. In the case of a STB, the input/output controller 910 suitably is a multiplexer for routing video data blocks received from the network 906 to a video controller 912 in the nature of a video decoder, audio data blocks to an audio controller 914 in the nature of an audio decoder, and for routing other data blocks to a CPU 916 for processing. In turn, the CPU 916 communicates through a system controller 918 with input and storage devices such as read only memory (ROM) 920, system memory 922, system storage 924, and input device controller 926.
  • The [0074] computer system 900 shown in FIG. 9 thus can receive state tables or state table files, pass them through the input/output controller 910 to the CPU 916 where it will be processed through the system controller 918, suitably in response to user input gathered through the user keypad 908 and the input device controller 926. The state table can then be executed as previously described in connection with the foregoing examples, method flowcharts, and block diagrams.
  • While the preferred embodiment of the invention has been illustrated and described, as noted above, many changes can be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention is not limited by the disclosure of the preferred embodiment. Instead, the invention should be determined entirely by reference to the claims that follow. [0075]

Claims (66)

What is claimed is:
1. A method for controlling computer system operation during execution of the computer system, the method comprising:
identifying an attribute change of a computer system to occur during execution of the computer system;
associating the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
identifying an index point in the execution of the computer system indicative of when the event is to occur;
associating the index point in the computer system with the event; and
specifying an index point type for the index point, the index point type determining whether the attribute change is triggerable depending on when the execution of the computer system commenced relative to occurrence of the index point.
2. The method of claim 1, including triggering the event in the computer system upon reaching the index point in the computer system associated with the event, such that the attribute is changed in accordance with characteristics of the attribute change determined by the index point type specified.
3. The method of claim 1, wherein the index point type is a first index point type that specifies that the attribute change is triggerable only when the index point is reached after the execution of the computer system commenced.
4. The method of claim 1, wherein the index point is a second index point type that specifies that the attribute change is triggerable when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded with a subsequent attribute change.
5. The method of claim 1, wherein the index point type is a third index point type that specifies that the attribute change is triggerable when the index point has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change, and a stop activation point associated with the index point has not been reached until after the execution of the computer system commenced.
6. The method of claim 1, wherein an index table includes a list of the index points.
7. The method of claim 1, wherein an index table includes a list of the index points and a corresponding list of index point types.
8. The method of claim 5, wherein an index table includes a list of the index points and a corresponding list of stop activation points for the third index point type.
9. The method of claim 5, wherein an index table includes a list of the index points, a corresponding list of index point types and, a corresponding list of stop activation points for the third index point type.
10. The method of claim 6, wherein the index table is ordered by sequential occurrence of the index points.
11. A method for controlling computer system operation during execution of the computer system, the method comprising:
identifying an attribute change of a computer system to occur during execution of the computer system;
associating with the attribute change an index point signifying when the attribute change is to begin; and
specifying an index point type for the attribute change, at least one index point type being a first index point type configured to not initiate the attribute change if the index point has passed before execution of the computer system commenced.
12. The method of claim 11, including triggering the attribute change to begin at the current point of execution and after the current point of execution unless the index point type associated with the attribute change is the momentary index point and the index point passed before execution of the computer system commenced.
13. The method of claim 11, wherein the index point type is a second index point type that specifies that attribute change is triggerable when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded by a subsequent attribute change.
14. The method of claim 11, wherein the index point type is a third index point type that specifies the attribute change is triggerable when the index point has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change, and a stop activation point associated with the index point has not been reached until after the execution of the computer system commenced.
15. The method of claim 11, wherein an index table includes a list of the index points.
16. The method of claim 11, wherein an index table includes a list of the index points and a corresponding list of index point types.
17. The method of claim 14, wherein an index table includes a list of the index points and a corresponding list of stop activation points for the third index point type.
18. The method of claim 14, wherein an index table includes a list of the index points, a corresponding list of index point types and, a corresponding list of stop activation points for the third index point type.
19. The method of claim 15, wherein the index table is ordered by sequential occurrence of the index points.
20. A computer readable medium for storing instructions for controlling computer system operation during system execution, the computer readable medium comprising:
first computer program code means for identifying an attribute change of the computer system to occur during execution of the computer system;
second computer program code means for associating the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
third computer program code means for identifying an index point in the execution of the computer system indicative of when the event is to occur;
fourth computer program code means for associating the index point in the computer system with the event; and
fifth computer program code means for specifying an index point type for the index point, the index point type determining whether the attribute change is triggerable depending on when the execution of the computer system commenced relative to occurrence of the index point.
21. The computer readable medium of claim 20, including sixth computer program code means configured to trigger the attribute change in the computer system upon reaching the index point in the computer system associated with the event, such that the attribute is changed in accordance with characteristics of the attribute change determined by the index point type specified
22. The computer readable medium of claim 20, wherein the fifth computer program code means specifies that the index point type is a first index point type configured such that attribute change is triggerable only when the index point is reached after the execution of the computer system commenced.
23. The computer readable medium of claim 20, wherein the fifth computer program code means specifies that the index point type is a second index point type configured such that the attribute change is triggerable when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded by a subsequent attribute change.
24. The computer readable medium of claim 20, wherein the fifth computer program code means specifies that the index point type is a third index point type configured such that the attribute change is triggerable when the index point triggering the attribute change has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change, and a stop activation point associated with the index point has not been reached until after the execution of the computer system commenced.
25. The computer readable medium of claim 20, further comprising a seventh computer program code means for generating an index table including a list of the index points.
26. The computer readable medium of claim 20, further comprising an eighth computer program code means for generating an index table including a list of the index points and a corresponding list of index point types.
25. The computer readable medium of claim 24, further comprising a ninth computer program code means for generating an index table including a list of the index points and a corresponding list of stop activation points for the third index point type.
26. The computer readable medium of claim 24, further comprising a tenth computer program code means for generating an index table including a list of the index points, a corresponding list of index point types and, a corresponding list of stop activation points for the third index point type.
27. The computer readable medium of claim 25, wherein the seventh computer program code means generates the index table by sequential occurrence of the index points.
28. A computer readable medium for controlling computer system operation during execution of the computer system, the computer readable medium comprising:
first computer program code means for identifying an attribute change of a computer system to occur during execution of the computer system;
second computer program code means for associating with the attribute change an index point signifying when the attribute change is to begin; and
third computer program code means for specifying an index point type for the attribute change, at least one index point type being a first index point point configured to not initiate the attribute change if the index point has passed before execution of the computer system commenced.
29. The computer readable medium of claim 28, including fourth computer program code means for triggering the attribute change to begin at the current point of execution and after the current point of execution unless the index point type associated with the attribute change is the momentary index point and the index point passed before execution of the computer system commenced.
30. The computer readable medium of claim 28, wherein the third computer program code means specifies that the index point type is a second index point type configured such that the attribute change is triggerable when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded by a subsequent attribute change.
31. The computer readable medium of claim 28, wherein the third computer program code means specifies that the index point type is a third index point type configured such that the attribute change is triggerable when the index point triggering the attribute change has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change, and a stop activation point associated with the index point has not been reached until after the execution of the computer system commenced.
32. The computer readable medium of claim 28, further comprising a sixth computer program code means for generating an index table including a list of the index points.
33. The computer readable medium of claim 28, further comprising a seventh computer program code means for generating an index table including a list of the index points and a corresponding list of index point types.
34. The computer readable medium of claim 31, further comprising an eighth computer program code means for generating an index table including a list of the index points and a corresponding list of stop activation points for the third index point type.
35. The computer readable medium of claim 31, further comprising a ninth computer program code means for generating an index table including a list of the index points, a corresponding list of index point types and, a corresponding list of stop activation points for the third index point type.
36. The computer readable medium of claim 32, wherein the sixth computer program code means generates the index table by sequential occurrence of the index points.
37. A system for controlling computer system operation during computer system execution, the system comprising:
a user interface configured to identify an attribute change of a computer system to occur during execution of the computer system; and
a processor including:
a first component configured to associate the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
a second component configured to identify an index point in the execution of the computer system indicative of when the event is to occur;
a third component configured to associate the index point in the computer system with the event; and
a fourth component configured to specify an index point type for the index point, the index point type determining whether the attribute change is triggered depending on when the execution of the computer system commenced relative to occurrence of the index point.
38. The system of claim 37, wherein the processor includes a fifth component configured to trigger the attribute change in the computer system upon reaching the index point in the computer system associated with the event, such that the attribute is changed in accordance with characteristics of the attribute change determined by the index point type specified.
39. The system of claim 37, wherein the fourth component is further configured to specify that the index point type is a first index point type such that the attribute change is triggerable only when the index point is reached after the execution of the computer system commenced.
40. The system of claim 37, wherein the fourth component is further configured to specify that the index point type is a second index point type such that the attribute change is triggerable when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded by a subsequent attribute change.
41. The system of claim 37, wherein the fourth component is further configured to specify that the index point type is a third index point type such that the attribute change is triggerable when the index point has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change, and a stop activation point associated with the index point has not been reached until after the execution of the computer system commenced.
42. The system of claim 37, further comprising a sixth component configured to generate an index table including a list of the index points.
43. The system of claim 37, further comprising a seventh component configured to generate an index table including a list of the index points and a corresponding list of index point types.
44. The system of claim 41, further comprising a seventh component configured to generate an index table including a list of the index points and a corresponding list of stop activation points for the third index point type.
45. The system of claim 41, further comprising an eighth component configured to generate an index table including a list of the index points, a corresponding list of index point types and, a corresponding list of stop activation points for the third index point type.
46. The system of claim 42, wherein the sixth component is further configured to generate the index table by sequential occurrence of the index points.
47. A system for controlling computer system operation during execution of the computer system, the computer readable medium comprising:
a user interface configured to identify an attribute change of a computer system to occur during execution of the computer system; and
a processor including:
a first component configured to associate with the attribute change an index point signifying when the attribute change is to begin; and
a second component configured to specify an index point type for the attribute change, at least one index point type being a first index point type configured to not initiate the attribute change if the index point has passed before execution of the computer system commenced.
48. The method of claim 47, including a third component configured to trigger the attribute change to begin at the current point of execution and after the current point of execution unless the index point type associated with the attribute change is the first index point type and the index point passed before execution of the computer system commenced.
49. The system of claim 47, wherein the second component is further configured to specify that the index point type is a second index point type such that the attribute change is triggerable when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded by a subsequent attribute change.
50. The system of claim 47, wherein the second component is further configured to specify that the index point type is a third index point type such that the attribute change is triggerable when the index point has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change, and a stop activation point associated with the index point has not been reached until after the execution of the computer system commenced.
51. The system of claim 47, further comprising a fourth component configured to generate an index table including a list of the index points.
52. The system of claim 47, further comprising a fifth component configured to generate an index table including a list of the index points and a corresponding list of index point types.
53. The system of claim 50, further comprising a sixth component configured to generate an index table including a list of the index points and a corresponding list of stop activation points for the third index point type.
54. The system of claim 50, further comprising an seventh component configured to generate an index table including a list of the index points, a corresponding list of index point types and, a corresponding list of stop activation points for the third index point type.
55. The system of claim 42, wherein the fourth component is further configured to generate the index table by sequential occurrence of the index points.
56. A method for controlling computer system operation during execution of the computer system, the method comprising:
identifying an attribute change of a computer system to occur during execution of the computer system;
associating the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
identifying an index point in the execution of the computer system indicative of when the event is to occur;
associating the index point in the computer system with the event;
specifying that the attribute change is triggered only when the index point is reached after the computer system was engaged; and
capturing data representing one of attribute change information and index point information for use during the execution of the computer system.
57. A computer readable medium storing instructions for controlling computer system operation during system execution, the computer readable medium comprising:
first computer program code means for identifying an attribute change of the computer system to occur during execution of the computer system;
second computer program code means for associating the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
third computer program code means for identifying an index point in the execution of the computer system indicative of when the event is to occur;
fourth computer program code means for associating the index point in the computer system with the event;
fifth computer program code means for specifying that the attribute change is triggered only when the index point is reached after the computer system was engaged; and
sixth computer program code means for capturing data representing one of attribute change information and index point information for use during the execution of the computer system.
58. A system for controlling computer system operation during computer system execution, the system comprising:
a user interface configured to identify an attribute change of a computer system to occur during execution of the computer system; and
a processor including:
a first component configured to associate the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
a second component configured to identify an index point in the execution of the computer system indicative of when the event is to occur;
a third component configured to associate the index point in the computer system with the event;
a fourth component configured to specify that the attribute change is triggered only when the index point is reached after the execution of the computer system commenced; and
a fifth component configured to capture data representing one of attribute change information and index point information for use during the execution of the computer system.
59. A method for controlling computer system operation during execution of the computer system, the method comprising:
identifying an attribute change of a computer system to occur during execution of the computer system;
associating the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
identifying an index point in the execution of the computer system indicative of when the event is to occur;
associating the index point in the computer system with the event;
specifying that the attribute change is triggered when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded by a subsequent attribute change; and
capturing data representing one of attribute change information and index point information for use during the execution of the computer system.
60. A computer readable medium storing instructions for controlling computer system operation during system execution, the computer readable medium comprising:
first computer program code means for identifying an attribute change of the computer system to occur during execution of the computer system;
second computer program code means for associating the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
third computer program code means for identifying an index point in the execution of the computer system indicative of when the event is to occur;
fourth computer program code means for associating the index point in the computer system with the event;
fifth computer program code means for specifying that the attribute change is triggered when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded with a subsequent attribute change; and
sixth computer program code means for capturing data representing one of attribute change information and index point information for use during the execution of the computer system.
61. A system for controlling computer system operation during computer system execution, the system comprising:
a user interface configured to identify an attribute change of a computer system to occur during execution of the computer system; and
a processor including:
a first component configured to associate the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
a second component configured to identify an index point in the execution of the computer system indicative of when the event is to occur;
a third component configured to associate the index point in the computer system with the event;
a fourth component configured to specify that the attribute change is triggered when the index point triggering the attribute change has been reached and the attribute change associated with the index point has not been countermanded with a subsequent attribute change; and
a fifth component configured to capture data representing one of attribute change information and index point information for use during the execution of the computer system.
62. A method for controlling computer system operation during execution of the computer system, the method comprising:
identifying an attribute change of a computer system to occur during execution of the computer system;
associating the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
identifying an index point in the execution of the computer system indicative of when the event is to occur;
associating the index point in the computer system with the event;
specifying that the attribute change is triggered when the index point has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change and a stop activation point associated with the index point has not been reached; and
capturing data representing one of attribute change information and index point information for use during the execution of the computer system.
63. A computer readable medium storing instructions for controlling computer system operation during system execution, the computer readable medium comprising:
first computer program code means for identifying an attribute change of the computer system to occur during execution of the computer system;
second computer program code means for associating the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
third computer program code means for identifying an index point in the execution of the computer system indicative of when the event is to occur;
fourth computer program code means for associating the index point in the computer system with the event;
fifth computer program code means for specifying that the attribute change is triggered when the index point has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change and a stop activation point associated with the index point has not been reached until after the execution of the computer system commenced; and
sixth computer program code means for capturing data representing one of attribute change information and index point information for use during the execution of the computer system.
64. A system for controlling computer system operation during computer system execution, the system comprising:
a user interface configured to identify an attribute change of a computer system to occur during execution of the computer system; and
a processor including:
a first component configured to associate the attribute change with an event in the computer system such that indication of the event triggers the attribute change;
a second component configured to identify an index point in the execution of the computer system indicative of when the event is to occur;
a third component configured to associate the index point in the computer system with the event;
a fourth component configured to specify that the attribute change is triggered when the index point has been reached, the attribute change associated with the index point has not been countermanded by a subsequent attribute change and a stop activation point associated with the index point has not been reached until after the execution of the computer system commenced; and
a fifth component configured to capture data representing one of attribute change information and index point information for use during the execution of the computer system.
US10/427,343 2002-07-12 2003-04-30 Method and system for flexible time-based control of application appearance and behavior Abandoned US20040010793A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/427,343 US20040010793A1 (en) 2002-07-12 2003-04-30 Method and system for flexible time-based control of application appearance and behavior

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39565502P 2002-07-12 2002-07-12
US10/427,343 US20040010793A1 (en) 2002-07-12 2003-04-30 Method and system for flexible time-based control of application appearance and behavior

Publications (1)

Publication Number Publication Date
US20040010793A1 true US20040010793A1 (en) 2004-01-15

Family

ID=29712260

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/427,255 Abandoned US20040010792A1 (en) 2002-07-12 2003-04-30 Method and system for providing flexible time-based control of application appearance and behavior
US10/427,343 Abandoned US20040010793A1 (en) 2002-07-12 2003-04-30 Method and system for flexible time-based control of application appearance and behavior
US10/427,357 Active 2025-10-04 US7260782B2 (en) 2002-07-12 2003-04-30 Method and system for generating flexible time-based control of application appearance and behavior

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/427,255 Abandoned US20040010792A1 (en) 2002-07-12 2003-04-30 Method and system for providing flexible time-based control of application appearance and behavior

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/427,357 Active 2025-10-04 US7260782B2 (en) 2002-07-12 2003-04-30 Method and system for generating flexible time-based control of application appearance and behavior

Country Status (3)

Country Link
US (3) US20040010792A1 (en)
EP (3) EP1380945A3 (en)
NO (2) NO20033172D0 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040070594A1 (en) * 1997-07-12 2004-04-15 Burke Trevor John Method and apparatus for programme generation and classification
US20050039177A1 (en) * 1997-07-12 2005-02-17 Trevor Burke Technology Limited Method and apparatus for programme generation and presentation
US20050060721A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation User-centric policy creation and enforcement to manage visually notified state changes of disparate applications
US20050289151A1 (en) * 2002-10-31 2005-12-29 Trevor Burker Technology Limited Method and apparatus for programme generation and classification
US20070032286A1 (en) * 2005-08-04 2007-02-08 Igt Methods and apparatus for auctioning an item via a gaming device
US20080102920A1 (en) * 2006-11-01 2008-05-01 Igt Gaming system and method of operating a gaming system having a bonus participation bidding sequence
US7882436B2 (en) 2004-03-10 2011-02-01 Trevor Burke Technology Limited Distribution of video data
US8216065B2 (en) 2005-09-09 2012-07-10 Igt Gaming system having multiple adjacently arranged gaming machines which each provide a component for a multi-component game
US20150135071A1 (en) * 2013-11-12 2015-05-14 Fox Digital Entertainment, Inc. Method and apparatus for distribution and presentation of audio visual data enhancements
US20160019103A1 (en) * 2014-07-18 2016-01-21 Verizon Patent And Licensing Inc. Method and apparatus for providing an application control trigger
US9635439B2 (en) 2011-12-21 2017-04-25 Saturn Licensing Llc Method, computer program, and reception apparatus for delivery of supplemental content
US10104447B2 (en) 2012-06-19 2018-10-16 Saturn Licensing Llc Extensions to trigger parameters table for interactive television
EP2797317B1 (en) * 2011-12-21 2019-03-13 Saturn Licensing LLC Receiving device, receiving method, program, and information-processing system

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010792A1 (en) * 2002-07-12 2004-01-15 Wallace Michael W. Method and system for providing flexible time-based control of application appearance and behavior
KR100573685B1 (en) * 2003-03-07 2006-04-25 엘지전자 주식회사 Method and apparatus for reproducing animation data for interactive optical disc
KR20050064150A (en) * 2003-12-23 2005-06-29 엘지전자 주식회사 Method for managing and reproducing a menu information of high density optical disc
KR20050066264A (en) * 2003-12-26 2005-06-30 엘지전자 주식회사 Method for managing and reproducing a menu information of high density optical disc
KR20050066265A (en) * 2003-12-26 2005-06-30 엘지전자 주식회사 Method for managing and reproducing a menu information of high density optical disc
US8376855B2 (en) 2004-06-28 2013-02-19 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US8870639B2 (en) 2004-06-28 2014-10-28 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US10226698B1 (en) 2004-07-14 2019-03-12 Winview, Inc. Game of skill played by remote participants utilizing wireless devices in connection with a common game event
US7788634B2 (en) * 2004-09-03 2010-08-31 Ensequence, Inc. Methods and systems for efficient behavior generation in software application development tool
US10721543B2 (en) 2005-06-20 2020-07-21 Winview, Inc. Method of and system for managing client resources and assets for activities on computing devices
US9919210B2 (en) 2005-10-03 2018-03-20 Winview, Inc. Synchronized gaming and programming
US9511287B2 (en) 2005-10-03 2016-12-06 Winview, Inc. Cellular phone games based upon television archives
US8149530B1 (en) 2006-04-12 2012-04-03 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US10556183B2 (en) 2006-01-10 2020-02-11 Winview, Inc. Method of and system for conducting multiple contest of skill with a single performance
US9056251B2 (en) 2006-01-10 2015-06-16 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US8002618B1 (en) 2006-01-10 2011-08-23 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US11082746B2 (en) 2006-04-12 2021-08-03 Winview, Inc. Synchronized gaming and programming
US9716918B1 (en) 2008-11-10 2017-07-25 Winview, Inc. Interactive advertising system
US8250059B2 (en) * 2009-09-14 2012-08-21 International Business Machines Corporation Crawling browser-accessible applications
US8601442B2 (en) * 2009-09-30 2013-12-03 Microsoft Corporation Marker correlation of application constructs with visualizations
US8941779B2 (en) 2012-03-21 2015-01-27 Sony Corporation Non-closed caption data transport in standard caption service
US8667456B1 (en) * 2011-04-20 2014-03-04 Google Inc. Cloud-based indexing for integrated development environments
US9554175B2 (en) 2011-07-20 2017-01-24 Sony Corporation Method, computer program, reception apparatus, and information providing apparatus for trigger compaction
TWI528749B (en) 2011-09-06 2016-04-01 Sony Corp A signal receiving device, a signal receiving method, an information processing program and an information processing system
US9936231B2 (en) * 2012-03-21 2018-04-03 Saturn Licensing Llc Trigger compaction
US10101801B2 (en) * 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US11551529B2 (en) 2016-07-20 2023-01-10 Winview, Inc. Method of generating separate contests of skill or chance from two independent events
US11308765B2 (en) 2018-10-08 2022-04-19 Winview, Inc. Method and systems for reducing risk in setting odds for single fixed in-play propositions utilizing real time input

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5986655A (en) * 1997-10-28 1999-11-16 Xerox Corporation Method and system for indexing and controlling the playback of multimedia documents
US6008802A (en) * 1998-01-05 1999-12-28 Intel Corporation Method and apparatus for automatically performing a function based on the reception of information corresponding to broadcast data
US6177928B1 (en) * 1997-08-22 2001-01-23 At&T Corp. Flexible synchronization framework for multimedia streams having inserted time stamp
US6188396B1 (en) * 1996-03-29 2001-02-13 International Business Machines Corp. Synchronizing multimedia parts with reference to absolute time, relative time, and event time
US6263505B1 (en) * 1997-03-21 2001-07-17 United States Of America System and method for supplying supplemental information for video programs
US6266053B1 (en) * 1998-04-03 2001-07-24 Synapix, Inc. Time inheritance scene graph for representation of media content
US6268864B1 (en) * 1998-06-11 2001-07-31 Presenter.Com, Inc. Linking a video and an animation
US6357042B2 (en) * 1998-09-16 2002-03-12 Anand Srinivasan Method and apparatus for multiplexing separately-authored metadata for insertion into a video data stream
US20020056129A1 (en) * 1999-10-05 2002-05-09 Dean J. Blackketter Trigger having a time attribute
US20020056612A1 (en) * 2000-08-02 2002-05-16 Hayes Christopher J. Keyboard overlay
US6487564B1 (en) * 1995-07-11 2002-11-26 Matsushita Electric Industrial Co., Ltd. Multimedia playing apparatus utilizing synchronization of scenario-defined processing time points with playing of finite-time monomedia item
US6577849B1 (en) * 1999-02-03 2003-06-10 Motorola, Inc. Method and apparatus for providing additional information about a broadcast
US6769130B1 (en) * 2000-01-20 2004-07-27 Interactual Technologies, Inc. System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers
US6810503B1 (en) * 1998-02-11 2004-10-26 Microsoft Corporation Method and apparatus for controlling the timing of the invocation of events within a computer runtime environment
US7174562B1 (en) * 1999-12-20 2007-02-06 Microsoft Corporation Interactive television triggers having connected content/disconnected content attribute

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0658624B2 (en) * 1990-03-30 1994-08-03 インターナショナル・ビシネス・マシーンズ・コーポレーション Graphical user interface management device
US5604907A (en) * 1993-12-30 1997-02-18 International Business Machines Corporation Computer system for executing action slots including multiple action object classes
US5680617A (en) * 1994-05-16 1997-10-21 Apple Computer, Inc. Computer-human interface which provides for user customization of object behavior
US5870727A (en) * 1995-05-22 1999-02-09 Gte Data Services Incorporated Rule-based system for the provision of complex navigational logic
CN1655595A (en) * 1996-09-11 2005-08-17 松下电器产业株式会社 Apparatus for transmitting data
EP0920778B1 (en) * 1997-05-21 2011-11-16 Koninklijke Philips Electronics N.V. Transmission and reception of television programs
JPH11282658A (en) * 1998-03-31 1999-10-15 Fujitsu Ltd Interactive software constructing/driving device
US6263339B1 (en) * 1998-08-25 2001-07-17 Informix Software, Inc. Dynamic object visualization and code generation
US6774917B1 (en) * 1999-03-11 2004-08-10 Fuji Xerox Co., Ltd. Methods and apparatuses for interactive similarity searching, retrieval, and browsing of video
NZ518774A (en) * 1999-10-22 2004-09-24 Activesky Inc An object oriented video system
EP1146749A1 (en) * 2000-04-07 2001-10-17 Canal+ Technologies Société Anonyme Apparatus and method for testing applications
US7213255B2 (en) * 2000-08-25 2007-05-01 Intellocity Usa, Inc. Set-top preview program
US7231630B2 (en) * 2002-07-12 2007-06-12 Ensequence Inc. Method and system automatic control of graphical computer application appearance and execution
US20040010792A1 (en) * 2002-07-12 2004-01-15 Wallace Michael W. Method and system for providing flexible time-based control of application appearance and behavior

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487564B1 (en) * 1995-07-11 2002-11-26 Matsushita Electric Industrial Co., Ltd. Multimedia playing apparatus utilizing synchronization of scenario-defined processing time points with playing of finite-time monomedia item
US6188396B1 (en) * 1996-03-29 2001-02-13 International Business Machines Corp. Synchronizing multimedia parts with reference to absolute time, relative time, and event time
US6263505B1 (en) * 1997-03-21 2001-07-17 United States Of America System and method for supplying supplemental information for video programs
US6177928B1 (en) * 1997-08-22 2001-01-23 At&T Corp. Flexible synchronization framework for multimedia streams having inserted time stamp
US6239801B1 (en) * 1997-10-28 2001-05-29 Xerox Corporation Method and system for indexing and controlling the playback of multimedia documents
US5986655A (en) * 1997-10-28 1999-11-16 Xerox Corporation Method and system for indexing and controlling the playback of multimedia documents
US6008802A (en) * 1998-01-05 1999-12-28 Intel Corporation Method and apparatus for automatically performing a function based on the reception of information corresponding to broadcast data
US6810503B1 (en) * 1998-02-11 2004-10-26 Microsoft Corporation Method and apparatus for controlling the timing of the invocation of events within a computer runtime environment
US6266053B1 (en) * 1998-04-03 2001-07-24 Synapix, Inc. Time inheritance scene graph for representation of media content
US6268864B1 (en) * 1998-06-11 2001-07-31 Presenter.Com, Inc. Linking a video and an animation
US6357042B2 (en) * 1998-09-16 2002-03-12 Anand Srinivasan Method and apparatus for multiplexing separately-authored metadata for insertion into a video data stream
US6577849B1 (en) * 1999-02-03 2003-06-10 Motorola, Inc. Method and apparatus for providing additional information about a broadcast
US20020056129A1 (en) * 1999-10-05 2002-05-09 Dean J. Blackketter Trigger having a time attribute
US7174562B1 (en) * 1999-12-20 2007-02-06 Microsoft Corporation Interactive television triggers having connected content/disconnected content attribute
US6769130B1 (en) * 2000-01-20 2004-07-27 Interactual Technologies, Inc. System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers
US20020056612A1 (en) * 2000-08-02 2002-05-16 Hayes Christopher J. Keyboard overlay

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039177A1 (en) * 1997-07-12 2005-02-17 Trevor Burke Technology Limited Method and apparatus for programme generation and presentation
US20040070594A1 (en) * 1997-07-12 2004-04-15 Burke Trevor John Method and apparatus for programme generation and classification
US20050289151A1 (en) * 2002-10-31 2005-12-29 Trevor Burker Technology Limited Method and apparatus for programme generation and classification
US20050060721A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation User-centric policy creation and enforcement to manage visually notified state changes of disparate applications
US7636919B2 (en) * 2003-09-16 2009-12-22 International Business Machines Corporation User-centric policy creation and enforcement to manage visually notified state changes of disparate applications
US7882436B2 (en) 2004-03-10 2011-02-01 Trevor Burke Technology Limited Distribution of video data
US20070032286A1 (en) * 2005-08-04 2007-02-08 Igt Methods and apparatus for auctioning an item via a gaming device
US8632394B2 (en) 2005-08-04 2014-01-21 Igt Methods and apparatus for auctioning an item via a gaming device
US7905777B2 (en) 2005-08-04 2011-03-15 Igt Methods and apparatus for auctioning an item via a gaming device
US8167709B2 (en) 2005-08-04 2012-05-01 Igt Methods and apparatus for auctioning an item via a gaming device
US8512121B2 (en) 2005-09-09 2013-08-20 Igt Gaming system having multiple adjacently arranged gaming machines which each provide a component for a multi-component game
US8216065B2 (en) 2005-09-09 2012-07-10 Igt Gaming system having multiple adjacently arranged gaming machines which each provide a component for a multi-component game
US20080102920A1 (en) * 2006-11-01 2008-05-01 Igt Gaming system and method of operating a gaming system having a bonus participation bidding sequence
US7857699B2 (en) 2006-11-01 2010-12-28 Igt Gaming system and method of operating a gaming system having a bonus participation bidding sequence
US9635439B2 (en) 2011-12-21 2017-04-25 Saturn Licensing Llc Method, computer program, and reception apparatus for delivery of supplemental content
EP2797317B1 (en) * 2011-12-21 2019-03-13 Saturn Licensing LLC Receiving device, receiving method, program, and information-processing system
US10652609B2 (en) 2011-12-21 2020-05-12 Saturn Licensing Llc Reception apparatus, reception method, program, and information processing system
US10491965B2 (en) 2012-04-20 2019-11-26 Saturn Licensing LLC. Method, computer program, and reception apparatus for delivery of supplemental content
US10104447B2 (en) 2012-06-19 2018-10-16 Saturn Licensing Llc Extensions to trigger parameters table for interactive television
US11051082B2 (en) 2012-06-19 2021-06-29 Saturn Licensing Llc Extensions to trigger parameters table for interactive television
US20150135071A1 (en) * 2013-11-12 2015-05-14 Fox Digital Entertainment, Inc. Method and apparatus for distribution and presentation of audio visual data enhancements
US20160019103A1 (en) * 2014-07-18 2016-01-21 Verizon Patent And Licensing Inc. Method and apparatus for providing an application control trigger
US10372511B2 (en) * 2014-07-18 2019-08-06 Verizon Patent And Licensing Inc. Method and apparatus for providing an application control trigger

Also Published As

Publication number Publication date
US7260782B2 (en) 2007-08-21
EP1380943A3 (en) 2006-09-13
EP1380942A3 (en) 2006-09-13
EP1380945A3 (en) 2006-09-13
US20040010792A1 (en) 2004-01-15
EP1380945A2 (en) 2004-01-14
NO20033172D0 (en) 2003-07-10
US20040010771A1 (en) 2004-01-15
EP1380942A2 (en) 2004-01-14
NO20033171D0 (en) 2003-07-10
EP1380943A2 (en) 2004-01-14

Similar Documents

Publication Publication Date Title
US20040010793A1 (en) Method and system for flexible time-based control of application appearance and behavior
DE69728177T2 (en) GRAPHIC USER INTERFACE WITH HIERARCHICAL MENUS
US5818439A (en) Video viewing assisting method and a video playback system therefor
US6256419B1 (en) Method and apparatus for detecting a point of change in a moving image
US8615777B2 (en) Method and apparatus for displaying posting site comments with program being viewed
US9787627B2 (en) Viewer interface for broadcast image content
US8875023B2 (en) Thumbnail navigation bar for video
US7096427B2 (en) Method and system for selecting a position in an image sequence
US9210366B2 (en) Method and apparatus for processing multimedia
US8631453B2 (en) Video branching
EP1628478A1 (en) Multimedia playback device and playback method
US8261305B2 (en) System and method for scrolling through TV video icons by category
JP2004524777A (en) Playback position selection method and system based on key frames
JP2007323222A (en) Working motion analysis method, working motion analysis apparatus and working motion analysis program
JP2008547316A (en) Dynamic media guide listing
US20080172406A1 (en) Preference data generation device, content display device, preference data generation method and recording medium
EP1271950B1 (en) Moving images synchronization system
US20170064353A1 (en) Planned video production system with feedback
CN113453057B (en) Display device and playing progress control method
KR100766985B1 (en) Motion picture watching system, motion picture watching apparatus, method for controlling the same, and recording medium for recording program
US20160118086A1 (en) Non-linear video review buffer navigation
JP2007306527A (en) Content display apparatus
JP2004023787A (en) Visualization and navigation interface by television system
KR20210096145A (en) Electronic program guide, method for electronic program guide, and corresponding device
CN117812356A (en) Display equipment and recording method

Legal Events

Date Code Title Description
AS Assignment

Owner name: ENSEQUENCE, INC., OREGON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WALLACE, MICHAEL W.;WESTERMAN, LARRY ALAN;REEL/FRAME:014034/0966

Effective date: 20030430

AS Assignment

Owner name: FOX VENTURES 06 LLC, WASHINGTON

Free format text: SECURITY AGREEMENT;ASSIGNOR:ENSEQUENCE, INC.;REEL/FRAME:017869/0001

Effective date: 20060630

AS Assignment

Owner name: ENSEQUENCE, INC., OREGON

Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:FOX VENTURES 06 LLC;REEL/FRAME:019474/0556

Effective date: 20070410

AS Assignment

Owner name: CYMI TECHNOLOGIES, LLC, OHIO

Free format text: SECURITY AGREEMENT;ASSIGNOR:ENSEQUENCE, INC.;REEL/FRAME:022542/0967

Effective date: 20090415

AS Assignment

Owner name: ENSEQUENCE, INC., OREGON

Free format text: ASSIGNMENT AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT;ASSIGNOR:CYMI TECHNOLOGIES, LLC;REEL/FRAME:023337/0001

Effective date: 20090908

AS Assignment

Owner name: CYMI TECHNOLOGIES, LLC, OHIO

Free format text: SECURITY AGREEMENT;ASSIGNOR:ENSEQUENCE, INC.;REEL/FRAME:025126/0178

Effective date: 20101011

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION