Applications that store a rich collection of content in a single file often face many obstacles to operability. If a large amount of content is stored within the file itself, the time required to load the file may adversely affect the user experience. However, if the file references external content, computational resources may be overburdened by the number of requests and retrieval operations required to access the content. It is with respect to this general environment that embodiments of the present disclosure have been contemplated.
Although specific problems have been addressed in this Background, this disclosure is not intended in any way to be limited to solving those specific problems.
Embodiments of the present disclosure relate to a flexible file that may be optimized for efficient atomic access. The embodiments disclosed herein may be used in conjunction with any type of software application (e.g., word processors, presentation software, diagramming software, etc.). Additionally, the embodiments disclosed herein may be utilized with applications that provide users with a large amount of content. The disclosed flexible file provides applications with the ability to collect and/or aggregate a large amount of content while striking a balance between the needs of a user and the burden placed on local and network computing resources. The flexible file disclosed herein provides flexibility by allowing a varying degree of atomicity with respect to how the aggregated content is retrieved and/or stored.
In further embodiments, the flexible file also provides resiliency with respect to the movement of content on a network. As discussed, the flexible file format is capable of storing actual content or references to content. If a file stores references to content, movement of the content may break the references thereby prohibiting the file from later accessing and/or retrieving the file. Embodiments disclosed herein provide resiliency against the movement of content by storing a variety of different references for each content item. In embodiments, each reference may link to the same content item in a different manner, thereby providing the flexible file with multiple mechanisms to find and retrieve content.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
The same number represents the same element or same type of element in all drawings.
This disclosure will now more fully describe exemplary embodiments with reference to the accompanying drawings, in which some of the possible embodiments are shown. Other aspects, however, may be embodied in many different forms and the inclusion of specific embodiments in the disclosure should not be construed as limiting such aspects to the embodiments set forth herein. Rather, the embodiments depicted in the drawings are included to provide a disclosure that is thorough and complete and which fully conveys the intended scope to those skilled in the art. When referring to the figures, like structures and elements shown throughout are indicated with like reference numerals.
Embodiments of the present disclosure relate to a flexible file format that may be optimized for efficient atomic access. The embodiments disclosed herein may be used in conjunction with any type of software application (e.g., word processors, presentation software, diagramming software, etc.). Additionally, the embodiments disclosed herein may be utilized with applications that provide users with a large amount of content. For example, the flexible file format disclosed herein may be utilized by an application that creates montages. A montage may be a rich collection of pictures, documents, presentations, spreadsheets, diagrams, audio files, videos, web content, or any other type of digital content that a user or application aggregates and provides for display and/or consumption. For ease of description, the discussion herein will refer to the creation of montages when describing the flexible file format. However, one of skill in the art will appreciate that the flexible file format disclosed herein may be employed to create any type of file for any type of application, and will not construe the embodiments disclosed herein as being limited to the creation of montages.
Rich collections, such as montages, may consist of a large number of files. Because of this, a standard file storing a montage, or a large amount of content in general, may place a heavy burden on local computing and network computing resources. The size of the collection may also adversely affect the user experience when a user attempts to access or open the file. For example, if all of the content collected in the montage is stored in the montage file, opening the file and displaying content to the user may take an unreasonably long period of time due to the amount of content that is loaded. On the other hand, if the montage file consists of a collection of references to content, rather than the content itself, the size of the file may be much smaller thereby providing a quick initial load for the user; however, every piece of content that the user selects from the file may have to be retrieved. Because the references stored in the file may direct the user to both content stored locally and content stored remotely over a network, accessing the links in the file to retrieve the content may place a heavy burden on local and network resources.
Embodiments of the flexible file format disclosed herein strike a balance between the described situations and provide the application with the ability to collect and/or aggregate a large amount of content while striking a balance between the needs of a user and the burden placed on local and network computing resources. Thus, the flexible file format provides for the creation of a file that balances load times with the amount of retrievals required while allowing a user and/or and applications to aggregate a large amount of content. Furthermore, the flexible file may be tailored to fit particular user performance needs and/or to work with available computing resources.
The embodiments of the flexible file disclosed herein may provide flexibility by providing a varying degree of atomicity with respect to how the aggregated content is retrieved and/or stored. In embodiments, atomicity refers to the manner in which content is stored. A high degree of atomicity may refer to content that is stored individually. For example, a file in which each piece of content is stored or referenced individually has a high degree of atomicity. When a high degree of atomicity is provided, at least some content may be individually accessed or retrieved. Conversely, a low degree of atomicity may refer to content that is stored as a group or collection. For example, a file in which each piece of content is stored together (e.g., in a single container, file, directory, etc.) has a very low degree of atomicity. When a low degree of atomicity is provided, at least some of the content may not be individually accessed or retrieved. Instead, the content may be accessed or retrieved as a group.
A file that provides high atomicity may increase the user experience by providing a quick load time. Because content may be individually accessed in a highly atomic environment, the user only has to wait for the content he or she selected to be retrieved therefore load time is reduced. However, individually accessing a large number of content in a highly atomic environment increases the number of retrievals and requests and may, therefore, increase the burden on local and network resources.
A file that provides low atomicity may decrease the number of requests and retrievals required, thereby reducing the burden on local and network computing resources. However, because content is accessed as a group in a low atomic environment, the user experience may be degraded because a user may have to wait not only for user selected content, but for additional content as well.
In embodiments, the flexible file format is able provide a varying degree of atomicity, thereby striking a balance between the user experience and use of computing resources. For example, the flexible file format may store some content that will be frequently accessed individually, thereby ensuring a positive user experience, while storing other content as a group (e.g., content that is likely to be accessed together), thereby relieving stress on the computing resources.
In embodiments, the flexible file format may also provide a degree of resiliency with respect to the movement of content. As discussed, the flexible file format is capable of storing actual content or references to content. When a reference to content is stored, the file may lose access to the content if it is moved. Embodiments provide resiliency against the movement of content by storing a number of different references for each content item. In embodiments, each reference may link to the content in a different manner, thereby providing the flexible file with multiple mechanisms to find and retrieve content.
When the flexible file 100 is employed to store a montage, the surface object 102 may contain the basic properties of a single montage. The properties may include surface object grid dimensions and padding that may be used to organize the display of content in the montage, background layers that may be used to define a background for the montage (e.g., a background image or color), and theme information. The surface object may also contain a collection of tile objects (e.g., tile objects 104A, 104B, and 104C) and a collection of clip objects (e.g., clip objects 106A, 106B, and 106C). In embodiments, although clip objects 106A, 106B, and 106C may be visually associated with a tile object, such as tile object 104C, clip objects 106A, 1046B, and 106C may be stored on surface object 102. As such, if the clip objects, e.g., clip objects 106A, 106B, and 106C, are stored on surface object 102, the reordering of the clip objects clip objects 106A, 106B, and 106C in tile object 104C may comprise updating an ordered list of clip object IDs and/or teaser IDs stored in the flexible file 100. Additionally, in this embodiment a clip object may be shared between multiple tile objects (e.g., tile object 104C and tile object 104A), without exporting a large amount of data between the tile objects.
In embodiments, the surface object 102 may provide a number of adjustable properties that a user or application can set to customize the surface object 102 and/or the display of content on the surface object 102. Table 1 provides a non-limiting example of properties that may be provided by the surface object 102.
In embodiments, the flexible file 100 may include a number of tile objects, such as tile objects 104A, 104B, and 104C. The tile objects may be used to associate different content into one or more groupings. For example, when a flexible file 100 is displayed, content items associated with a particular tile object may be accessed using the associated tile object. In one previously described embodiment, the clip objects and/or content may be stored in the surface object 102. In such embodiments, tile objects 104A, 104B, and 104C the clip objects and/or content may nevertheless be visually associated with the tile objects. In an alternate embodiment, the clip objects and or/content may be stored in the tile objects themselves. Although the conceptual embodiment of the flexible file 100 provided illustrates three tile objects, one of skill in the art will appreciate that more or less tile objects may be included in the surface object 102.
In embodiments, a tile object, such as tile object 104C, may be a single top-level container. Tile objects may contain one or more clip objects (e.g., clip objects 106A, 106B, and 106C) and/or content. In embodiments, a tile object may contain a template-defined placeholder clip object upon creation. For example, the flexible file may include a clip which does not yet have content associated with it, but may have content in the future. In such embodiments, the clip may be used as a placeholder. In further embodiments, a tile object may be capable of accumulating additional clip objects and/or content as the clip objects and/or content are added to the flexible file 100. Tile objects may include grid-based positioning information (e.g., column, row, column span, row span, etc.), z-order information, and shape information (e.g., rectangular, circular, elliptical, etc.). In embodiments, information may define the visual layout and/or design of the tile objects.
In embodiments, each tile object may contain more than one clip object. For example, tile object 104C contains three clip objects, clip objects 106A, 106B, and 106C. Tile objects may also provide information related to the performance of navigation between the clip objects contained within the tile object. For example, tile objects may define a manner in which the different content associated with each clip object is accessed and/or displayed. Examples of the types of navigation that may be employed with the embodiments disclosed herein include, but are not limited to, automatic navigation (e.g., timed cross-fade between clip objects in the tile object), manual navigation (e.g., next/previous buttons), or a combination of the two. In embodiments, if manual navigation is selected, a tile object may also contain information related to the storage and/or display of navigational components that a user may interact with in order to navigate between the clip objects and/or content associated with the tile object. In further embodiments, tile objects may also include information related to an animation setting (e.g., duration and delay) for automatic navigation, styling information, and title information. In embodiments, the animation settings may define an animation for automatic navigation of content or to define how content may be displayed as a preview prior to accessing the tile object. In further embodiments, a tile object may be associated with a tile object identifier that may uniquely identify the tile object. The tile object identifier information may be stored by the surface object 102 to identify the particular tile objects that reside within the surface object 102. In yet another embodiment, the tile object may be associated with or may store one or more teaser identifiers (teaser ID's). The teaser ID's may identify content that may be displayed on the surface object of a tile object before the tile object is accessed. Table 2 provides a non-limiting example of properties that may be provided by a tile object, such as tile object 104C.
In one embodiment, each tile object may be homogeneous meaning that each tile object is associated with only one type of content. In another embodiment, each tile object may be capable of storing heterogeneous content. In embodiments, tile objects may be associated with document content (e.g., .docx, .pptx, .pdf, .xslx, etc.), picture content (e.g., .jpg, .png, .bmp, .gif, etc.), photo albums, videos, text, feeds (e.g., RSS feeds), and/or web content. While specific examples of content associated with a tile object are provided, any type of content may be associated with a tile object.
In embodiments, the flexible file 100 may include a number of clip objects, such as clip objects 106A, 106B, and 106C. In embodiments, the clip objects may be associated with a tile object. For example, in
In embodiments where a clip object stores a reference to a content item, rather than the actual content item, the clip object may store multiple references to the content item in order to provide resiliency against the movement or reorganization of the content item. Each of the multiple references may identify the same content item; however, each reference may do so differently. For example, a clip object may store an absolute reference, a relative reference, a tokenized reference, or any other type of reference known to the art. An absolute reference may be a reference that points to the exact location of the content item. Exemplary absolute references include, but are not limited to, URL's, URI's, memory or storage addresses, etc. A relative reference may identify a content item by its relative position in a collection (e.g., package, directory, etc.). A tokenized reference is a reference capable of identifying content without relying upon name and location data. In embodiments, the one or more references stored in a clip object may identify the same content, thereby providing resiliency with respect to requesting and retrieving the content. For example, if a content item referenced in a clip object changes its location, e.g., by moving to a different storage area, an absolute reference may not correctly identify the content item but the flexible file 100 may use a relative reference or a tokenized reference to successfully request and retrieve the content item.
In embodiments, the references may refer to individual items of content or a collection of content. If high atomicity is desirable, the one or more references stored in a clip object may refer to a single content item (e.g., a single document, single image, etc.) If low atomicity is desirable, the one or more references stored in a clip object may refer to a collection of content. In low atomicity embodiments, user experience may be degraded due to the loading of a larger amount of content; however, the burden on computing resources may be eased by lowering the number of requests required to access content. As such, the clip object component of the flexible file 100 provides the ability to adjust the level of atomicity of the flexible file 100 in order to balance the needs of the user experience against the burden on local and network computer resources.
A clip object may store additional information about the content associated with the clip object. Table 2 provides a non-limiting example of properties that may be provided by a clip object, such as clip object 106A.
The surface object, tile object, and clip object components provide the flexibility of the flexible file 100. In embodiments, the ability of the clip objects to store either content items or references to content may be leverage to provide flexibility. Furthermore, in embodiments, the ability of clip objects to either store content items, or one or more references to items, provides the flexible file 100 with the ability to operate in different user situations. For example, if the user is operating in an offline mode, the flexible file 100 may be adapted to store actual content items in one or more clip objects. In that manner, the flexible file 100 may be used to store and provide content in an offline environment. Alternatively, in embodiments the flexible file 100 may be successfully used in an offline mode while using references to content if the content is stored locally. Conversely, the flexible file 100 may store references to content items in clip objects and operate in an online environment. In such an embodiment, the size of the flexible file may be reduced.
In embodiment, the flexible file 100 may be an XML file. The section 102, tile objects 104A, 104B, and 104C, and clip objects 106A, 106B, and 106C may be XML elements. Alternatively, the flexible file 100 may be in a different format. For example, the flexible file may be a binary file, a HTML file, a JavaScript file, or any other type file format known to the art.
For example, in
Referring again to
Flow continues to decision operation 506. At decision operation 506 the method of creating the flexible file makes a determination or receives an indication of the type of user scenario and/or situation the flexible file may be optimized for. For example, the flexible file may be optimized for best user experience (e.g., fast load time), the flexible file may be optimized to manage local and/or network computing resources (e.g., minimize requests for content), or the flexible file make take a balanced approach. In embodiments, the indication provides instruction as to how the flexible file should be optimized. For example, the indication may include instructions for saving storing some data within the flexible file while storing references to other data within the file. In embodiments, the instructions as to whether to store the content within the flexible file may be the type of content, size of content, or other characteristics of the content. Although the method 500 is illustrated as providing three different types of optimization, one of skill in the art will appreciate that the flexible file may be created so as to fall anywhere on a spectrum between storing all the content within the file itself or storing all the content remotely by including a mixture of stored content, individually referenced content, and/or collectively referenced content.
In one embodiment, the determination made at operation 506 may be based upon an indication received by the application and/or process performing the method 500. For example, an indication of a preference set by the user may be used to make the determination at operation 506. In another embodiment, the determination may be made dynamically based upon usage history, network resources, the amount of content included in the flexible file, or by any other mechanism.
In embodiments, if the flexible file is to be optimized for minimal load time (e.g., maximize user experience) flow branches “MINIMIZE LOAD TIME” from decision 506 to operation 508. At operation 508, one or more clip objects are created that store one or more references to one or more content items, rather than storing the actual content items. In embodiments, the one or more references may be absolute references, relative references, tokenized references, or any other type of reference known to the art. Flow continues to operation 510 where the one or more reference content items are stored external to the flexible file, either on a local machine, a remote machine, distributed across a network of machines (e.g., stored on a cloud), or in a combination of locations. In order to increase load times, the one or more content items stored at operation 510 may be stored individually thereby allowing the request and retrieval of individual pieces of content thus minimizing load time. In a particular embodiment, for example, operations 508 and 510 may create a flexible file that may contain a majority of components similar to the embodiment illustrated in
In embodiments, if the flexible file is to be optimized to minimize the burden on local and/or network computing resources, flow branches “MINIMIZE REQUESTS” from decision 506 to operation 512. At operation 512 one or more clip objects that store one or more content items. In a particular embodiment, for example, operation 512 may create a flexible file that may contain a majority of component similar to the embodiment illustrated in
In embodiments, a more balanced flexible file may be created in which case flow branches “BALANCED” from decision 506 to operation 514. At operation 512 a plurality of clip objects may be created. The plurality of clip objects may include clip objects that store content items, store references to individual content items, and/or store references to collections of content. Furthermore, clip objects storing references may store absolute references, relative references, tokenized references, or any other type of reference known to the art. Flow continues to operation 516 where content not stored in the clip objects at operation 514 may be stored individually, as a collection of content, or both. The individual and collective content may be stored external to the flexible file either on a local machine, a remote machine, distributed across a network of machines (e.g., stored on a cloud), or in a combination of locations. In a particular embodiment, for example, 514 and 516 may create a flexible file that may contain a majority of components similar to the embodiment illustrated in
In embodiments, once the flexible file is created the file may be modified to adapt to changing user scenarios and/or hardware conditions. For example, a clip that stores a content item in the flexible file may be modified at a later time to store references to the content item. The content item previously stored in the clip may be moved such that it is stored external from the file, either locally or remotely. The moved content item may be externally stored individually or as part of a collection of content. Similarly, a clip that stored one or more references to a content item or collection of content may be modified to store the actual content item or collection of content item. As such, the structure of the flexible file provides fluidity to the file that allows the file to adapt to changing conditions.
A user may open a flexible file on the client device 602 to access content aggregated by the flexible file. In one embodiment, the content aggregated in the flexible file may reside on the client device 602. For example, the aggregated content may reside in the flexible file itself or on the client computer 602. In another embodiment, the flexible file accessed on the client device 602 may contain one or more references to content that resides remotely, for example, on server devices 604 and 606. If the content resides remotely, the client device may issue one or more requests for the content to server devices 604 and 608 via network 608. Server devices 604 and 608 may return content to the client device via network 608.
With reference to
In its most basic configuration, computer system 700 comprises at least one processing unit or processor 704 and system memory 707. The most basic configuration of the computer system 700 is illustrated in
Additionally, computer system 700 may also have additional features/functionality. For example, computer system 700 includes additional storage media 708, such as removable and/or non-removable storage, including, but not limited to, magnetic or optical disks or tape. In some embodiments, software or executable code and any data used for the described system is permanently stored in storage media 708. Storage media 708 includes volatile object and non-volatile object, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. In embodiments, the disclosed flexible files and the instructions to perform the methods of creating flexible files 708.
System memory 706 and storage media 708 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile object disks (“DVD”) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage, other magnetic storage devices, or any other medium which is used to store the desired information and which is accessed by computer system 700 and processor 704. Any such computer storage media may be part of computer system 700. In embodiments, system memory 706 and/or storage media 708 stores data used to perform the methods and/or form the system(s) disclosed herein, such as, the embodiments of flexible files and the methods to create the flexible files disclosed herein. In embodiments, system memory 706 stores information such as a flexible file 718 and instructions for generating a flexible file 716.
Computer system 700 may also contain communications connection(s) 710 that allow the device to communicate with other devices. In embodiments, communications connection(s) 710 may be used to transmit and receive messages between sender devices, intermediary devices, and recipient devices. Communication connection(s) 710 is an example of communication media. Communication media may embody a modulated data signal, such as a carrier wave or other transport mechanism and includes any information delivery media, which may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information or a message in the data signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as an acoustic, RF, infrared, and other wireless media.
In some embodiments, computer system 700 also includes input and output connections 712, and interfaces and peripheral devices, such as a graphical user interface. Input device(s) are also referred to as user interface selection devices and include, but are not limited to, a keyboard, a mouse, a pen, a voice input device, a touch input device, etc. Consistent with embodiments of the present disclosure, the input device may comprise any motion detection device capable of detecting the movement of a user. For example, the input device may comprise a KINECT® motion capture device, from Microsoft Corporation, comprising a plurality of cameras and a plurality of microphones. Other embodiments are possible. Output device(s) are also referred to as displays and include, but are not limited to, cathode ray tube displays, plasma screen displays, liquid crystal screen displays, speakers, printers, etc. These devices, either individually or in combination, connected to input and output connections 712 are used to display the information as described herein. All these devices are well known in the art and need not be discussed at length here.
In some embodiments, the component described herein comprise such modules or instructions executable by computer system 700 that may be stored on computer storage medium and other tangible mediums and transmitted in communication media. Computer storage media includes volatile object and non-volatile object, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Combinations of any of the above should also be included within the scope of readable media. In some embodiments, computer system 700 is part of a network that stores data in remote storage media for use by the computer system 700.
The example embodiments described herein can be implemented as logical operations in a computing device in a networked computing system environment. The logical operations can be implemented as: (i) a sequence of computer implemented instructions, steps, or program modules running on a computing device; and (ii) interconnected logic or hardware modules running within a computing device.
For example, embodiments of the present disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in
Additionally, the logical operations can be implemented as algorithms in software, firmware, analog/digital circuitry, and/or any combination thereof, without deviating from the scope of the present disclosure. The software, firmware, or similar sequence of computer instructions can be encoded and stored upon a computer readable storage medium and can also be encoded within a carrier-wave signal for transmission between computing devices.
Although described herein in combination with the mobile computing device 800, in alternative embodiments of the disclosure may be used in combination with any number of computer systems, such as in desktop environments, laptop or notebook computer systems, multiprocessor systems, micro-processor based or programmable consumer electronics, network PCs, mini computers, main frame computers and the like. Embodiments of the disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network in a distributed computing environment; programs may be located in both local and remote memory storage devices. To summarize, any computer system having a plurality of environment sensors, a plurality of output elements to provide notifications to a user and a plurality of notification event types may incorporate embodiments of the present invention.
One or more application programs 866 may be loaded into the memory 862 and run on or in association with the operating system 864. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, diagramming applications, and so forth. The system 802 also includes a non-volatile storage area 868 within the memory 862. The non-volatile storage area 868 may be used to store persistent information that should not be lost if the system 802 is powered down. The application programs 866 may use and store information in the non-volatile storage area 868, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system 802 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area 868 synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory 862 and run on the mobile computing device 800, including the flexible file format, the method of creating a flexible file, and the method of preserving unknown file contents disclosed herein.
The system 802 has a power supply 870, which may be implemented as one or more batteries. The power supply 870 might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.
The system 802 may also include a radio 872 that performs the function of transmitting and receiving radio frequency communications. The radio 872 facilitates wireless connectivity between the system 802 and the “outside world”, via a communications carrier or service provider. Transmissions to and from the radio 872 are conducted under control of the operating system 864. In other words, communications received by the radio 872 may be disseminated to the application programs 866 via the operating system 864, and vice versa. The radio 872 allows the system 802 to communicate with other computing devices, such as over a network. The radio 872 is one example of communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media.
This embodiment of the system 802 provides notifications using the visual indicator 820 that can be used to provide visual notifications and/or an audio interface 874 producing audible notifications via the audio transducer 825. In the illustrated embodiment, the visual indicator 820 is a light emitting diode (LED) and the audio transducer 825 is a speaker. These devices may be directly coupled to the power supply 870 so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor 860 and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface 874 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 825, the audio interface 874 may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with embodiments of the present invention, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system 802 may further include a video interface 876 that enables an operation of an on-board camera 830 to record still images, video stream, and the like.
A mobile computing device 800 implementing the system 802 may have additional features or functionality. For example, the mobile computing device 800 may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Data/information generated or captured by the mobile computing device 800 and stored via the system 802 may be stored locally on the mobile computing device 800, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio 872 or via a wired connection between the mobile computing device 800 and a separate computing device associated with the mobile computing device 800, for example, a server computer in a distributed computing network, such as the Internet. As should be appreciated such data/information may be accessed via the mobile computing device 800 via the radio 872 or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transfer and storage means, including electronic mail and collaborative data/information sharing systems.
This disclosure described some embodiments with reference to the accompanying drawings, in which only some of the possible embodiments were shown. Other aspects may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments were provided so that this disclosure was thorough and complete and fully conveyed the scope of the possible embodiments to those skilled in the art.
Although the embodiments have been described in language specific to structural features, methodological acts, and computer-readable media containing such acts, it is to be understood that the possible embodiments, as defined in the appended claims, are not necessarily limited to the specific structure, acts, or media described. One skilled in the art will recognize other embodiments or improvements that are within the scope and spirit of the present disclosure. Therefore, the specific structure, acts, or media are disclosed only as illustrative embodiments. The disclosure is defined by the appended claims.