Abstract:
A content processing device within a customer premises is connected to a first network internal to the customer premises and is also connected to a second network external to the customer premises. The content processing device is configured to download via the second network, and then to execute, instructions to detect a computing device within the first network and then to request selectively specified media content from the computing device, whereby the specified media content is retrieved from the computing device via the first network.

Description:
BACKGROUND INFORMATION 
       [0001]    Presently, many telecommunications customers receive video content via a content processing device, such as a set top box (STB). Often, such telecommunications customers operate a data network for receiving data services, e.g., the Internet, and/or for data communications within the customer premises. However, content processing devices are generally not utilized in connection with the customer&#39;s data network. This is unfortunate because devices, e.g., computers, on the customer&#39;s data network, often include multimedia content that would be enhanced by being played back through the content processing device. For example, content processing devices such as STBs are often connected to media playback devices such as high-definition televisions, stereos, and the like that are designed for enhanced playback of many forms of media content, including any combination of images, audio, video, etc. 
         [0002]    Present systems and methods for playing multimedia content through a content processing device such as an STB generally require a dedicated hardware connection, such as a universal serial bus (USB) connection, for playing the multimedia content through the STB. Using a connection such as a USB connection, many present systems and methods depend on specialized software for synchronizing content on a multimedia device with data stored on the STB. 
         [0003]    Further, some systems and methods presently exist that allow a content processing device such as an STB to obtain multimedia content by accessing a server remote from the customer premises where the STB is located, and by downloading the multimedia content over a network such as the Internet. However, both the remote server and the network likely suffer from bandwidth and availability constraints that can make it inconvenient and difficult to access desired multimedia content. Such systems and methods seem particularly ungainly when one considers that many users have within their own customer premises computing devices with multimedia content that would be enhanced by viewing through a content processing device such as an STB, and that need not be accessed through an external network. 
         [0004]    Accordingly, at present, telecommunications customers may play multi-media content stored on their computers through content processing devices such as STBs only with specialized hardware, software, and a manual effort of connecting hardware to the STB or by using a public external network such as the Internet. Telecommunications customers presently have no easy and efficient way in which to play multimedia content located on computing devices within their own customer premises utilizing any available media playback device, e.g., television sets, stereo receivers, etc., that are connected to content processing devices such as an STB. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]      FIG. 1  illustrates an exemplary system that includes a customer premises network in which user-selected multimedia content such as images and sound may be provided through to a media playback device through a content processing device attached to the customer premises network. 
           [0006]      FIG. 2  illustrates certain exemplary details of a media manager and a media agent. 
           [0007]      FIG. 3  illustrates an exemplary process for using a media agent. 
           [0008]      FIG. 4  illustrates an exemplary process for using a media manager. 
           [0009]      FIG. 5A  provides an exemplary illustration of a graphical user interface displaying a list of shows of images available for playback on an audio/video display. 
           [0010]      FIG. 5B  illustrates an exemplary display of images in a graphical user interface on an audio/video display. 
           [0011]      FIG. 5C  illustrates an exemplary display of an images in a graphical user interface on an audio/video display. 
           [0012]      FIG. 6  illustrates an exemplary process for providing a navigation map file to a media manager. 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0013]      FIG. 1  illustrates an exemplary system  100  that includes a customer premises network  101  in which user-selected media content, including any combination of images, audio, video, etc., may be provided to a media playback device  125  through a content processing device  110  attached to the customer premises network  101 . 
         [0014]    As illustrated in  FIG. 1 , customer premises network  101  includes devices within a customer premises including content processing device  110 . Content processing device  110  may be a set top box (STB) or similar device known for receiving a media signal from a network and for providing media programming, e.g., audio, video, etc., to a media playback device  125 . Content processing device  110  may be controlled by a user through a control  111 , thereby facilitating the selection and playing of content through media playback device  125 , An example of content processing device  110  is set top box model DCT6416 made by Motorola, Inc. of Schaumburg, Ill. 
         [0015]    A media manager  105 , which runs on content processing device  110 , includes computer-executable instructions that are generally stored in a computer-readable medium, e.g., a memory, of content processing device  110 , and that may be executed by a processor included within content processing device  110 . A process for using media manager  105  is discussed below with reference to  FIG. 4 . In general, media manager  105  allows a user of content processing device  110  and media playback device  125  to access and thereby view and/or listen to media content that is stored in a media database  122  associated with a computing device  120 . 
         [0016]    Control  111  is generally a remote control known for selectively communicating with content processing device  110  through wireless communications, such as infrared (IR) communications. Control  111  generally includes numeric keys for selecting channels of video programming, as well as other keys for making selections and requests according to menus displayed on computing device  120 , in addition to arrow keys and the like for selecting channels and items in a menu, changing volume levels, etc. 
         [0017]    A router  112  is used for establishing and operating, or at least connecting to, a network such as a home network or local area network (LAN), and is used to route communications within customer premises network  101 . Significantly, router  112  provides for connection not only of one or more computing devices  120 , but also allows for connection of content processing device  110 . For example, content processing device  110  may be a set-top box connected to router  112  by a coaxial cable, while computing devices  120  may be connected to router  112  using a wireless connection, a network cable such as a “Cat5” cable, or the like. Further, content processing device  110  and computing device  120  are uniquely identified by router  112  in a known manner. For example, in an embodiment, Dynamic Host Configuration Protocol (DHCP) is used to dynamically assign “private” DHCP Internet Protocol (IP) addresses to content processing device  110  and computing devices  120 , i.e., IP addresses that are only accessible to devices such as devices  110  and  120  that are on customer premises network  101 , i.e., directly connected to router  112 . 
         [0018]    Media playback device  125  may include a variety of known equipment alone or in combination, such as a video receiver, including a conventional television or a hi-definition television (HDTV), audio equipment including an amplifier and speakers, or devices that incorporate the capability to simultaneously process both video and audio data, etc. Media playback device  125  may be connected to, and receive multimedia content from, content processing device  110  in a known manner. 
         [0019]    Media agent  115  is generally included within computing device  120 . Media agent  115  includes computer-executable instructions that are generally stored in a computer-readable medium, e.g., a magnetic disk, of computing device  120 , and that may be executed by a processor included within computing device  120 . 
         [0020]    Content processing device  110  selectively communicates with gateway router  165  to send information to, and receive information from, packet switched network  160 . An interactive program guide (IPG) server  170  also selectively communicates with router  165 , sometimes via a network  160 , although this is not the case in the embodiment illustrated in  FIG. 1 . A database  175  includes program guide information and may be included in IPG server  170 , or may be part of a separate set of hardware and software. A video on demand (VOD) server  180 , known for providing telecommunications customers with video content “on demand,” is also in selective communication with content processing device  110 , generally via a packet switched network  160 . 
         [0021]    A media distribution network  150  is a network for providing media transmissions, e.g., video signal  140  such as is known. For example, network  150  may include hardware and software for providing video signal  140  via coaxial cable and/or fiber optic cable. Video signal  140  is generally provided to a media distribution network  150  from a head end  145  in a known manner. 
         [0022]    Packet switched network  160  is generally an internet protocol (IP) network. As such, network  160  generally uses one or more known protocols for transporting data, such as user datagram protocol (UDP), transport control protocol (TCP), hypertext transfer protocol (HTTP), etc. Further, network  160  may include a variety of networks such as a wide area network (WAN), e.g., the Internet, a local area network (LAN), etc. As is known, packet switched network  160  may be used to transport a variety of data, including multimedia data such as audio data and video data. Accordingly, it is to be understood that embodiments are possible in which networks  150  and  160  are in fact combined into a single network, or in which media distribution network  150  is simply omitted, wherein packet switched network  160  is used to provide video signal  140  to content processing device  110 . 
         [0023]    A gateway router  165  allows content processing device  110  to access packet switched network  160 . By communicating with router  165 , content processing device  110  is able to obtain a network address such as an internet protocol (IP) address, thereby enabling content processing device  110  to make requests to, and to receive data from, an IPG server  170 . 
         [0024]    IPG server  170  provides an interactive program guide to content processing device  110  for consumption using media playback device  125 . As is known, an interactive program guide allows viewers of device  125  to obtain information and to select content, generally by navigating and making selections using control device  111 . IPG server  170  generally includes a processor and a memory, as well as a computer readable medium such as a disk for storing data, e.g., interactive program guide data, to be provided to content processing device  110 . IPG server  170  further provides media manager  105  for download to content processing device  110 . Database  175 , mentioned above, may provide interactive program guide content. 
         [0025]    In the illustrated embodiment, fiber optic cable is used to provide both data and a video signal  140  to customer premises network  101 , including to content processing device  110 . As is known, an optical line terminal (OLT)  135  may serve as a terminus for an optical network or an optical line. OLT  135  may provide data, including video signal  140 , to one or more optical network terminals (ONTs)  130 . ONT  130  is generally situated adjacent to a customer premises, for the purpose of providing data received over an optical line to customer premises network  101 , including content processing device  110 . Accordingly,  FIG. 1  illustrates a hybrid network system  100  in which video signal  140  transported over media distribution network  150 , and also data transported over packet switched network  160 , are received by customer premises network  101  through a fiber optic line. However, it should be understood that embodiments are possible in which content processing device  110  receives both data and audio/video communications via media other than fiber optic cables to customer premises network  101 . 
         [0026]    Computing devices such as content processing device  110 , computing device  120 , IPG server  170 , VOD server  180 , etc. may employ any of a number of computer operating systems known to those skilled in the art, including, but by no means limited to, known versions and/or varieties of the Microsoft Windows® operating system, the Unix operating system (e.g., the Solaris® operating system distributed by Sun Microsystems of Menlo Park, Calif.), the AIX UNIX operating system distributed by International Business Machines of Armonk, N.Y., and the Linux operating system. Computing devices may include any one of a number of computing devices known to those skilled in the art, including, without limitation, a computer workstation, a desktop, notebook, laptop, or handheld computer, or some other computing device known to those skilled in the art. 
         [0027]    Content processing device  110  generally is a specialized device for receiving video signals  140  from head end  145  via network  150 , and may be provided with a proprietary or specialized operating system other than those enumerated above. For example, in one embodiment, content processing device  110  is an STB provided with a real time operating system (RTOS) such as is known. However, it is to be understood that content processing device  110  may be a computing device such as one of those enumerated above, so long as the computing device is capable of receiving video signals  140  from network  150 , and also is capable of storing an executing the instructions included in media manager  105 . 
         [0028]    Computing devices generally each include instructions executable by one or more computing devices such as those listed above. Computer-executable instructions may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies known to those skilled in the art, including, without limitation, and either alone or in combination, Java™, C, C++, Visual Basic, Java Script, Perl, etc. In general, a processor (e.g., a microprocessor) receives instructions, e.g. from a memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of known computer-readable media. 
         [0029]    A computer-readable medium includes any medium that participates in providing data (e.g., instructions), which may be read by a computer. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random access memory (DRAM), which typically constitutes a main memory. Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to the processor. Transmission media may include or convey acoustic waves, light waves and electromagnetic emissions, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. 
         [0030]      FIG. 2  illustrates exemplary details of media manager  105  and media agent  115 , according to an embodiment. 
         [0031]    As seen in  FIG. 2 , media manager  105  includes a navigation module  205  and a graphical user interface (GUI)  210 . Navigation module  205  is used to allow media manager  105  to communicate with media agent  115 . GUI  210  is rendered according to instructions from media manager  105  and is used to display menu options and information about multi-media content available for playback on device  125 . 
         [0032]    Media agent  115  includes a media server module  215 , which communicates with media manager  105 . A map generator  225  generates a navigation map file  220 , which in turn is provided by media server module  215  to navigation module  205  Navigation map file  220  is used by navigation module  205  to render GUI  210 . 
         [0033]    To generate navigation map file  220 , map generator  225  accesses a user interface (UI) template  230 , a hot spots mask  235 , images  240 , and audio  245 , all or some of which are generally stored within media database  122 . Navigation map file  220  may also include a link to a source for streaming media content  250  that is accessible through packet switched network  160 . For example, many sources for streaming audio and/or video are presently known on the Internet. 
         [0034]    Each time a user navigates from one screen or display in GUI  210  to another, media server module  215  provides a new navigation map file  220  to navigation module  205 . That is, for each distinct combination of navigational elements such as menu items and arrow icons, etc., map generator  225  generates a distinct navigation map file  220 , which is provided to navigation module  205  and rendered in GUI  210 . However, as discussed elsewhere herein, a single navigation map file  220  may be used to display multiple images  240  or to play multiple files of audio  245  according to a playlist or slideshow included in the navigation map file  220 . Similarly, multiple sources of streaming media content  250  may be included in a navigation map file  220 .  FIGS. 5A ,  5 B, and  5 C illustrate examples of different combinations of menu items, arrow icons, etc. in GUI  210 . 
         [0035]    In general, navigation map file  220 , generated by map generator  225 , includes information about images  240 , audio  245 , and streaming media content  250  to available for viewing and/or listening using media playback device  125 . Navigation map file  220  is further used to provide user access to images  240 , audio  245 , and streaming media content  250 . That is, navigation module  205  accesses navigation map file, which will have been downloaded from media server module  215 , both when displaying a list or menu of content  240 ,  245 , and/or  250  that a user may access, and when such content  240 ,  245 , and/or  250  is actually accessed and viewed and/or listened to by a user of media playback device  125 . 
         [0036]    Navigation in GUI  210 , e.g., selections to access images  240 , audio  245 , or streaming media  250 , or to access further information about images  240 , audio  245 , or streaming media  250  that are available for viewing and/or listening, may be made by accessing hotspots in GUI  210 . A hotspot, as is known, is a special portion of a graphical user interface such as GUI  210  that, when selected, links to a new display or provides particular functionality within the graphical user interface. Hotspots are indicated in navigation map file  220  as illustrated below with respect to Table 1, and are thereby included in GUI  210 , according to hot spots mask image  235 . 
         [0037]    Template image  230  provides formatting for information displayed in GUI  210 , including images  240 , audio  245 , streaming media  250 , as well as menu items, instructions etc. 
         [0038]    Hot spots mask image  235  may be overlaid on template image  230  so that selected portions of template image  230  are covered, or masked, by hot spots mask image  235 . The portions of template image  230  thus masked generally relate to navigational elements of GUI  210 , such as menu items, arrow icons, and the like. Generally portions of hot spots mask image  235  are selectively overlaid on template image  230  to provide a user with information concerning navigation within GUI  210  that, when highlighted by a user, may be used to provide user input through control  111 . For example, by noting the differences in the menu items provided in  FIGS. 5A and 5B  respectively, it can be seen that for each of the two instances of GUI  210  shown in  FIGS. 5A and 5B  different portions of a hotspot mask image  235  could be deployed. A user may navigate through various hotspots in GUI  210  using arrow keys or the like provided on control  210 . As mentioned below, among other things, hotspots may provide a mechanism for users to navigate through presentations of images  240 , audio  245 , and/or streaming media  150 . 
         [0039]    As mentioned above, navigation map file  220  includes a set of information used to format the display of menu options and information about multi-media content in GUI  210 . These instructions are assembled on computer  120  by map generator  225 , including content assembled from UI template image  230  and hot spots mask image  235 . Navigation map file  220  generally contains tags or instructions indicating a specific portion or portions of hot spots mask  235  to be displayed in GUI  210 , for example, as illustrated below in Table 1. 
         [0040]    Navigation map file  220  generally lists menu items and locations in which such menu items should be displayed in GUI  210 . Navigation map file  220  further identifies images  240  and/or links to audio  245  to be included in the display in GUI  210 , and provides information, e.g., path information, a uniform resource locator (URL), etc., concerning where such images  240  and/or audio  245  can be located in storage associated with computer  120 . Navigation map file  220  may thereby include a playlist, slideshow, or the like according to which media such as images  240 , audio  245 , and/or streaming media  150  may be played and/or displayed. In addition, navigation map file  220  includes information concerning specific keys on control device  111 , and actions to be taken when such keys are pressed. Further, navigation map file  220  generally includes hot spots mask  235 , or information, e.g., path information, according to which hot spots mask  235  can be located. Hot spots mask image  235 , as explained above, provides a mask for locations in GUI  210  where there are links that may be activated by a user of control  111 . Table 1 below provides an exemplary layout for a navigation map file  220  providing for access to audio  245  (“Sound [0 . . . n]”). 
         [0000]    
       
         
               
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 File Section 
                 Attribute 
                 Data Type 
                 Values 
               
               
                   
               
             
             
               
                 NavigationMapHdr 
                 FileType 
                 char 4 
                 “NMAP” 
               
               
                   
                 Version 
                 char 4 (2 
                 “0100” 
               
               
                   
                   
                 major, 2 minor) 
               
               
                   
                 Header Structure size 
                 Int32 
                 sizeof(NavigationMapHdr) 
               
               
                   
                 Template image 
                 Byte[260] 
                 Relative Path of the Image File 
               
               
                   
                 Mask image 
                 Byte[260] 
                 Relative Path of the Mask File 
               
               
                   
                 Number of Hot Spots 
                 Byte 
                 0–255 
               
               
                   
                 Number of Remote 
                 Byte 
                 0–255 
               
               
                   
                 Buttons 
               
               
                   
                 Number of Actions 
                 Byte 
                 0–255 
               
               
                   
                 Number of Sounds 
                 Byte 
                 0–255 
               
               
                   
                 DefaultButton 
                 Byte 
                 0–255, First Focus 
               
               
                   
                 TimeOutAction 
                 Byte 
                 0–255, Number of action to perform after 
               
               
                   
                   
                   
                 time out 
               
               
                   
                 Size of HotSpot 
                 Int16 
                 0–64K 
               
               
                   
                 Size of RemoteButton 
                 Int16 
                 0–64K 
               
               
                   
                 Size of Action 
                 Int16 
                 0–64K 
               
               
                   
                 Size of Sound 
                 Int16 
                 0–64K 
               
               
                 HotSpot [0 . . . n] 
                 X 
                 Int16 
                 0–575 
               
               
                   
                 Y 
                 Int16 
                 0–479 
               
               
                   
                 Width 
                 Int16 
                 0–575 
               
               
                   
                 Height 
                 Int16 
                 0–479 
               
               
                   
                 ButtonLeft 
                 Byte 
                 Index to HotSpot # 1–255, 0 = Don&#39;t move 
               
               
                   
                 ButtonRight 
                 Byte 
                 Index to HotSpot # 1–255, 0 = Don&#39;t move 
               
               
                   
                 ButtonUp 
                 Byte 
                 Index to HotSpot # 1–255, 0 = Don&#39;t move 
               
               
                   
                 ButtonDown 
                 Byte 
                 Index to HotSpot # 1–255, 0 = Don&#39;t move 
               
               
                   
                 OkAction 
                 Byte 
                 Index to Action # 1–255, 0 = No Action 
               
               
                   
                 Sound 
                 Byte 
                 Index to Sound # 1–255, 0 = No Sound 
               
               
                 RemoteButton 
                 Keycode 
                 Int32 
                 a number from TVKeys Enum 
               
               
                 [0 . . . n] 
                 PressAction 
                 Byte 
                 index to Action # 1–255, 0 = No Action 
               
               
                   
                 Sound 
                 Byte 
                 Index to Sound # 1–255, 0 = No Sound 
               
               
                 Sound [0..n] 
                 FilePath 
                 char[260] 
                 Relative Path for Sound File 
               
               
                   
                   
                   
                 1 - Go to Another Map, 2 = Fire Event to 
               
               
                 Action [0 . . . n] 
                 ActionType 
                 Byte 
                 App, 255 = Exit 
               
               
                   
                   
                   
                 If ActionType = 1 put zero-delimited Path 
               
               
                   
                 ActionData 
                 Byte[260] 
                 String 
               
               
                   
                   
                   
                 If ActionType = 2 put data for event 
               
               
                   
                   
                   
                 If ActionType = 255 put integer exit code 
               
               
                   
               
             
          
         
       
     
         [0041]    Images  240  maybe any kind of images that may be stored upon a computer-readable medium. For example, images  240  may include files stored on in any one of a number of known formats in computing device  120 , e.g., joint photographic experts group (JPEG) format, graphic interchange format (GIF), etc. because content processing device  110 , e.g., a set-top box, may have a limited memory capacity, for inclusion in navigation map file  220  it is generally desirable to convert images  240  to a compression format that requires less storage space, such as Portable Network Graphics (PNG) format. PNG format is further suitable because, often, images  240  are displayed in a thumbnail format, e.g., the first image  240  in a slideshow presentation may be displayed in a menu in GUI  210  to represent the slideshow presentation, or all images  240  in a slideshow presentation may be displayed in GUI  210  in thumbnail format to provide the user with an overview of the slideshow presentation, and to allow the user to select particular slides or images  240  in the slideshow presentation that the user wishes to view. 
         [0042]    Similarly, audio  245  maybe any kind of audio file that may be stored upon the computer-readable medium. For example, audio  245  may include files in any one of the number of known formats, e.g., MP3, etc. 
         [0043]    Further, streaming media  250  may be in any one of a number of known formats for streaming media, such as MP3, a standard promulgated by the Motion Picture Experts Group (MPEG), the QuickTime format promulgated by Apple Computer, Inc. of Cupertino, Calif., etc. Sources for streaming media  250  are presently known. For example, radio stations and other providers of audio content frequently provide streaming audio media  250  in the form of an MP3 stream. Similarly, audio content  245  may be provided in the form of a “podcast” or the like in which a file of audio content, e.g., in MP3 format, WAV format, etc. may be downloaded via a network such as packet switched network  160  for playback. Further, although not illustrated in  FIG. 2 , navigation map file  220  could include video content. 
         [0044]      FIG. 3  illustrates an exemplary process  300  for using media agent  115 . 
         [0045]    In step  305 , media agent  115  is installed on computing device  120 . In one embodiment, this installation is accomplished by downloading media agent  115  from IPG server  170 . For example, a web page provided by IPG server  170  could provide an option to access media agent  115 , thereby initiating a download of media agent  115  when such option was selected by a user. Of course, media agent  115  could be installed on computing device  120  in a variety of other ways, e.g., from a computer-readable medium such as a CD-ROM or a DVD, etc. 
         [0046]    Next, in step  310 , media agent  115  is instantiated on computing device  120 . It is to be understood that in most instances of process  300 , step  310  will be the first step executed, because media agent  115  will have already been downloaded to or installed on computing device  120  and will be stored on a computer readable medium included within or associated with computing device  120 . Media agent  115  is a generally instantiated by a user selecting an icon, a menu item, etc. displayed on a display of computing device  120 . 
         [0047]    Next, in step  315 , media agent  115  displays a menu of options on a display of computing device  120 . This menu generally includes options to create a play list of audio  245  and/or a show of the images  240 , or to select a source for streaming media content  250 . Creation of such image shows and play lists is known, and generally involves associating different files of audio  245  together in a sequence or associating different files of images  240  together in a sequence, respectively. Files of images  240  or audio  245  may then be displayed or played in the sequence, or may be played or displayed randomly. In any event, it is known for computing device  120  to store such sequences for later retrieval and display or playing of files of images  240  or audio  245 . As noted above, navigation map file  220  includes information for retrieving files of images  240  and/or audio  245  and thereby may include a playlist, a slideshow, or the like. 
         [0048]    Next, in step  320 , it is determined whether a user has selected a menu option to create a play list of audio  245 . If so, process  300  proceeds to step  325 . Otherwise, process  300  proceeds to step  330 . 
         [0049]    In step  325 , media agent  115  creates a play list of audio  245 , as is it is known to do, and as discussed above with respect to step  315 . For example, media agent  115  may provide a user with the option to select files of audio  245  included in a file system associated with a computing device on which media agent  115  is installed. Media agent  115  may further provide the user with the option to associate such files together in a playlist, and to specify a sequence for the playback of such files, which sequence may also be included in the playlist. The playlist may then be included in a navigation map file  220 . Following step  325 , process  300  proceeds to step  330 . 
         [0050]    In step  330 , it is determined whether a user has selected a menu option to create a show of images  240 . If so, process  300  proceeds to step  335 . Otherwise, process  300  proceeds to step  340 . 
         [0051]    In step  335 , media agent  115  creates a show of images  240 , as it is known to do, and as is discussed above with respect to step  315 . For example, media agent  115  may provide a user with the option to select files of images  240  included in a file system associated with a computing device on which media agent  115  is installed. Media agent  115  may further provide the user with the option to associate such files together in a slideshow, and to specify a sequence for the playback of such files, which sequence may also be included in the slideshow. The playlist may then be included in a navigation map file  220 . Following step  335 , process  300  proceeds to step  340 . 
         [0052]    In step  340 , it is determined whether a user has selected a menu option to select a source for streaming media  250 . If so, process  300  proceeds to step  345 . Otherwise, process  300  proceeds to step  340 . 
         [0053]    In step  345 , media manager  115  allows the user to select a source for streaming media content  250 , For example, media manager  115  may display a list of such sources from which a user may select, or may provide a form for allowing the user to identify such source, e.g., according to a URL or the like. 
         [0054]    In step  350 , it is determined whether input has been received from a user indicating that media agent  115  should be exited. If not, process  300  returns to step  315 . Otherwise, process  300  ends. 
         [0055]      FIG. 4  illustrates an exemplary process  400  for using media manager  105 . 
         [0056]    In step  405 , media manager  105  is downloaded to content processing device  110 . Media manager  105  is generally downloaded in the form of a compiled executable computer program written according to the requirements of an operating system of content processing device  110 . For example, content processing device  110  may include the real-time operating system (RTOS), and media manager  105  may include program code written in the C/C++ or Java™ programming languages. 
         [0057]    Next, in step  410 , media manager  105  is instantiated on content processing device  110 . Generally, media manager  105  is instantiated by a user making a selection with control  111 , e.g., by selecting an option in an interactive program guide displayed on audio/video display  125 . Because content processing device  110 , e.g., a set-top box, may have relatively limited amounts of memory and/or storage space, in present embodiments it is preferable that media manager  105  is downloaded to content processing device  110  each time media manager  105  is to be instantiated on content processing device  110 . Accordingly, in many embodiments, steps  405  and  410  are combined, such that the selection of media manager  105  from a menu in an interactive program guide or the like causes the download of media manager  105  to content processing device  110 , and also causes media manager  105  to be instantiated on content processing device  110 . However, embodiments are possible in which media manager  105  is stored in content processing device for multiple uses, e.g., media manager  105  may persist in a memory of content processing device  110  even when a user has ended use of media manager  105  or even turned content processing device  110  off. 
         [0058]    Next, in step  415 , a user selects an agent device, e.g., a computing device  120 , to access images  240  and audio  245 . For example, embodiments are possible in which images  240  and audio  245  are stored on a computer-readable medium in content processing device  110 . Further, in addition to content processing device  110 , it is possible that multiple computing devices  120  be connected to router  112 , rather than the single computing device  120  shown in  FIG. 1 . Accordingly, available agent devices are listed and a displayed in GUI  210  audio/video display  125 , from which list a user may select in step  415 . 
         [0059]    Next, in step  420 , navigation module  205  retrieves navigation map file  220  from media server module  215 , and uses information contained therein to display a menu of options for a user in GUI  210 . An exemplary process for constructing and providing navigation map file  220  to media manager  105  is discussed below with reference to  FIG. 6 . Although construction and retrieval of navigation map file  220  will not be called out as a separate step hereafter in the description of process  400  each time a description is provided of information being rendered and displayed in GUI  210 , it is to be understood that navigation map file  220  is generally used to display information, e.g., menu items, navigation arrows, images  240 , audio  245 , etc., in GUI  210 , and that a distinct navigation map file  220  is generally required for each distinct rendering in GUI  210 . 
         [0060]    Next, in step  425 , navigation module  205  determines whether a user has provided input indicating that the user wishes to see a list of available shows of images  240 . If such input has been provided, process  400  proceeds to step  428 . Otherwise, process  400  proceeds to step  440 . 
         [0061]    In step  428 , a menu or list of shows of images  240  available for playback is displayed on a display of audio/video display  125 .  FIG. 5A  provides an exemplary illustration of GUI  210  displaying a list of shows of images  240  available for playback on audio/video display  125 . Further, navigation module  205  determines whether input has been received from a user indicating a particular show of images  240  that the user would like to have played back on a display of audio/video display  125 . If such input has been received, process  400  proceeds to step  430 . Otherwise, process  400  proceeds to step  440 . 
         [0062]    In step  430 , navigation module  205  retrieves a navigation map file  220  including a show of images  240  from a media server module  215 , and causes images  240  to be displayed in GUI  210  randomly or in a sequence as provided for in the navigation map file  220 . Navigation map file  220  may also provide icons, navigation arrows, menus, buttons and the like to allow a user to navigate through images  240 . 
         [0063]      FIG. 5B  illustrates an exemplary display of images  240 . Note that, by using control  111 , a user can cause a “slideshow” of images to  240  to be displayed in GUI  210  on audio/video display  125 . Following the display of one or more images  240  as may be determined by the programming of navigation module  205 , control proceeds to step  435 . 
         [0064]    Next, in step  435 , it is determined whether input has been received from a user to exit the show of images  240  that is being played according to step  430 . If not, control returns to step  430 . Otherwise, control proceeds to step  440 . 
         [0065]    In step  440 , navigation module  205  determines whether a user has provided input indicating that the user wishes to see a list of available play lists of audio  245 . If such input has been provided, process  400  proceeds to step  443 . Otherwise, process  400  proceeds to step  455 . 
         [0066]    In step  443 , a menu or list of play lists of audio  245  available for playback is displayed on a display of audio/video display  125 . Such a menu or list may be similar to the menu of a list of shows of images  240  illustrated in  FIG. 5A . Further, navigation module  205  determines whether input has been received from a user indicating a particular play list of audio  245  that the user would like to have played back through media playback device  125 . If such input has been received, process  400  proceeds to step  445 . Otherwise, process  400  proceeds to step  455 . 
         [0067]    In step  445 , navigation module  205  retrieves a navigation map file  220  including a play list of audio  245  from media server module  215 , and causes audio  245  to be played through media playback device  125  randomly or in a sequence as provided for in the navigation map file  220 . At the same time, GUI  210  may display information about audio  245  being played. Navigation map file  220  may also provide icons, navigation arrows, menus, buttons and the like to allow a user to navigate through audio  245 . Note that, by using control  111 , a user can cause a “play list” of audio  245  to be played through media playback device  125 . Following the playing of one or more audio files  245  as may be determined by the programming of navigation module  205 , control proceeds to step  450 . 
         [0068]    Next, in step  450 , it is determined whether input has been received from a user to exit the play list of audio  245  that is being played according to step  445 . If not, control returns to step  445 . Otherwise, control proceeds to step  455 . 
         [0069]    In step  455 , navigation module  205  determines whether a user has provided input indicating that the user wishes to see a list of available sources of streaming media  250 . If such input has been provided, process  400  proceeds to step  460 . Otherwise, process  400  proceeds to step  475 . 
         [0070]    In step  460 , a menu or list of available sources of streaming media  250  is displayed on a display of audio/video display  125 . Such a menu or list may be similar to the menu of a list of shows of images  240  illustrated in  FIG. 5A . Further, navigation module  205  determines whether input has been received from a user indicating a particular sources of streaming media  250  that the user would like to have played back through media playback device  125 . If such input has been received, process  400  proceeds to step  465 . Otherwise, process  400  proceeds to step  475 . 
         [0071]    In step  465 , navigation module  205  retrieves a navigation map file  220  including a link to one or more available sources of streaming media  250  from media server module  215 , and causes streaming media  250  to be played to media player  115 , e.g., upon a user selection of a streaming media  250  source. It will be understood that streaming media  250  may be provided to media player  115  through content processing device  110  in much the manner that content processing device  110  may provide video on demand to media player  115 . 
         [0072]    Next, in step  470 , it is determined whether input has been received from a user to exit the play of streaming media  250  that is being played according to step  465 . If not, control returns to step  465 . Otherwise, control proceeds to step  475 . 
         [0073]    In step  475 , navigation module  205  determines whether input has been received from a user indicating that the user wishes to select a new agent device for accessing audio  245  and/or images  240 . For example, a user could select a menu option as shown in  FIG. 5A . If input to select a new agent device has been received, process  400  proceeds to step  460 . Otherwise, process  400  proceeds to step  465 . 
         [0074]    In step  480 , navigation module  205  except input to select a new computing device  120  as an agent device for providing images  240  and audio  245 . As explained above, navigation module  205  may communicate with any computing device  120  that is connected to router  112  and that includes media agent  115 . 
         [0075]    In step  485 , navigation module  205  determines whether input has been received from a user to exit media manager  105 . If such input has been received, process  400  ends. Otherwise, process  400  returns to step  420 . 
         [0076]      FIG. 6  illustrates a process  600  for providing a navigation map file  220  to media manager  105 . 
         [0077]    In step  605 , media server module  215  receives from navigation module  205  a request for navigation map file  220 . This request is generally sent according to HTTP in customer premises network  101 . Once received by navigation module  205 , the request is provided to map generator  225  with instructions to construct navigation map file  220 . 
         [0078]    Next, in step  610 , map generator  225  selects UI template image  230  to be used in generating navigation map file  220 . UI template image  230  is generally selected according to parameters provided to media server module  215  in step  605 , i.e., according to a specification of particular information, e.g., images  240 , audio  245 , etc. that a user has requested by selecting a menu item, a navigation arrow, etc. in GUI  210 . As noted above, UI template image  230  incorporates both images  240  as well as navigational elements such as menu items, navigational buttons, etc. to be displayed in GUI  210 . 
         [0079]    Next, in step  615 , map generator  225  selects hotspot mask image  235 , or portions thereof, to be included in navigation map file  220 . For example, in an embodiment, as shown in Table 1, navigation map file  220  specifies a number of hotspots, and the locations of the hotspots, to be rendered in GUI  210 . Generally, the portions of hotspot mask image  235  specified in navigation map file  220  are specified according to the UI template image  230  selected in step  610  above. That is, different displays in GUI  210 , having different navigational elements in different locations, require different hotspots to be rendered in GUI  210 . 
         [0080]    Next, in step  620 , map generator  225  assigns actions to each of the hotspots specified in step  615 . Generally actions are associated either with hotspots, that are assigned in this step  620 , or with buttons on control  111 , that are assigned as described below with respect to step  625 . Examples of an action include navigating to a new display in GUI  210 , exiting media manager  105 , etc. As can be seen in Table 1, according to an embodiment, navigation map file  220  generally specifies a number of actions to be associated with hotspots in GUI  210 . Further, navigation map file  220  generally specifies what the actions are, and indexes each action to a hotspot. 
         [0081]    Next, in step  625 , map generator  225  assigns buttons on control  111  to actions. For example, a right arrow key could be assigned to cause navigation to a “next” screen in GUI  210  to occur, and they left arrow key could be assigned to cause navigation to a “previous” screen in GUI  210  to occur. Accordingly, actions may be identified in navigation map file  220  as seen, for example, in Table 1 above. 
         [0082]    Next, in step  630 , map generator  225  assigns sounds to actions. For example, upon selection of a certain action, e.g., by selecting a hotspot, it may be desirable to play a beep or other similar sound to a user. Accordingly, as seen, for example, in Table 1, sound files may be included in navigation map file  220 . 
         [0083]    Generally after step  630 , navigation map file  220  is complete. Accordingly, following step  630 , in step  635 , navigation map file is provided to navigation module  205 , generally via customer premises network  101  via HTTP. 
         [0084]    Following step  635 , process  600  ends. 
       CONCLUSION 
       [0085]    With regard to the processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claimed invention. 
         [0086]    Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent to those of skill in the art upon reading the above description. The scope of the invention should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the arts discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the invention is capable of modification and variation and is limited only by the following claims. 
         [0087]    All terms used in the claims are intended to be given their broadest reasonable constructions and their ordinary meanings as understood by those skilled in the art unless an explicit indication to the contrary in made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary.