US8893003B2 - Multi-media center for computing systems - Google Patents

Multi-media center for computing systems Download PDF

Info

Publication number
US8893003B2
US8893003B2 US13/677,004 US201213677004A US8893003B2 US 8893003 B2 US8893003 B2 US 8893003B2 US 201213677004 A US201213677004 A US 201213677004A US 8893003 B2 US8893003 B2 US 8893003B2
Authority
US
United States
Prior art keywords
media
menu
module
input
modules
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.)
Active
Application number
US13/677,004
Other versions
US20130167032A1 (en
Inventor
Thomas Michael Madden
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Priority to US13/677,004 priority Critical patent/US8893003B2/en
Publication of US20130167032A1 publication Critical patent/US20130167032A1/en
Application granted granted Critical
Publication of US8893003B2 publication Critical patent/US8893003B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/4443
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer

Definitions

  • Digital data can also be transported electronically, for example, as digital files or digital streams.
  • digital data can be stored as a “digital media” (e.g., a digital file, a media-player which stores digital data).
  • Digital media (or “media”) can be accessed by a variety of computing devices (e.g., personal computers, media-players, personal assistants, wireless phones).
  • digital media includes at least digital content (or “content”) that represents the actual content of information stored in a digital form.
  • digital content can, for example, be the content of a printed book, a picture, a song in audible form and/or in audio-visual forms (e.g., a rock video), movies, sports broadcasts, news in a variety of forms including text, audio, or audio-visual.
  • audio-visual forms e.g., a rock video
  • Digital media can be packaged with media-player(s) and/or other application programs.
  • Apple iPod media-player available from Apple Computers, Inc. combines a digital audio player and a portable hard drive for storing the media.
  • iTunes or iPhoto which are also available from Apple Computers, Inc, can be packaged with media-players and applications or tools that can be used for organization, searching and retrieval of media (e.g., organizing photo, obtaining lists of music or films from a database, and downloading music or films).
  • Packaging digital media with media-players, tools, or other applications is a relatively recent development. Nevertheless, given the popularity of digital media, numerous forms of media and media-players have been developed and are in use today.
  • the invention pertains to techniques for combining various “media-components” through use of a “multi-media center” which can be accessed via a central-user-interface.
  • the invention can be implemented in numerous ways, including a method, an apparatus, a computer readable medium, a computer system, or a signal embodied in a carrier wave. Several embodiments of the invention are discussed below.
  • one embodiment can, for example, include at least: configuring a plurality of media-modules for the multi-media center, wherein the plurality of media-modules represents a media-component in the multi-media-center, wherein each of the plurality of media-components includes at least one of digital media and an application program configured to access digital media; initiating a module-controller configured to communicate with each of the plurality of media-modules; receiving by the module-controller an input associated with the multi-media center; identifying at least one of the plurality of media-modules to generate a response to the input received by the module-controller; forwarding the input to the identified media-module; and receiving, at the module-controller, a response to the input as determined by the identified media-module.
  • one embodiment can, for example, can include at least at least one processor; a plurality of media-modules, wherein the media-modules include a first media-module that can receive input and generate output; and a module-controller configured to communicate directly with each of the plurality of media-modules.
  • the module-controller can further operate to: receive input associated with the multi-media center; forward the input to a first media-module; process and generate an output, by the first media-module, in response to the input; receive the output from the first media-module in response to the input; and perform at least one operation based on the output, where the at least one operation is controlled by the module-controller.
  • the plurality of media-modules do not communicate with each other or with a multi-media center user and do not control the output.
  • the computer readable medium includes at least: computer program code for determining, based on a plurality of media-modules that each respectively represent at least one media-component, a central-user-interface that is used to access the plurality of media-components provided by the multi-media center; computer program code for receiving input associated with the central-user-interface; computer program code for determining whether to forward the input to one of the media-modules; and computer program code for forwarding the input to a first media-module of the plurality of media-modules when the determining determines to forward the input by one of the media-modules.
  • the plurality of media-modules are isolated from each other and do not directly communicate with each other or with a multi-media center user, but communicate with a module-controller.
  • one embodiment of the invention can, for example, include at least: determining, based on a plurality of media-modules that each respectively represent at least one media-component, a central-user-interface that is used to access the plurality of media-components provided by the multi-media center; receiving input associated with the central-user-interface; determining whether to forward the input to one of the media-modules; and forwarding the input to a first media-module of the plurality of media-modules when the determining determines to forward the input by one of the media-modules.
  • the plurality of media-modules are isolated from each other and do not directly communicate with each other or with a multi-media center user, but communicate with a module-controller.
  • one embodiment can, for example, can include at least a plurality of media devices, where the media devices include a first media device that can receive input and generate output, and a centralized controller configured to communicate directly with each of the plurality of media devices.
  • the centralized controller is configured to: receive input associated with the multi-media center; determine a first media device of the plurality of media device to receive the input; forward the input to the first media device; and process and generate an output, by the first media device, in response to the input.
  • FIG. 1 depicts a computing environment capable of providing a multi-media-center in accordance of one embodiment of the invention.
  • FIG. 2A depicts a method for providing a multi-media center in accordance with one embodiment of the invention.
  • FIG. 2B depicts a method for processing input associated with a multi-media center in accordance with one embodiment of the invention.
  • FIG. 3 depicts in greater detail an architectural view for a multi-media center program that can provide access to multiple media-components via a central-user-interface in accordance with one embodiment of the invention.
  • FIGS. 4A-4B depict a method for providing a multi-media center which can be accessed to a central-user-interface in accordance with another embodiment of the invention.
  • various “media-components” are provided in a “multi-media center” which can be accessed via a central-user-interface.
  • a “media-component” as used herein refers to digital media and/or application(s) used to access digital media.
  • the “multi-media center” can, for example, be provided as a program on a computer system that includes one or more computers.
  • the central-user-interface can graphically represent each media-component (e.g., as a selectable item in a main menu).
  • User input can be entered, for example, by a keyboard and/or mouse connected to a computer system, or it can be entered remotely (e.g., wirelessly and/or over a network).
  • a media-module can include or obtain data pertaining to a particular media-component (e.g., user interface menus, lists of digital data in the media-component).
  • a media-module can also identify media-player(s) and access information related to their media (e.g., music or movie lists).
  • the media-modules do not directly control output. Instead, a module-controller communicates with various media-modules and effectively controls output generated in response to user input. The module-controller can forward the input to various media-modules for processing and receive output from them.
  • the module-controller can use the output generated by the media-modules to perform the appropriate response (e.g., manipulate display of menus or presentation of media).
  • the media-modules do not directly control the output of the multi-media center even though they may process the input and effectively generate the appropriate response.
  • media-modules can be isolated from each other. As a result, the media-modules cannot communicate with each other, but can be added or removed dynamically as they do not affect each other or a main (base) program that effectively runs the multi-media center.
  • each media-module includes or can obtain information needed to construct menus for its associated media-component.
  • media-modules can construct their menus (or submenus) by using an User Interface Library (or library). More particularly, media-modules can obtain a template or other tools (e.g., metric utilities, windows, views, widgets, sounds) from the User Interface Library (or library).
  • each media-module may select a user interface template (e.g., menus, window) from the User Interface Library (or library) and subsequently fill (or populate it) with the appropriate information (e.g., menu items).
  • the media-module can identify media-player(s) that can be used to present digital data associated with a media-component, and access information related to their media (e.g., music or movie list).
  • the module-controller initiates the media-player associated with a media-component and subsequently forwards any input associated with presentation of media directly to the media-player for processing.
  • the familiar look and feel of media-players can be preserved.
  • FIG. 1 depicts a computing environment 100 capable of providing a multi-media-center in accordance with one embodiment of the invention.
  • the multi-media-center can combine a plurality of media-components each including digital data and/or application(s) that can access digital data.
  • the digital data associated with a media-component can be presented in one or more forms (e.g., display pictures, play music while displaying pictures, play a movie or a song).
  • These media-components can be readily available and/or generally known (e.g., music player (e.g., iTunes), photo viewer (e.g., iPhoto), DVD player) or they can be developed for the multi-media-center.
  • each media-component includes digital data which can be presented in one or more forms and/or one or more application(s) (e.g., media-player) that can be used to manipulate digital data (e.g., present, organize, retrieve).
  • the computing environment 100 can provide a “central-user-interface” that can serve as a user interface for accessing all the media-components provided in the multi-media center.
  • a main menu 104 displayed on a display 102 can be part of the central-user-interface for a multi-media center provided by the computing system 108 .
  • user input may be entered via an input device 106 (e.g., keyboard, mouse) connected to a computing system 108 , and/or via a remote device 107 (e.g., remote controller, media-player with remote control capabilities) whether directly or via a network.
  • the computing system 108 can, for example, be a computer, or a plurality of computers (e.g., a cluster).
  • the computing system 108 includes at least one processor and memory (not shown).
  • the main menu 104 can, for example, include a main menu-items (M 1 . . . M n ) for each of the media-components provided by the multi-media center.
  • a menu item M i in the main menu 104 can represent a media-component M i .
  • a media-module is configured in the computing system 108 for each of the media-components (M 1 -M n ) provided by the multi-media center. This means that a media-module 110 is provided for media-component M represented in the main menu 104 (M 1 ) and available for access.
  • the media-module 110 can include the information needed to construct and display various menus (or submenus) for the media-component M i .
  • media-module 110 can provide a main (or base) menu for the media-component M.
  • the media-module 110 (M i ) can provide submenus for the media-component M i if its submenu is selected, and so on.
  • the media-module 100 can obtain data from a local storage 116 or a remote storage 118 (e.g., database). Typically, the data pertains to the media-component M.
  • the modular design of the architecture demonstrated in FIG. 1 allows configuring a plurality of media-modules for various media-components.
  • the media-module can provide a set of self-contained menus for a media-component.
  • media-modules can be isolated from each other, so that they can be added or removed from the multi-media center without interfering with each other or a main program that controls the multi-media center.
  • the media-modules communicate with a multi-media-controller (or module-controller) 120 .
  • the multi-media-controller 120 can effectively control the centralized user interface (e.g., the menu displayed on display 102 ).
  • the multi-media-controller (or module-controller) 120 can also serve as a central point for receiving input associated with the multi-media center (e.g., input received from the input 106 , or remote device 107 ). More particularly, the multi-media-controller 120 can forward an input 122 to one of the media-modules (M 1 . . . M n ), or to a media-player (or other applications) 112 that process the input in response to input 122 .
  • the media-modules (M 1 . . . M n ) can generate output (e.g., menu, submenu, request to activate a media-player).
  • output e.g., menu, submenu, request to activate a media-player.
  • the multi-media-controller 120 processes input 122 without forwarding it to a media-module or media-player(s) 121 .
  • the media-modules do not directly control output (e.g., what is displayed on the display 102 ), but communicate with the multi-media-controller 120 which effectively controls output.
  • output can be determined based on the processing or output provided or generated of the media-module.
  • input is initially processed at a central location, namely, the multi-media-controller 120 which can route the input to the appropriate destination.
  • media-modules are typically isolated from each other and do not communicate with each other.
  • the multi-media-controller 120 routes input to a media-module (M i ) if it can be handled by the media-module (e.g., input concerns a menu or additional information relating to a media-component).
  • a media-player or other application
  • the module-controller typically forwards the input to the media-player to affect the presentation of the media (or processing of media by an application program).
  • FIG. 2A depicts a method 150 for providing a multi-media center in accordance with one embodiment of the invention.
  • at least one media-module is configured ( 152 ) for each media-component provided by the multi-media center.
  • a media-module represents a media-component and can, among other things, include and/or obtain information relating to a media-component (e.g., menus, lists of available items) and/or applications (e.g., media-players) related to the media-component.
  • a central entity e.g., a module-controller
  • the central entity can communicate with the media-modules and exchange information, for example, as input/output.
  • the central entity e.g., module-controller
  • the central entity can serve as a central point for receiving input. Accordingly, the central entity (e.g., module-controller) receives ( 156 ) input associated with the multi-media-controller.
  • the central entity e.g., module-controller
  • a central entity e.g., module-controller
  • can effectively control the output of the multi-media cent for example, by forwarding the input to a media-module and subsequently receiving output, by forwarding the input to an application program associated with the media-module and the media-component, or by effectively processing it internally or by an associated component (e.g., a main view media-module provided to control the main-view for the multi-media center).
  • an associated component e.g., a main view media-module provided to control the main-view for the multi-media center.
  • FIG. 2B depicts a method 200 for processing input associated with a multi-media center in accordance with one embodiment of the invention.
  • the processing method 200 can, for example, be used by the multi-media-controller (or module-controller) 120 shown in FIG. 1 .
  • the multi-media center can, for example, be implemented as computer program.
  • a central-user-interface that can be used to access a plurality of media-components is determined ( 202 ). It should be noted that the central-user-interface is determined based on a plurality of media-modules that represent various media-components configured (i.e., available) in the multi-media center.
  • the central-user-interface is generated ( 204 ) based on the media-modules.
  • a response e.g., output
  • the central-user-interface can be updated ( 216 ). Subsequently, it can be determined ( 206 ) whether input associated with the central-user-interface is received and the processing method 200 can proceed in a similar manner as discussed above. However, if it is determined ( 214 ) not to update the central-user-interface, it is determined ( 206 ) whether input associated with the central-user-interface is received without updating ( 216 ) the central-user-interface. Thereafter, the method 200 proceeds in a similar manner as discussed above.
  • the input can be processed ( 220 ) by the media-player and the media-player may affect the presentation of media based on the input. Thereafter, it is determined ( 222 ) whether to end the multi-media center and the method 200 can end. Otherwise, it can be determined ( 206 ) whether input associated with the central-user-interface is received and the method 200 proceeds in a similar manner as discussed above.
  • the input is processed ( 222 ) internally (e.g., by a media-controller) or another component of the multi-media center (e.g., by a main window component that processes input associated with a main menu of the multi-media center). Subsequently, it is determined ( 224 ) whether to end the multi-media center (e.g., terminate the computer program) and the method 200 can end accordingly. Otherwise, it is determined ( 206 ) whether input associated with the multi-media center is received and the method 200 proceeds as discussed above until an input indicates to end the multi-media center.
  • FIG. 3 depicts in greater detail an architectural view for a multi-media center that allows users to access multiple media-components by interfacing with a central-user-interface in accordance with one embodiment of the invention.
  • a module-controller 302 can communicate with a menu-window 308 and a User Interface Library (library) 310 .
  • the module-controller 302 can receive input (e.g., as events) from a keyboard and/or mouse 314 , a remote device 316 , or other hardware input 315 (e.g., DVD is inserted or ejected).
  • the menu-window 308 effectively controls menus displayed on the display 309 . In addition, it can maintain and store menus using menu-views 312 .
  • the menu-views 312 effectively implements a stack of menu-views to keep track of what has been displayed on the display 309 .
  • menu-views 312 can be added or removed from the stack as the user traverses up and down between various menus or submenus of a particular media-components or between main menu items of the multi-media center representing different media-components, and so on.
  • menus and submenus can be created using a User Interface Library (library) 310 .
  • the module-controller 302 can request that the media-module “post” the appropriate menu to make this request.
  • the module-controller 302 can, for example, forward the input to a particular media-module.
  • the media-module uses the User Interface Library (library) 310 to obtain an appropriate theme (or template) and then uses the theme from the User Interface Library (library) 310 to generate the appropriate menu (i.e., effectively fills out a template with its information).
  • a media-module 304 can also use a media access layer 320 to access data (e.g., list of songs, movies), for example, from a database associated with a media-component (iTunes) that stores information about the media-component.
  • data e.g., list of songs, movies
  • a media-component iTunes
  • menus and/or other data generated and/or obtained by a media-module can be forwarded to the module-controller 302 which can in turn provide it to the menu-window 308 .
  • an initial-event signifying the start of the multi-media center program is received.
  • This initial-event can be input by a keyboard and/or mouse 314 or a remote device 316 .
  • the module-controller 302 is initiated.
  • the module-controller 302 effectively determines what media-modules are currently configured, as media-modules may be dynamically added or removed from the configuration (e.g., a media-module 306 may be added or removed without affecting other media-modules).
  • each media-module sends its initial data (icon and name) to the module-controller 302 .
  • the module-controller 302 sends the initial data (icons and names) to the menu-window 308 which generates a main menu including the initial data (icons and name) generated by the media-modules.
  • the menu-window 308 can use the User Interface Library (library) 310 to generate the main menu for the multi-media center and facilitate displaying it on the display 309 .
  • the module-controller 302 can wait for user input (i.e., input received from a user, for example, a human, or application program). If the input pertains to manipulation of the main menu for the multi-media center (e.g., rotation of a carrousel), then the module-controller 302 can forward it to the menu-window 308 which is capable of processing it to effectively manipulate the main menu displayed on display 309 for the multi-media center (e.g., rotate a carrousel that represents the main menu).
  • user input i.e., input received from a user, for example, a human, or application program. If the input pertains to manipulation of the main menu for the multi-media center (e.g., rotation of a carrousel), then the module-controller 302 can forward it to the menu-window 308 which is capable of processing it to effectively manipulate the main menu displayed on display 309 for the multi-media center (e.g., rotate a carrousel that represents the main menu).
  • the menu-window 308 does not process it even if the module-controller 302 initially sends the input to the menu-window 308 . Instead, the menu-window 308 can determine which media-module is to process the input. This determination can, for example, be made based on which menu or menu item is currently displayed or is effectively on top of the menu-views 312 . The media-module associated with the menu can then be identified and forwarded to the module-controller 302 .
  • the module-controller 302 can forward the user input to the appropriate media-module for processing. It is likely that the input associated with a media-module initially pertains to a main (or base) menu for the media-component represented by the media-module.
  • the media-module can access the User Interface Library (library) 310 to get an appropriate theme (or template) for its base menu.
  • a set of menus including a standard menu and an accessorized menu are provided.
  • the media-module can select a standard menu which includes a list of items, or an accessorized menu that additionally includes a preview screen.
  • the media-module can obtain a template for a menu and subsequently fill (or populate) it with data (e.g., menu items). Subsequently the media-module can send its filled out menu to the module-controller 302 which can, in turn, send it to menu-window 308 .
  • the menu-window 308 effectively displays the menu by pushing it on the menu-views 312 . In this way, a main (or base) menu for a particular media-component can be displayed in response to a selection made from the main menu of the multi-media center.
  • the menu-window 308 When user input pertains to the main menu of the multi-media center, it can be handled by the menu-window 308 . More particularly, the input initially received by the module-controller 302 is forwarded to the menu-window 308 . The menu-window 308 recognizes the input and it can effectively process the input and communicate it to the module-controller 302 . However, the module-controller 302 may actually control the display, for example, by manipulating the main menu displayed for the multi-media center (e.g., rotates the main menu). However, if input pertains to a particular media-module (e.g., selection of a particular media-component), the input can be handled by the media-module.
  • a particular media-module e.g., selection of a particular media-component
  • the media-module can access the User Interface Library (library) 310 and construct another menu (or submenu) in a similar manner as discussed above.
  • the constructed menu can then be sent to module-controller 302 which sends it to the menu-window 308 .
  • a media-module can effectively ask the module-controller 302 to initiate a media-player ( 307 ). More particularly, when a user selects, for example, a menu item that is associated with presenting media (e.g., play music, play film, show photo, slideshow), user input is received by the module-controller 302 .
  • the module-controller 302 can initially forward the input to the menu-window 308 , but the menu-window 308 would not process the input as it does not pertain to manipulation of the main menu. Instead, the menu-window 308 effectively asks the module-controller 302 to forward the input to the appropriate media-module.
  • menu-window 308 can effectively identify the media-module that should process the input because it can determine which menu-view is the top (or most-front) menu and identify its associated media-module. In other words, menu-window 308 can determine which media-module's menu (or submenu) is currently being displayed and let the module-controller 302 know which media-module should process the input.
  • the media-module can perform other functions.
  • the media-module 304 can identify the input as a request for presentation of media of its associated media-component.
  • the media-module 304 identifies a media-player ( 307 ) to be initiated.
  • the module-controller 302 initiates the media-player ( 307 ) which effectively results in presentation of media on display 309 and/or other devices (e.g., speakers).
  • the media-module 304 does not directly communicate with the media-player.
  • the module-controller 302 sends input directly to media-player ( 307 ) for processing.
  • media-player e.g., music player
  • the familiar look and feel of media-players can be preserved. It is possible to have a media-player (e.g., music player) present media (e.g., music) in the background while another media-player presents media (e.g., displays photos or a slideshow). It should also be noted that it is possible to use a virtual stack ( 307 ) to keep track of usage of the media-players. Hence, when an active media-player terminates, the media-player is effectively popped from the virtual stack ( 307 ).
  • FIGS. 4A-4B depict a method 400 for providing a multi-media center which can be accessed via a central-user-interface in accordance with another embodiment of the invention.
  • the module-controller effectively polls the media-modules which have been configured for the multi-media center for their initial data (e.g., name of the media-module and icon). Accordingly, the media-modules send the module-controller initial data typically pertaining to their main menu for the multi-media center.
  • this data can, for example, include an icon and name for each of the media-modules.
  • a menu window can be initiated ( 408 ).
  • the module-controller sends the menu window the initial data.
  • the menu window displays ( 412 ) a main menu for the multi-media center 412 .
  • the module-controller effectively awaits ( 414 ) input. Assuming that the input does not indicate ( 416 ) to terminate the multi-media center, it is determined ( 418 ) whether a media-player is active.
  • the module-controller sends ( 420 ) the input to the appropriate media-player for processing and the media-player processes ( 422 ) the input accordingly. Subsequently, it can be determined ( 414 ) by the module-controller whether input is received.
  • the module-controller sends ( 424 ) the input to the menu window.
  • the menu window can then determine ( 425 ) whether to handle the input. If the menu window determines ( 425 ) to handle the input, the menu window processes ( 426 ) the input. As a result, a main menu displayed for the multi-media center can be manipulated ( 426 ). Thereafter, the module-controller determines ( 414 ) whether input has been received and the method 400 proceeds in a similar manner as discussed above.
  • the main window identifies ( 428 ) the appropriate media-module to process the input. Subsequently, the module-controller sends ( 430 ) the input to the identified media-module.
  • the media-module determines ( 432 ) whether to activate a media-player in response to the input. If it is determined ( 432 ) by the media-module to activate a media-player, the media-module identifies ( 434 ) a media-player and requests ( 436 ) from the module-controller to initiate the identified media-player. As a result, the module-controller initiates ( 438 ) the media-player. Thereafter, it can be determined ( 414 ) by the module-controller whether the input is received, and method 400 proceeds in the similar manner as discussed above.
  • the media-module determines ( 432 ) not to activate a media-player, the input is directed to a menu (or other data) related to the media-component.
  • a menu or other data
  • other functions including obtaining ( 450 ) data can be performed by the media-module, for brevity, only construction of a menu is depicted in greater detail. Consequently, if it is determined ( 449 ) that the input is associated with a menu, the media-module obtains ( 440 ) a menu template from an User Interface Library (library). Subsequently, the media-module fills ( 442 ) the menu and sends ( 444 ) the filled menu to the module-controller.
  • libraries User Interface Library
  • the module-controller sends ( 446 ) the menu to the menu-window.
  • the appropriate menu is displayed ( 448 ) in response to the input received ( 414 ) by the media-controller.
  • media-modules can be designed as computer program modules that can be “plugged” in or removed from a main multi-media center application program. As such, media-modules may post all requests through a module-controller.
  • media-modules can use user interface classes and widgets provided in a user interface library, and access data via a media access layer.
  • Media-modules can provide one or more of the following functions: provide a media-module identifier “key,” provide a main (or base) menu, have the ability to respond to input corresponding to a selection of one of the items listed in their main (or base) menu, provide a name and/or icon image for the media-component they represent.
  • the media-module may also provide other functions including saving or restoring states associated with a database, playing a sound, and phrase presentation of an associated media-player.
  • a module-controller can function as traffic manager. It can instantiate and keep track of media-modules, route events associated with user input, control what is displayed.
  • a user interface library can include metric utilities, windows and views, widgets, and sounds.
  • the metric utilities can be implemented as a set of C programming calls that provide various layout metrics, including screen frames, the menu frames, and text attributes.
  • Windows and views can include a collection of classes that define the layout and behavior of windows and views.
  • Widgets can include a set of interface widgets that can be used by the media-module or window or views.
  • the user interface library can also provide hooks to play sounds that can be played for various user actions. The sounds can be played via a standard C calls.
  • the invention has many advantages. An embodiment of the invention can include one or more of these advantages.
  • One advantage of the invention is that various types of digital data and applications used to present digital data can be accessed from a user interface.
  • Another advantage of the invention is that various types of digital data and applications can be added or removed dynamically.
  • Yet another advantage of the invention is that it is possible to use a standard user interface library for various types of digital data and applications.
  • Still another advantage of the invention is that it is possible to use and preserve the look and feel of more popular media-players.

Abstract

Various “media-components” are provided in a “multi-media center.” In modular architecture, a module-controller communicates with media-modules provided for various media-components. A media-module can include or obtain data pertaining to a particular media-component, identify media-player(s), and access information related to their media. However, the media-modules are isolated from each other, and the module-controller effectively controls output generated in response to user input. A user interface library is provided for the media-modules. Media-modules can obtain a template or other tools from the library and construct their user interface (e.g., menus). Media-modules can also identify a media-player that can be initiated in response to user input. Subsequently, the media-controller forwards user input to the media-player.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of and claims the benefit of priority Under 35 U.S.C. 120 to U.S. patent application Ser. No. 12/778,038, filed on May 11, 2010, which is a continuation of and claims the benefit of priority Under 35 U.S.C. 120 to U.S. patent application Ser. No. 11/247,975, filed on Oct. 10, 2005, which in turn claims the benefit of priority Under 35 U.S.C. 119(e) to U.S. Provisional Patent Application No. 60/724,622, filed on Oct. 7, 2005, and entitled “MULTIMEDIA SYSTEM”, the benefit of priority of each of which is claimed hereby, and each of which is incorporated by reference herein in its entirety.
This application is related to: (i) U.S. patent application Ser. No. 11/245,937, filed Oct. 7, 2005, and entitled “TECHNIQUES FOR PAIRING REMOTE CONTROLLERS WITH HOST DEVICES,” which is hereby incorporated by reference herein; and (ii) U.S. Provisional Patent Application No. 60/725,544, filed Oct. 10, 2005, and entitled “MULTIMEDIA CONTROL CENTER,” which is hereby incorporated by reference herein.
BACKGROUND OF THE INVENTION
Today, virtually anything can be represented as digital data and presented in numerous forms including audible, visual, or audio-visual forms. Digital data can also be transported electronically, for example, as digital files or digital streams. Basically speaking, digital data can be stored as a “digital media” (e.g., a digital file, a media-player which stores digital data). Digital media (or “media”) can be accessed by a variety of computing devices (e.g., personal computers, media-players, personal assistants, wireless phones). Typically, digital media includes at least digital content (or “content”) that represents the actual content of information stored in a digital form. As such, digital content can, for example, be the content of a printed book, a picture, a song in audible form and/or in audio-visual forms (e.g., a rock video), movies, sports broadcasts, news in a variety of forms including text, audio, or audio-visual.
Digital media can be packaged with media-player(s) and/or other application programs. For example, Apple iPod media-player available from Apple Computers, Inc. combines a digital audio player and a portable hard drive for storing the media. iTunes or iPhoto, which are also available from Apple Computers, Inc, can be packaged with media-players and applications or tools that can be used for organization, searching and retrieval of media (e.g., organizing photo, obtaining lists of music or films from a database, and downloading music or films). Packaging digital media with media-players, tools, or other applications is a relatively recent development. Nevertheless, given the popularity of digital media, numerous forms of media and media-players have been developed and are in use today.
As digital data has become more prevalent, techniques for presenting digital data have become increasingly more useful.
SUMMARY OF THE INVENTION
The invention pertains to techniques for combining various “media-components” through use of a “multi-media center” which can be accessed via a central-user-interface.
The invention can be implemented in numerous ways, including a method, an apparatus, a computer readable medium, a computer system, or a signal embodied in a carrier wave. Several embodiments of the invention are discussed below.
As a method, implemented by a computing system, of providing a multi-media center that includes a plurality of media-components, one embodiment can, for example, include at least: configuring a plurality of media-modules for the multi-media center, wherein the plurality of media-modules represents a media-component in the multi-media-center, wherein each of the plurality of media-components includes at least one of digital media and an application program configured to access digital media; initiating a module-controller configured to communicate with each of the plurality of media-modules; receiving by the module-controller an input associated with the multi-media center; identifying at least one of the plurality of media-modules to generate a response to the input received by the module-controller; forwarding the input to the identified media-module; and receiving, at the module-controller, a response to the input as determined by the identified media-module.
As a computing system for providing a multi-media center that includes a plurality of media-components each including digital media, one embodiment can, for example, can include at least at least one processor; a plurality of media-modules, wherein the media-modules include a first media-module that can receive input and generate output; and a module-controller configured to communicate directly with each of the plurality of media-modules. The module-controller can further operate to: receive input associated with the multi-media center; forward the input to a first media-module; process and generate an output, by the first media-module, in response to the input; receive the output from the first media-module in response to the input; and perform at least one operation based on the output, where the at least one operation is controlled by the module-controller. The plurality of media-modules do not communicate with each other or with a multi-media center user and do not control the output.
As a computer readable medium including at least executable computer program modules stored therein for a multi-media center that includes a plurality of media-components, where each of the plurality of media-components includes digital data. The computer readable medium includes at least: computer program code for determining, based on a plurality of media-modules that each respectively represent at least one media-component, a central-user-interface that is used to access the plurality of media-components provided by the multi-media center; computer program code for receiving input associated with the central-user-interface; computer program code for determining whether to forward the input to one of the media-modules; and computer program code for forwarding the input to a first media-module of the plurality of media-modules when the determining determines to forward the input by one of the media-modules. The plurality of media-modules are isolated from each other and do not directly communicate with each other or with a multi-media center user, but communicate with a module-controller.
As a method, implemented by a computing system, of providing a multi-media center that includes a plurality of media-components which each includes digital data and program code to access the digital data, one embodiment of the invention can, for example, include at least: determining, based on a plurality of media-modules that each respectively represent at least one media-component, a central-user-interface that is used to access the plurality of media-components provided by the multi-media center; receiving input associated with the central-user-interface; determining whether to forward the input to one of the media-modules; and forwarding the input to a first media-module of the plurality of media-modules when the determining determines to forward the input by one of the media-modules. The plurality of media-modules are isolated from each other and do not directly communicate with each other or with a multi-media center user, but communicate with a module-controller.
As a computing system for providing a multi-media center that supports digital media, one embodiment can, for example, can include at least a plurality of media devices, where the media devices include a first media device that can receive input and generate output, and a centralized controller configured to communicate directly with each of the plurality of media devices. The centralized controller is configured to: receive input associated with the multi-media center; determine a first media device of the plurality of media device to receive the input; forward the input to the first media device; and process and generate an output, by the first media device, in response to the input.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
FIG. 1 depicts a computing environment capable of providing a multi-media-center in accordance of one embodiment of the invention.
FIG. 2A depicts a method for providing a multi-media center in accordance with one embodiment of the invention.
FIG. 2B depicts a method for processing input associated with a multi-media center in accordance with one embodiment of the invention.
FIG. 3 depicts in greater detail an architectural view for a multi-media center program that can provide access to multiple media-components via a central-user-interface in accordance with one embodiment of the invention.
FIGS. 4A-4B depict a method for providing a multi-media center which can be accessed to a central-user-interface in accordance with another embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
As noted in the background section, techniques for presenting digital data have become increasingly more useful as digital media and media-players have become increasingly more popular and prevalent. Furthermore, given that many different forms of digital media and media-players have been developed and even more are likely to be developed soon, it is highly desirable to provide a “multi-media center” that can effectively combine various “media-components.”
Accordingly, the invention pertains to techniques for combining various “media-components.” In accordance with one aspect of the invention, various “media-components” are provided in a “multi-media center” which can be accessed via a central-user-interface. A “media-component” as used herein refers to digital media and/or application(s) used to access digital media. The “multi-media center” can, for example, be provided as a program on a computer system that includes one or more computers. The central-user-interface can graphically represent each media-component (e.g., as a selectable item in a main menu). User input can be entered, for example, by a keyboard and/or mouse connected to a computer system, or it can be entered remotely (e.g., wirelessly and/or over a network).
Another aspect of the invention provides a modular architecture that includes at least one media-module for each of the media-components configured for the multi-media-player. A media-module can include or obtain data pertaining to a particular media-component (e.g., user interface menus, lists of digital data in the media-component). In addition, a media-module can also identify media-player(s) and access information related to their media (e.g., music or movie lists). However, the media-modules do not directly control output. Instead, a module-controller communicates with various media-modules and effectively controls output generated in response to user input. The module-controller can forward the input to various media-modules for processing and receive output from them. Subsequently, the module-controller can use the output generated by the media-modules to perform the appropriate response (e.g., manipulate display of menus or presentation of media). In other words, the media-modules do not directly control the output of the multi-media center even though they may process the input and effectively generate the appropriate response. Furthermore, media-modules can be isolated from each other. As a result, the media-modules cannot communicate with each other, but can be added or removed dynamically as they do not affect each other or a main (base) program that effectively runs the multi-media center.
In one embodiment, each media-module includes or can obtain information needed to construct menus for its associated media-component. It should be noted that media-modules can construct their menus (or submenus) by using an User Interface Library (or library). More particularly, media-modules can obtain a template or other tools (e.g., metric utilities, windows, views, widgets, sounds) from the User Interface Library (or library). As such, each media-module may select a user interface template (e.g., menus, window) from the User Interface Library (or library) and subsequently fill (or populate it) with the appropriate information (e.g., menu items). In addition, the media-module can identify media-player(s) that can be used to present digital data associated with a media-component, and access information related to their media (e.g., music or movie list). However, the module-controller initiates the media-player associated with a media-component and subsequently forwards any input associated with presentation of media directly to the media-player for processing. As a result, the familiar look and feel of media-players can be preserved.
Embodiments of these aspects of the invention are discussed below with reference to FIGS. 1-4B. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention extends beyond these limited embodiments.
FIG. 1 depicts a computing environment 100 capable of providing a multi-media-center in accordance with one embodiment of the invention. It will be appreciated that the multi-media-center can combine a plurality of media-components each including digital data and/or application(s) that can access digital data. The digital data associated with a media-component can be presented in one or more forms (e.g., display pictures, play music while displaying pictures, play a movie or a song). These media-components can be readily available and/or generally known (e.g., music player (e.g., iTunes), photo viewer (e.g., iPhoto), DVD player) or they can be developed for the multi-media-center. In general, each media-component includes digital data which can be presented in one or more forms and/or one or more application(s) (e.g., media-player) that can be used to manipulate digital data (e.g., present, organize, retrieve).
It will be appreciated that the computing environment 100 can provide a “central-user-interface” that can serve as a user interface for accessing all the media-components provided in the multi-media center. Referring now to FIG. 1, a main menu 104 displayed on a display 102 can be part of the central-user-interface for a multi-media center provided by the computing system 108. Furthermore, user input may be entered via an input device 106 (e.g., keyboard, mouse) connected to a computing system 108, and/or via a remote device 107 (e.g., remote controller, media-player with remote control capabilities) whether directly or via a network. The computing system 108 can, for example, be a computer, or a plurality of computers (e.g., a cluster). In general, the computing system 108 includes at least one processor and memory (not shown).
As depicted in FIG. 1, the main menu 104 can, for example, include a main menu-items (M1 . . . Mn) for each of the media-components provided by the multi-media center. Thus, a menu item Mi in the main menu 104 can represent a media-component Mi. In addition, for each of the media-components (M1-Mn) provided by the multi-media center, a media-module is configured in the computing system 108. This means that a media-module 110 is provided for media-component M represented in the main menu 104 (M1) and available for access. Generally, the media-module 110 (M) can include the information needed to construct and display various menus (or submenus) for the media-component Mi. As such, if the media-component M is selected from the main menu, media-module 110 can provide a main (or base) menu for the media-component M. Similarly, the media-module 110 (Mi) can provide submenus for the media-component Mi if its submenu is selected, and so on. It should be noted that the media-module 100 can obtain data from a local storage 116 or a remote storage 118 (e.g., database). Typically, the data pertains to the media-component M.
It will be appreciated that the modular design of the architecture demonstrated in FIG. 1 allows configuring a plurality of media-modules for various media-components. The media-module can provide a set of self-contained menus for a media-component. In addition, media-modules can be isolated from each other, so that they can be added or removed from the multi-media center without interfering with each other or a main program that controls the multi-media center.
In this modular design, the media-modules communicate with a multi-media-controller (or module-controller) 120. The multi-media-controller 120 can effectively control the centralized user interface (e.g., the menu displayed on display 102). The multi-media-controller (or module-controller) 120 can also serve as a central point for receiving input associated with the multi-media center (e.g., input received from the input 106, or remote device 107). More particularly, the multi-media-controller 120 can forward an input 122 to one of the media-modules (M1 . . . Mn), or to a media-player (or other applications) 112 that process the input in response to input 122. The media-modules (M1 . . . Mn) can generate output (e.g., menu, submenu, request to activate a media-player). As will be discussed in greater detail below, in some cases, the multi-media-controller 120 processes input 122 without forwarding it to a media-module or media-player(s) 121.
From an architectural perspective, it is important to note that the media-modules (M1 . . . Mn) do not directly control output (e.g., what is displayed on the display 102), but communicate with the multi-media-controller 120 which effectively controls output. However, output can be determined based on the processing or output provided or generated of the media-module. Typically, input is initially processed at a central location, namely, the multi-media-controller 120 which can route the input to the appropriate destination. Finally, media-modules (M1 . . . Mn) are typically isolated from each other and do not communicate with each other. Generally, the multi-media-controller 120 routes input to a media-module (Mi) if it can be handled by the media-module (e.g., input concerns a menu or additional information relating to a media-component). However, if a media-player (or other application) is to be activated or is currently presenting media, then the module-controller typically forwards the input to the media-player to affect the presentation of the media (or processing of media by an application program).
FIG. 2A depicts a method 150 for providing a multi-media center in accordance with one embodiment of the invention. Initially, at least one media-module is configured (152) for each media-component provided by the multi-media center. A media-module represents a media-component and can, among other things, include and/or obtain information relating to a media-component (e.g., menus, lists of available items) and/or applications (e.g., media-players) related to the media-component.
Next, a central entity (e.g., a module-controller) is initiated (154) for the media-modules. The central entity (e.g., module-controller), among other things, can communicate with the media-modules and exchange information, for example, as input/output. In addition, the central entity (e.g., module-controller) can serve as a central point for receiving input. Accordingly, the central entity (e.g., module-controller) receives (156) input associated with the multi-media-controller. Finally, the central entity (e.g., module-controller) effectively controls (158) the output of the multi-media center based on the input. As will be discussed below, a central entity (e.g., module-controller) can effectively control the output of the multi-media cent, for example, by forwarding the input to a media-module and subsequently receiving output, by forwarding the input to an application program associated with the media-module and the media-component, or by effectively processing it internally or by an associated component (e.g., a main view media-module provided to control the main-view for the multi-media center).
To further elaborate, FIG. 2B depicts a method 200 for processing input associated with a multi-media center in accordance with one embodiment of the invention. The processing method 200 can, for example, be used by the multi-media-controller (or module-controller) 120 shown in FIG. 1. The multi-media center can, for example, be implemented as computer program. Initially, a central-user-interface that can be used to access a plurality of media-components is determined (202). It should be noted that the central-user-interface is determined based on a plurality of media-modules that represent various media-components configured (i.e., available) in the multi-media center. Accordingly, the central-user-interface is generated (204) based on the media-modules. Next, it is determined (206) whether input associated with the central-user-interface is received. If it is determined (206) that input is received and the input does not indicate to end the multi-media center, it is determined (208) whether to forward the input to one of the media-modules configured for the multi-media center. If it is determined (208) to forward the input to one of the media-modules, a media-module that is to receive the input is determined and the input is forwarded (210) to the media-module. Thereafter, a response (e.g., output) is generated (212) by the media-module. After the processing of the input by the media-module, it is determined (214) whether to update the central-user-interface based on the response generated by the media-module. Accordingly, the central-user-interface can be updated (216). Subsequently, it can be determined (206) whether input associated with the central-user-interface is received and the processing method 200 can proceed in a similar manner as discussed above. However, if it is determined (214) not to update the central-user-interface, it is determined (206) whether input associated with the central-user-interface is received without updating (216) the central-user-interface. Thereafter, the method 200 proceeds in a similar manner as discussed above.
On the other hand, if it is determined (208) not to process the input by a media-module, it is determined (218) whether to process the input by a media-player (or an application). Accordingly, the input can be processed (220) by the media-player and the media-player may affect the presentation of media based on the input. Thereafter, it is determined (222) whether to end the multi-media center and the method 200 can end. Otherwise, it can be determined (206) whether input associated with the central-user-interface is received and the method 200 proceeds in a similar manner as discussed above.
If it is determined (218) not to process the input by a media-player (or application), the input is processed (222) internally (e.g., by a media-controller) or another component of the multi-media center (e.g., by a main window component that processes input associated with a main menu of the multi-media center). Subsequently, it is determined (224) whether to end the multi-media center (e.g., terminate the computer program) and the method 200 can end accordingly. Otherwise, it is determined (206) whether input associated with the multi-media center is received and the method 200 proceeds as discussed above until an input indicates to end the multi-media center.
FIG. 3 depicts in greater detail an architectural view for a multi-media center that allows users to access multiple media-components by interfacing with a central-user-interface in accordance with one embodiment of the invention. As shown in FIG. 3, in addition to a number of media-modules (304, 305, 306) and media-players 307, a module-controller 302 can communicate with a menu-window 308 and a User Interface Library (library) 310. It should be noted that the module-controller 302 can receive input (e.g., as events) from a keyboard and/or mouse 314, a remote device 316, or other hardware input 315 (e.g., DVD is inserted or ejected).
The menu-window 308 effectively controls menus displayed on the display 309. In addition, it can maintain and store menus using menu-views 312. The menu-views 312 effectively implements a stack of menu-views to keep track of what has been displayed on the display 309. Thus menu-views 312 can be added or removed from the stack as the user traverses up and down between various menus or submenus of a particular media-components or between main menu items of the multi-media center representing different media-components, and so on. As will be appreciated, menus and submenus can be created using a User Interface Library (library) 310. More particularly, when the module-controller 302 receives an input, for example, pertaining to a menu item associated with a particular media-component, the module-controller 302 can request that the media-module “post” the appropriate menu to make this request. The module-controller 302 can, for example, forward the input to a particular media-module. The media-module then, uses the User Interface Library (library) 310 to obtain an appropriate theme (or template) and then uses the theme from the User Interface Library (library) 310 to generate the appropriate menu (i.e., effectively fills out a template with its information). It should also be noted that a media-module 304 can also use a media access layer 320 to access data (e.g., list of songs, movies), for example, from a database associated with a media-component (iTunes) that stores information about the media-component. In any case, menus and/or other data generated and/or obtained by a media-module can be forwarded to the module-controller 302 which can in turn provide it to the menu-window 308.
To further elaborate, initialization of the module-controller 302 will be discussed now. Initially, an initial-event signifying the start of the multi-media center program is received. This initial-event can be input by a keyboard and/or mouse 314 or a remote device 316. In any case, in response to the initial-event, the module-controller 302 is initiated. The module-controller 302 effectively determines what media-modules are currently configured, as media-modules may be dynamically added or removed from the configuration (e.g., a media-module 306 may be added or removed without affecting other media-modules). In one embodiment of the invention, each media-module sends its initial data (icon and name) to the module-controller 302. The module-controller 302 sends the initial data (icons and names) to the menu-window 308 which generates a main menu including the initial data (icons and name) generated by the media-modules. The menu-window 308 can use the User Interface Library (library) 310 to generate the main menu for the multi-media center and facilitate displaying it on the display 309.
After the main menu for the multi-media center is generated and displayed, the module-controller 302 can wait for user input (i.e., input received from a user, for example, a human, or application program). If the input pertains to manipulation of the main menu for the multi-media center (e.g., rotation of a carrousel), then the module-controller 302 can forward it to the menu-window 308 which is capable of processing it to effectively manipulate the main menu displayed on display 309 for the multi-media center (e.g., rotate a carrousel that represents the main menu). If user input, however, pertains to a particular media-module (e.g., selection of a particular media-module from the main menu of the multi-media center), the menu-window 308 does not process it even if the module-controller 302 initially sends the input to the menu-window 308. Instead, the menu-window 308 can determine which media-module is to process the input. This determination can, for example, be made based on which menu or menu item is currently displayed or is effectively on top of the menu-views 312. The media-module associated with the menu can then be identified and forwarded to the module-controller 302.
Subsequently, the module-controller 302 can forward the user input to the appropriate media-module for processing. It is likely that the input associated with a media-module initially pertains to a main (or base) menu for the media-component represented by the media-module. The media-module can access the User Interface Library (library) 310 to get an appropriate theme (or template) for its base menu. In one embodiment, a set of menus including a standard menu and an accessorized menu are provided. The media-module can select a standard menu which includes a list of items, or an accessorized menu that additionally includes a preview screen. These Menus are also described in U.S. Provisional Patent Application No. 60/725,544, filed Oct. 10, 2005, and entitled “MULTIMEDIA CONTROL CENTER”.
In any case, the media-module can obtain a template for a menu and subsequently fill (or populate) it with data (e.g., menu items). Subsequently the media-module can send its filled out menu to the module-controller 302 which can, in turn, send it to menu-window 308. The menu-window 308 effectively displays the menu by pushing it on the menu-views 312. In this way, a main (or base) menu for a particular media-component can be displayed in response to a selection made from the main menu of the multi-media center.
When user input pertains to the main menu of the multi-media center, it can be handled by the menu-window 308. More particularly, the input initially received by the module-controller 302 is forwarded to the menu-window 308. The menu-window 308 recognizes the input and it can effectively process the input and communicate it to the module-controller 302. However, the module-controller 302 may actually control the display, for example, by manipulating the main menu displayed for the multi-media center (e.g., rotates the main menu). However, if input pertains to a particular media-module (e.g., selection of a particular media-component), the input can be handled by the media-module. More particularly, the media-module can access the User Interface Library (library) 310 and construct another menu (or submenu) in a similar manner as discussed above. The constructed menu can then be sent to module-controller 302 which sends it to the menu-window 308.
It should be noted that in addition to generating a menu (or submenu), a media-module can effectively ask the module-controller 302 to initiate a media-player (307). More particularly, when a user selects, for example, a menu item that is associated with presenting media (e.g., play music, play film, show photo, slideshow), user input is received by the module-controller 302. The module-controller 302 can initially forward the input to the menu-window 308, but the menu-window 308 would not process the input as it does not pertain to manipulation of the main menu. Instead, the menu-window 308 effectively asks the module-controller 302 to forward the input to the appropriate media-module. In addition, the menu-window 308 can effectively identify the media-module that should process the input because it can determine which menu-view is the top (or most-front) menu and identify its associated media-module. In other words, menu-window 308 can determine which media-module's menu (or submenu) is currently being displayed and let the module-controller 302 know which media-module should process the input.
In addition to constructing menus, the media-module can perform other functions. By way of example, when user input associated with presentation of media is forwarded by the module-controller 302 to a media-module 304, the media-module 304 can identify the input as a request for presentation of media of its associated media-component. As a result, the media-module 304 identifies a media-player (307) to be initiated. Subsequently, the module-controller 302 initiates the media-player (307) which effectively results in presentation of media on display 309 and/or other devices (e.g., speakers). It should be noted that when a media-player is initiated, the media-module 304 does not directly communicate with the media-player. Furthermore, as long as the media-player is active (i.e., presenting media), the module-controller 302 sends input directly to media-player (307) for processing. It will be appreciated that various media-players readily available and/or familiar to the users can be used. In addition, the familiar look and feel of media-players can be preserved. It is possible to have a media-player (e.g., music player) present media (e.g., music) in the background while another media-player presents media (e.g., displays photos or a slideshow). It should also be noted that it is possible to use a virtual stack (307) to keep track of usage of the media-players. Hence, when an active media-player terminates, the media-player is effectively popped from the virtual stack (307).
FIGS. 4A-4B depict a method 400 for providing a multi-media center which can be accessed via a central-user-interface in accordance with another embodiment of the invention. Initially, it is determined (402) whether an activation event is received. If it is determined (402) that an activation event is received, a module-controller is initiated (404). The module-controller effectively polls the media-modules which have been configured for the multi-media center for their initial data (e.g., name of the media-module and icon). Accordingly, the media-modules send the module-controller initial data typically pertaining to their main menu for the multi-media center. As noted above, this data can, for example, include an icon and name for each of the media-modules. Thereafter, a menu window can be initiated (408). Subsequently, the module-controller sends the menu window the initial data. Thereafter, the menu window displays (412) a main menu for the multi-media center 412. After the menu window is displayed, the module-controller effectively awaits (414) input. Assuming that the input does not indicate (416) to terminate the multi-media center, it is determined (418) whether a media-player is active. If it is determined (418) that a media-player is active, the module-controller sends (420) the input to the appropriate media-player for processing and the media-player processes (422) the input accordingly. Subsequently, it can be determined (414) by the module-controller whether input is received.
However, if it is determined (418) that a media-player is not active, the module-controller sends (424) the input to the menu window. The menu window can then determine (425) whether to handle the input. If the menu window determines (425) to handle the input, the menu window processes (426) the input. As a result, a main menu displayed for the multi-media center can be manipulated (426). Thereafter, the module-controller determines (414) whether input has been received and the method 400 proceeds in a similar manner as discussed above.
On the other hand, if it is determined (425) that the menu window cannot handle the input, the main window identifies (428) the appropriate media-module to process the input. Subsequently, the module-controller sends (430) the input to the identified media-module.
Next, referring to FIG. 4B, the media-module determines (432) whether to activate a media-player in response to the input. If it is determined (432) by the media-module to activate a media-player, the media-module identifies (434) a media-player and requests (436) from the module-controller to initiate the identified media-player. As a result, the module-controller initiates (438) the media-player. Thereafter, it can be determined (414) by the module-controller whether the input is received, and method 400 proceeds in the similar manner as discussed above.
On the other hand, if the media-module determines (432) not to activate a media-player, the input is directed to a menu (or other data) related to the media-component. Although other functions including obtaining (450) data can be performed by the media-module, for brevity, only construction of a menu is depicted in greater detail. Consequently, if it is determined (449) that the input is associated with a menu, the media-module obtains (440) a menu template from an User Interface Library (library). Subsequently, the media-module fills (442) the menu and sends (444) the filled menu to the module-controller. The module-controller sends (446) the menu to the menu-window. As a result, the appropriate menu is displayed (448) in response to the input received (414) by the media-controller. Thereafter, it is determined by the media-controller (414) whether the input is received, and the method 400 proceeds in the similar manner as discussed above until it is determined (416) to end the method 400 and effectively terminate the multi-media center.
Those skilled in the art will know that media-modules can be designed as computer program modules that can be “plugged” in or removed from a main multi-media center application program. As such, media-modules may post all requests through a module-controller. In addition, media-modules can use user interface classes and widgets provided in a user interface library, and access data via a media access layer. Media-modules can provide one or more of the following functions: provide a media-module identifier “key,” provide a main (or base) menu, have the ability to respond to input corresponding to a selection of one of the items listed in their main (or base) menu, provide a name and/or icon image for the media-component they represent. The media-module may also provide other functions including saving or restoring states associated with a database, playing a sound, and phrase presentation of an associated media-player.
Those skilled in the art will also appreciate that a module-controller can function as traffic manager. It can instantiate and keep track of media-modules, route events associated with user input, control what is displayed. A user interface library can include metric utilities, windows and views, widgets, and sounds. The metric utilities can be implemented as a set of C programming calls that provide various layout metrics, including screen frames, the menu frames, and text attributes. Windows and views can include a collection of classes that define the layout and behavior of windows and views. Widgets can include a set of interface widgets that can be used by the media-module or window or views. Finally, the user interface library can also provide hooks to play sounds that can be played for various user actions. The sounds can be played via a standard C calls.
The invention has many advantages. An embodiment of the invention can include one or more of these advantages. One advantage of the invention is that various types of digital data and applications used to present digital data can be accessed from a user interface. Another advantage of the invention is that various types of digital data and applications can be added or removed dynamically. Yet another advantage of the invention is that it is possible to use a standard user interface library for various types of digital data and applications. Still another advantage of the invention is that it is possible to use and preserve the look and feel of more popular media-players.
The many features and advantages of the present invention are apparent from the written description, and thus, it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled.

Claims (22)

What is claimed is:
1. A method for providing a multi-media center for presenting digital data, the method comprising:
configuring a plurality of media-modules to represent media-components available for access within the multi-media center, the configuring including associating each of the plurality of media-modules with one of a plurality of media-components, and each of the plurality of media-components including at least one of digital media and an application program configured to access digital media, wherein each of the plurality of media-modules controls access to operations associated with its associated media-component by processing received inputs;
initiating a module-controller configured to communicate with each of the plurality of media-modules, the initiating including requesting a set of initial data for each of the plurality of media-modules, the set of initial data representing an icon and a name for media-components associated with each of the plurality of media-modules;
transmitting the set of initial data for each of the plurality of media-modules to a menu-window, the menu-window generating a main menu for the multi-media center including at least the set of initial data for each of the plurality of media-modules; and
displaying the main menu for the multi-media center on a display.
2. The method of claim 1, wherein generating the main menu for the multi-media center includes:
accessing a user interface library to obtain a main menu template; and
populating the main menu template to generate the main menu.
3. The method of claim 1, wherein the plurality of media-modules do not directly communicate with each other, and wherein the plurality of media-modules can be dynamically removed or added to the multi-media center.
4. The method of claim 1, further comprising:
receiving an input and forwarding the input to one of the plurality of media-modules for processing.
5. The method of claim 1, further comprising:
receiving an input and forwarding the input to the application program associated with one of the plurality of media-modules for processing.
6. The method of claim 1, further comprising:
receiving an input to modify the displaying of the main menu for the multi-media center; and
forwarding the input to the menu-window for processing and modifying the displaying of the main menu for the multi-media center.
7. The method of claim 1, further comprising:
receiving an input;
determining that a media-player is active; and
forwarding the input to the media-player for processing.
8. A method for accessing media-components of a multi-media center, the method comprising:
receiving, at a module-controller, an input to navigate a menu-window of the multi-media center, the menu-window implementing a stack of menu-views tracking a plurality of menus displayed on a display, wherein a menu positioned at a top of the stack of menu-views is currently displayed;
determining whether to forward the input to one of the plurality of media-modules for processing, the determining based at least in part on the menu positioned at the top of the stack of menu-views;
identifying a media-module associated with the menu positioned at the top of the stack of menu-views, the media-module representing media-components available for access within the multi-media center, wherein the media-module controls access to operations associated with its associated media-component by processing received inputs;
forwarding the input to the media-module for processing; and
receiving, at the module-controller, a response to the input generated by the media-module.
9. The method of claim 8, wherein the plurality of menus represent at least one of a menu-window main menu, a media-component menu, and a media-component submenu.
10. The method of claim 8, wherein receiving the input to navigate the menu-window comprises:
receiving an input pertaining to a menu item associated with a particular media-component represented by a particular media-module; and
requesting the particular media-module provide an appropriate menu.
11. The method of claim 10, further comprising:
forwarding the input pertaining to the menu item to the particular media-module for processing.
12. The method of claim 8, wherein the processing at the media-module includes obtaining a menu template from a user interface library.
13. The method of claim 12, further comprising:
populating the menu template; and
returning the populated menu template, as the response to the input, to the module-controller.
14. The method of claim 13, further comprising:
transmitting the populated menu template to the menu-window; and
positioning the populated menu template at the top of the stack of menu-views for displaying on the display.
15. The method of claim 13, wherein populating the menu template generates at least one of a media-component menu or a media-component submenu.
16. The method of claim 8, wherein removing the menu positioned at the top of the stack of menu-views causes a next menu positioned in the stack of menu-views to be displayed.
17. The method of claim 8, further comprising:
updating the menu-window of the multi-media center based on the response to the input generated by the media-module.
18. The method of claim 8, further comprising:
identifying, at the media-module, that the input is a request for presentation of media from a media-component represented by the media-module; and
identifying a media-player to be initiated.
19. The method of claim 18, further comprising:
initiating the media-player; and
presenting the media from the media-component represented by the media-module on the display.
20. The method of claim 19, further comprising:
receiving, at the module-controller, a subsequent input while the media-player is initiated; and
forwarding the subsequent input from the module-controller to the media-player for processing.
21. A non-transitory computer-readable medium for providing a multi-media center for presenting digital data, the computer-readable medium comprising computer program logic recorded thereon for:
configuring a plurality of media-modules to represent media-components available for access within the multi-media center, the configuring including associating each of the plurality of media-modules with one of a plurality of media-components, and each of the plurality of media-components including at least one of digital media and an application program configured to access digital media; wherein each of the plurality of media-modules controls access to operations associated with its associated media-component by processing received inputs;
initiating a module-controller configured to communicate with each of the plurality of media-modules, the initiating including requesting a set of initial data for each of the plurality of media-modules, the set of initial data representing an icon and a name for media-components associated with each of the plurality of media-modules;
transmitting the set of initial data for each of the plurality of media-modules to a menu-window, the menu-window generating a main menu for the multi-media center including at least the set of initial data for each of the plurality of media-modules; and
displaying the main menu for the multi-media center on a display.
22. A non-transitory computer-readable medium for accessing media-components of a multi-media center, the computer-readable medium comprising computer program logic recorded thereon for:
receiving, at a module-controller, an input to navigate a menu-window of the multi-media center, the menu-window implementing a stack of menu-views tracking a plurality of menus displayed on a display, wherein a menu positioned at a top of the stack of menu-views is currently displayed;
determining whether to forward the input to one of the plurality of media-modules for processing, the determining based at least in part on the menu positioned at the top of the stack of menu-views;
identifying a media-module associated with the menu positioned at the top of the stack of menu-views, the media-module representing media-components available for access within the multi-media center, wherein the media-module controls access to operations associated with its associated media-component by processing received inputs;
forwarding the input to the media-module for processing; and
receiving, at the module-controller, a response to the input generated by the media-module.
US13/677,004 2005-10-07 2012-11-14 Multi-media center for computing systems Active US8893003B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/677,004 US8893003B2 (en) 2005-10-07 2012-11-14 Multi-media center for computing systems

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US72462205P 2005-10-07 2005-10-07
US11/247,975 US7721208B2 (en) 2005-10-07 2005-10-10 Multi-media center for computing systems
US12/778,038 US20100223553A1 (en) 2005-10-07 2010-05-11 Multi-Media Center for Computing Systems
US13/677,004 US8893003B2 (en) 2005-10-07 2012-11-14 Multi-media center for computing systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/778,038 Continuation US20100223553A1 (en) 2005-10-07 2010-05-11 Multi-Media Center for Computing Systems

Publications (2)

Publication Number Publication Date
US20130167032A1 US20130167032A1 (en) 2013-06-27
US8893003B2 true US8893003B2 (en) 2014-11-18

Family

ID=37912085

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/247,975 Active 2027-03-18 US7721208B2 (en) 2005-10-07 2005-10-10 Multi-media center for computing systems
US12/778,038 Abandoned US20100223553A1 (en) 2005-10-07 2010-05-11 Multi-Media Center for Computing Systems
US13/677,004 Active US8893003B2 (en) 2005-10-07 2012-11-14 Multi-media center for computing systems

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US11/247,975 Active 2027-03-18 US7721208B2 (en) 2005-10-07 2005-10-10 Multi-media center for computing systems
US12/778,038 Abandoned US20100223553A1 (en) 2005-10-07 2010-05-11 Multi-Media Center for Computing Systems

Country Status (1)

Country Link
US (3) US7721208B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043729B2 (en) 2005-10-07 2015-05-26 Apple Inc. Multimedia control center

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8659565B2 (en) 2010-10-01 2014-02-25 Z124 Smartpad orientation
US20190278560A1 (en) 2004-10-27 2019-09-12 Chestnut Hill Sound, Inc. Media appliance with auxiliary source module docking and fail-safe alarm modes
US7885622B2 (en) 2004-10-27 2011-02-08 Chestnut Hill Sound Inc. Entertainment system with bandless tuning
US8886759B2 (en) 2004-11-04 2014-11-11 Monster Media, Llc System and method for interactive marketing
US7721208B2 (en) 2005-10-07 2010-05-18 Apple Inc. Multi-media center for computing systems
US8769408B2 (en) * 2005-10-07 2014-07-01 Apple Inc. Intelligent media navigation
US8920343B2 (en) 2006-03-23 2014-12-30 Michael Edward Sabatino Apparatus for acquiring and processing of physiological auditory signals
US9071796B2 (en) * 2007-03-30 2015-06-30 Verizon Patent And Licensing Inc. Managing multiple media content sources
US7743116B2 (en) * 2007-05-28 2010-06-22 Apple Inc. Method and user interface for accessing groups of media assets
US20080301167A1 (en) * 2007-05-28 2008-12-04 Rachel Ciare Goldeen Method and User Interface for Searching Media Assets Over a Network
US20080301734A1 (en) * 2007-05-28 2008-12-04 Rachel Clare Goldeen Method and User Interface for Accessing Media Assets Over a Network
US20080301739A1 (en) * 2007-05-28 2008-12-04 Rachel Clare Goldeen Hierarchical User Interface for Accessing Related Media Assets
US8185839B2 (en) * 2007-06-09 2012-05-22 Apple Inc. Browsing or searching user interfaces and other aspects
US8201096B2 (en) * 2007-06-09 2012-06-12 Apple Inc. Browsing or searching user interfaces and other aspects
US20090063542A1 (en) * 2007-09-04 2009-03-05 Bull William E Cluster Presentation of Digital Assets for Electronic Devices
WO2009108703A1 (en) * 2008-02-25 2009-09-03 Locamoda, Inc. Associating a user's activity in relation to a physical location with a virtual community
US8751948B2 (en) 2008-05-13 2014-06-10 Cyandia, Inc. Methods, apparatus and systems for providing and monitoring secure information via multiple authorized channels and generating alerts relating to same
KR20110063617A (en) 2008-05-13 2011-06-13 몬트레이 그룹 원 엘엘씨 Apparatus and methods for interacting with multiple information forms across multiple types of computing devices
US20090327238A1 (en) * 2008-06-28 2009-12-31 Microsoft Corporation Extensible binding of data within graphical rich applications
US20100088602A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Multi-Application Control
US20120218202A1 (en) 2010-10-01 2012-08-30 Sanjiv Sirpal Windows position control for phone applications
US20120084737A1 (en) 2010-10-01 2012-04-05 Flextronics Id, Llc Gesture controls for multi-screen hierarchical applications
MY188904A (en) * 2010-10-05 2022-01-13 Univ Putra Malaysia A method and apparatus for high intensity ultrasonic treatment of baking materials
US8819726B2 (en) 2010-10-14 2014-08-26 Cyandia, Inc. Methods, apparatus, and systems for presenting television programming and related information
US8918719B2 (en) * 2011-02-14 2014-12-23 Universal Electronics Inc. Graphical user interface and data transfer methods in a controlling device
EP3151580B1 (en) 2011-03-30 2018-11-21 Kaetel Systems GmbH Loudspeaker
US8849819B2 (en) 2011-08-05 2014-09-30 Deacon Johnson System and method for controlling and organizing metadata associated with on-line content
US9182935B2 (en) 2011-09-27 2015-11-10 Z124 Secondary single screen mode activation through menu option
CN103823864A (en) * 2014-02-24 2014-05-28 联想(北京)有限公司 Information processing method and electronic device

Citations (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847781A (en) 1986-09-23 1989-07-11 Associated Data Consoltants Energy management system
US5555354A (en) 1993-03-23 1996-09-10 Silicon Graphics Inc. Method and apparatus for navigation within three-dimensional information landscape
US5706334A (en) * 1994-08-18 1998-01-06 Lucent Technologies Inc. Apparatus for providing a graphical control interface
US5835094A (en) 1996-12-31 1998-11-10 Compaq Computer Corporation Three-dimensional computer environment
US5838326A (en) 1996-09-26 1998-11-17 Xerox Corporation System for moving document objects in a 3-D workspace
US6005601A (en) 1996-02-14 1999-12-21 Sony Corporation Apparatus for and method of controlling display of electronic program guide
US6064380A (en) 1997-11-17 2000-05-16 International Business Machines Corporation Bookmark for multi-media content
US6088032A (en) 1996-10-04 2000-07-11 Xerox Corporation Computer controlled display system for displaying a three-dimensional document workspace having a means for prefetching linked documents
US6201540B1 (en) 1998-01-07 2001-03-13 Microsoft Corporation Graphical interface components for in-dash automotive accessories
US6236398B1 (en) 1997-02-19 2001-05-22 Sharp Kabushiki Kaisha Media selecting device
US6262724B1 (en) 1999-04-15 2001-07-17 Apple Computer, Inc. User interface for presenting media information
US6295062B1 (en) 1997-11-14 2001-09-25 Matsushita Electric Industrial Co., Ltd. Icon display apparatus and method used therein
US20010050690A1 (en) 1999-09-30 2001-12-13 Giles Conley Wilson Image transfer matrix
US20020091662A1 (en) 1999-08-17 2002-07-11 Douglas P Bogia System and method for processing a working file
US6448987B1 (en) 1998-04-03 2002-09-10 Intertainer, Inc. Graphic user interface for a digital content delivery system using circular menus
US20020196266A1 (en) 2001-06-25 2002-12-26 Michael Mou Progressively rolling animation display method on cellular phones
US20030016951A1 (en) 2001-07-18 2003-01-23 International Business Machines Corporation DVD bookmark apparatus and method
US6654030B1 (en) 1999-03-31 2003-11-25 Canon Kabushiki Kaisha Time marker for synchronized multimedia
US20040047588A1 (en) 2002-03-27 2004-03-11 Tomoyuki Okada Package medium, reproduction apparatus, and reproduction method
US20040056837A1 (en) 2002-06-28 2004-03-25 Clarion Co., Ltd. Display control device
US20040080537A1 (en) 2000-09-18 2004-04-29 Glenn Adler Stand-alone monitor as photograph slide show projector
US20040155907A1 (en) 2003-02-07 2004-08-12 Kosuke Yamaguchi Icon display system and method , electronic appliance, and computer program
US20040162845A1 (en) 2003-02-18 2004-08-19 Samsung Electronics Co., Ltd. Media file management system and method for home media center
US20040223737A1 (en) 2003-05-07 2004-11-11 Johnson Carolyn Rae User created video bookmarks
US20050027539A1 (en) 2003-07-30 2005-02-03 Weber Dean C. Media center controller system and method
US6868225B1 (en) 1999-03-30 2005-03-15 Tivo, Inc. Multimedia program bookmarking system
US20050060666A1 (en) 1998-08-24 2005-03-17 Takeshi Hoshino Method of displaying, a method of processing, an apparatus for processing, and a system for processing multimedia information
US6876729B1 (en) 1999-11-16 2005-04-05 Avaya Technology Corp. Bookmarking voice messages
US6889001B1 (en) 1999-04-27 2005-05-03 Alpine Electronics, Inc. Disk player with location marking capability
US20050132055A1 (en) 2003-12-12 2005-06-16 Raja Neogi System and method to control appliances using adaptive interfaces
US20050138664A1 (en) 2003-12-23 2005-06-23 Raja Neogi System and method for allocating resources in an adaptive media center processing system
US6914551B2 (en) 2002-04-12 2005-07-05 Apple Computer, Inc. Apparatus and method to facilitate universal remote control
US20050155077A1 (en) 2004-01-08 2005-07-14 Mediamall Technologies Media on-demand systems
US20050198574A1 (en) 1999-04-21 2005-09-08 Interactual Technologies, Inc. Storyboard
US20060001645A1 (en) 2004-06-30 2006-01-05 Microsoft Corporation Using a physical object to control an attribute of an interactive display application
US6990671B1 (en) 2000-11-22 2006-01-24 Microsoft Corporation Playback control methods and arrangements for a DVD player
US20060025920A1 (en) 2003-09-25 2006-02-02 Sony Corporation On-vehicle apparatus and content providing method
US20060036959A1 (en) 2004-08-05 2006-02-16 Chris Heatherly Common user interface for accessing media
US20060059426A1 (en) 2004-09-15 2006-03-16 Sony Corporation Image processing apparatus, method, and program, and program storage medium
US20060064720A1 (en) 2004-04-30 2006-03-23 Vulcan Inc. Controlling one or more media devices
US7032177B2 (en) 2001-12-27 2006-04-18 Digeo, Inc. Method and system for distributing personalized editions of media programs using bookmarks
US20060095865A1 (en) 2004-11-04 2006-05-04 Rostom Mohamed A Dynamic graphical user interface for a desktop environment
US20060143327A1 (en) 2004-12-28 2006-06-29 Ulead Systems, Inc. System for synchronously controlling multiple devices
US20060156246A1 (en) 2005-01-12 2006-07-13 Microsoft Corporation Architecture and engine for time line based visualization of data
US7096431B2 (en) 2001-08-31 2006-08-22 Sony Corporation Menu display apparatus and menu display method
US20060206428A1 (en) 2005-03-11 2006-09-14 Microsoft Corporation Accessing medial context information using contextual links
US20060206779A1 (en) 2005-03-02 2006-09-14 Stmicroelectronics N.V. Method and device for decoding DVB-S2 LDPC encoded codewords
US20060206799A1 (en) 2005-03-11 2006-09-14 Microsoft Corporation Media software navigation with conditional links
US20070006093A1 (en) * 2005-06-30 2007-01-04 International Business Machines Corporation Canceling window close commands
US20070016860A1 (en) 2005-07-12 2007-01-18 Lim Ruth A Shortcut for predetermined application
US20070028267A1 (en) 2005-07-27 2007-02-01 Microsoft Corporation Media user interface gallery control
US20070070066A1 (en) 2005-09-13 2007-03-29 Bakhash E E System and method for providing three-dimensional graphical user interface
US20070083911A1 (en) 2005-10-07 2007-04-12 Apple Computer, Inc. Intelligent media navigation
US20070080823A1 (en) 2005-10-07 2007-04-12 Apple Computer, Inc. Techniques for pairing remote controllers with host devices
US20070083616A1 (en) 2005-10-07 2007-04-12 Apple Computer, Inc. Multi-media center for computing systems
US7205471B2 (en) 1998-06-17 2007-04-17 Looney Productions, Llc Media organizer and entertainment center
US20070101364A1 (en) 2003-05-27 2007-05-03 Toru Morita Multimedia reproducing apparatus and reproducing method
US20070157095A1 (en) 2005-12-29 2007-07-05 Microsoft Corporation Orientation free user interface
US20070169115A1 (en) 2005-12-20 2007-07-19 Apple Computer, Inc. Portable media player as a low power remote control and method thereof
US20070189737A1 (en) 2005-10-11 2007-08-16 Apple Computer, Inc. Multimedia control center
US7581182B1 (en) * 2003-07-18 2009-08-25 Nvidia Corporation Apparatus, method, and 3D graphical user interface for media centers

Patent Citations (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847781A (en) 1986-09-23 1989-07-11 Associated Data Consoltants Energy management system
US5555354A (en) 1993-03-23 1996-09-10 Silicon Graphics Inc. Method and apparatus for navigation within three-dimensional information landscape
US5706334A (en) * 1994-08-18 1998-01-06 Lucent Technologies Inc. Apparatus for providing a graphical control interface
US6005601A (en) 1996-02-14 1999-12-21 Sony Corporation Apparatus for and method of controlling display of electronic program guide
US5838326A (en) 1996-09-26 1998-11-17 Xerox Corporation System for moving document objects in a 3-D workspace
US6088032A (en) 1996-10-04 2000-07-11 Xerox Corporation Computer controlled display system for displaying a three-dimensional document workspace having a means for prefetching linked documents
US5835094A (en) 1996-12-31 1998-11-10 Compaq Computer Corporation Three-dimensional computer environment
US6236398B1 (en) 1997-02-19 2001-05-22 Sharp Kabushiki Kaisha Media selecting device
US6295062B1 (en) 1997-11-14 2001-09-25 Matsushita Electric Industrial Co., Ltd. Icon display apparatus and method used therein
US6064380A (en) 1997-11-17 2000-05-16 International Business Machines Corporation Bookmark for multi-media content
US6201540B1 (en) 1998-01-07 2001-03-13 Microsoft Corporation Graphical interface components for in-dash automotive accessories
US6448987B1 (en) 1998-04-03 2002-09-10 Intertainer, Inc. Graphic user interface for a digital content delivery system using circular menus
US7205471B2 (en) 1998-06-17 2007-04-17 Looney Productions, Llc Media organizer and entertainment center
US20050060666A1 (en) 1998-08-24 2005-03-17 Takeshi Hoshino Method of displaying, a method of processing, an apparatus for processing, and a system for processing multimedia information
US6868225B1 (en) 1999-03-30 2005-03-15 Tivo, Inc. Multimedia program bookmarking system
US6654030B1 (en) 1999-03-31 2003-11-25 Canon Kabushiki Kaisha Time marker for synchronized multimedia
US6262724B1 (en) 1999-04-15 2001-07-17 Apple Computer, Inc. User interface for presenting media information
US20050198574A1 (en) 1999-04-21 2005-09-08 Interactual Technologies, Inc. Storyboard
US6889001B1 (en) 1999-04-27 2005-05-03 Alpine Electronics, Inc. Disk player with location marking capability
US20020091662A1 (en) 1999-08-17 2002-07-11 Douglas P Bogia System and method for processing a working file
US20010050690A1 (en) 1999-09-30 2001-12-13 Giles Conley Wilson Image transfer matrix
US6876729B1 (en) 1999-11-16 2005-04-05 Avaya Technology Corp. Bookmarking voice messages
US20040080537A1 (en) 2000-09-18 2004-04-29 Glenn Adler Stand-alone monitor as photograph slide show projector
US6990671B1 (en) 2000-11-22 2006-01-24 Microsoft Corporation Playback control methods and arrangements for a DVD player
US20020196266A1 (en) 2001-06-25 2002-12-26 Michael Mou Progressively rolling animation display method on cellular phones
US20030016951A1 (en) 2001-07-18 2003-01-23 International Business Machines Corporation DVD bookmark apparatus and method
US7096431B2 (en) 2001-08-31 2006-08-22 Sony Corporation Menu display apparatus and menu display method
US7032177B2 (en) 2001-12-27 2006-04-18 Digeo, Inc. Method and system for distributing personalized editions of media programs using bookmarks
US20040047588A1 (en) 2002-03-27 2004-03-11 Tomoyuki Okada Package medium, reproduction apparatus, and reproduction method
US6914551B2 (en) 2002-04-12 2005-07-05 Apple Computer, Inc. Apparatus and method to facilitate universal remote control
US20040056837A1 (en) 2002-06-28 2004-03-25 Clarion Co., Ltd. Display control device
US20040155907A1 (en) 2003-02-07 2004-08-12 Kosuke Yamaguchi Icon display system and method , electronic appliance, and computer program
US20040162845A1 (en) 2003-02-18 2004-08-19 Samsung Electronics Co., Ltd. Media file management system and method for home media center
US20040223737A1 (en) 2003-05-07 2004-11-11 Johnson Carolyn Rae User created video bookmarks
US20070101364A1 (en) 2003-05-27 2007-05-03 Toru Morita Multimedia reproducing apparatus and reproducing method
US7581182B1 (en) * 2003-07-18 2009-08-25 Nvidia Corporation Apparatus, method, and 3D graphical user interface for media centers
US20050027539A1 (en) 2003-07-30 2005-02-03 Weber Dean C. Media center controller system and method
US20060025920A1 (en) 2003-09-25 2006-02-02 Sony Corporation On-vehicle apparatus and content providing method
US20050132055A1 (en) 2003-12-12 2005-06-16 Raja Neogi System and method to control appliances using adaptive interfaces
US20050138664A1 (en) 2003-12-23 2005-06-23 Raja Neogi System and method for allocating resources in an adaptive media center processing system
US20050155077A1 (en) 2004-01-08 2005-07-14 Mediamall Technologies Media on-demand systems
US20060064720A1 (en) 2004-04-30 2006-03-23 Vulcan Inc. Controlling one or more media devices
US20060001645A1 (en) 2004-06-30 2006-01-05 Microsoft Corporation Using a physical object to control an attribute of an interactive display application
US20060036959A1 (en) 2004-08-05 2006-02-16 Chris Heatherly Common user interface for accessing media
US20060059426A1 (en) 2004-09-15 2006-03-16 Sony Corporation Image processing apparatus, method, and program, and program storage medium
US20060095865A1 (en) 2004-11-04 2006-05-04 Rostom Mohamed A Dynamic graphical user interface for a desktop environment
US20060143327A1 (en) 2004-12-28 2006-06-29 Ulead Systems, Inc. System for synchronously controlling multiple devices
US20060156246A1 (en) 2005-01-12 2006-07-13 Microsoft Corporation Architecture and engine for time line based visualization of data
US20060206779A1 (en) 2005-03-02 2006-09-14 Stmicroelectronics N.V. Method and device for decoding DVB-S2 LDPC encoded codewords
US20060206799A1 (en) 2005-03-11 2006-09-14 Microsoft Corporation Media software navigation with conditional links
US20060206428A1 (en) 2005-03-11 2006-09-14 Microsoft Corporation Accessing medial context information using contextual links
US20070006093A1 (en) * 2005-06-30 2007-01-04 International Business Machines Corporation Canceling window close commands
US20070016860A1 (en) 2005-07-12 2007-01-18 Lim Ruth A Shortcut for predetermined application
US20070028267A1 (en) 2005-07-27 2007-02-01 Microsoft Corporation Media user interface gallery control
US20070070066A1 (en) 2005-09-13 2007-03-29 Bakhash E E System and method for providing three-dimensional graphical user interface
US7721208B2 (en) 2005-10-07 2010-05-18 Apple Inc. Multi-media center for computing systems
US20070083616A1 (en) 2005-10-07 2007-04-12 Apple Computer, Inc. Multi-media center for computing systems
US20070080823A1 (en) 2005-10-07 2007-04-12 Apple Computer, Inc. Techniques for pairing remote controllers with host devices
US20070083911A1 (en) 2005-10-07 2007-04-12 Apple Computer, Inc. Intelligent media navigation
US20100223553A1 (en) 2005-10-07 2010-09-02 Thomas Madden Multi-Media Center for Computing Systems
US20110243525A1 (en) 2005-10-07 2011-10-06 Imran Chaudhri Multimedia control center
US8621393B2 (en) 2005-10-07 2013-12-31 Apple Inc. Multimedia control center
US20140108998A1 (en) 2005-10-07 2014-04-17 Apple Inc. Multimedia control center
US20070189737A1 (en) 2005-10-11 2007-08-16 Apple Computer, Inc. Multimedia control center
US7966577B2 (en) 2005-10-11 2011-06-21 Apple Inc. Multimedia control center
US20070169115A1 (en) 2005-12-20 2007-07-19 Apple Computer, Inc. Portable media player as a low power remote control and method thereof
US20070157095A1 (en) 2005-12-29 2007-07-05 Microsoft Corporation Orientation free user interface

Non-Patent Citations (84)

* Cited by examiner, † Cited by third party
Title
"Application software", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: , (May 22, 2006), 3 pgs.
"Application software", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: <URL: http:/ /en.wikipedia.org/wiki/Application—software>, (May 22, 2006), 3 pgs.
"Digital audio", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: , (May 25, 2006), 3 pgs.
"Digital audio", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: <URL: http://en.wikipedia.org/wiki/Digital audio>, (May 25, 2006), 3 pgs.
"Digital Media", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: , 2 pgs.
"Digital Media", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: <URL: http://en.wikipedia.org/wiki/Digital Media>, 2 pgs.
"Digital video", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: , (May 6, 2006), 3 pgs.
"Digital video", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: <URL: http://en.wikipedia.org/wiki/Digital video>, (May 6, 2006), 3 pgs.
"Doom9 What's on a DVD", [online]. Retrieved from the Internet: , (Apr. 28, 2001), 4 pgs.
"Doom9 What's on a DVD", [online]. Retrieved from the Internet: <URL: http://web.archive.org/web/20010428123010/ http://www.doom9.org/dvd-structure.htm>, (Apr. 28, 2001), 4 pgs.
"DVD Authoring Terminology", [online]. [archived Feb. 19, 2004]. Retrieved from the Internet: <URL: http://web.archive.org/web/20040219211732/http://www.mainfest-tech.com/links/dvd-terms.htm.>, (Feb. 19, 2004), 12 pgs.
"Express Remote (URM-17 A)", product information datasheet. (c) 2005 Keyspan, [online]. [retrieved on Sep. 25, 2005]. Retrieved from the Internet: , (2005), 1-2.
"Express Remote (URM—17 A)", product information datasheet. (c) 2005 Keyspan, [online]. [retrieved on Sep. 25, 2005]. Retrieved from the Internet: <URL: http://www.keyspan:com/products/usb/urm15t>, (2005), 1-2.
"ITunes". Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: , (May 22, 2006), 11 pgs.
"ITunes". Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: <http://en,wikipedia.org/wiki/ITunes>, (May 22, 2006), 11 pgs.
"Keyspan Express Remote Supports Apple's Airport Express", Press Release, Keyspan, (Nov. 10, 2004), 2 pgs.
"Keyspan Express Remote", Product Fact Sheet, Keyspan, (Sep. 25, 2005), 1 pg.
"Keyspan: DMR Software v. 1.3 for Mac OS .X User Manual Rev. 04.09.01A", (1998), 50 pgs.
"Media player", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: , (May 20, 2006), 1 pg.
"Media player", Wikipedia®, the free encyclopedia, [online]. Retrieved from the Internet: <URL: http://en.wikipedia.org/wiki/Media—player>, (May 20, 2006), 1 pg.
"Microsoft® Windows® XP for Home Users Service Pack 2 Edition", Peachpit Press [online]. {retrieved Sep. 26, 2008]. Retrieved from the Internet: , (2008), 13 pgs.
"Microsoft® Windows® XP for Home Users Service Pack 2 Edition", Peachpit Press [online]. {retrieved Sep. 26, 2008]. Retrieved from the Internet: <URL: http://proquest.safaribooksonline.com/print?xmlid=0321369890/ch17lev1sec5>, (2008), 13 pgs.
"Multimedia". Wikipedia, the free encyclopedia, [online], Retrieved from the Internet: , (May 25, 2006), 2 pgs.
"Multimedia". Wikipedia, the free encyclopedia, [online], Retrieved from the Internet: <http://en.wikipedia.org/wiki/Multimedia>, (May 25, 2006), 2 pgs.
"Remote for iTunes (URM-15T), product information datasheet", [online]. © 2005 Keyspan. [retrieved on Sep. 25, 2005]. Retrieved from the Internet: , (2005), 1-2.
"Remote for iTunes (URM-15T), product information datasheet", [online]. © 2005 Keyspan. [retrieved on Sep. 25, 2005]. Retrieved from the Internet: <URL: http://www.keyspan.com/product/usb/urm15t>, (2005), 1-2.
"Sailing Clicker 2.2.1", User Manual, © 2003-2005 Sailing Software AB, (2005), 45 pgs.
"Window XP Medial Center Edition, First released: Jan. 2002-Last released: Nov. 2004, an article summarizing the program is provided in lieu of the actual software itself.", [online]. [retrieved on Mar. 13, 2008]. Retrieved from the Internet: , (Mar. 6, 2008), 5 pgs.
"Window XP Medial Center Edition, First released: Jan. 2002—Last released: Nov. 2004, an article summarizing the program is provided in lieu of the actual software itself.", [online]. [retrieved on Mar. 13, 2008]. Retrieved from the Internet: <URL: http://en.wikipedia.org/wiki/Windows—XP—Media—Center—Edition>, (Mar. 6, 2008), 5 pgs.
"Windows XP Media Center Edition", [online]. [retrieved Sep. 27, 2005]. Retrieved from Internet: , (2005), 1-5.
"Windows XP Media Center Edition", [online]. [retrieved Sep. 27, 2005]. Retrieved from Internet: <URL: http://en.wikipedia.org/wiki/Windows—XP—Media—Center—Edition>, (2005), 1-5.
Ralph, Labarge, DVD Authoring & Production, Focal Press, (2001), pp. 113, 252.
U.S. Appl. No. 11/247,975, Advisory Action mailed Nov. 25, 2008, 3 pgs.
U.S. Appl. No. 11/247,975, Advisory Action mailed Oct. 14, 2009, 3 pgs.
U.S. Appl. No. 11/247,975, Final Office Action mailed Jul. 31, 2009, 16 pgs.
U.S. Appl. No. 11/247,975, Final Office Action mailed Sep. 16, 2008, 14 pgs.
U.S. Appl. No. 11/247,975, Non Final Office Action mailed Feb. 10, 2009, 15 pgs.
U.S. Appl. No. 11/247,975, Non Final Office Action mailed Mar. 20, 2008, 17 pgs.
U.S. Appl. No. 11/247,975, Notice of Allowance mailed Jan. 7, 2010, 12 pgs.
U.S. Appl. No. 11/247,975, Preliminary Amendment filed Jan. 17, 2006, 3 pgs.
U.S. Appl. No. 11/247,975, Response filed Jun. 17, 2008 to Non Final Office Action mailed Mar. 20, 2008, 15 pgs.
U.S. Appl. No. 11/247,975, Response filed May 11, 2009 to Non Final Office Action mailed Feb. 10, 2009, 13 pgs.
U.S. Appl. No. 11/247,975, Response filed Nov. 14, 2008 to Final Office Action mailed Sep. 16, 2008, 13 pgs.
U.S. Appl. No. 11/247,975, Response filed Oct. 30, 2009 to Office Action mailed Jul. 31, 2009 and Advisory Action mailed Oct. 14, 2009, 13 pgs.
U.S. Appl. No. 11/247,975, Response filed Sep. 30, 2009 to Final Office Action mailed Jul. 31, 2009, 12 pgs.
U.S. Appl. No. 11/249,032, Appeal Brief filed Sep. 20, 2010, 39 pgs.
U.S. Appl. No. 11/249,032, Appeal Decision mailed Sep. 13, 2013, 13 pgs.
U.S. Appl. No. 11/249,032, Decision on Pre-Appeal Brief Request mailed Aug. 19, 2010, 2 pgs.
U.S. Appl. No. 11/249,032, Examiner Interview Summary mailed Jul. 14, 2009, 2 pgs.
U.S. Appl. No. 11/249,032, Examiner's Answer to Appeal Brief mailed Dec. 8, 2010, 35 pgs.
U.S. Appl. No. 11/249,032, Final Office Action mailed Apr. 1, 2010, 21 pgs.
U.S. Appl. No. 11/249,032, Final Office Action mailed May 12, 2009, 19 pgs.
U.S. Appl. No. 11/249,032, Non Final Office Action mailed Oct. 1, 2008, 17 pgs.
U.S. Appl. No. 11/249,032, Non Final Office Action mailed Oct. 14, 2009, 19 pgs.
U.S. Appl. No. 11/249,032, Notice of Allowance mailed Feb. 19, 2014, 11 pgs.
U.S. Appl. No. 11/249,032, Preliminary Amendment filed May 5, 2006, 7 pgs.
U.S. Appl. No. 11/249,032, Reply Brief filed Feb. 8, 2011, 15 pgs.
U.S. Appl. No. 11/249,032, Response filed Jan. 14, 2010 to Non Final Office Action mailed Oct. 14, 2009, 12 pgs.
U.S. Appl. No. 11/249,032, Response filed Jan. 2, 2009 to Non Final Office Action mailed Oct. 1, 2008, 19 pgs.
U.S. Appl. No. 11/249,032, Response filed Jul. 31, 2009 to Final Office Action mailed May 12, 2009, 12 pgs.
U.S. Appl. No. 11/249,139, 312 Amendment filed Apr. 26, 2011, 8 pgs.
U.S. Appl. No. 11/249,139, Final Office Action mailed Oct. 27, 2010, 11 pgs.
U.S. Appl. No. 11/249,139, Non Final Office Action mailed Jul. 16, 2010, 9 pgs.
U.S. Appl. No. 11/249,139, Notice of Allowance mailed Feb. 18, 2011 , 12 pgs.
U.S. Appl. No. 11/249,139, Preliminary Amendment filed Jun. 12, 2006, 8 pgs.
U.S. Appl. No. 11/249,139, PTO Response to 312 Communication mailed Apr. 29, 2011, 2 pgs.
U.S. Appl. No. 11/249,139, Response filed Jan. 27, 2011 to Final Office Action mailed Oct. 27, 2010, 11 pgs.
U.S. Appl. No. 11/249,139, Response filed May 13, 2010 to Restriction Requirement mailed Apr. 13, 2010, 1 pg.
U.S. Appl. No. 11/249,139, Response filed Oct. 18, 2010 to Non Final Office Action mailed Jul. 16, 2010, 12 pgs.
U.S. Appl. No. 11/249,139, Restriction Requirement mailed Apr. 13, 2010, 5 pgs.
U.S. Appl. No. 12/778,038, Advisory Action mailed Sep. 4, 2012, 4 pgs.
U.S. Appl. No. 12/778,038, Final Office Action mailed May 14, 2012, 15 pgs.
U.S. Appl. No. 12/778,038, Non Final Office Action mailed Jan. 18, 2012, 15 pgs.
U.S. Appl. No. 12/778,038, Response filed Apr. 13, 2012 to Non Final Office Action mailed Jan. 18, 2012, 14 pgs.
U.S. Appl. No. 12/778,038, Response filed Aug. 24, 2012 to Final Office Action mailed May 14, 2012, 12 pgs.
U.S. Appl. No. 13/134,245, Examiner Interview Summary mailed Jun. 27, 2013, 3 pgs.
U.S. Appl. No. 13/134,245, Non Final Office Action mailed Mar. 13, 2013, 9 pgs.
U.S. Appl. No. 13/134,245, Notice of Allowance mailed Aug. 29, 2013, 8 pgs.
U.S. Appl. No. 13/134,245, Notice of Allowance mailed Nov. 4, 2013, 4 pgs.
U.S. Appl. No. 13/134,245, Response filed Jan. 7, 2013 to Restriction Requirement mailed Dec. 7, 2012, 6 pgs.
U.S. Appl. No. 13/134,245, Response filed Jun. 13, 2013 to Non-Final Office Action mailed Mar. 13, 2013, 13 pgs.
U.S. Appl. No. 13/134,245, Restriction Requirement mailed Dec. 7, 2012, 5 pgs.
U.S. Appl. No. 14/134,674, Non Final Office Action mailed Jan. 17, 2014, 6 pgs.
U.S. Appl. No. 14/134,674, Response filed Apr. 16, 2004 to Non Final Office Action mailed Jan. 17, 2014.

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043729B2 (en) 2005-10-07 2015-05-26 Apple Inc. Multimedia control center
US9389756B2 (en) 2005-10-07 2016-07-12 Apple Inc. Displaying a selectable item over a blurred user interface
US9405438B2 (en) 2005-10-07 2016-08-02 Apple Inc. Multimedia control center
US9817554B2 (en) 2005-10-07 2017-11-14 Apple Inc. Displaying a selectable item over a blurred user interface
US10338781B2 (en) 2005-10-07 2019-07-02 Apple Inc. Navigating a media menu using a touch-sensitive remote control device

Also Published As

Publication number Publication date
US20100223553A1 (en) 2010-09-02
US7721208B2 (en) 2010-05-18
US20130167032A1 (en) 2013-06-27
US20070083616A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
US8893003B2 (en) Multi-media center for computing systems
US9557877B2 (en) Advanced playlist creation
US7681141B2 (en) Fast scrolling in a graphical user interface
US7735012B2 (en) Audio user interface for computing devices
US8819043B2 (en) Combining song and music video playback using playlists
US7281214B2 (en) Automatically updating user programmable input sensors to perform user specified functions
US8782521B2 (en) Graphical user interface with improved media presentation
EP2324416B1 (en) Audio user interface
US20080066110A1 (en) Media preview user interface
US20050015355A1 (en) Method and system for data sharing between application programs
US20120089951A1 (en) Method and apparatus for navigation within a multi-level application
US20100070898A1 (en) Contextual window-based interface and method therefor
US20100318939A1 (en) Method for providing list of contents and multimedia apparatus applying the same
MX2011007439A (en) Data processing apparatus and method.
US20080092046A1 (en) Playlist management method
EP1960990A2 (en) Voice and video control of interactive electronically simulated environment
US20100131548A1 (en) Method and apparatus for generating content playlist using metadata
US20070079240A1 (en) Method for integrating user interfaces of multimedia files
US8701036B2 (en) Electronic device and method for implementing icon board based operation interface thereof
US10976895B2 (en) Electronic apparatus and controlling method thereof
EP2656176A1 (en) Method for customizing the display of descriptive information about media assets
AU2006284665B2 (en) Management of files in a personal communication device
US20120110454A1 (en) Method and apparatus for providing user interface for media contents in user equipment
US7882157B2 (en) Content data recording device and recording control method
JP2005515538A (en) Technology that provides an unrelated graphical user interface that is not conspicuous in the background when selecting options

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8