Abstract:
A software-based mechanism for taking multimedia notes while using a mobile computing device is provided. The interface is stream-based so as to enable complete control with a text or numeric keypad, a directional pad, and command button. A note document containing textual data and objects representing other data types may be closed and revisited after it has been created. It may be either read or edited in a single session. Changes may be manually or automatically saved to the note document for ease of user experience.

Description:
BACKGROUND  
       [0001]     Small, handheld computing devices have been steadily growing in popularity in recent years. The devices are known by different names, such as pocket computers, personal digital assistants, personal organizers, H/PCs, or the like. Additionally, many portable telephone systems, such as cellular phones, incorporate sufficient computing capabilities to fall within the category of the small, handheld computing devices. These devices, hereinafter “mobile computing devices” provide much of the same functionality as their larger counterparts. In particular, mobile computing devices provide many functions to users including word processing, task management, spreadsheet processing, address book functions, Internet browsing, and calendaring, as well as many other functions.  
         [0002]     Many mobile computing devices include on-board cameras and/or audio recorders. Accordingly, users can record, download, access multimedia files, create ink entries and other types of documents. It is a challenge, however, for the users to collect a variety of images, audio files, text data, and the like, into a single context, especially one that is suitable for use on a personal computer in a productivity environment. Typically, some applications enable a user to annotate an audio or video file, or vice versa, but the original data is in most cases handled in its environment without a seamless combination with other types of data.  
         [0003]     It is with respect to these and other considerations that the present invention has been made.  
       SUMMARY  
       [0004]     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 as an aid in determining the scope of the claimed subject matter.  
         [0005]     Aspects are directed to providing a unified environment for different data types in a mobile computing device. Non-text data may be received from on-board resources or from a file. A document may be created and objects corresponding to non-text data inserted with annotations in textual data.  
         [0006]     Reviewing, editing, adding, and removing non-text data as well as textual annotations may be enabled based on selection of objects.  
         [0007]     These and other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory only and are not restrictive of aspects as claimed. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]      FIG. 1  is a diagram of an example mobile computing device;  
         [0009]      FIG. 2  is a block diagram illustrating components of a mobile computing device used in one embodiment, such as the computer shown in  FIG. 1 ;  
         [0010]      FIG. 3  illustrates a networked environment where embodiments may be practiced;  
         [0011]      FIG. 4  is a block diagram illustrating a software environment according to one embodiment;  
         [0012]      FIG. 5  is a conceptual diagram illustrating a note document along with interactions of included objects with their respective resources according to embodiments; and  
         [0013]      FIG. 6  illustrates a logic flow diagram for a process of providing a unified experience for capturing dynamic information in a mobile computing device. 
     
    
     DETAILED DESCRIPTION  
       [0014]     As briefly described above, embodiments are directed to combining different data types into a unified experience for capturing dynamic information that is suitable for use on a small form-factor, mobile computing device.  
         [0015]     In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the spirit or scope of the present disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents.  
         [0016]     As used herein, the term “note” refers to a document that includes a collection of textual data such as rich text and objects. An object represents content and relative position of non-text data. The term “rich text” refers to textual data that includes additional attribute information associated with the textual data such as formatting, character attributes (bold, italic, underlined, and the like).  
         [0017]     Referring now to the drawings, aspects and an example operating environment will be described.  FIG. 1  and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. While the embodiments will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules.  
         [0018]     Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that embodiments may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Embodiments 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, program modules may be located in both local and remote memory storage devices.  
         [0019]     Embodiments may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.  
         [0020]     With reference to  FIG. 1 , an example mobile computing device  100  for implementing the embodiments is illustrated. In a basic configuration, mobile computing device  100  is a handheld computer having both input elements and output elements. Input elements may include touch screen display  102  and input buttons  104  and allow the user to enter information into mobile computing device  100 . Mobile computing device  100  also incorporates a side input element  106  allowing further user input. Side input element  106  may be a rotary switch, a button, or any other type of manual input element. In alternative embodiments, mobile computing device  100  may incorporate more or less input elements. For example, display  102  may not be a touch screen in some embodiments. In yet another alternative embodiment, the mobile computing device is a portable phone system, such as a cellular phone having display  102  and input buttons  104 . Mobile computing device  100  may also include an optional keypad  112 . Optional keypad  112  may be a physical keypad or a “soft” keypad generated on the touch screen display. Yet another input device that may be integrated to mobile computing device  100  is on-board camera  114 .  
         [0021]     Mobile computing device  100  incorporates output elements, such as display  102 , which can display a graphical user interface (GUI). Other output elements include speaker  108  and LED light  110 . Additionally, mobile computing device  100  may incorporate a vibration module (not shown), which causes mobile computing device  100  to vibrate to notify the user of an event. In yet another embodiment, mobile computing device  100  may incorporate a headphone jack (not shown) for providing another means of providing output signals.  
         [0022]     Although described herein in combination with mobile computing device  100 , in alternative embodiments the invention is 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 invention 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.  
         [0023]      FIG. 2  is a block diagram illustrating components of a mobile computing device used in one embodiment, such as the computing device shown in  FIG. 1 . That is, mobile computing device  100  ( FIG. 1 ) can incorporate system  200  to implement some embodiments. For example, system  200  can be used in implementing a “smart phone” that can run one or more applications similar to those of a desktop or notebook computer such as, for example, browser, email, scheduling, instant messaging, and media player applications. System  200  can execute an Operating System (OS) such as, WINDOWS XP®, WINDOWS MOBILE 2003® or WINDOWS CE® available from MICROSOFT CORPORATION, REDMOND, Wash. In some embodiments, system  200  is integrated as a computing device, such as an integrated personal digital assistant (PDA) and wireless phone.  
         [0024]     In this embodiment, system  200  has a processor  260 , a memory  262 , display  102 , and keypad  112 . Memory  262  generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM, Flash Memory, or the like). System  200  includes an OS  264 , which in this embodiment is resident in a flash memory portion of memory  262  and executes on processor  260 . Keypad  112  may be a push button numeric dialing pad (such as on a typical telephone), a multi-key keyboard (such as a conventional keyboard), or may not be included in the mobile computing device in deference to a touch screen or stylus. Display  102  may be a liquid crystal display, or any other type of display commonly used in mobile computing devices. Display  102  may be touch-sensitive, and would then also act as an input device.  
         [0025]     One or more application programs  266  are loaded into memory  262  and run on or outside of operating system  264 . Examples of application programs include phone dialer programs, e-mail programs, PIM (personal information management) programs, word processing programs, spreadsheet programs, Internet browser programs, and so forth. System  200  also includes non-volatile storage  268  within memory  262 . Non-volatile storage  268  may be used to store persistent information that should not be lost if system  200  is powered down. Applications  266  may use and store information in non-volatile storage  268 , such as e-mail or other messages used by an e-mail application, contact information used by a PIM, documents used by a word processing application, and the like. A synchronization application (not shown) also resides on system  200  and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in non-volatile storage  268  synchronized with corresponding information stored at the host computer. In some embodiments, non-volatile storage  268  includes the aforementioned flash memory in which the OS (and possibly other software) is stored.  
         [0026]     System  200  has a power supply  270 , which may be implemented as one or more batteries. Power supply  270  might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.  
         [0027]     System  200  may also include a radio  272  that performs the function of transmitting and receiving radio frequency communications. Radio  272  facilitates wireless connectivity between system  200  and the “outside world”, via a communications carrier or service provider. Transmissions to and from radio  272  are conducted under control of OS  264 . In other words, communications received by radio  272  may be disseminated to application programs  266  via OS  264 , and vice versa.  
         [0028]     Radio  272  allows system  200  to communicate with other computing devices, such as over a network. Radio  272  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.  
         [0029]     This embodiment of system  200  is shown with two types of notification output devices: LED  110  that can be used to provide visual notifications and an audio interface  274  that can be used with speaker  108  ( FIG. 1 ) to provide audio notifications. These devices may be directly coupled to power supply  270  so that when activated, they remain on for a duration dictated by the notification mechanism even though processor  260  and other components might shut down to conserve battery power. LED  110  may be programmed to remain on indefinitely until the user takes action to indicate the, powered-on status of the device. Audio interface  274  is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to speaker  108 , audio interface  274  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.  
         [0030]     System  200  may further include video interface  276  that enables an operation of on-board camera  114  ( FIG. 1 ) to record still images, video stream, and the like. According to some embodiments, different data types received through one of the input devices, such as audio, video, still image, ink entry, and the like, may be integrated in a unified environment along with textual data by applications  266 . Further details of how this may be accomplished is described below.  
         [0031]     A mobile computing device implementing system  200  may have additional features or functionality. For example, the device 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  FIG. 2  by storage  268 . Computer storage media may include volatile and nonvolatile, 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.  
         [0032]     Referring to  FIG. 3  now, a networked system is illustrated where example embodiments may be implemented. Various data types may be created and/or processed in a mobile computing device such as mobile computing device  100  of  FIG. 1 . Examples of different data types include images, video, audio, and ink entry that may be created using one of the input devices of the mobile computing device or any one of the same data types that may be opened from an existing file. According to some embodiments, a mechanism for integrating different data types in a single document along with textual data is provided. An application performing necessary actions to create, modify, and present such a unified document may be executed in mobile computing device  300 .  
         [0033]     Mobile computing device  300  may operate in a networked environment transmitting and receiving data to and from other computing devices such as server  302 , desktop computer  312 , and laptop computer  314 . Exchanged data may include any of the types described above. Furthermore, mobile computing device  300  may transmit or receive data to a storage system  306 , which is managed by server  304 . Other computing devices known in the art may participate in this networked system as well. The application creating and processing the unified document(s) may be restricted to mobile computing device  300  or executed in a distributed manner by a number of computing devices participating in the networked environment.  
         [0034]     The computing devices participating in the networked environment may communicate over network(s)  310 . Network(s)  310  may include one or more networks. The network(s)  310  may include a secure network such as an enterprise network, or an unsecure network such as a wireless open network. By way of example, and not limitation, the network(s) may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.  
         [0035]     Now referring to  FIG. 4 , a block diagram illustrating a software environment according to one embodiment is shown. Several scenarios may be described to illustrate the advantages of an application that can provide a unified environment for different data types in a mobile computing device. For example, a user may capture images and/or audio recordings during a meeting and combine those into a single document with textual annotations. According to another scenario, a task list may be generated using images combined with ink entries that were made earlier with annotations for each entry. In both scenarios, the user may desire to modify the unified document repeatedly, for example updating the task list as tasks are being accomplished.  
         [0036]     These scenarios are not intended to be limiting; rather, they are intended to illustrate the flexibility of a multimedia note taking application in handling different data types and information obtained from the software environment of the mobile computing device.  
         [0037]     According to embodiments, application program  302  is configured to generate a document (also called “note” herein) that includes textual data along with objects that are aligned with the textual data. The textual data may be rich text, allowing formatting of the text, creation of bulleted or numbered lists, insertion of hyperlinks, and the like. Aligning the objects with the text allows users to handle the note even on a mobile computing device that does not include touch screen capability.  
         [0038]     The objects are placeholders for different types of data captured or received by the mobile computing device. According to one embodiment, following data types may be combined in a document in a unified manner: 
        Images (from either the device&#39;s on-board camera or from an image file)     Audio (recorded from the device&#39;s microphone or from an audio file)     Video (from either the device&#39;s on-board camera or from a video file)     Textual annotations     Lists     Tables     Ink entries        
 
         [0046]     Application program  402  can communicate with operating system  464  through an application program interface (API)  406 . Application program  402  can make calls to methods of API  406  to request OS  464  to activate applications specific to each data type. For example, an audio player program may be activated by the OS  464  when called by application program  402 . Furthermore, OS  464  may communicate with application program  402  to provide data from other applications such as video stream, ink entry, and the like. In alternative embodiments, the application program  402  communicates directly with OS  464 .  
         [0047]     Application program  402  also communicates with a user through OS  464 , input/output control module  410  and input/output devices  412  and  414 . Input devices  412  can include an on-board camera, a microphone, an inking canvas, and the like, such as described above. In this embodiment, application program  402  receives input signals to generate respective objects and insert them into the note providing the unified environment. The data associated with each object, as well as the note itself, may be stored by application program  402  in memory system  462  through OS  464  and through a memory control module  406 .  
         [0048]     Although the above-described embodiment has been described in terms of separate modules or components, in other embodiments the functions of the various modules or components may be performed by other modules and/or combined into fewer modules. In still other embodiments, some of the functions performed by the described modules may be separated further into more modules.  
         [0049]      FIG. 5  is a conceptual diagram illustrating a note document along with interactions of included objects with their respective resources according to embodiments. Note  502  represents a document that is created by an application like application program  402  of  FIG. 4  to provide a unified environment for different data types in a mobile computing device. Note  502  may have textual data entries in various locations of the document such as text  504 , which is a numbered list, and more text  506 . Depending on user actions, objects can be inserted in note  502 . Image object  508 , video object  510 , audio object  512 , and inking object  514  are representative of objects corresponding to different data types. Data types are not limited to the example ones provided herein. Other data types may also be managed by a multimedia note taking application according to embodiments.  
         [0050]     Each object may be created and viewed employing a set of native applications (or the same application). In another embodiment, the multimedia note taking application may include a viewer (or player) module that lets users access the data without having to activate another application. Image object  508  may be used to include still image data in the note such as pictures, graphics, icons, and the like. Data represented by image object  508  may be created by on-board camera or image file selection UI  524 . The image may be viewed using image viewer  522 .  
         [0051]     According to one embodiment, an integrated viewer application may provide additional mobile device specific functionality that enhances user experience. For example, the integrated viewer may divide a picture into grid zones and assign a key from the keypad of the mobile computing device to each grid zone. Then, a grid zone may be displayed in zoom mode, if the user presses the corresponding key. This approach is faster and simpler for the user than commonly used zoom to a selected point (e.g. center of the image) and pan in the direction of the zone of interest on the image.  
         [0052]     Video object  510  operates in a similar fashion to the image object  508 . Video object  510  represents a video stream created by on-board camera or image file selection UI  528  and viewed by video player  526 , which may again be a separate application or an integrated module of the note taking application.  
         [0053]     Audio object  512  represents audio files recorded by audio recorder (using on-board microphone) or audio file selection UI  532 . An audio player, as described, above may be utilized to listen to the audio files.  
         [0054]     Inking object  514  represents inking entries provided by a touch screen type hand writing or drawing application. Other types of entry methods such as charge couple pads may also be used to provide the inking entry. An ink editing / viewing canvas  534  may be used to view and or edit the inking entry.  
         [0055]     As mentioned before, not all mobile computing devices include a stylus type input device. For mobile computing devices with keypad input only (such as smart phones), objects may be displayed in a selectable fashion on the device UI. For example, a highlighting mechanism such as a rectangle around the object may be moved around based on keystrokes such that any one of the objects can be selected for further actions. Once the object is selected, the user may be provided with options such as viewing/listening to the associated data, editing, moving the object to another location, and the like.  
         [0056]      FIG. 6  illustrates a logic flow diagram for a process  600  of providing a unified experience for capturing dynamic information in a mobile computing device. Process  600  may be implemented in a mobile computing device as described in  FIGS. 1 and 2 .  
         [0057]     Process  600  begins with operation  602 , where an indication is received to initiate a note. The indication may be recording of data associated with an object such as taking of a picture, recording of an audio file, and the like. The indication may also be a direct activation of the multimedia note taking application. Processing moves from operation  602  to decision operation  604 .  
         [0058]     At decision operation  604 , a determination is made whether a text entry is requested. A user may wish to begin a note by typing in text such as a list. If a text entry is to be made, processing moves to operation  606 . Otherwise, processing continues to decision operation  608 .  
         [0059]     At operation  606 , text entry by the user is placed in the note and formatted. Processing then returns to operation  602 . At decision operation  608 , a determination is made whether an object is to be inserted into the note. If the note indication was recording of data associated with an object, the object may be entered automatically. On the other hand, a user may desire to insert a new object in an already open note. If an object is to be inserted, processing moves to operation  610 .  
         [0060]     At operation  610 , the object is inserted. Along with inserting a graphic icon of the object, the application may also initiate a native application or an integral module for inserting the data associated with the object. This may include, for example, activating an on-board camera, starting audio recording, activating a UI for a video file selection, and the like. Processing returns from operation  610  to operation  602 .  
         [0061]     If no object is to be inserted at decision operation  608 , processing advances to decision operation  612  where a determination is made whether an object is to be reviewed. An existing note may include one or more objects corresponding to different data types. If the user indicates a desire to review one of those objects, processing moves to operation  614 . Otherwise, processing continues to decision operation  616 .  
         [0062]     At operation  614 , an object reviewer is activated. Similar to creating the data at operation  610 , a separate application or an integrated module may be employed to review the data associated with the object (e.g. audio player, video player, inking canvas, and the like). Processing returns to operation  602  from operation  614 .  
         [0063]     At decision operation  616 , a determination is made whether an object is to be edited. If an object is to be edited, processing moves to operation  618 . At operation  618 , an object editor is activated similar to the reviewing operations. Processing then returns to operation  602 .  
         [0064]     If no object is to be edited at decision operation  616 , processing advances to decision operation  620 . At decision operation  620 , a determination is made whether the note is to be saved. If the note is to be saved, processing moves to operation  622 . Otherwise processing returns to operation  602 .  
         [0065]     At operation  622 , the update note is saved. A note may be edited repeatedly by the user allowing insertion, removal, and editing of objects, as well as editing of the textual data within the note. After operation  622 , processing moves to a calling process for further actions.  
         [0066]     The operations included in process  600  are for illustration purposes. Providing a unified experience for capturing dynamic information in a mobile computing device may be implemented by similar processes with fewer or additional steps, as well as in different order of operations using the principles described herein.  
         [0067]     The above specification, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims and embodiments.