1. Technical Field
The present invention relates to a filesystem for use in a computer, embedded controller, or the like. More particularly, this invention is directed to a filesystem that represents content from various, disparate multimedia devices in a unified filesystem representation for access by one or more higher-level applications.
2. Related Art
Multimedia systems may employ multiple media players for playback of multimedia content. Such players include cell phones with Secure Digital (SD) Cards that play encoded music files, Sony® PlayStationPortable® units that use Sony® Memory Stick technology for storage and playback of encoded music files, iPod® devices that employ internal hard disk drives for storage and playback of media files, including video media files, and other media players, including those that employ Universal Serial Bus (USB) flash memory. Media files may be encoded on these devices using a variety of different formats such as MPEG layer III (MP3) encoding, Windows Media Audio (WMA) encoding, Windows Media Video encoding, RealAudio encoding, RealVideo encoding, DVD video, CD audio, and the like files.
Such devices do not include filesystems that are organized in a readily accessible manner. Rather, these systems may use proprietary formats, often with digital rights management (DRM) protection, which makes it very difficult to access and manage their data content with a generic personal computer or embedded processor. As a result, many software and hardware systems that interact with these devices and systems must be custom designed to accommodate their proprietary device formats. These multimedia systems and devices therefore are not readily adaptable to today's interconnected world in which a vast interactive network of personal computing devices reside in almost every home and office, as well as a quickly growing proportion of automobiles, wireless personal digital assistants and telephones.
A multimedia system that comprises a plurality of multimedia devices having differing filesystems and/or no filesystem(s), one or more applications, and a media filesystem adapted to communicate with the plurality of multimedia devices and the one or more applications areis disclosed. The one or more applications may be adapted to issue filesystem commands and/or receive filesystem responses in a common filesystem representation with respect to files of the plurality of multimedia devices. The media filesystem may accept the filesystem commands from the one or more applications and may provide responses to filesystem commands to the one or more applications using the common filesystem representation.
In one construction of the system, the common filesystem is in the form of a POSIX, UNIX, or the like, interface. Still further, the one or more applications may include a human machine interface (HMI) module and/or a multimedia engine (MME) module.
Other systems, methods, features and advantages of the invention will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.
The invention can be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
The HMI module 110 may be used to implement a variety of different functions, including the following:
The MME module 105 may be implemented as a resource manager that handles device discovery and synchronization using, for example, a synchronization module 170. The synchronization module 170 may be used to synchronize the consolidated media file information of database 130 with the media content of devices 120. The MME module 105 also may provide a high-level API for managing playback (play, stop, and seek commands) using the media playback module 165.
The MME module 105 may be responsible for a wide range of functions, including the following:
A number of diverse multimedia devices may be attached to the system 100 shown in
High-level applications, such as the HMI module 110 and MME module 105 may require direct access to the files on devices 120. For example, MME module 105 may access the files on each device in order to synchronize the metadata in database 130. Since the filesystems of media devices 120 may differ substantially from one another, the MME module 105, as well as each high-level application attempting to access all of the devices 120, may require individual modules providing an interface between the high-level application and the individual devices. Such architectures may prove to be quite inefficient and difficult to implement, particularly when a wide range of multimedia devices are attached to system 100.
Rather than requiring implementation of specific drivers in each of the high-level modules for each of the attached media devices, system 100 employs device drivers 175 that cooperate with a unified filesystem module 180 to present a common filesystem for presentation to the high-level modules. To this end, high-level modules may access the media content of devices 120 using a single set of filesystem commands, such as those associated with POSIX, UNIX, and the like.
The media filesystem 220 may be an io-fs module that presents a POSIX-like file system view of media devices 120. The filesystem may be implemented as a QNX® Neutrino® resource manager that handles file system semantics, including path name resolution, file and directory access, symbolic links, permissions, and block caching. Media devices that the media filesystem 220 may access include portable music devices such as iPod® players and PlaysForSure® devices, as well as UPnP devices that attach to a network.
In the system shown in
The MME 105 may use the media filesystem 220 to control and browse media devices 120. When a physical device is detected to be in some way attached to the media filesystem 220 (via USB, serial port, wired network or wireless network for example), a filesystem representing the device appears under the /fs directory of the filesystem. The contents of each device is made available as a filesystem with, for example, the root directory of the device mounted on /fs/dev_id, where dev_id is a name that indicates the type of device with a numeric suffix representing the instance number of the device. The first device discovered, for example, may have an instance number of 0. For example:
The device access layer 225 will generate a device information file that can be accessed as if it were a file in a traditional filesystem. The information file is located at a root directory for each device as .FS_info./info.xml. This device information file may be in the form of an XML-formatted information file which is used by higher level applications and also may be useful for human viewing.
The following sections list some file-related POSIX functions that may be supported by the media filesystem 220 and that may be used in a user application. For example, the following directory access operations may be supported:
Additionally, the following file access operations also may be supported:
The media filesystem module 220 makes disparate media devices 120 appear, for example, as POSIX-compliant filesystems to the MME 105 and other high-level applications. Further, it may provide some proprietary extensions specific to one or more of the media devices 120. The exemplary media filesystem module 220 shown in
Devices that support MTP provide a view of media content that comprises objects with properties. These objects and their properties may be accessed via a command and response protocol with an optional data transfer phase. Commands that deal with objects may be executed in the context of a session. When a session is started, each command within the session has a sequential transaction identifier. Within any particular session, each item of media content is assigned a 32 bit “object handle,” which is unique for the duration of the session. Given the object handle, properties such as the object's name, format, and metadata can be obtained. Each object has a parent object, which facilitates viewing of the media in a hierarchical file structure. Certain object types may serve as folders or directories, where the objects contained in these object types may share the same parent object.
Separate processes 305, 310, and 325 associated with accessing PFS devices are shown in
The PFS module 160 may be used to identify which media objects have been encrypted using Microsoft's WMDRM technology. It may use the DRM extensions to MTP to register itself with the PlaysForSure® device—this registration may re-occur periodically to maintain digital rights in the content.
The iPod® module 265 provides a filesystem view of a connected Apple® iPod® device to the MME 105 or to other high-level application. An iPod® device can connect via its 30 pin Omni connector to either a USB or RS232 serial UART connection and system 100. When the device is connected to a RS232 serial UART port, the ipod module 265 may communicate directly with a communications manager for the hardware. When the device is connected to a USB port, the ipod module 265 may communicate with a usb device communications manager, which simulates a serial connection on a USB port.
The iPod® module 265 may create a directory structure from a connected iPod(R) by querying the internal database of the device. Each item on an iPod® module's 265 menu is a database query. For example, selecting Albums queries the database for albums. Each item on an iPod's menu is a sub-query of the query represented by the parent menu item. Using this organizing principle, the ipod module 265 generates a filesystem directory structure that resembles an iPod® menu structure. This means that commandline operations can be performed on the iPod. For example, performing the POSIX command “cd Music; Is” may have the same effect as a user selecting the Music option on the iPod®. Both yield the same listing of items. An exemplary directory structure for a first occurrence of an iPod® is shown in
iPod® devices do not export their digital content. Consequently, music files on an iPod® connected to the MME 105 may be played by the iPod® itself, while the MME 105 may be responsible for sending control commands to the device to initiate playback, stop, pause, etc. The analog audio output from the iPod(R) can be routed to an amplifier directly.
On some devices like the iPod(R), there may be duplicate song names or songs that use characters that are not compatible with the common filesystem representation used by the media filesystem 220 to interact with higher-level applications. In POSIX, for example, the character “/” is reserved, so it cannot be used. Incompatible characters can be converted to a character string of a “%” followed by two hex digits corresponding to the specific character. For example, “/” could be converted to “%2F,” and the character “%” could be converted to “%25.” Any file starting with “.” would also change, for example, “.file” may become “%2Efile”. Duplicate song names may be represented using a “˜” character and an instance number added to the filename. These operations allow the media filesystem 220 to return unique names in a POSIX type filesystem that can be matched in the future. A display program implemented in the HMI 110 may be used to display the original names by removing any “˜” followed by numbers from the end of a file and converting any % xx to the original character before displaying the name to the user.
The tmpfs module 210 may be used to provide a filesystem interface to shared memory. It may allow RAM to be used as a storage medium with a full POSIX filesystem running on top of it. By simply pointing database 130 at the filesystem mount path of tmpfs 210, the database 130 may be accessed in RAM only, avoiding the performance costs of running on slower devices like flash. Similarly, the devf-generic module 175 provides a POSIX based filesystem for flash-like media devices.
Device control codes may be defined for controlling physical devices 120 accessed via the media filesystem 220. The control codes may be divided into those that direct the device driver to perform some action, and those that obtain information or metadata from the device. If a code is not supported by the device access layer, then either it is ignored and the call returns successfully with null data, or an error code may be returned (ENOTTY—Inappropriate I/O control operation).
The device control function codes are applied to opened files. In the following descriptions, a data transfer buffer is not used unless specified. If a data buffer is used to receive data, the number of bytes written to the buffer exceeds the specified buffer size, and the number of bytes written to the buffer is returned as the informative value (in a dev_info_ptr argument). If the return data is a UTF string, then it may be null-terminated, even if the string had to be truncated because the receive buffer was not large enough. For example, in the following code the assert( ) should be true even if the song title is larger than the buffer:
Several exemplary device control codes are described below.
When a list of songs is obtained from a media device, the media filesystem 220 may generate and store an internal 32-bit number that may be used to find the actual file in the future. It may report a unique name to the user for each song on the media device and may be capable of converting that unique name back to the 32-bit number later on. This number can be used to retrieve the song name again, or tell the media device to play the song or get metadata, or even the raw song data if the media device supports it. For example, on PlayForSure devices, every song may have a 32-bit object identification that can be used. On an iPod device, the number of down presses from the top of the menu needed to get to the entry may be used for identification purposes.
The records in database 130 may have a number of different structures depending on the requirements of the system. Some fields that may be used in such database records and their corresponding meaning are shown in the table of
Database 130 also may include a media stores table. Each mediastore in the mediastores table may be used to describe one physical device containing media that the engine has seen. This could be an iPod® device, hard drive, USB stick, DVD Video disc, etc. Mediastores come and go as they are inserted and removed and this table is updated by the MME 105 accordingly as that happens. All entries in the library table may belong to one mediastore which is where the media is located. Mediastores may be uniquely identified by an identifier that can be used to later attain the msid for the mediastore which links to the other tables.
Still further, the database 130 may include a slots table. Slots may be used to define fileystem locations where mediastores can be connected and removed. For example, an audiocd may be found in the filesystem at location /fs/cd0. If it were a networked audiocd, it may be found at /net/remote_host/fs/cd0. The MME 205 may be designed to support an unlimited number of slots.
The metadata corresponding to a file may be available on the media containing the file. However, it is also possible for an external source to add metadata to a file. Metadata for a file may include information regarding the music type and the group that produced the music. It is also possible to incorporate various additional types of metadata. For example, the metadata may include information on the quality of the content stored in the file. This quality information may be used in the selection of contents to be played for a user, or with certain license or other restrictions associated with the content.
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.
This application claims the benefit of priority from U.S. Ser. No. 60/841,804, filed Sep. 1, 2006, and from U.S. Ser. No. 60/840,246, filed Aug. 25, 2006, both of which are incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
4882703 | Nicolai | Nov 1989 | A |
4926317 | Wallach et al. | May 1990 | A |
4945475 | Bruffey et al. | Jul 1990 | A |
5187786 | Densmore et al. | Feb 1993 | A |
5201044 | Frey, Jr. et al. | Apr 1993 | A |
5222217 | Blount et al. | Jun 1993 | A |
5369757 | Spiro et al. | Nov 1994 | A |
5455944 | Haderle et al. | Oct 1995 | A |
5530849 | Hanushevsky et al. | Jun 1996 | A |
5535411 | Speed et al. | Jul 1996 | A |
5668958 | Bendert et al. | Sep 1997 | A |
5726989 | Dokic | Mar 1998 | A |
5765172 | Fox | Jun 1998 | A |
5774715 | Madany et al. | Jun 1998 | A |
5806085 | Berliner | Sep 1998 | A |
5897661 | Baranovsky et al. | Apr 1999 | A |
5995980 | Olson et al. | Nov 1999 | A |
6058400 | Slaughter | May 2000 | A |
6097380 | Crites et al. | Aug 2000 | A |
6160796 | Zou | Dec 2000 | A |
6173291 | Jenevein | Jan 2001 | B1 |
6286013 | Reynolds et al. | Sep 2001 | B1 |
6292808 | Obermarck et al. | Sep 2001 | B1 |
6324637 | Hamilton | Nov 2001 | B1 |
6356863 | Sayle | Mar 2002 | B1 |
6377992 | Plaza Fernandez et al. | Apr 2002 | B1 |
6389427 | Faulkner | May 2002 | B1 |
6389513 | Closson | May 2002 | B1 |
6396421 | Bland | May 2002 | B1 |
6412042 | Paterson et al. | Jun 2002 | B1 |
6438661 | Beardsley et al. | Aug 2002 | B1 |
6467021 | Sinclair | Oct 2002 | B1 |
6496944 | Hsiao et al. | Dec 2002 | B1 |
6509850 | Bland | Jan 2003 | B1 |
6571259 | Zheng et al. | May 2003 | B1 |
6584582 | O'Connor | Jun 2003 | B1 |
6591376 | VanRooven et al. | Jul 2003 | B1 |
6606628 | Monsen et al. | Aug 2003 | B1 |
6661357 | Bland | Dec 2003 | B2 |
6675177 | Webb | Jan 2004 | B1 |
6732124 | Koseki et al. | May 2004 | B1 |
6748491 | Rodriguez | Jun 2004 | B2 |
6754696 | Kamath et al. | Jun 2004 | B1 |
6845401 | Papadopoulos et al. | Jan 2005 | B1 |
6856993 | Verma et al. | Feb 2005 | B1 |
6922708 | Sedlar | Jul 2005 | B1 |
6983462 | Savov et al. | Jan 2006 | B2 |
7003619 | Moore et al. | Feb 2006 | B1 |
7047257 | Fletcher et al. | May 2006 | B2 |
7076599 | Aasheim et al. | Jul 2006 | B2 |
7096248 | Masters et al. | Aug 2006 | B2 |
7359934 | Ricart et al. | Apr 2008 | B1 |
7529784 | Kavuri et al. | May 2009 | B2 |
7555483 | Maeda et al. | Jun 2009 | B2 |
7565452 | Freiburg et al. | Jul 2009 | B2 |
7676691 | Fachan et al. | Mar 2010 | B2 |
7743111 | Soltis | Jun 2010 | B2 |
7599972 | Dodge et al. | Jun 2012 | C1 |
20010044798 | Nagral et al. | Nov 2001 | A1 |
20020019936 | Hitz et al. | Feb 2002 | A1 |
20020048223 | Ota et al. | Apr 2002 | A1 |
20020120634 | Min et al. | Aug 2002 | A1 |
20020143862 | Peterson | Oct 2002 | A1 |
20020156840 | Ulrich et al. | Oct 2002 | A1 |
20020156891 | Ulrich et al. | Oct 2002 | A1 |
20020156937 | Wong et al. | Oct 2002 | A1 |
20020156938 | Wong et al. | Oct 2002 | A1 |
20020156975 | Staub et al. | Oct 2002 | A1 |
20020165942 | Ulrich et al. | Nov 2002 | A1 |
20020174295 | Ulrich et al. | Nov 2002 | A1 |
20020178271 | Graham et al. | Nov 2002 | A1 |
20020194309 | Carter et al. | Dec 2002 | A1 |
20030021346 | Bixby et al. | Jan 2003 | A1 |
20030061316 | Blair et al. | Mar 2003 | A1 |
20030065682 | Nakajima | Apr 2003 | A1 |
20030070001 | Belknap et al. | Apr 2003 | A1 |
20030074457 | Kluth | Apr 2003 | A1 |
20030110237 | Kitamura et al. | Jun 2003 | A1 |
20030115227 | Guthery | Jun 2003 | A1 |
20030140210 | Testardi | Jul 2003 | A1 |
20030163594 | Aasheim et al. | Aug 2003 | A1 |
20040064500 | Kolar et al. | Apr 2004 | A1 |
20040114589 | Alfieri et al. | Jun 2004 | A1 |
20040215600 | Aridor et al. | Oct 2004 | A1 |
20040236793 | Kanai et al. | Nov 2004 | A1 |
20040255048 | Lev Ran et al. | Dec 2004 | A1 |
20050060420 | Kovacevic | Mar 2005 | A1 |
20050091229 | Bali et al. | Apr 2005 | A1 |
20050091287 | Sedlar | Apr 2005 | A1 |
20050097225 | Glatt et al. | May 2005 | A1 |
20050117885 | Lee et al. | Jun 2005 | A1 |
20050135341 | Kim | Jun 2005 | A1 |
20050138085 | Verma et al. | Jun 2005 | A1 |
20050147130 | Hurwitz et al. | Jul 2005 | A1 |
20050149525 | Verma et al. | Jul 2005 | A1 |
20050154747 | Kii et al. | Jul 2005 | A1 |
20050182799 | Hitz et al. | Aug 2005 | A1 |
20050210507 | Hawkins et al. | Sep 2005 | A1 |
20050240588 | Siegel et al. | Oct 2005 | A1 |
20050246362 | Borland | Nov 2005 | A1 |
20050251540 | Sim-Tang | Nov 2005 | A1 |
20050256845 | Jen et al. | Nov 2005 | A1 |
20050273486 | Keith | Dec 2005 | A1 |
20060005124 | Speicher | Jan 2006 | A1 |
20060015431 | Bugaj et al. | Jan 2006 | A1 |
20060021057 | Risan et al. | Jan 2006 | A1 |
20060041600 | Lehtola et al. | Feb 2006 | A1 |
20060052091 | Onyon et al. | Mar 2006 | A1 |
20060069891 | Nishikawa et al. | Mar 2006 | A1 |
20060074851 | Nagai et al. | Apr 2006 | A1 |
20060117056 | Havewala et al. | Jun 2006 | A1 |
20060136529 | Pudipeddi et al. | Jun 2006 | A1 |
20060188215 | Matsutani | Aug 2006 | A1 |
20060190469 | Kathuria et al. | Aug 2006 | A1 |
20060195480 | Spiegelman et al. | Aug 2006 | A1 |
20060206538 | Veazey | Sep 2006 | A1 |
20060218195 | LaChapelle et al. | Sep 2006 | A1 |
20060224620 | Silverman et al. | Oct 2006 | A1 |
20060282471 | Mark et al. | Dec 2006 | A1 |
20060287990 | Yoon | Dec 2006 | A1 |
20070022122 | Bahar et al. | Jan 2007 | A1 |
20070083540 | Gundla et al. | Apr 2007 | A1 |
20070103984 | Kavuri et al. | May 2007 | A1 |
20070233936 | Chu | Oct 2007 | A1 |
20080005114 | Li | Jan 2008 | A1 |
20080005120 | Li | Jan 2008 | A1 |
20080027998 | Hara | Jan 2008 | A1 |
20080046667 | Fachan et al. | Feb 2008 | A1 |
20090106196 | Gutlapalli et al. | Apr 2009 | A1 |
20090265793 | Risan et al. | Oct 2009 | A1 |
Number | Date | Country |
---|---|---|
2 419 883 | Aug 2004 | CA |
1289966 | Apr 2001 | CN |
1567256 | Jan 2005 | CN |
1705935 | Dec 2005 | CN |
0 410 210 | Jan 1991 | EP |
0 454 340 | Oct 1991 | EP |
0 588 488 | Mar 1994 | EP |
1 089 176 | Apr 2001 | EP |
1 522 927 | Apr 2005 | EP |
1 895 434 | Mar 2008 | EP |
62 186 361 | Aug 1987 | JP |
06 139 124 | May 1994 | JP |
07-078498 | Mar 1995 | JP |
2001-175624 | Jun 2001 | JP |
2001-175681 | Jun 2001 | JP |
2002-334006 | Nov 2002 | JP |
2003-173279 | Jun 2003 | JP |
2003-216620 | Jul 2003 | JP |
2005-182778 | Jul 2005 | JP |
2006-235717 | Sep 2006 | JP |
10-2004-0058213 | Jul 2004 | KR |
10-2005-0041970 | May 2005 | KR |
2006-0009717 | Feb 2006 | KR |
1020060023387 | Mar 2006 | KR |
WO 0014632 | Mar 2000 | WO |
WO 0217140 | Feb 2002 | WO |
WO 03036541 | May 2003 | WO |
WO 2006061454 | Jun 2006 | WO |
WO 2006-061454 | Jun 2006 | WO |
WO 2006074110 | Jul 2006 | WO |
Entry |
---|
First Office Action from corresponding Chinese Application No. 2007101419120, dated Apr. 10, 2009, 12 pages. |
Cardenas, Alfonso F., “Analysis and Performance of Inverted Data Base Structures,” IBM Research Laboratory, San Jose, Communication of ACM May 1975, vol. 18, No. 5, pp. 253-263. |
Colyer, A. M., “Displaying and Manipulating Relationships,” IBM Technical Disclosure Bulletin, Dec. 1995, vol. 38, Issue No. 12, pp. 391-396. |
QNX Software Systems, “Embedded transaction filesystem (ETFS),” System Architecture, 2004, pp. 193-198. |
Woodhouse, David, JFFS: The Journaling Flash File System, 2005, pp. 1-12, Red Hat, Inc. |
Yim, Keun Soo, A Flash Compression Layer for SmartMedia Card Systems, 2004, pp. 192-197, vol. 50, No. 1, IEEE Transactions on Consumer Electronics. |
Sivathanu, Gopalan, Wright, Charles P., Zadok, Erez, Enhancing File System Integrity Through Checksums, dated Apr. 3, 2009, pp. 1-10, available at www.filesystems.org. |
Muniswamy-Reddy, Kiran-Kumar, A Versatile and User-Oriented Versioning File System, Dec. 2003, pp. 1-40, Stony Brook University. |
U.S. Appl. No. 12/955,524, filed Nov. 30, 2010, Dodge. |
U.S. Appl. No. 12/957,999, filed Dec. 1, 2010, Dodge. |
U.S. Appl. No. 12/960,197, filed Dec. 3, 2010, Dodge et al. |
Tambat, Siddhartha V. et al., Sub-tagged Caches: Study of Variable Cache-Block Size Emulation, Jul. 31, 2001, pp. 1-16, Computer Science and Automation Department Indian Institute of Science, India. |
Metafile—a whatis.com definition, dated Oct. 14, 2004, pp. 1-2, Whatis.com Target Search from whatis.techtarget.com/definition, downloaded from http://web.archive.org. |
U.S. Appl. No. 13/158,108, filed Jun. 10, 2011, Dodge et al. |
U.S. Appl. No. 13/221,502, filed Aug. 30, 2011, Dodge. |
U.S. Appl. No. 90/011,299, filed Dec.22, 2010, Dodge et al. |
Shuff, Pat et al., Hash Addressing Viability for Use in Distributed File Systems, 2004, pp. 1-7, Proceedings of the Winter Int'l Symposium on Information and Communication Technologies. |
Pearson, Peter K., Fast Hashing of Variable-Length Text Strings, Jun. 1990, pp. 677-680, vol. 33, No. 6, Communications of the ACM. |
European Search Report, dated Jul. 1, 2008, pp. 1-7, European Patent Application No. 07023774.8, European Patent Office, Germany. |
Korean Office Action, dated Sep. 17, 2009, pp. 1-4, Korean Patent Application No. 10-2007-0130349, Korean Patent Office, Korea. |
Korean Office Action, dated Dec. 1, 2009, pp. 1-2, Korean Patent Application No. 10-2007-0130349, Korean Patent Office, Korea. |
Canadian Office Action, dated Jun. 19, 2012, pp. 1-3, Canadian Patent Application No. 2,598,349, Canadian Patent Office, Canada. |
Final Office Action, dated Jul. 17, 2012, pp. 1-25, U.S. Appl. No. 11/173,945, U.S. Patent and Trademark Office, Virginia. |
Office Action, dated Jul. 18, 2012, pp. 1-15, U.S. Appl. No. 13/221,502, U.S. Patent and Trademark Office, Virginia. |
Canadian Office Action, dated Jul. 19, 2012, pp. 1-3, Canadian Patent Application No. 2,550,871, Canadian Patent Office, Canada. |
Japanese Office Action, dated Aug. 29, 2012, pp. 1-8, Japanese Patent Application No. 2007-317757, Japanese Patent Office, Japan. |
Non-Final Office Action, dated Feb. 5, 2013, pp. 1-28, U.S. Appl. No. 11/173,945, U.S. Patent and Trademark Office, Virginia. |
Non-Final Office Action, dated Feb. 7, 2013, pp. 1-21, U.S. Appl. No. 11/765,258, U.S. Patent and Trademark Office, Virginia. |
Final Office Action, dated Feb. 11, 2013, pp. 1-19, U.S. Appl. No. 13/221,502, U.S. Patent and Trademark Office, Virginia. |
Canadian Office Action, dated Apr. 18, 2012, pp. 1-3, Canadian Patent Application No. 2,598,312, Canadian Patent Office, Canada. |
Indian Office Action, dated Feb. 22, 2012, pp. 1-2, Indian Patent Application No. 2959/CHE/2007, Indian Patent Office, India. |
U.S. Final Office Action, issued in U.S. Appl. No. 11/950,227, dated Jun. 4, 2013, pp. 1-17, U.S. Patent and Trademark Office, Alexandria, Virginia. |
U.S. Final Office Action, issued in U.S. Appl. No. 11/173,945, dated Jul. 22, 2013, pp. 1-27, U.S. Patent and Trademark Office, Alexandria, Virginia. |
Number | Date | Country | |
---|---|---|---|
20080052323 A1 | Feb 2008 | US |
Number | Date | Country | |
---|---|---|---|
60841804 | Sep 2006 | US | |
60840246 | Aug 2006 | US |