US20140201621A1 - Customizing applications in a discovery interface - Google Patents
Customizing applications in a discovery interface Download PDFInfo
- Publication number
- US20140201621A1 US20140201621A1 US14/159,217 US201414159217A US2014201621A1 US 20140201621 A1 US20140201621 A1 US 20140201621A1 US 201414159217 A US201414159217 A US 201414159217A US 2014201621 A1 US2014201621 A1 US 2014201621A1
- Authority
- US
- United States
- Prior art keywords
- application
- page
- customized
- package
- computer
- 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
Links
Images
Classifications
-
- G06F17/2247—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/65—Transmission of management data between client and server
- H04N21/654—Transmission by server directed to the client
- H04N21/6547—Transmission by server directed to the client comprising parameters, e.g. for client setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8543—Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/163—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4622—Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
Definitions
- a video-on-demand service allows a user to select a program for viewing from a library of programs, wherein all of the programs are available at any time and can be paused, saved, reviewed, etc. (as opposed to a cable television program that is only available at a scheduled time and duration).
- Other sources of content may also exist, including content from a media library, an Internet Protocol (IP) stream, a Web site, etc.
- IP Internet Protocol
- Consumers and content providers can find great benefit in the availability of content from so many different types of sources. For example, a consumer can view a rerun episode of a cable television program and then search for and view a subsequent episode of the same program over VOD or some other content providing channel. For their part, content providers can keep people “tuned in” with a wider assortment of content and content types.
- a discovery interface takes the form of an Electronic Programming Guide (EPG).
- EPG Electronic Programming Guide
- the available content, and more importantly the ways in which to access such content, may need to change dramatically overtime.
- Existing EPGs fail to adequately accommodate changes to the user interface and functionality of application pages used to access the ever-changing content.
- Implementations described and claimed herein address the foregoing problems by providing customized user interface data for a media application, such as a media discovery interface, or to any application for that matter, thereby extending the original application.
- a media application such as a media discovery interface
- elements of the user interface can be downloaded to the application in a package of markup data and resources, including images, text, and links.
- a user interface framework of the application processes the markup data from the downloaded package and utilizes packaged resources, local code components, and externally-obtained (e.g., Web resources) to render a customized application page for the media application.
- articles of manufacture are provided as computer program products.
- One implementation of a computer program product provides a computer program storage medium readable by a computer system and encoding a computer program.
- Another implementation of a computer program product may be provided in a computer data signal embodied in a carrier wave by a computing system and encoding the computer program.
- Other implementations are also described and recited herein.
- FIG. 1 illustrates an example system for presenting discovery data and applications in a customizable discovery interface.
- FIG. 2 illustrates an example menu within a customizable discovery interface.
- FIG. 3 illustrates an example application page that can be triggered by a selection of an offering tile.
- FIG. 4 illustrates an example content management and delivery system.
- FIG. 5 illustrates an architecture for an example media application.
- FIG. 6 illustrates example operations for customizing applications in a discovery interface.
- FIG. 7 illustrates an example system that may be useful in implementing the described technology.
- FIG. 1 illustrates an example system 100 for presenting discovery data and applications in a customizable discovery interface 102 .
- a user's computing system 104 is coupled to a display device 106 , which is capable of presenting the customizable discovery interface 102 .
- the computing system 104 is also coupled to a tuner device 108 (e.g., a set-top box or a tuner card internal to the computing device), which communicates with a cable content provider 110 and a video-on-demand content provider 112 .
- the cable content provider 110 and the video-on-demand content provider 112 may be represented by the same entity.
- content providers that compete with the cable providers such as satellite services and airwave-based broadcast television stations, may also be supported in a similar manner.
- Content providers for other media, such as satellite radio, broadcast radio, etc. may also be supported through computing system 104 .
- the computing system 104 executes a media application that manages the user's access to media content, whether available locally or remotely.
- the user can use his or her computing system 104 to control a portable media player 114 , the tuner device 108 , a local media library 116 , and other content available from discrete devices or over a communications network 118 .
- Examples of the control a user may apply can include without limitations transferring content between a portable media player 114 and a local media library 116 , scheduling the recording of a cable television program by a digital video recorder (not shown) coupled to the computing system 104 , downloading IP content (such as a video or song) from an IP content provider 120 , etc.
- the media application also provides the discovery interface 102 on a display device 106 (e.g., a monitor or television) coupled to the computing device 104 .
- Discovery data is obtained through a media information service 122 , which collects program information about content from a variety of sources.
- the media information service 122 maps data from a variety of sources to one or more consistent schema, enabling a consistent discovery experience, and associates the content from different sources to provide interrelationships among the content elements.
- the discovery interface 102 can be represented by an on-screen guide, such as an electronic program guide (EPG), although various monikers may be used in other implementations, including without limitation interactive program guide (IPG) and electronic service guide (ESG).
- EPG electronic program guide
- IPG interactive program guide
- ESG electronic service guide
- the discovery interface 102 presents an on-screen guide to the available content (e.g., broadcast content, such as scheduled cable television programs, and non-broadcast content, such as available IP content, locally stored media, etc.) in which broadcast content and non-broadcast content are shown together via virtual channels of the unified discovery interface.
- available content e.g., broadcast content, such as scheduled cable television programs, and non-broadcast content, such as available IP content, locally stored media, etc.
- the discovery interface 102 provides a graphical user interface that can display program titles and other descriptive information (collectively “discovery data”), such as a summary, actors' names and bios, directors' names and bios, year of production, etc.
- the information is displayed on a grid with the option to select more information on each program, although other formats are also contemplated.
- Channel identifiers pertaining to the scheduled cable programs, the program start and end times, genres, thumbnail images, and other descriptive metadata can also be presented within the discovery interface 102 .
- Radio and song information may offer other information, such as artist, album, album cover graphics, and track title information.
- the discovery interface 102 allows the user to browse program summaries; search by genre, channel, etc.; and obtain immediate access to the selected content, reminders, and parental control functions. If the computing device 104 is so configured or so connected, a discovery interface 102 can also provide control for scheduled recording of programs.
- a user can use the discovery interface 102 to navigate, select, and discover content by a variety of parameters, including time, title, channel, genre, cost, actors, directors, sources, relationships to other content, etc. Navigation can be accomplished through the media application by a variety of input devices, such as a remote control, a keyboard, and a mouse. In one implementation, for example, the user can navigate through the discovery interface 102 and display information about scheduled cable programs, video-on-demand programs, and associated IP content within a single presentation frame. By navigating through the discovery interface 102 , the user can manipulate and obtain more information about a current program or about other programs available through the discovery interface 102 . For example, when the computing device 104 is connected to a cable content provider 110 , the user can plan his or her viewing schedule, learn about the actors of available programs, and record cable programs to a hard disk in the computer device 104 for later viewing.
- a customized application package can be downloaded to the computing system 104 in order to customize the data and applications available to the user through the discovery interface 102 .
- the customized application package is typically downloaded from the management interface service 122 , but customized application packages may be available from the local (or remote) media library 116 or from various content providers, such as content providers 110 , 112 , and 120 .
- a customized application package may include without limitation images, listings of available content, text, markup language files, internal and external links used to present a customizable discovery interface to a user, etc.
- one or more menus of the discovery interface 102 may be customized with new images, text, functionality, selections, endpoints, etc.
- individual application pages that are referenced from a menu or other selection may be customized
- FIG. 2 illustrates an example menu 200 within a customizable discovery interface 202 .
- the menu 200 may include without limitation menu items for built-in application pages, customized application pages, and Web pages.
- Vertical menu items provide access to categories of offerings (e.g., “TV+Movies”, “Sports”, “Online Media”, etc.).
- categories of offerings e.g., “TV+Movies”, “Sports”, “Online Media”, etc.
- Within the current menu item i.e., “Online Media”
- several offering tiles are provided in an offering strip 204 .
- By selecting one of the offering tiles such as tile 206 ), a user can launch an application page or user interface page that provides functionality for the offering.
- a user may select tile 206 to launch an application page that allows the user to browse and select various categories of new online media content, including content from sources such as ABC Online, FOXsports.com, FOX.com, Showtime Online, etc.
- the offering tiles themselves may be static (e.g., built-in and statically linked), have customizable faces (e.g., the linked application page is static, but the tile graphic displayed to the user may be updated using downloaded resources), fully customizable (e.g., the tile graphic, the linked application page may be updated using a downloaded package, etc.), or something in between.
- the start menu is represented internally by a markup data file that specifies a user interface having a set of menu items and offering tiles.
- a user interface (UI) framework processes the start menu markup data and renders the start menu on the display accordingly.
- One or more of the menu items and/or offering tiles may be built into the media application executing on the computing system.
- the start menu markup data has statically defined links to built-in application pages, which were installed with the media application or added to the media application in an update.
- One or more of the menu items and/or offering tiles may also be customizable.
- a placeholder exists in the start menu markup data, such that if resources have been downloaded for a specific placeholder (e.g., they share the same name, etc.), the menu item or offering tile is rendered for that placeholder.
- the menu item or offering tile is “hidden” (i.e., not displayed).
- the user interface framework opens the package referenced by the placeholder and renders the customized application page using the packaged markup data and resources.
- one or more of the menu items or offering tiles may reference Web pages available over a network (or even HTML pages stored within or otherwise accessible by the media application).
- the start menu may be implemented using a package or a Web page, rather than a static markup data file.
- the media application could access a downloaded package or Web page to render and provide functionality for the start up menu.
- FIG. 3 illustrates an example application page 300 that can be triggered by a selection of an offering tile 302 from a start menu.
- the application page 300 may be (a) a built-in application page, which uses markup data that is built-in into the media application on the computing system; (b) a customized application page, which uses markup data downloaded in a package from a remote source; or (c) a Web application page, which is retrieved upon selection from a Web source. Other types of application pages may also be employed.
- Each menu item and/or offering tile in the application page can further invoke other built-in, customized, Web, or other application pages.
- FIG. 4 illustrates an example content management and delivery system 400 .
- a content management system 402 collects and stores media data, including without limitation one or more of program listings, content, customizing packages, parental ratings, preferences, and other parameters, into a database 404 .
- a middle tier parsing module 406 extracts an application package (e.g., for a customized application page) based on predefined filtering parameters, including without limitation one or more of geographical locale, OEM relationship of the equipment, system capabilities, user preferences and characteristics, etc.
- a package drop module 408 periodically uploads selected packages to a media information system server 410 , which has information specifying “drop”, “stage”, and “Web” parameters. “Drop” refers to the internal location where a package is stored for the delivery service to pickup.
- “Stage” refers to a testing location where a package can be downloaded and verified.
- “Web” refers to the final network location (e.g., an IP address or URI) where customers will have the package delivered to them.
- the media information system server 410 downloads the packages to a media application on a client computing system (e.g., screenshot icon 412 represents a start menu and screenshot icon 414 represents an application page).
- An end user 416 can then interact with the media application executing on the client computing system to select offerings. For example, the end user 416 can select an offering tile from the start menu to access a built-in application page, a customized application page, or a Web application page. In some implementations, the end user 416 may employ a remote control, a keyboard, a mouse, a touch screen, etc. to interact with the media application.
- FIG. 5 illustrates an architecture for an example media application 500 , although it should be understood that a similar architecture may be employed in non-media applications.
- a shell 502 represents a core user interface module of the media application, including the start menu markup data, resources, and other structural aspects of the media application. The shell 502 also handles navigation events for navigating among application pages and the detection/loading of the downloaded application packages 506 .
- a start menu page 503 and all other user interface pages are rendered based on markup data, resources, local libraries of code components 510 , and other data and program code by the user interface framework 508 .
- Built-in application pages 504 represent application pages (such as a built-in application page 505 ) that are incorporated into the distribution of the media application, including markup data and resources for individual application pages accessible through the start menu and other offering tiles of the media application.
- Application packages 506 represent customized application pages (such as a customized application page 507 ) that have been downloaded in package form, such as from a media information system server, including markup data and resources of customized applications within the media application. Such packages are typically downloaded to the client computer system on which the media application executes during expected idle periods (e.g., overnight).
- Web application pages (such as Web page 512 ) may be linked to Web resources and downloaded via a network 514 .
- the user interface elements of this page are based on SpotlightBrowseBasePage, which defines common behavior shared by multiple browse pages in the package, thereby allowing for a consistent user interface style.
- Another portion of the markup data listing may define local variables that override selected inherited variables of the same name, which are defined in the base user interface class.
- the Choice object defines each of the pivots (e.g., menu items) on the application page: “tv+movies”, “music+radio”, etc.
- the “Choice” object provides the data for each of the pivots on the page, and the items to display in the gallery for each pivot.
- the names Choice, BrowsePivot, String, Image, MarkupBrowseDataSet, and MarkupBrowseItem all refer to various managed-code classes.
- This BrowsePivot object for “tv+movies” references two other user interface elements, the ContentItemTemplate and DetailTemplate, which are to be found in files entitled GalleryItem.mcml and BrowseDetails.mcml, respectively.
- the ContentItemTemplate specifies the user interface behavior for each individual user interface element to be displayed in the gallery.
- the DetailTemplate specifies the user interface behavior for some additional details that are displayed at the bottom of the customized application page.
- Each of the next two sections defines an offering tile in the customized application page.
- One is labeled “TVTonic” with a tile graphic is defined by a bitmap image at “data://Spotlight!1112.gif”.
- the TVTonic offering tile also has defined slogan text associated with the tile “Subscribe to game trailers, videoblogs & more. Free!” with an associated graphic image, which can appear when the TVTonic offering tile has the focus.
- Another user interface behavior is based on the “BrowseCategories” user interface element defined above.
- the “MoreTV” user interface element initializes the pivots such that the pivot with index 0 (e.g., the “tv+movies” pivot) will be selected when the page is first loaded.
- example markup data defines the Base user interface element for browse application pages (“Browse Page”).
- the SpotlightBrowseBasePage user interface element above defines the base user interface element for the browse pages in the Spotlight package.
- This user interface element is itself based on a user interface element named “Browse”, which defines the common behavior for all browse pages throughout a media application and is an example of a built-in application page.
- the browse page uses a “model” object that provides the content for the page. Initially, the model is an empty placeholder that will be replaced with the actual data at runtime.
- a local variable named “Pivots” is defined. This variable's value is intended to be overridden by any user interface element that is based on this user interface element.
- the customized application package 506 can also define user interface rules for customized application page.
- a ⁇ !--Replace Model.Pivots with the actual data-->rule copies the local Pivots variable to the Pivots property of the Model, making the content available to the page.
- a ⁇ !--Set the app GUID for the benefit of the Start Menu-->rule initializes the SMAppGuid property of the PageModel. (Note: “GUID” refers to a Globally Unique IDentifier.)
- the value identifies the Start menu section with which this page is associated, providing the customized application page with a reference back parameter to the calling application page (e.g., the start menu), and further to a specific user interface element of the calling application page that was selected to invoke the customized application page.
- the customized application page is integrated with other application pages of the media application to allow navigation to and from the page.
- This particular value corresponds to the “Online Media” section. If the user invokes a “back” navigation action while on this page, the Start menu will be displayed, with the “Online Media” section in focus.
- Portions of another example markup language listing below define the user interface element for individual items in the gallery, based on a shared Base UI GalleryItem.
- the ThumbSize and NumberOfRows properties of the base user interface element are overridden to customize the appearance of the gallery items.
- various items gain and lose the focus.
- a user interface framework 508 processes the markup data of the shell 502 , the built-in application pages 504 , and the downloaded application pages 506 .
- the user interface framework 508 parses the start menu markup data, for example, and renders the start menu defined by the markup data.
- the user interface framework 508 ingests the markup language of the application pages referenced by the trigger and renders the application page defined by the markup data.
- the markup data for application pages 504 and 506 and the shell 502 can reference code in a library 510 of code components. These code components provide functionality, such as manipulating and filtering tables of content metadata, initiating and controlling playback of media content, and interacting with the operating system, etc.
- the markup data references a specific code component and the user interface framework 508 includes the functionality to execute the code in the context of the current user interface.
- FIG. 6 illustrates example operations 600 for customizing applications in a discovery interface.
- a downloading operation 602 downloads an application package, which may include markup data, images, text, and other resources, received via a communications network (e.g., via a Web service).
- an application identifier or AppId
- an application code module that manages interactions with that particular menu item.
- all items in a particular section of the menu reference the same AppID (although this is not required).
- the referenced application code module (e.g., [Spotlight]) uses another property of the State Menu item—the TargetPageID—to look up the URL of the markup data in downloaded application packages.
- a menu item may reference link to a Web page.
- a PartnerQuickLink element represents a start menu item for activating an external, third-party application that is resident on the user's computer system, such as Napster.
- a QuickLink element represents a start menu item for activating a built-in application page.
- a PackageMarkupQuickLink element represents the menu items capable of being activated via a downloaded application package (i.e., a customized menu item) and of activating a customized application page.
- the PackageMarkupQuickLink menu items activate themselves by looking for the corresponding resources in an application package identified by the ResourceProviderId, if found on the client. For example, the first PackageMarkupQuickLink above will be activated if the “Spotlight” package contains a string resource with ID 1011 (the value of the TitleId property) as well as the image resources having IDs “StartMenu.QuickLink.Spotlight.1.Focus.png” and “StartMenu.QuickLink.Spotlight.1.NoFocus.png” (each of these names being formed by appending strings (e.g., Focus or NoFocus) to the value of the ImageBaseName property).
- TargetPageID references a string resource in the package.
- That string resource contains the name of the target application page that results in activation of the Start menu item.
- the Priority specifies which item in the menu should be the default item (the item that is given focus when the menu is first displayed). In one implementation, for example, a lower numeric value corresponds to a higher priority.
- the menu item or offering tile is “hidden” (i.e., not displayed). If the rendered menu item or tile for a customized offering is selected, the user interface framework opens the package referenced by the placeholder and renders the customized application page using the packaged markup data and resources contained in the package. Furthermore, one or more of the menu items or offering tiles may reference Web pages available over a network (or even HTML pages stored within or otherwise accessible by the media application).
- a string definition section defines references used to construct the customized offering tiles of the Start Menu.
- a first string in each pair defines the label to display on-screen in association with an offering tile.
- a second string in each pair defines either the name of a markup resource contained in this application package or the URL of a built-in application page or a Web application page to be retrieved from the Internet.
- Each application may describe, without limitation, a page of user interface or a component of another page.
- Portion of an example image resource section of an application package, listed immediately below, defines bitmap images for the items on the Start menu. Each item in the example elements has two images to represent the item in its non-focused and focused states.
- An image section defines other bitmap images used by the markup resources in the application package.
- an extraction operation 604 extracts from the package the markup data for an application page (identified by a target page identifier or TargetPageID) and the resources cited by that markup data, if any. Also, if specified in the markup data, a calling operation 606 calls to a local dynamic link library of a locally resident library of code components to provide desired functionality and/or resources (e.g., based on an identifier, pathname or address).
- an extraction operation 608 extracts from the package the markup data for an application page (identified by a target page identifier or TargetPageID) and the resources cited by that markup data, if any. Also, if specified in the markup data, a calling operation 610 calls to a local dynamic link library of a locally resident library of code components to provide desired functionality and/or resources (e.g., based on an identifier, pathname or address). Furthermore, if specified in the markup data, another calling operation 612 calls to an external location (e.g., on the Web) to provide desired functionality and/or resources (e.g., based on an identifier, pathname or address).
- an external location e.g., on the Web
- an extraction operation 614 extracts the URL encoded in the target page identifier, if any. Also, if specified in the markup data, a calling operation 616 calls to an external location (e.g., on the Web) to provide desired functionality and/or resources (e.g., based on an identifier, pathname or address).
- an external location e.g., on the Web
- a rendering operation 618 renders the application page in the user interface shell of the media application.
- the example hardware and operating environment of FIG. 7 for implementing the invention includes a computing device, such as general purpose computing device in the form of a gaming console or computer 20 , a mobile telephone, a personal data assistant (PDA), a set top box, or other type of computing device.
- the computer 20 includes a processing unit 21 , a system memory 22 , and a system bus 23 that operatively couples various system components including the system memory to the processing unit 21 .
- the computer 20 may be a conventional computer, a distributed computer, or any other type of computer; the invention is not so limited.
- the system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, a switched fabric, point-to-point connections, and a local bus using any of a variety of bus architectures.
- the system memory may also be referred to as simply the memory, and includes read only memory (ROM) 24 and random access memory (RAM) 25 .
- ROM read only memory
- RAM random access memory
- a basic input/output system (BIOS) 26 containing the basic routines that help to transfer information between elements within the computer 20 , such as during start-up, is stored in ROM 24 .
- the computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29 , and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
- a hard disk drive 27 for reading from and writing to a hard disk, not shown
- a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29
- an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
- the hard disk drive 27 , magnetic disk drive 28 , and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32 , a magnetic disk drive interface 33 , and an optical disk drive interface 34 , respectively.
- the drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer 20 . It should be appreciated by those skilled in the art that any type of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROMs), and the like, may be used in the example operating environment.
- a number of program modules may be stored on the hard disk, magnetic disk 29 , optical disk 31 , ROM 24 , or RAM 25 , including an operating system 35 , one or more application programs 36 , other program modules 37 , and program data 38 .
- a user may enter commands and information into the personal computer 20 through input devices such as a keyboard 40 and pointing device 42 .
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
- These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).
- a monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48 .
- computers typically include other peripheral output devices (not shown), such as speakers and printers.
- the computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 49 . These logical connections are achieved by a communication device coupled to or a part of the computer 20 ; the invention is not limited to a particular type of communications device.
- the remote computer 49 may be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 20 , although only a memory storage device 50 has been illustrated in FIG. 6 .
- the logical connections depicted in FIG. 6 include a local-area network (LAN) 51 and a wide-area network (WAN) 52 .
- LAN local-area network
- WAN wide-area network
- Such networking environments are commonplace in office networks, enterprise-wide computer networks, intranets and the Internet, which are all types of networks.
- the computer 20 When used in a LAN-networking environment, the computer 20 is connected to the local network 51 through a network interface or adapter 53 , which is one type of communications device.
- the computer 20 When used in a WAN-networking environment, the computer 20 typically includes a modem 54 , a network adapter, a type of communications device, or any other type of communications device for establishing communications over the wide area network 52 .
- the modem 54 which may be internal or external, is connected to the system bus 23 via the serial port interface 46 .
- program modules depicted relative to the personal computer 20 may be stored in the remote memory storage device. It is appreciated that the network connections shown are example and other means of and communications devices for establishing a communications link between the computers may be used.
- a user interface framework module may be embodied by instructions stored in memory 22 and/or storage devices 29 or 31 and processed by the processing unit 21 .
- a personal media library, content, databases, markup data, packages, resources, and other data may be stored in memory 22 and/or storage devices 29 or 31 as persistent datastores.
- the technology described herein is implemented as logical operations and/or modules in one or more systems.
- the logical operations may be implemented as a sequence of processor-implemented steps executing in one or more computer systems and as interconnected machine or circuit modules within one or more computer systems.
- the descriptions of various component modules may be provided in terms of operations executed or effected by the modules.
- the resulting implementation is a matter of choice, dependent on the performance requirements of the underlying system implementing the described technology.
- the logical operations making up the embodiments of the technology described herein are referred to variously as operations, steps, objects, or modules.
- logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The present application claims benefit of U.S. Provisional Patent Application No. 60/846,694, entitled “Customizing Applications in a Discovery Interface” and filed on Sep. 22, 2006, and U.S. patent application Ser. No. 11/657,356, entitled “Customizing Applications in a Discovery Interface” and filed on Jan. 24, 2007, which are specifically incorporated by reference for all that they disclose and teach.
- The convergence of computing and entertainment continues to provide new content and options for consumers. For example, cable subscribers can now access cable television programs and video-on-demand content (VOD) through their set-top boxes. In one offering, a video-on-demand service allows a user to select a program for viewing from a library of programs, wherein all of the programs are available at any time and can be paused, saved, reviewed, etc. (as opposed to a cable television program that is only available at a scheduled time and duration). Other sources of content may also exist, including content from a media library, an Internet Protocol (IP) stream, a Web site, etc.
- Consumers and content providers can find great benefit in the availability of content from so many different types of sources. For example, a consumer can view a rerun episode of a cable television program and then search for and view a subsequent episode of the same program over VOD or some other content providing channel. For their part, content providers can keep people “tuned in” with a wider assortment of content and content types.
- In providing a user interface to access such a wide variety of content, certain media applications provide a discovery interface. In one existing example, a discovery interface takes the form of an Electronic Programming Guide (EPG). However, the available content, and more importantly the ways in which to access such content, may need to change dramatically overtime. Existing EPGs fail to adequately accommodate changes to the user interface and functionality of application pages used to access the ever-changing content.
- Implementations described and claimed herein address the foregoing problems by providing customized user interface data for a media application, such as a media discovery interface, or to any application for that matter, thereby extending the original application. Via a network connection, elements of the user interface can be downloaded to the application in a package of markup data and resources, including images, text, and links. A user interface framework of the application processes the markup data from the downloaded package and utilizes packaged resources, local code components, and externally-obtained (e.g., Web resources) to render a customized application page for the media application.
- In some implementations, articles of manufacture are provided as computer program products. One implementation of a computer program product provides a computer program storage medium readable by a computer system and encoding a computer program. Another implementation of a computer program product may be provided in a computer data signal embodied in a carrier wave by a computing system and encoding the computer program. Other implementations are also described and recited herein.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
-
FIG. 1 illustrates an example system for presenting discovery data and applications in a customizable discovery interface. -
FIG. 2 illustrates an example menu within a customizable discovery interface. -
FIG. 3 illustrates an example application page that can be triggered by a selection of an offering tile. -
FIG. 4 illustrates an example content management and delivery system. -
FIG. 5 illustrates an architecture for an example media application. -
FIG. 6 illustrates example operations for customizing applications in a discovery interface. -
FIG. 7 illustrates an example system that may be useful in implementing the described technology. -
FIG. 1 illustrates anexample system 100 for presenting discovery data and applications in acustomizable discovery interface 102. A user'scomputing system 104 is coupled to adisplay device 106, which is capable of presenting thecustomizable discovery interface 102. Thecomputing system 104 is also coupled to a tuner device 108 (e.g., a set-top box or a tuner card internal to the computing device), which communicates with a cable content provider 110 and a video-on-demand content provider 112. It should be understood that the cable content provider 110 and the video-on-demand content provider 112 may be represented by the same entity. Furthermore, content providers that compete with the cable providers, such as satellite services and airwave-based broadcast television stations, may also be supported in a similar manner. Content providers for other media, such as satellite radio, broadcast radio, etc., may also be supported throughcomputing system 104. - In one implementation, the
computing system 104 executes a media application that manages the user's access to media content, whether available locally or remotely. For example, the user can use his or hercomputing system 104 to control aportable media player 114, thetuner device 108, alocal media library 116, and other content available from discrete devices or over acommunications network 118. Examples of the control a user may apply can include without limitations transferring content between aportable media player 114 and alocal media library 116, scheduling the recording of a cable television program by a digital video recorder (not shown) coupled to thecomputing system 104, downloading IP content (such as a video or song) from anIP content provider 120, etc. - In one implementation, the media application also provides the
discovery interface 102 on a display device 106 (e.g., a monitor or television) coupled to thecomputing device 104. Discovery data is obtained through amedia information service 122, which collects program information about content from a variety of sources. Themedia information service 122 maps data from a variety of sources to one or more consistent schema, enabling a consistent discovery experience, and associates the content from different sources to provide interrelationships among the content elements. Thediscovery interface 102 can be represented by an on-screen guide, such as an electronic program guide (EPG), although various monikers may be used in other implementations, including without limitation interactive program guide (IPG) and electronic service guide (ESG). Thediscovery interface 102 presents an on-screen guide to the available content (e.g., broadcast content, such as scheduled cable television programs, and non-broadcast content, such as available IP content, locally stored media, etc.) in which broadcast content and non-broadcast content are shown together via virtual channels of the unified discovery interface. - In one implementation, the
discovery interface 102 provides a graphical user interface that can display program titles and other descriptive information (collectively “discovery data”), such as a summary, actors' names and bios, directors' names and bios, year of production, etc. In one implementation, the information is displayed on a grid with the option to select more information on each program, although other formats are also contemplated. Channel identifiers pertaining to the scheduled cable programs, the program start and end times, genres, thumbnail images, and other descriptive metadata can also be presented within thediscovery interface 102. Radio and song information may offer other information, such as artist, album, album cover graphics, and track title information. Thediscovery interface 102 allows the user to browse program summaries; search by genre, channel, etc.; and obtain immediate access to the selected content, reminders, and parental control functions. If thecomputing device 104 is so configured or so connected, adiscovery interface 102 can also provide control for scheduled recording of programs. - A user can use the
discovery interface 102 to navigate, select, and discover content by a variety of parameters, including time, title, channel, genre, cost, actors, directors, sources, relationships to other content, etc. Navigation can be accomplished through the media application by a variety of input devices, such as a remote control, a keyboard, and a mouse. In one implementation, for example, the user can navigate through thediscovery interface 102 and display information about scheduled cable programs, video-on-demand programs, and associated IP content within a single presentation frame. By navigating through thediscovery interface 102, the user can manipulate and obtain more information about a current program or about other programs available through thediscovery interface 102. For example, when thecomputing device 104 is connected to a cable content provider 110, the user can plan his or her viewing schedule, learn about the actors of available programs, and record cable programs to a hard disk in thecomputer device 104 for later viewing. - In one implementation, a customized application package can be downloaded to the
computing system 104 in order to customize the data and applications available to the user through thediscovery interface 102. The customized application package is typically downloaded from themanagement interface service 122, but customized application packages may be available from the local (or remote)media library 116 or from various content providers, such ascontent providers discovery interface 102 may be customized with new images, text, functionality, selections, endpoints, etc. In another implementation, individual application pages that are referenced from a menu or other selection may be customized -
FIG. 2 illustrates anexample menu 200 within acustomizable discovery interface 202. Themenu 200 may include without limitation menu items for built-in application pages, customized application pages, and Web pages. Vertical menu items provide access to categories of offerings (e.g., “TV+Movies”, “Sports”, “Online Media”, etc.). Within the current menu item (i.e., “Online Media”), several offering tiles are provided in anoffering strip 204. By selecting one of the offering tiles (such as tile 206), a user can launch an application page or user interface page that provides functionality for the offering. For example, a user may selecttile 206 to launch an application page that allows the user to browse and select various categories of new online media content, including content from sources such as ABC Online, FOXsports.com, FOX.com, Showtime Online, etc. The offering tiles themselves may be static (e.g., built-in and statically linked), have customizable faces (e.g., the linked application page is static, but the tile graphic displayed to the user may be updated using downloaded resources), fully customizable (e.g., the tile graphic, the linked application page may be updated using a downloaded package, etc.), or something in between. - In one implementation, the start menu is represented internally by a markup data file that specifies a user interface having a set of menu items and offering tiles. A user interface (UI) framework processes the start menu markup data and renders the start menu on the display accordingly. One or more of the menu items and/or offering tiles may be built into the media application executing on the computing system. For such built-in menu items or offering tiles, the start menu markup data has statically defined links to built-in application pages, which were installed with the media application or added to the media application in an update.
- One or more of the menu items and/or offering tiles may also be customizable. For these menu items or offering tiles, a placeholder exists in the start menu markup data, such that if resources have been downloaded for a specific placeholder (e.g., they share the same name, etc.), the menu item or offering tile is rendered for that placeholder. Alternatively, if no resources have been downloaded for a specific placeholder, the menu item or offering tile is “hidden” (i.e., not displayed). If the rendered menu item or tile for a customized offering is selected, the user interface framework opens the package referenced by the placeholder and renders the customized application page using the packaged markup data and resources. Furthermore, one or more of the menu items or offering tiles may reference Web pages available over a network (or even HTML pages stored within or otherwise accessible by the media application).
- In an alternative implementation, the start menu may be implemented using a package or a Web page, rather than a static markup data file. In such an implementation, the media application could access a downloaded package or Web page to render and provide functionality for the start up menu.
-
FIG. 3 illustrates anexample application page 300 that can be triggered by a selection of anoffering tile 302 from a start menu. Theapplication page 300 may be (a) a built-in application page, which uses markup data that is built-in into the media application on the computing system; (b) a customized application page, which uses markup data downloaded in a package from a remote source; or (c) a Web application page, which is retrieved upon selection from a Web source. Other types of application pages may also be employed. Each menu item and/or offering tile in the application page can further invoke other built-in, customized, Web, or other application pages. -
FIG. 4 illustrates an example content management anddelivery system 400. Acontent management system 402 collects and stores media data, including without limitation one or more of program listings, content, customizing packages, parental ratings, preferences, and other parameters, into adatabase 404. A middletier parsing module 406 extracts an application package (e.g., for a customized application page) based on predefined filtering parameters, including without limitation one or more of geographical locale, OEM relationship of the equipment, system capabilities, user preferences and characteristics, etc. Apackage drop module 408 periodically uploads selected packages to a mediainformation system server 410, which has information specifying “drop”, “stage”, and “Web” parameters. “Drop” refers to the internal location where a package is stored for the delivery service to pickup. “Stage” refers to a testing location where a package can be downloaded and verified. “Web” refers to the final network location (e.g., an IP address or URI) where customers will have the package delivered to them. The mediainformation system server 410 downloads the packages to a media application on a client computing system (e.g.,screenshot icon 412 represents a start menu andscreenshot icon 414 represents an application page). - An
end user 416 can then interact with the media application executing on the client computing system to select offerings. For example, theend user 416 can select an offering tile from the start menu to access a built-in application page, a customized application page, or a Web application page. In some implementations, theend user 416 may employ a remote control, a keyboard, a mouse, a touch screen, etc. to interact with the media application. -
FIG. 5 illustrates an architecture for anexample media application 500, although it should be understood that a similar architecture may be employed in non-media applications. Ashell 502 represents a core user interface module of the media application, including the start menu markup data, resources, and other structural aspects of the media application. Theshell 502 also handles navigation events for navigating among application pages and the detection/loading of the downloaded application packages 506. Astart menu page 503 and all other user interface pages are rendered based on markup data, resources, local libraries ofcode components 510, and other data and program code by the user interface framework 508. - Built-in
application pages 504 represent application pages (such as a built-in application page 505) that are incorporated into the distribution of the media application, including markup data and resources for individual application pages accessible through the start menu and other offering tiles of the media application. Application packages 506 represent customized application pages (such as a customized application page 507) that have been downloaded in package form, such as from a media information system server, including markup data and resources of customized applications within the media application. Such packages are typically downloaded to the client computer system on which the media application executes during expected idle periods (e.g., overnight). Web application pages (such as Web page 512) may be linked to Web resources and downloaded via anetwork 514. - Portions of an example markup data listing included within an
application package 506 for a customized application page (“Browse Categories”) are listed below (although similar markup data could be used for a built-in application page). -
<!-- Browse Categories page --> <UI Name=“BrowseCategories” BaseUI=“bpage:SpotlightBrowseBasePage”> - The <UI Name=“BrowseCategories” . . . >element defines the user interface for the customized “Browse categories” application page, which can be launched from the “browse categories” tile in the Online Media section of the Start menu. The user interface elements of this page are based on SpotlightBrowseBasePage, which defines common behavior shared by multiple browse pages in the package, thereby allowing for a consistent user interface style.
- Another portion of the markup data listing (see immediately below) may define local variables that override selected inherited variables of the same name, which are defined in the base user interface class. In this case, the Choice object defines each of the pivots (e.g., menu items) on the application page: “tv+movies”, “music+radio”, etc. The “Choice” object provides the data for each of the pivots on the page, and the items to display in the gallery for each pivot. The names Choice, BrowsePivot, String, Image, MarkupBrowseDataSet, and MarkupBrowseItem all refer to various managed-code classes.
-
<Locals> <Choice Name=“Pivots”> <Options> <shl:BrowsePivot Description=“tv + movies” ContentLabel=“explore” EmptyContentText=“No content available.” ContentTemplate=“@res://Microsoft.MediaCenter.Shell! BrowseGallery.mcml#Gallery” ContentItemTemplate=“data://Spotlight!GalleryItem.mcml” DetailTemplate=“data://Spotlight!BrowseDetails.mcml”> <Content> <util:MarkupBrowseDataSet SortOrder=“Rotating”> <Source> - This BrowsePivot object for “tv+movies” references two other user interface elements, the ContentItemTemplate and DetailTemplate, which are to be found in files entitled GalleryItem.mcml and BrowseDetails.mcml, respectively. The ContentItemTemplate specifies the user interface behavior for each individual user interface element to be displayed in the gallery. The DetailTemplate specifies the user interface behavior for some additional details that are displayed at the bottom of the customized application page.
- Each of the next two sections defines an offering tile in the customized application page. One is labeled “TVTonic” with a tile graphic is defined by a bitmap image at “data://Spotlight!1112.gif”. The TVTonic offering tile is set to a URL that references a target Web application page at “http://www.tvtonic.com/activation/MCE/?link=games” and includes a tracking identifier. It should be understood that the TVTonic offering tile could alternatively have referenced another customized application page or a built-in application page, in which case the NonMcmlUrl variable would be set to a URL for such a page.
-
<util:MarkupBrowseItem Description=“TVTonic” ImageSource=“data://Spotlight!1112.gif” NonMcmlUrl=“http://www.tvtonic.com/ activation/MCE/?link=games” TrackingId=“1117”> <Properties> <cor:String Name=“Slogan” String=“Subscribe to game trailers,videoblogs & more. Free!”/> <Image Name=“OfferImage” Source=“data: //Spotlight!1117.gif”/> </Properties> </util:MarkupBrowseItem> - The TVTonic offering tile also has defined slogan text associated with the tile “Subscribe to game trailers, videoblogs & more. Free!” with an associated graphic image, which can appear when the TVTonic offering tile has the focus.
- Another offering tile, for American Chopper”, is defined below, with a reference to a Web application page.
-
<util:MarkupBrowseItem Description=“American Chopper” ImageSource=“data://Spotlight!50.jpg” NonMcmlUrl=“http://highspeed.discovery.com/wmc/epg/” TrackingId=“142”> <Properties> <cor:String Name=“Slogan” String=“See sparks fly Mondays at 10 p.m. ET/PT.”/> <Image Name=“OfferImage” Source=“data: //Spotlight!142.jpg”/> </Properties> </util:MarkupBrowseItem> - Another user interface behavior, called “MoreTV” and defined in the same package, is based on the “BrowseCategories” user interface element defined above. The “MoreTV” user interface element initializes the pivots such that the pivot with index 0 (e.g., the “tv+movies” pivot) will be selected when the page is first loaded.
-
<UI Name=“MoreTV” BaseUI=“me:BrowseCategories”> <Rules> <!-- “tv + movies” is pivot 0 --><Default Target=“[Pivots.ChosenIndex]” Value=“0”/> </Rules> </UI> - In the
application package 506 or in the native media application, example markup data defines the Base user interface element for browse application pages (“Browse Page”). The SpotlightBrowseBasePage user interface element above defines the base user interface element for the browse pages in the Spotlight package. This user interface element is itself based on a user interface element named “Browse”, which defines the common behavior for all browse pages throughout a media application and is an example of a built-in application page. The browse page uses a “model” object that provides the content for the page. Initially, the model is an empty placeholder that will be replaced with the actual data at runtime. -
<UI Name=“SpotlightBrowseBasePage” BaseUI=“browse:Browse”> <Properties> <!-- Model is empty initially. A rule will replace --> <!-- the Pivots of the model with the actual data. --> <shl:BrowseModel Name=“Model”> <Commands> <ArrayListDataSet/> </Commands> <Pivots> <Choice> <Options> <shl:BrowsePivot> <Content> <ArrayListDataSet/> </Content> </shl:BrowsePivot> </Options> </Choice> </Pivots> </shl:BrowseModel> <util:MarkupPage Name=“PageModel” MarkupPage=“$Required”/> </Properties> - A local variable named “Pivots” is defined. This variable's value is intended to be overridden by any user interface element that is based on this user interface element.
-
<Locals> <!-- Derived UI should redefine this Local to contain the actual pivot data --> <Choice Name=“Pivots”> <Options> <shl:BrowsePivot> <Content> <ArrayListDataSet/> </Content> </shl:BrowsePivot> </Options> </Choice> </Locals> - The customized
application package 506 can also define user interface rules for customized application page. A <!--Replace Model.Pivots with the actual data-->rule copies the local Pivots variable to the Pivots property of the Model, making the content available to the page. A <!--Set the app GUID for the benefit of the Start Menu-->rule initializes the SMAppGuid property of the PageModel. (Note: “GUID” refers to a Globally Unique IDentifier.) The value identifies the Start menu section with which this page is associated, providing the customized application page with a reference back parameter to the calling application page (e.g., the start menu), and further to a specific user interface element of the calling application page that was selected to invoke the customized application page. In this manner, the customized application page is integrated with other application pages of the media application to allow navigation to and from the page. This particular value corresponds to the “Online Media” section. If the user invokes a “back” navigation action while on this page, the Start menu will be displayed, with the “Online Media” section in focus. -
<Rules> <!-- Replace Model.Pivots with the actual data --> <Default Target=“[Model.Pivots]” Value=“[Pivots]”/> <!-- Set the app guid for the benefit of the Start Menu --> <Default Target=“[PageModel.SMAppGuid]” Value=“{A8ADD452- 1D1A-4775-ACF2-565796306789}”/> </Rules> - Portions of another example markup language listing below define the user interface element for individual items in the gallery, based on a shared Base UI GalleryItem. The ThumbSize and NumberOfRows properties of the base user interface element are overridden to customize the appearance of the gallery items. As the user navigates around the gallery, various items gain and lose the focus. Each time an item gains or loses focus, a corresponding property on the underlying model item is set using a Binding (e.g., <Binding Source=“[Input.DeepKeyFocus]” Target=“[Model!util:MarkupBrowseItem.HasFocus[”/>).
-
<UI Name=“SpotlightGalleryItem” BaseUI=“browse:GalleryItem”> <Properties> <Size Name=“ThumbSize” Size=“240, 180”/> <cor:Int32 Name=“NumberOfRows” Int32=“2”/> </Properties> <Rules> <Binding Source=“[Input.DeepKeyFocus]” Target=“[Model!util: MarkupBrowseItem.HasFocus]”/> </Rules> </UI> - A user interface framework 508 processes the markup data of the
shell 502, the built-inapplication pages 504, and the downloaded application pages 506. As for theshell 502, the user interface framework 508 parses the start menu markup data, for example, and renders the start menu defined by the markup data. In the cases of both built-inapplication pages 504 and downloadedapplication pages 506, when the appropriate application is triggered (e.g., by activation of an offering tile by the user), the user interface framework 508 ingests the markup language of the application pages referenced by the trigger and renders the application page defined by the markup data. - The markup data for
application pages shell 502 can reference code in alibrary 510 of code components. These code components provide functionality, such as manipulating and filtering tables of content metadata, initiating and controlling playback of media content, and interacting with the operating system, etc. The markup data references a specific code component and the user interface framework 508 includes the functionality to execute the code in the context of the current user interface. -
FIG. 6 illustratesexample operations 600 for customizing applications in a discovery interface. A downloadingoperation 602 downloads an application package, which may include markup data, images, text, and other resources, received via a communications network (e.g., via a Web service). When a user makes a selection of an offering tile through the user interface of the media application, an application identifier (or AppId) in the markup data for each menu item referencing a customized application page identifies the application code module that manages interactions with that particular menu item. Typically, all items in a particular section of the menu reference the same AppID (although this is not required). The referenced application code module (e.g., [Spotlight]) uses another property of the State Menu item—the TargetPageID—to look up the URL of the markup data in downloaded application packages. - In the example described below, markup data for menu items pertaining to third-party application pages, built-in application pages, and customized application pages is provided. In addition, a menu item may reference link to a Web page. A PartnerQuickLink element represents a start menu item for activating an external, third-party application that is resident on the user's computer system, such as Napster.
-
<home:PartnerQuickLink Icon=“SM.Spotlight.Promo” Title=“#SM.Spotlight.Promo1” ViewTemplate=“QuickLinkView” AppId=“[Spotlight]” EntryPointId=“[SpotlightPromo1EP]” Priority=“11”/> - A QuickLink element represents a start menu item for activating a built-in application page.
-
<home:QuickLink Icon=“SM.Spotlight.Favorites” Title=“#SM.Spotlight.Favorites” ViewTemplate=“QuickLinkView” AppId=“[Spotlight]” EntryPointId=“[SpotlightFavoritesEP]” Priority=“10”/> - A PackageMarkupQuickLink element represents the menu items capable of being activated via a downloaded application package (i.e., a customized menu item) and of activating a customized application page.
-
<home:PackageMarkupQuickLink ResourceProviderId=“Spotlight” TitleId=“1011” ImageBaseName=“StartMenu.QuickLink.Spotlight.1” TargetPageId=“1012” ViewTemplate=“QuickLinkView” AppId=“[Spotlight]” Priority=“0”/> - The PackageMarkupQuickLink menu items activate themselves by looking for the corresponding resources in an application package identified by the ResourceProviderId, if found on the client. For example, the first PackageMarkupQuickLink above will be activated if the “Spotlight” package contains a string resource with ID 1011 (the value of the TitleId property) as well as the image resources having IDs “StartMenu.QuickLink.Spotlight.1.Focus.png” and “StartMenu.QuickLink.Spotlight.1.NoFocus.png” (each of these names being formed by appending strings (e.g., Focus or NoFocus) to the value of the ImageBaseName property). TargetPageID references a string resource in the package. That string resource, in turn, contains the name of the target application page that results in activation of the Start menu item. The Priority specifies which item in the menu should be the default item (the item that is given focus when the menu is first displayed). In one implementation, for example, a lower numeric value corresponds to a higher priority. The highest-priority item—among those items that are marked “visible”—will be the default item when the menu is displayed.
- Alternatively, if no resources have been downloaded for a specific placeholder, the menu item or offering tile is “hidden” (i.e., not displayed). If the rendered menu item or tile for a customized offering is selected, the user interface framework opens the package referenced by the placeholder and renders the customized application page using the packaged markup data and resources contained in the package. Furthermore, one or more of the menu items or offering tiles may reference Web pages available over a network (or even HTML pages stored within or otherwise accessible by the media application).
- Portions of an example application package are described below, which describe labels and links that correspond to various user interface elements on the Start menu. A string definition section, immediately below, defines references used to construct the customized offering tiles of the Start Menu. A first string in each pair defines the label to display on-screen in association with an offering tile. A second string in each pair defines either the name of a markup resource contained in this application package or the URL of a built-in application page or a Web application page to be retrieved from the Internet.
-
// Online Media section, slot 1 1011 “what's new” 1012 “WhatsNew.mcml” // Online Media section, slot 2 1021 “explore” 1022 “BrowseCategories.mcml” - A portion of a markup resource definition section, immediately below, defines pathnames to markup data files (e.g., “RCDATA “Mcml\\WhatsNew.mcml”) referenced within the application package. Each application may describe, without limitation, a page of user interface or a component of another page.
-
WhatsNew.mcml RCDATA “Mcml\\WhatsNew.mcml” BrowseCategories.mcml RCDATA “Mcml\\BrowseCategories.mcml” MoreLinks.mcml RCDATA “Mcml\\MoreLinks.mcml” BrowsePage.mcml RCDATA “Mcml\\BrowsePage.mcml” BrowseDetails.mcml RCDATA “Mcml\\BrowseDetails.mcml” GalleryItem.mcml RCDATA “Mcml\\GalleryItem.mcml” - Portion of an example image resource section of an application package, listed immediately below, defines bitmap images for the items on the Start menu. Each item in the example elements has two images to represent the item in its non-focused and focused states.
-
// Online Spotlight, slot 1 StartMenu.QuickLink.Spotlight.1.NoFocus.png RCDATA “Png\\StartMenu.QuickLink.WhatsNew.NoFocus.png” StartMenu.QuickLink.Spotlight.1.Focus.png RCDATA “Png\\StartMenu.QuickLink.WhatsNew.Focus.png” // Online Spotlight, slot 2 StartMenu.QuickLink.Spotlight.2.NoFocus.png RCDATA “Png\\StartMenu.QuickLink.Discover.NoFocus.png” StartMenu.QuickLink.Spotlight.2.Focus.png RCDATA “Png\\StartMenu.QuickLink.Discover.Focus.png” - An image section, immediately below, defines other bitmap images used by the markup resources in the application package.
-
9.gif RCDATA “Png\\9.gif” 26.gif RCDATA “Png\\26.gif” 42.gif RCDATA “Png\\42.gif” - Based on the markup data in the current page or menu and the user's current selection from that page or menu, one of three features can be selected: A, B, and C (in this example). If feature A is selected, an
extraction operation 604 extracts from the package the markup data for an application page (identified by a target page identifier or TargetPageID) and the resources cited by that markup data, if any. Also, if specified in the markup data, a callingoperation 606 calls to a local dynamic link library of a locally resident library of code components to provide desired functionality and/or resources (e.g., based on an identifier, pathname or address). - If feature B is selected, an extraction operation 608 extracts from the package the markup data for an application page (identified by a target page identifier or TargetPageID) and the resources cited by that markup data, if any. Also, if specified in the markup data, a calling
operation 610 calls to a local dynamic link library of a locally resident library of code components to provide desired functionality and/or resources (e.g., based on an identifier, pathname or address). Furthermore, if specified in the markup data, another callingoperation 612 calls to an external location (e.g., on the Web) to provide desired functionality and/or resources (e.g., based on an identifier, pathname or address). - If feature C is selected, an extraction operation 614 extracts the URL encoded in the target page identifier, if any. Also, if specified in the markup data, a calling
operation 616 calls to an external location (e.g., on the Web) to provide desired functionality and/or resources (e.g., based on an identifier, pathname or address). - When the user interface frame work has gathered the specified functionality and/or resources, a
rendering operation 618 renders the application page in the user interface shell of the media application. - The example hardware and operating environment of
FIG. 7 for implementing the invention includes a computing device, such as general purpose computing device in the form of a gaming console orcomputer 20, a mobile telephone, a personal data assistant (PDA), a set top box, or other type of computing device. In the implementation ofFIG. 7 , for example, thecomputer 20 includes aprocessing unit 21, asystem memory 22, and asystem bus 23 that operatively couples various system components including the system memory to theprocessing unit 21. There may be only one or there may be more than oneprocessing unit 21, such that the processor ofcomputer 20 comprises a single central-processing unit (CPU), or a plurality of processing units, commonly referred to as a parallel processing environment. Thecomputer 20 may be a conventional computer, a distributed computer, or any other type of computer; the invention is not so limited. - The
system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, a switched fabric, point-to-point connections, and a local bus using any of a variety of bus architectures. The system memory may also be referred to as simply the memory, and includes read only memory (ROM) 24 and random access memory (RAM) 25. A basic input/output system (BIOS) 26, containing the basic routines that help to transfer information between elements within thecomputer 20, such as during start-up, is stored inROM 24. Thecomputer 20 further includes ahard disk drive 27 for reading from and writing to a hard disk, not shown, amagnetic disk drive 28 for reading from or writing to a removablemagnetic disk 29, and anoptical disk drive 30 for reading from or writing to a removableoptical disk 31 such as a CD ROM or other optical media. - The
hard disk drive 27,magnetic disk drive 28, andoptical disk drive 30 are connected to thesystem bus 23 by a harddisk drive interface 32, a magneticdisk drive interface 33, and an opticaldisk drive interface 34, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for thecomputer 20. It should be appreciated by those skilled in the art that any type of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROMs), and the like, may be used in the example operating environment. - A number of program modules may be stored on the hard disk,
magnetic disk 29,optical disk 31,ROM 24, orRAM 25, including anoperating system 35, one ormore application programs 36,other program modules 37, andprogram data 38. A user may enter commands and information into thepersonal computer 20 through input devices such as akeyboard 40 andpointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to theprocessing unit 21 through aserial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB). Amonitor 47 or other type of display device is also connected to thesystem bus 23 via an interface, such as avideo adapter 48. In addition to the monitor, computers typically include other peripheral output devices (not shown), such as speakers and printers. - The
computer 20 may operate in a networked environment using logical connections to one or more remote computers, such asremote computer 49. These logical connections are achieved by a communication device coupled to or a part of thecomputer 20; the invention is not limited to a particular type of communications device. Theremote computer 49 may be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above relative to thecomputer 20, although only a memory storage device 50 has been illustrated inFIG. 6 . The logical connections depicted inFIG. 6 include a local-area network (LAN) 51 and a wide-area network (WAN) 52. Such networking environments are commonplace in office networks, enterprise-wide computer networks, intranets and the Internet, which are all types of networks. - When used in a LAN-networking environment, the
computer 20 is connected to thelocal network 51 through a network interface oradapter 53, which is one type of communications device. When used in a WAN-networking environment, thecomputer 20 typically includes a modem 54, a network adapter, a type of communications device, or any other type of communications device for establishing communications over thewide area network 52. The modem 54, which may be internal or external, is connected to thesystem bus 23 via theserial port interface 46. In a networked environment, program modules depicted relative to thepersonal computer 20, or portions thereof, may be stored in the remote memory storage device. It is appreciated that the network connections shown are example and other means of and communications devices for establishing a communications link between the computers may be used. - In an example implementation, a user interface framework module, a download module, a discovery interface module, a library of code components, and other modules may be embodied by instructions stored in
memory 22 and/orstorage devices processing unit 21. A personal media library, content, databases, markup data, packages, resources, and other data may be stored inmemory 22 and/orstorage devices - The technology described herein is implemented as logical operations and/or modules in one or more systems. The logical operations may be implemented as a sequence of processor-implemented steps executing in one or more computer systems and as interconnected machine or circuit modules within one or more computer systems. Likewise, the descriptions of various component modules may be provided in terms of operations executed or effected by the modules. The resulting implementation is a matter of choice, dependent on the performance requirements of the underlying system implementing the described technology. Accordingly, the logical operations making up the embodiments of the technology described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
- The above specification, examples and data provide a complete description of the structure and use of example embodiments of the invention. Although various embodiments of the invention have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention. In particular, it should be understood that the described technology may be employed independent of a personal computer. Other embodiments are therefore contemplated. It is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative only of particular embodiments and not limiting. Changes in detail or structure may be made without departing from the basic elements of the invention as defined in the following claims.
- Although the subject matter has been described in language specific to structural features and/or methodological arts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claimed subject matter.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/159,217 US20140201621A1 (en) | 2006-09-22 | 2014-01-20 | Customizing applications in a discovery interface |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84669406P | 2006-09-22 | 2006-09-22 | |
US11/657,356 US8635521B2 (en) | 2006-09-22 | 2007-01-24 | Customizing applications in a discovery interface |
US14/159,217 US20140201621A1 (en) | 2006-09-22 | 2014-01-20 | Customizing applications in a discovery interface |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/657,356 Continuation US8635521B2 (en) | 2006-09-22 | 2007-01-24 | Customizing applications in a discovery interface |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140201621A1 true US20140201621A1 (en) | 2014-07-17 |
Family
ID=39226460
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/657,356 Active 2030-10-01 US8635521B2 (en) | 2006-09-22 | 2007-01-24 | Customizing applications in a discovery interface |
US14/159,217 Abandoned US20140201621A1 (en) | 2006-09-22 | 2014-01-20 | Customizing applications in a discovery interface |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/657,356 Active 2030-10-01 US8635521B2 (en) | 2006-09-22 | 2007-01-24 | Customizing applications in a discovery interface |
Country Status (2)
Country | Link |
---|---|
US (2) | US8635521B2 (en) |
WO (1) | WO2008039612A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180210869A1 (en) * | 2017-01-26 | 2018-07-26 | Sap Se | Adaptable application variants |
WO2021174249A1 (en) * | 2020-02-25 | 2021-09-02 | Transposit Corporation | Markdown data content with action binding |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8302016B2 (en) * | 2005-01-28 | 2012-10-30 | Kyocera Corporation | Display apparatus |
US8015506B2 (en) * | 2006-09-22 | 2011-09-06 | Microsoft Corporation | Customizing a menu in a discovery interface |
US8112714B2 (en) * | 2006-09-22 | 2012-02-07 | Microsoft Corporation | Customizing application page loading in a discovery interface |
US20090249426A1 (en) * | 2008-03-27 | 2009-10-01 | Microsoft Corporation | Supplementing broadcast service with network content |
WO2009143301A1 (en) | 2008-05-20 | 2009-11-26 | The Feedroom, Inc. | Systems and methods for realtime creation and modification of a disabled user compliant video player |
CN102498723B (en) * | 2009-09-14 | 2015-06-03 | 直视集团公司 | Method and system for distributing content |
US8447840B1 (en) | 2009-09-14 | 2013-05-21 | Noreen Fong | Method and system for transferring control of a user interface of a content distribution system |
EP2502412A4 (en) * | 2009-11-16 | 2013-06-12 | Lg Electronics Inc | Provinding contents information for network television |
US9219946B2 (en) * | 2009-11-16 | 2015-12-22 | Lg Electronics Inc. | Method of providing contents information for a network television |
PE20141839A1 (en) | 2011-06-24 | 2014-11-20 | Directv Group Inc | METHOD AND SYSTEM TO OBTAIN VISUALIZATION DATA AND PROVIDE CONTENT RECOMMENDATIONS TO A DIGITAL SIGNAL DECODER |
US9788069B1 (en) | 2011-06-24 | 2017-10-10 | The Directv Group, Inc. | Method and system for recording recommended content within a user device |
US10055746B1 (en) | 2011-06-24 | 2018-08-21 | The Directv Group, Inc. | Method and system for obtaining feedback for a content recommendation by various algorithms |
US9032451B2 (en) | 2011-09-01 | 2015-05-12 | The Directv Group, Inc. | Method and system for using a second screen device for interacting with a set top box to enhance a user experience |
US8959431B2 (en) * | 2012-01-16 | 2015-02-17 | Microsoft Corporation | Low resolution placeholder content for document navigation |
US9727321B2 (en) | 2012-10-11 | 2017-08-08 | Netflix, Inc. | System and method for managing playback of streaming digital content |
US9565475B2 (en) | 2012-10-11 | 2017-02-07 | Netflix, Inc. | System and method for managing playback of streaming digital content |
US10003780B1 (en) | 2013-03-14 | 2018-06-19 | The Directv Group, Inc. | Method and system for recording recommended content within a user device and indicating recording capacity |
US20150261425A1 (en) * | 2014-03-14 | 2015-09-17 | Apple Inc. | Optimized presentation of multimedia content |
US9886169B2 (en) * | 2014-04-29 | 2018-02-06 | Verizon Patent And Licensing Inc. | Media service user interface systems and methods |
US10025804B2 (en) * | 2014-05-04 | 2018-07-17 | Veritas Technologies Llc | Systems and methods for aggregating information-asset metadata from multiple disparate data-management systems |
US10635645B1 (en) | 2014-05-04 | 2020-04-28 | Veritas Technologies Llc | Systems and methods for maintaining aggregate tables in databases |
US9448972B2 (en) * | 2014-10-09 | 2016-09-20 | Wrap Media, LLC | Wrap package of cards supporting transactional advertising |
WO2016057188A1 (en) | 2014-10-09 | 2016-04-14 | Wrap Media, LLC | Active receipt wrapped packages accompanying the sale of products and/or services |
US9600594B2 (en) | 2014-10-09 | 2017-03-21 | Wrap Media, LLC | Card based package for distributing electronic media and services |
US20160103821A1 (en) | 2014-10-09 | 2016-04-14 | Wrap Media, LLC | Authoring tool for the authoring of wrap packages of cards |
US9448988B2 (en) | 2014-10-09 | 2016-09-20 | Wrap Media Llc | Authoring tool for the authoring of wrap packages of cards |
US9489684B2 (en) | 2014-10-09 | 2016-11-08 | Wrap Media, LLC | Delivering wrapped packages in response to the selection of advertisements |
US9600803B2 (en) | 2015-03-26 | 2017-03-21 | Wrap Media, LLC | Mobile-first authoring tool for the authoring of wrap packages |
US9582917B2 (en) * | 2015-03-26 | 2017-02-28 | Wrap Media, LLC | Authoring tool for the mixing of cards of wrap packages |
US9860145B2 (en) | 2015-07-02 | 2018-01-02 | Microsoft Technology Licensing, Llc | Recording of inter-application data flow |
US9785484B2 (en) | 2015-07-02 | 2017-10-10 | Microsoft Technology Licensing, Llc | Distributed application interfacing across different hardware |
US9658836B2 (en) | 2015-07-02 | 2017-05-23 | Microsoft Technology Licensing, Llc | Automated generation of transformation chain compatible class |
US10198252B2 (en) | 2015-07-02 | 2019-02-05 | Microsoft Technology Licensing, Llc | Transformation chain application splitting |
US9733993B2 (en) | 2015-07-02 | 2017-08-15 | Microsoft Technology Licensing, Llc | Application sharing using endpoint interface entities |
US10261985B2 (en) | 2015-07-02 | 2019-04-16 | Microsoft Technology Licensing, Llc | Output rendering in dynamic redefining application |
US9712472B2 (en) | 2015-07-02 | 2017-07-18 | Microsoft Technology Licensing, Llc | Application spawning responsive to communication |
US9733915B2 (en) | 2015-07-02 | 2017-08-15 | Microsoft Technology Licensing, Llc | Building of compound application chain applications |
US10031724B2 (en) | 2015-07-08 | 2018-07-24 | Microsoft Technology Licensing, Llc | Application operation responsive to object spatial status |
US10198405B2 (en) | 2015-07-08 | 2019-02-05 | Microsoft Technology Licensing, Llc | Rule-based layout of changing information |
US10277582B2 (en) | 2015-08-27 | 2019-04-30 | Microsoft Technology Licensing, Llc | Application service architecture |
US20170242675A1 (en) * | 2016-01-15 | 2017-08-24 | Rakesh Deshmukh | System and method for recommendation and smart installation of applications on a computing device |
US10769207B2 (en) * | 2017-08-17 | 2020-09-08 | Opentv, Inc. | Multimedia focalization |
CN111338672B (en) * | 2020-02-19 | 2024-01-26 | 上海掌门科技有限公司 | Method for optimizing update of application program, electronic device and computer storage medium |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890172A (en) * | 1996-10-08 | 1999-03-30 | Tenretni Dynamics, Inc. | Method and apparatus for retrieving data from a network using location identifiers |
US6442755B1 (en) * | 1998-07-07 | 2002-08-27 | United Video Properties, Inc. | Electronic program guide using markup language |
US20020178234A1 (en) * | 2001-03-06 | 2002-11-28 | Birchley Philip Alan | Browser software |
US20030011018A1 (en) * | 2001-07-13 | 2003-01-16 | Hurley Kelly T. | Flash floating gate using epitaxial overgrowth |
US6938208B2 (en) * | 2000-01-04 | 2005-08-30 | United Video Properties, Inc. | Electronic program guide with graphic program listings |
US20060174314A1 (en) * | 2004-07-21 | 2006-08-03 | Jacobs Paul E | Methods and apparatus for hybrid multimedia presentations |
US20070061740A1 (en) * | 2005-09-12 | 2007-03-15 | Microsoft Corporation | Content based user interface design |
US20070260979A1 (en) * | 2006-05-05 | 2007-11-08 | Andrew Hertzfeld | Distributed processing when editing an image in a browser |
US20080155607A1 (en) * | 2006-12-20 | 2008-06-26 | United Video Properties, Inc. | Systems and methods for providing remote access to interactive media guidance applications |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530754A (en) * | 1994-08-02 | 1996-06-25 | Garfinkle; Norton | Video on demand |
US5892905A (en) * | 1996-12-23 | 1999-04-06 | International Business Machines Corporation | Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web |
US6141698A (en) * | 1997-01-29 | 2000-10-31 | Network Commerce Inc. | Method and system for injecting new code into existing application code |
US6334157B1 (en) * | 1997-03-11 | 2001-12-25 | Microsoft Corporation | Programmatically providing direct access to user interface elements of an application program |
US6266681B1 (en) * | 1997-04-08 | 2001-07-24 | Network Commerce Inc. | Method and system for inserting code to conditionally incorporate a user interface component in an HTML document |
US6028600A (en) * | 1997-06-02 | 2000-02-22 | Sony Corporation | Rotary menu wheel interface |
CN1117462C (en) * | 1997-06-25 | 2003-08-06 | 三星电子株式会社 | Method and apparatus for home network auto-tree builder |
US6009410A (en) * | 1997-10-16 | 1999-12-28 | At&T Corporation | Method and system for presenting customized advertising to a user on the world wide web |
US6469714B2 (en) * | 1998-01-26 | 2002-10-22 | International Business Machines Corporation | Infocenter user interface for applets and components |
US6195696B1 (en) | 1998-10-01 | 2001-02-27 | International Business Machines Corporation | Systems, methods and computer program products for assigning, generating and delivering content to intranet users |
US6804825B1 (en) * | 1998-11-30 | 2004-10-12 | Microsoft Corporation | Video on demand methods and systems |
US20030001880A1 (en) * | 2001-04-18 | 2003-01-02 | Parkervision, Inc. | Method, system, and computer program product for producing and distributing enhanced media |
US6427236B1 (en) * | 1999-03-03 | 2002-07-30 | Microsoft Corporation | Method for installing a patch based on patch criticality and software execution format |
US6904609B1 (en) * | 1999-03-18 | 2005-06-07 | Microsoft Corporation | Systems and methods for electronic program guide data services |
US6810410B1 (en) * | 1999-08-03 | 2004-10-26 | Microsoft Corporation | Customizing a client application using an options page stored on a server computer |
US6880126B1 (en) * | 1999-08-03 | 2005-04-12 | International Business Machines Corporation | Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data |
US6760902B1 (en) * | 1999-08-31 | 2004-07-06 | James Alan Ott | Method and apparatus for implicitly generating and supporting a user interface |
US6754907B1 (en) * | 2000-02-09 | 2004-06-22 | Sprint Communications Company, L.P. | Remote control of video-on-demand system |
US6249281B1 (en) * | 2000-02-28 | 2001-06-19 | Presenter.Com | On-demand presentation graphical user interface |
KR100677094B1 (en) * | 2000-06-23 | 2007-02-05 | 삼성전자주식회사 | A system and method of providing video on demand service in wireless network condition |
AU2001294555A1 (en) * | 2000-09-14 | 2002-03-26 | Bea Systems Inc. | Xml-based graphical user interface application development toolkit |
CA2437346A1 (en) * | 2001-02-02 | 2002-08-15 | Opentv, Inc. | A method and apparatus for the compilation of an interpretative language for interactive television |
US7111243B1 (en) * | 2001-03-02 | 2006-09-19 | Oracle International Corporation | Customization of tab-order functionality in internet applications |
EP1425662A4 (en) * | 2001-08-17 | 2007-08-01 | Wu-Hon Francis Leung | Method to add new software features without modifying existing code |
US7102643B2 (en) * | 2001-11-09 | 2006-09-05 | Vibe Solutions Group, Inc. | Method and apparatus for controlling the visual presentation of data |
US7380238B2 (en) * | 2002-04-29 | 2008-05-27 | Intel Corporation | Method for dynamically adding new code to an application program |
US20040205484A1 (en) * | 2002-05-01 | 2004-10-14 | Pennington Stanford E. | System and method for dynamically generating customized pages |
US7631328B2 (en) * | 2002-06-27 | 2009-12-08 | Microsoft Corporation | Dynamic electronic program guide |
US7343550B2 (en) * | 2002-06-28 | 2008-03-11 | Ubs Painewebber, Inc. | System and method for providing on-line services for multiple entities |
WO2004021709A1 (en) * | 2002-08-29 | 2004-03-11 | Opentv, Inc. | Video-on-demand and targeted advertising |
US8046405B2 (en) * | 2002-09-05 | 2011-10-25 | Microsoft Corporation | System and method for web-based imaging services within a client-based application |
US20040098360A1 (en) * | 2002-11-15 | 2004-05-20 | Humanizing Technologies, Inc. | Customized life portal |
ITRM20030023A1 (en) * | 2003-01-22 | 2004-07-23 | Gs Gestione Sistemi S R L | "VIDEO-ON-DEMAND" SYSTEM AND RELATED MANAGEMENT METHOD. |
US20050160458A1 (en) * | 2004-01-21 | 2005-07-21 | United Video Properties, Inc. | Interactive television system with custom video-on-demand menus based on personal profiles |
US20050160414A1 (en) * | 2004-01-21 | 2005-07-21 | Nokia Corporation | System and method for dynamically adding features to software applications |
US6876314B1 (en) * | 2004-02-18 | 2005-04-05 | Robocoder Corporation | Self-generating automatic code generator |
US8539469B2 (en) * | 2004-05-11 | 2013-09-17 | Microsoft Corporation | Efficient patching |
US7594225B2 (en) * | 2004-12-20 | 2009-09-22 | Microsoft Corporation | Integrated setup for generating customization XML |
US7509374B2 (en) * | 2005-09-09 | 2009-03-24 | Alchemic Solutions Group, Inc. | Systems and methods for creating customized applications |
KR100659191B1 (en) * | 2005-09-29 | 2006-12-21 | 하나로미디어(주) | Method and system for the efficient management of video on demand service |
US7890853B2 (en) * | 2006-02-13 | 2011-02-15 | Nextair Corporation | Apparatus and machine-readable medium for generating markup language representing a derived entity which extends or overrides attributes of a base entity |
US8443411B2 (en) * | 2008-11-26 | 2013-05-14 | At&T Intellectual Property I, Lp | System and method to distribute video-on-demand content |
-
2007
- 2007-01-24 US US11/657,356 patent/US8635521B2/en active Active
- 2007-08-20 WO PCT/US2007/076314 patent/WO2008039612A1/en active Application Filing
-
2014
- 2014-01-20 US US14/159,217 patent/US20140201621A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890172A (en) * | 1996-10-08 | 1999-03-30 | Tenretni Dynamics, Inc. | Method and apparatus for retrieving data from a network using location identifiers |
US6442755B1 (en) * | 1998-07-07 | 2002-08-27 | United Video Properties, Inc. | Electronic program guide using markup language |
US6938208B2 (en) * | 2000-01-04 | 2005-08-30 | United Video Properties, Inc. | Electronic program guide with graphic program listings |
US20020178234A1 (en) * | 2001-03-06 | 2002-11-28 | Birchley Philip Alan | Browser software |
US20030011018A1 (en) * | 2001-07-13 | 2003-01-16 | Hurley Kelly T. | Flash floating gate using epitaxial overgrowth |
US20060174314A1 (en) * | 2004-07-21 | 2006-08-03 | Jacobs Paul E | Methods and apparatus for hybrid multimedia presentations |
US20070061740A1 (en) * | 2005-09-12 | 2007-03-15 | Microsoft Corporation | Content based user interface design |
US20070260979A1 (en) * | 2006-05-05 | 2007-11-08 | Andrew Hertzfeld | Distributed processing when editing an image in a browser |
US20080155607A1 (en) * | 2006-12-20 | 2008-06-26 | United Video Properties, Inc. | Systems and methods for providing remote access to interactive media guidance applications |
Non-Patent Citations (1)
Title |
---|
BigNoseBird.com NPL captured Jan 7, 2006 https://web.archive.org/web/20060107194028/http://bignosebird.com/docs/h17.shtml. * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180210869A1 (en) * | 2017-01-26 | 2018-07-26 | Sap Se | Adaptable application variants |
US10380191B2 (en) * | 2017-01-26 | 2019-08-13 | Sap Se | Adaptable application variants |
WO2021174249A1 (en) * | 2020-02-25 | 2021-09-02 | Transposit Corporation | Markdown data content with action binding |
US11704474B2 (en) | 2020-02-25 | 2023-07-18 | Transposit Corporation | Markdown data content with action binding |
Also Published As
Publication number | Publication date |
---|---|
WO2008039612A1 (en) | 2008-04-03 |
US20080077852A1 (en) | 2008-03-27 |
US8635521B2 (en) | 2014-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8635521B2 (en) | Customizing applications in a discovery interface | |
US8015506B2 (en) | Customizing a menu in a discovery interface | |
US20080178125A1 (en) | Providing dynamic content in a user interface in an application | |
US8015580B2 (en) | Customizing virtual channels in a discovery interface | |
US11412306B2 (en) | System and method for construction, delivery and display of iTV content | |
EP2174208B1 (en) | Graphical tile-based expansion cell guide | |
US20170223420A1 (en) | Multimedia systems, methods and applications | |
JP2020115355A (en) | System and method of content display | |
US8321401B2 (en) | User interface with available multimedia content from multiple multimedia websites | |
US10602225B2 (en) | System and method for construction, delivery and display of iTV content | |
US8005838B2 (en) | Aggregating discovery data in a discovery interface | |
CN106210860B (en) | System and method for rich video navigation | |
US8112714B2 (en) | Customizing application page loading in a discovery interface | |
US20110289073A1 (en) | Generating browsing hierarchies | |
US20070074245A1 (en) | Virtual channels | |
AU2010298031A1 (en) | Method for presenting user-defined menu of digital content choices, organized as ring of icons surrounding preview pane | |
US20070214103A1 (en) | System and method for providing content over a communications network | |
KR100861215B1 (en) | User interface, method and apparatus for providind user interface informed promotion data | |
US20110314416A1 (en) | Collected media content data | |
WO2003079271A1 (en) | System and method for construction, delivery and display of itv content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034747/0417 Effective date: 20141014 Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:039025/0454 Effective date: 20141014 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |