The present disclosure relates to computing devices, and more particularly, the disclosure relates to systems and methods for communicating with media modules associated with a computing device.BACKGROUND
Desktop computers and laptops are processing information faster and storing more information and software applications. Typically, each software application is designed as a stand alone application and does not interact with other software applications. For example, a music application accesses a file configured specifically for the music application, Other applications, such as, a photo application, cannot access the music file and the music application cannot access the photo file. A user may be overwhelmed with the multiple software applications and the various different features associated with each application.SUMMARY
Systems and methods for communicating with media modules associated with a computing device are provided. In this regard, a representative method, among others, includes receiving an input to execute at least one media module and determining a power state of a computing device, which generally has multiple power states. The method further includes launching the at least one media module based on the power state of the computing device responsive to determining the power state of the computing device. The media module is configured to be launched from any one of the multiple power states of the computing device.
A representative system, among others, includes a menu system that receives an input to execute at least one media module. The menu system is configured to determine a power state of a computing device, which has multiple power states. The system further includes at least one media module that communicates with the menu system, which is further configured to facilitate launching the at least one media module based on the power state of the computing device. The at least one media module is configured to be launched from any one of the multiple power states of the computing device.BRIEF DESCRIPTION OF THE DRAWINGS
Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
Exemplary systems are first discussed with reference to the figures. Although these systems are described in detail, they are provided for purposes of illustration only and various modifications are feasible. After the exemplary systems are described, examples of flow diagrams of the systems are provided to explain the manner in which the steps of communicating with the media modules of the computing devices are provided.
The processing device 110 can include any custom made or commercially available processor, a central processing unit (CPU) or an auxiliary processor among several processors associated with the laptop computer, desktop computer, and server, a semiconductor based microprocessor (in the form of a microchip), or a macroprocessor. The memory 120 can include any one or a combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, Flash Memory, etc.).
The one or more user interface devices 130 comprise those components with which the user (e.g., administrator) can interact with the generic computer system 100. Where the computing components of the system 100 comprise server computers or similar devices, these components can comprise those typically used in conjunction with a PC such as a keyboard and mouse.
The one or more I/O devices 140 comprise components used to facilitate connection of the computing devices of the system 100 to other devices and therefore, for instance, comprise one or more serial, parallel, small system interface (SCSI), universal serial bus (USB), or IEEE 1394 (e.g., Firewire™) connection elements. The networking devices 150 comprise the various components used to transmit and/or receive data over the network (not shown), where provided. By way of example, the networking devices 150 include a device that can communicate both inputs and outputs, for instance, a modulator/demodulator (e.g., modem), a radio frequency (RF) or infrared (IR) transceiver, a telephonic interface, a bridge, a router, as well as a network card, etc.
The memory 120 normally comprises various programs (in software and/or firmware) including an operating system (O/S) (not shown) and a menu manager 125. The O/S controls the execution of programs, including the menu manager 125, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. Operations of the menu manager 125 are described in relation to
The platform hardware 245 further communicates with an ACPI content 240, which includes ACPI tables that describe the interface to the hardware. The description generally provides information that facilitates the operation and functionality of the hardware component of the computer system 200. The ACPI content 240 further includes ACPI registers that facilitate the operation of the ACPI tables as well as an ACPI BIOS, which boots the computer system 200 and implements interfaces for sleep, wake, and some restart operations.
The ACPI content 240 communicates with a menu manager 125B via an ACPI driver/AML interpreter 235. The menu manager 125B is electrically coupled to the kernel 215 that is electrically coupled to an OSPM system code 220. Alternatively or additionally, a menu manager 125A can facilitate communication between the applications 205 and kernel 215. An application 205 generally refers to a computer software that is executed by the computer system 200 and can perform certain tasks. The application 205 includes, but is not limited, to music, video, and picture applications, word processing and spreadsheet applications, and other software services, such as, Snapfish™ and Youtube™. The menu manager 125 is further described in relation to
1. Access menu functionality from within another media module 325;
2. Add and remove media modules 325A-D displayed on a display device (not shown) from a list of media modules 325A-D that can be updated via the Internet (not shown);
3. Customize a menu interface 610, 710 (
4. Search for digital media and television (Internet streamed and live) content via the search feature 320;
5. Add digital media & recorded/on-demand television content from media modules 325A-D and the search feature 320 to the playlist 330;
6. Watch the playlist 330 in full screen or in overlay windowed mode; and
7. Share the playlist 330 via upload to Snapfish™, Youtube™ or burning toAudioCDV/VCD/DVD.
Alternatively or additionally, the menu system 310 can have the capability to display messages to the users that inform them about news relating to the media module's experiences and the availability of updates. When a user adds or removes a media module 325 from the menu interface 610, 710, the menu manager 125 can refresh the menu interface 610, 710 to reflect the change.
If a user selects a media module 325 that has not been downloaded or available to the menu manager 125, the menu system 310 can begin the download process. After the download is complete, the menu manager 125 can install the media module 325 and place a button icon associated with the downloaded media module 325 in the menu interface 610, 710, regardless of whether the user is using the software service or an application associated with menu manager 125 at the time. Alternatively or additionally, the menu manager 125 can resume an interrupted download of the media module 325. The media module 325 has, but is not limited to, at least one of the following factors:
1. Be a separate executable file or operating system;
2. Be able to add file pointers within the playlist 330 for local, network and web-based for media content;
3. When queried by the media system 310 or search feature 320, be able to output search metadata about unique digital media content offered by the feature module, e.g., metadata about on-demand Internet TV shows;
4. Be able to accept a script to load and play a local or streamed digital media file;
5. Follow the user interface design language and have different color schemes; and
6. When initialized, the medial module 325 can return to the last power state of the computer system 200 and resume operation.
The search feature 320 allows the user to search for digital media and television (e.g., Internet streamed and live) content. The digital media content can be searched from local storage, such as, the memory 120, as well as universal plug and play (UPnP) devices and Snapfish™ if the services are operational and connected. Live, recorded and Internet streamed on-demand television can also be searched using metadata and electronic programming guides (if available). The user can search for content by accessing the search feature 320 on the menu interface 610, 710.
The search feature 320 can provide a search by keywords and once the query is accepted, a search engine 322 of the search feature can “crawl” through all available offline & online storage, as well as make search requests to a television module's electronic programming guide and Internet TV content providers. As the query progresses, positive matches can be displayed to the user. If a user highlights an item found in the search result, a thumbnail of the content can be displayed. The user can either load the item or add it to the playlist 330. The menu system 310 can load the appropriate media module 325 and make a request to the media module 325 to load the media content item and begin playback. If the media module 325 is already loaded then the search feature 320 can make a request to load the media content item and begin playback.
The playlist 330 can be available from ACPI S0 power state and enables the user to add digital media and recorded/on-demand television content to the playlist 330 from any media module 325 or from the search result of the search feature 320. The playlist 330 can be stored and retrieved, viewed in full screen or as a resizable overlay-window, uploaded to Snapfish™ or YouTube™, and burned to Audio CD or Video DVD. Music, picture and video (inc. recorded television) content can be added to the playlist 330 from within media module 325 or through the search feature 320. Media can be local or from an online service. On-demand Internet television can be a link to a streaming file.
The user can access the playlist 330 by way of the menu interface 610, 710. The playlist 330 can be part of the menu system 310 or the media module 325 developed by a third party vendor. The playlist 330 can be stored locally or on removable storage. The playlist 330 can be stored in a location specific to the media module 125 and can be configured not to be changed by the user. When the user ends the session of a media module 125 and the playlist 330 has not been saved by the user exists, the user can be prompted to save the playlist 330. If the user decides not save the playlist 330 then the menu manager 125 can be configured not to store the playlist 330 to memory 120. The user can perform at least one of the following functions from within the playlist 330:
1. View current playlist 330 or load an existing playlist 330. If an existing playlist 330 is loaded, there should be the ability to return to the previous (temporary) playlist 330.
2. Scroll through list of items in current playlist 330 and see associated preview thumbnail graphics.
3. Change order of media content items in the playlist 330.
4. View the playlist 330 as a mash-up in full screen or as a resizable overlay-window.
5. Upload the playlist 330 to Snapfish™ as an album of pictures.
6. Upload the playlist 330 as a video to YouTube™.
7. Burn the playlist 330 to a Audio CD or Video DVD
The playlist 330 can be viewed in full screen mode or as a resizable overlay-window. If the user selects to watch the playlist 330 in full screen mode, the user can have the option to dynamically change to a resizable overlay-window or return to the user interface of the playlist 330. An overlay-window is generally a media player component that runs as a service on top of all applications. The overlay-window can be dynamically resized and has basic player controls, as well as a button to return to the playlist user interface or full screen playback mode.
The customize menu feature 315 enables the user to customize the interface of the media modules 325 and the menu system 310. The user can perform at least one of the following:
1. Select a new color scheme from a range of five schemes.
2. Add a background picture to the full menu user interface 610 (
3. Change the transparency level of the default or custom background picture.
4. Upon pressing the button on a menu bar 615 (
The menu manager 125 has different behaviors for power and operation states. The table below describes the state behavior and the state logic diagram.
TABLE 1State When Menu managerreceives InputActionsS5 ACPI Power StateAt step 480, load Full Menu User Interface 610(FIG. 6) in less than, for example, 1 sec.At step 485, boots operating system, e.g.,Windows, in background of user interface.At step 490, when media module 325 is selected,show loading splash page and load windowsmedia module.S4 ACPI Power StateAt step 460, load Full Menu User Interface 610 inless than, for example, 1 sec.At step 465, resume operating system, e.g.,Windows, from suspend in background of userinterface.At step 470, when media module 325 is selected,load windows media module.S3 ACPI Power StateAt step 445 load Full Menu User Interface 610in less than, for example, 1 sec.At step 450, resume operating system, e.g.,Windows, from suspend in background of userinterface.At step 455, when media module 325 is selected,load windows media module.S0 ACPI Power StateAt step 430, check resume state flag.and is first session loadAt step 440, if flag = “resume previous mediamodule 325 and operation” then load mediamodule 325 and trigger resume operation flag ofmedia module 325.Else at step 435 load Full Menu UserInterface 610 in less than, for example, 1 sec.S0 ACPI Power StateAt step 420, check resume state flag.and is not first session loadAt step 425, if flag = “resume previous mediamodule 325 and operation” then load mediamodule 325 and trigger resume operation flag ofmedia module 325.Else at step 422 load Menu Bar UserInterface 710 (FIG. 7) in less than, for example, 1sec.S0 ACPI Power StateAt step 419, load menu bar 615 as overlay inand in as overlay in currentcurrent media module 325.media module 325S0 ACPI andAt step 410, hide the menu service.In Full or Bar Menu Interface610, 710
If the previous session media module 325 is configured to operate at the S0 ACPI power state, the menu manager 125 at step 515 accesses the last used media module 325 and resume the last played media content 520. If the previous session media module 325 is not configured to operate at the S0 ACPI power state, the menu manager 125 at step 525 loads and displays the full menu user interface 610 on a display device. The menu manager 125 at step 530 determines whether the media module 325 is operating at the S0 ACPI power state. If the media module 325 is operating at the S0 ACPI power state, the menu manager 125 at step 535 loads a menu bar 615 (
It should be noted that any process descriptions or blocks in flowcharts should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. As would be understood by those of ordinary skill in the art of the software development, alternate embodiments are also included within the scope of the disclosure. In these alternate embodiments, functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.
This description has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. Obvious modifications or variations are possible in light of the above teachings. The embodiments discussed, however, were chosen to illustrate the principles of the disclosure, and its practical application. The disclosure is thus intended to enable one of ordinary skill in the art to use the disclosure, in various embodiments and with various modifications, as is suited to the particular use contemplated. All such modifications and variation are within the scope of this disclosure, as determined by the appended claims when interpreted in accordance with the breadth to which they are fairly and legally entitled.