Windows SideShow provides a way in which you can get content into a small, .NET Micro Framework-controlled device from a host computer. A SideShow device has its own screen and keyboard, and it can be used separately from the host system that feeds it content. It may be built into a computer and permanently connected to that computer, or it may be used independently from the computer, and it can generate events in an application running on a host computer, providing the user with a way of controlling the execution of that program. Examples of devices being used as SideShow platforms include the following:
An auxiliary display on a notebook personal computer, which can be used with the notebook closed and the main machine turned off
A remote control unit with a built-in display
Intelligent picture frames
A display on a portable music-playing device
A display on a cordless phone
A designer bag with a built-in media player display
Any device running the .NET Micro Framework and providing a minimum of a display and input keys can be used as a host for SideShow. If you are building a device for a specific purpose, you might want to consider adding some SideShow functionality to it. Perhaps our .NET Micro Framework flashlight could incorporate SideShow so that it could be used to inform the user of upcoming appointments, or to provide security guards with visual instructions about locations they should keep an eye on.
The SideShow libraries can be provided to original equipment manufacturers (OEMs) on the basis of an individual agreement with Microsoft to incorporate the technology in a particular product. For further details, please contact Microsoft directly at firstname.lastname@example.org.
The Windows Driver Kit provides an example of how to create a SideShow device of your own. You can find out more at http://msdn2.microsoft.com/en-us/library/aa508239.aspx.
A minimal SideShow device would consist of a simple text display able to show simple glance content, such as "No Appointments Today." (For more information about glance content, see the section titled "Glance Content" later in this chapter.) More complex SideShow devices add high-resolution color graphics and keys that can be used to navigate the content.
A SideShow device displays content that has been downloaded into it. The content takes the form of a set of numbered content items. A content item is either an image resource or a display item such as a page, menu, or dialog box. The content is sent to the device by a gadget application. Gadget applications on a particular computer communicate with a number of SideShow devices. When you connect a device to the host computer, the computer starts the applications automatically, allowing them to send or update their content.
Updates to content items are immediately reflected in the display on a SideShow device. In other words, if the page the user is looking at is updated, it will appear to change immediately to the new content. If a single gadget application is communicating with a large number of SideShow devices, every device will receive the updated content.
SideShow devices may have keys that can be used to interact with the content. A given content item can contain links to other content items so that a user can navigate the content tree, viewing items as required. Navigation around the content can trigger events in a connected host application, which allows a SideShow device to be used to control an application on the host system. For example, the Windows Media Player SideShow gadget application can be used to select playlists and start and stop media playback on the host computer.
Although the SideShow technology does provide a means by which the appearance of two-way communication between a SideShow device and a gadget application is technically possible, this is not how it is envisaged that SideShow devices are to be used. There is no means by which a SideShow device can be programmed with any kind of behavior, and the fact that a gadget application cannot uniquely address a particular SideShow device connected to it means that you should use other forms of connection, for example, Transmission Control Protocol/Internet Protocol (TCP/IP) sockets, if you want to interact with a remote device.
Windows Vista has a complementary technology to SideShow called the Windows Vista Sidebar. These technologies are similar in that their purpose is to provide useful, connected software gadgets that deliver content and controls to the user. The protocol for driving a SideBar gadget is somewhat different in nature to that used with SideShow. However, there is nothing to stop you from creating a gadget application that is able to drive the two different kinds of display.