Patents by Inventor Matthew Rhoten
Matthew Rhoten has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20070242061Abstract: Embodiments of the invention are directed to a software platform capable of sending data to auxiliary-display devices that are either connected (e.g., wirelessly) to a computing device or associated with the computing device in some way. Embodiments of the invention relate to a mobile auxiliary-display device model that enables communication between a computing device and an auxiliary-display device. Embodiments of the invention are directed to a driver model capable of communicating with wireless devices, such as cell phones, personal digital assistants and the like, via a wireless communication channel, such as Bluetooth® wireless technology. Embodiments of the invention are directed to software that executes on the computing device and software that executes on a mobile auxiliary-display device.Type: ApplicationFiled: April 14, 2006Publication date: October 18, 2007Applicant: Microsoft CorporationInventors: Matthew Rhoten, Sriram Viji
-
Publication number: 20070226734Abstract: Described is a technology by which a specific gadget program is installed (e.g., created) on a main host computer system that receives data (e.g., an RSS feed) from a distribution source, in which the feed data contains the information needed to install the gadget. Once installed, gadget is then used to receive content from its corresponding data source and provide the content for display on an auxiliary display device. The feed data may include metadata such as a gadget-related enclosure, from which the installer may register information corresponding to the metadata in a registry or the like, and associate the gadget with one or more particular auxiliary displays. By processing the metadata, the other gadget is installed and then run as needed to handle content data from the corresponding data source, in order to render content on an auxiliary display.Type: ApplicationFiled: March 3, 2006Publication date: September 27, 2007Applicant: Microsoft CorporationInventors: Yu-Kuan Lin, Sriram Viji, Andrew Fuller, Matthew Rhoten, Alex D'Angelo
-
Publication number: 20070169129Abstract: Described is a technology by which a device pre-enables application programs of a computer system to work with the device when the device is connected to the computer system. A set of data is obtained from a device, such as by an installer at installation time. The set of data includes information that identifies one or more computer system application programs that the device desires to work with when each application program runs. When the data set is obtained, the application program is enabled (e.g., given appropriate permissions) such that the application program may communicate data with the device when the program is run on the computer system. In one implementation, a device driver provides an installer with access to the data set, which may also include additional information such as application configuration parameters. The installer may be automatically run on the computer system upon initial device detection.Type: ApplicationFiled: January 18, 2006Publication date: July 19, 2007Applicant: Microsoft CorporationInventors: Daniel Polivy, Sriram Viji, Andrew Fuller, Matthew Rhoten
-
Publication number: 20070150474Abstract: A locking arrangement for data structures is provided that prevents deadlocks, but still allows different threads to simultaneously obtain locks on different nodes of a data structure for both read and write operations. The locking system differentiates locks based on a priority hierarchy. The locking system will fail a request to lock one or more resources in a data structure if access to those resources has already been restricted by a conflicting lock of an equal or higher priority. The locking system may also employ preemptable and non-preemptable locks such that, if a preemptable lock with a lower priority has restricted access to resources, then the locking system will preempt the lower priority lock in favor of a conflicting higher priority lock. Alternately, if a non-preemptable lock with a lower priority has restricted access to resources, then the locking system will wait until the lower priority lock is removed before implementing a requested conflicting higher priority lock.Type: ApplicationFiled: March 8, 2007Publication date: June 28, 2007Applicant: Microsoft CorporationInventors: Zoltan Szilagyi, Matthew Rhoten, Philip Su
-
Publication number: 20070139407Abstract: The convex hull of two polygons having congruent corresponding angles with the same orientation can be determined by analyzing the relationship of each vertex of one of the polygons relative to its adjacent vertices. More particularly a line may be defined between a selected vertex on one of the polygons and its corresponding vertex on the other polygon. If the vertices adjacent to the selected vertex both fall on the same side of the line, then a line connecting the selected vertex with its corresponding vertex lies on the convex hull of the two polygons. If, on the other hand, the vertices adjacent to the selected vertex are located on different sides of the line, then the line connecting the selected vertex with its corresponding vertex does not lie on the convex hull.Type: ApplicationFiled: January 31, 2007Publication date: June 21, 2007Applicant: MICROSOFT CORPORATIONInventors: Philip Su, Richard Swaney, Matthew Rhoten
-
Publication number: 20070130399Abstract: An auxiliary computing device normally used for remotely controlling a primary device may change its functionality and extend its usefulness based on a usage context. An auxiliary device may change its usage context by connecting differently to a primary device depending on any number of parameters including distance from the device, battery life, connection method, and proximity to other devices. The device may change its usage context by interfacing with a primary device service that communicates with various applications to feed the auxiliary device different information in different usage contexts. Further, the device may control different functions of the primary device based on the usage context.Type: ApplicationFiled: March 9, 2006Publication date: June 7, 2007Inventors: Jason Anderson, Andrew Fuller, Daniel Makoski, William Westerinen, Matthew Rhoten
-
Publication number: 20070046562Abstract: In a main computer system coupled to an auxiliary display device, described is an interface set for implementation by an auxiliary display device driver, to couple the driver to an auxiliary display platform. Commands received from the auxiliary display platform may be handled by code external to the driver, such as a class extension object. For example, the class extension object may interpret and/or translate commands received from the auxiliary display platform into a format understood by the driver code. The auxiliary display device driver may then provide corresponding command information including data to the auxiliary display device via the transport. Event data may be returned from the auxiliary display device driver via the interface set to the class extension object, such that corresponding event information, e.g., received at the auxiliary display device, may be returned to the auxiliary display platform.Type: ApplicationFiled: April 24, 2006Publication date: March 1, 2007Applicant: Microsoft CorporationInventors: Daniel Polivy, Andrew Fuller, Sriram Viji, Matthew Rhoten, Teague Mapes
-
Publication number: 20060253797Abstract: The reproduction of one or more selected regions from a primary desktop onto an extended desktop, without any other portion of the primary desktop, is disclosed. The user or a software application may thereby have discretion as to what is and is not presented on the extended desktop. Selected regions may be windows, regions that are custom-defined regardless of whether they include a window, or even pre-defined non-window regions. Because the selected regions are already on the user's primary desktop, the user is always able to view and manipulate the extended desktop, by manipulation of the primary desktop, without having to do anything special. In addition, windows or other regions that are obscured by other object on the primary desktop are not necessarily obscured on the extended desktop. An application programming interface is also described that allows a software application and/or a software developer to access reproduction functionality.Type: ApplicationFiled: May 6, 2005Publication date: November 9, 2006Applicant: Microsoft CorporationInventors: Vikram Madan, Andrew Fuller, Jeffrey Pettiross, Matthew Rhoten, Yu-Kuan Lin
-
Publication number: 20060242590Abstract: Described is a system and method comprising a content format by which client programs running on a main computer system may provide data to various types of auxiliary display devices. The format, which may be XML-based, provides menu pages comprising a list of selectable items, content pages comprising text and images, and dialog pages providing text, images and one or more actionable options. The text and images may be accompanied by requested formatting information, e.g., specifying emphasis, color, alignment, wrapping and/or fit to the screen. An auxiliary device can parse the content to display as much as possible, particularly information recognized (via content tags) as significant, and use the formatting information to the extent of its capabilities. Virtual buttons may be defined for page navigation and/or item selection. Pages of the content format may be cached for operation when the main computer system is offline from the auxiliary display device.Type: ApplicationFiled: April 21, 2005Publication date: October 26, 2006Applicant: Microsoft CorporationInventors: Daniel Polivy, Sriram Viji, Andrew Fuller, Matthew Rhoten, Niels van Dongen, Richard Swaney
-
Publication number: 20060232494Abstract: The invention relates to improved systems and methods for communicating information between an auxiliary display device and a primary display device. Methods and systems for automatic cross-display coordination between an auxiliary and primary display device through the use of executable command lines are provided. In at least one embodiment, a user of a user computer may determine what features of an application are associated with executable command lines and displayed on an auxiliary device. In yet other embodiments, an API is provided to allow a user to select or manually enter command lines to execute on a primary display device. Yet further aspects of the invention, the auxiliary display device is used to remotely produce a visual output on a primary display device.Type: ApplicationFiled: April 15, 2005Publication date: October 19, 2006Applicant: Microsoft CorporationInventors: Arnold Lund, Andrew Fuller, Matthew Rhoten, Sriram Viji
-
Publication number: 20060188162Abstract: A system, method, and data structure are described that permit a function to be operable at a designated node or sub nodes. An instruction that designates one or more nodes is processed to perform the instruction on each of the nodes. If the instruction is not performable on a current node, the data structure relating to the current node is navigated to obtain one or more sub nodes. The instruction is then performed on the sub nodes.Type: ApplicationFiled: October 31, 2002Publication date: August 24, 2006Applicant: Microsoft CorporationInventors: Zoltan Szilagyi, Matthew Rhoten, Justin Tolmer, Mary Quinton
-
Publication number: 20060176271Abstract: Described is a system and method including an auxiliary display platform having an interface (API) set that provides a way for client applications running on a main computer system to interact with various types of auxiliary displays, irrespective of differences between various device implementations. Interaction includes displaying content and notifications provided by the application, and returning events to the application. In one implementation the API set comprises a set of COM objects that register and perform configuration checks of a client application, send content and notifications to attached devices, and return events from the attached devices. The application may send data to an endpoint corresponding to a communication destination (e.g., a particular auxiliary device application) and a contract (e.g., a format) for the data. The platform and API set thus provide an abstraction layer for applications to provide information independent of any particular auxiliary device implementation.Type: ApplicationFiled: February 7, 2005Publication date: August 10, 2006Applicant: Microsoft CorporationInventors: Daniel Polivy, Matthew Rhoten, Andrew Fuller, Sriram Viji, Michael Bernstein
-
Publication number: 20060164324Abstract: Described is a system and method by which application programs running on a main computer system communicate with an auxiliary display device (such as a cell phone, pocket-sized computer, alarm clock, television, digital picture frame and so forth) to provide viewable information on the device, remote control capabilities, and notifications. Via API calls, programs provide information in the same format regardless of the device capabilities and/or the connection type. An auxiliary display platform converts a notification into a format understood by a device driver, which then filters the notification as desired for its particular hardware device before the notification is communicated. Return communications return data such as status and user interaction with the displayed information. Software vendors may thus write code once to output notifications on auxiliary displays, while hardware manufacturers can have their devices work as auxiliary displays, with little or no modification to existing hardware.Type: ApplicationFiled: November 23, 2004Publication date: July 27, 2006Applicant: Microsoft CorporationInventors: Daniel Polivy, Matthew Rhoten, Roger Wynn, Michael Bernstein, Andrew Fuller
-
Publication number: 20060132473Abstract: Described is a method and system a system and method for dynamically and intelligently configuring a computer system's video-related settings upon connection of a monitor, and/or reconfiguring upon disconnection. A monitor configuration may include one or more display mechanisms, their video settings, relative positioning, and may include power scheme data. When a monitor is plugged into or unplugged from a computer system, a monitor manager component is notified and determines the current configuration, such as based on monitor identifiers. The current configuration is searched against persisted monitor configurations seeking a match. If previous monitor configuration data is found, the previous monitor configuration is applied. If not an exact match, configuration data is constructed based on similar configuration data that is persisted, or by querying for capabilities and iterating as necessary to find a video mode that the video card and monitor can use.Type: ApplicationFiled: December 17, 2004Publication date: June 22, 2006Applicant: Microsoft CorporationInventors: Andrew Fuller, Jerry Hughson, Matthew Rhoten, Michael Milirud, Kurt Geisel, Roger Wynn, Kevin Paulson
-
Publication number: 20060129855Abstract: An auxiliary computing device wakes an associated main computer system to obtain data as needed, on-demand and/or in anticipation of demand. The wakeup operation is ordinarily temporary to fetch data, whereby only a small amount of power is consumed by the main computer system. In one implementation, a control channel between the auxiliary device and the main computer system is used to signal a wakeup. A main data channel is used to obtain the data, whereby the auxiliary device has access to a larger amount of data than it can cache. Moreover, the components of the main computer system may be leveraged, such as to use the main computer system's digital rights management mechanisms. Additional data may be intelligently requested by the auxiliary device while the main computer system is powered up, e.g., to buffer media, and/or request a synchronization of calendar data, email data, and so forth.Type: ApplicationFiled: November 23, 2004Publication date: June 15, 2006Applicant: Microsoft CorporationInventors: Matthew Rhoten, Andrew Fuller, Roger Wynn, Michael Bernstein, Daniel Polivy, Otto Berkes
-
Publication number: 20060130075Abstract: Described is a system and method by which application programs running on a main computer system communicate with an auxiliary display device (such as a cell phone, pocket-sized computer, alarm clock, television, digital picture frame and so forth) to provide viewable information on the device, remote control capabilities, and notifications. Via API calls, programs provide information in the same format regardless of the device capabilities and/or the connection type. An auxiliary display platform converts the information into a format understood by a device driver, which then filters the information as desired for its particular hardware device before the information is communicated. Return communications return data such as status and user interaction with the displayed information. Software vendors may thus write code once to output information on auxiliary displays, while hardware manufacturers can have their devices work as auxiliary displays, with little or no modification to existing hardware.Type: ApplicationFiled: November 23, 2004Publication date: June 15, 2006Applicant: Microsoft CorporationInventors: Matthew Rhoten, Andrew Fuller, Roger Wynn, Michael Bernstein, Daniel Polivy
-
Publication number: 20060130072Abstract: Described is a system and method by which an auxiliary computing device having an auxiliary display platform that displays information corresponding to data that originated on the main computer system may be extended by a device manufacturer. Extended hardware is added to the device, such as a radio receiver and/or an audio decoder. The auxiliary display platform is layered and extensible at each layer, and includes an extensible hardware abstraction layer that is extensible to support extended hardware if needed, and a driver layer that is extensible by adding driver code for the extended hardware. A runtime layer is also extensible to support the extended hardware as needed, as are libraries, the auxiliary shell program and other managed code. The client API is also extensible to allow applications on the main computer system to communicate with extended hardware via the device runtime layer.Type: ApplicationFiled: November 23, 2004Publication date: June 15, 2006Applicant: Microsoft CorporationInventors: Matthew Rhoten, Andrew Fuller, Roger Wynn, Michael Bernstein, Daniel Polivy
-
Publication number: 20050262302Abstract: Described is a mechanism for receiving new data at an auxiliary device associated with a main computer system, and processing that new data within the auxiliary device firmware to take some action. The receipt and processing of the data is independent of whether the main computer system is in a powered-up state (online) or powered-down state (offline). A cache that maintains the user application data for offline navigation may be updated with new data, either to change existing data in the cache or add a new navigation path. The received data can be processed to perform other actions, depending on the context of that data as determined by auxiliary processing.Type: ApplicationFiled: May 3, 2004Publication date: November 24, 2005Applicant: Microsoft CorporationInventors: Andrew Fuller, Matthew Rhoten, Christopher Schoppa, Curt Steeb, Juan Perez, Seiya Ohta, Niels van Dongen
-
Publication number: 20050243021Abstract: Described is an architecture by which application programs can provide data to auxiliary display devices of essentially any type for display to a user. A defined application layer (e.g., accessed via interfaces) allows programs to provide data to a service that controls the output of data to an auxiliary display device, and returns navigational data to the application upon appropriate user interaction with the device via actuators. Enumeration allows applications to discover the capabilities of a device, while arbitration determines which application has input-output rights to the device. The architecture further provides a protocol layer including pluggable protocol proxies that allow various types of displays to serve as an auxiliary display. This platform-like model allows program developers the ability provide programs that leverage auxiliary displays when available, and provides display manufacturers the ability to provide displays with extensible capabilities.Type: ApplicationFiled: May 3, 2004Publication date: November 3, 2005Applicant: Microsoft CorporationInventors: Juan Perez, Curt Steeb, Matthew Rhoten, Andrew Fuller, Christopher Schoppa, Adrian Chandley
-
Publication number: 20050243019Abstract: Described is a mechanism by which application programs (or plug-ins) and an auxiliary service adjust the output and/or data available for output on an auxiliary device based on changes detected in the current context of the auxiliary display. Context sensors detect and report changes in context, whereby some action is taken with respect to what information is displayed or can be displayed on the auxiliary display device. Examples of context data that can change include the physical location of the display, detected movement or motion data, presence of a particular user or others, power state, network connectivity status, privacy status and so forth. The auxiliary device can have context as to its position relative to the main display. Information sensitivity levels may be used to specify whether an application program's data can be displayed, based on the perceived sensitivity of the information and the user's current context.Type: ApplicationFiled: May 3, 2004Publication date: November 3, 2005Applicant: Microsoft CorporationInventors: Andrew Fuller, Matthew Rhoten, Juan Perez, Christopher Schoppa, Curt Steeb, Niels Dongen