塩田紳二のPDAレポート

SideShowデバイス



 今回は、PDAではないが、ちょっと似たようなものとしてSideShowを取り上げることにする。2007年1月のCESで発表された東芝のPortage R400は、このSideShowデバイスを標準で装備しているし、国内でもASUSがノートPCやマザーボードとセットになったSideShowデバイスを発表している。

●SideShowとは

 SideShowとは、SideShowデバイスをPCに接続し、SideShowガジェットと呼ばれるVista上のソフトウェアから表示を制御する機能だ。SideShowデバイスは、PCにUSBなどで接続可能な表示デバイスであり、SideShowガジェットは、そこに情報を表示するソフトウェアである。

 SideShowデバイスには、大きく2種類ある。1つは、グラフィックスが表示可能なカラーデバイス(QVGAの液晶ディスプレイなど)を持つものであり、「エンハンスド・デバイス」と呼ばれることがある。もう1つは、テキストだけが表示可能なモノクロの表示デバイスであり、これは「ベーシック・デバイス」と呼ばれることがある。

 実際には、SideShowでは、Vista内のSideShowモジュールがガジェット側とドライバ側のインターフェイスを決めているだけで、ほとんど自由に作れる。細かくいえば、SideShowデバイスのデバイスドライバは、SideShow Class Extensionを使わねばならないことぐらいである。これも、制限というよりもドライバを簡単に作るためのクラス定義である。

 実際には、エンハンスド・デバイスは、ARMプロセッサとMicrosoftが提供するファームウェア、.NET Micro Frameworkを使うことになる。これを使うことで、USB経由の接続であれば、OEMメーカーは、ソフトウェアをほとんど作ることなく、SideShowデバイスを製造できるのである。

 この.NET Micro Frameworkは、MSN Directで使われる腕時計(SPOT)に組み込まれているものと同じである。簡単にいうと、.NETのCLR(Common Language Runtime)の縮小版である。当初は、SPOT専用として開発されたが、Microsoftは、これを組み込み系向けの製品として販売するようだ。最近になって、SDKなどが公開されている。

 また、FreeScaleなど、組み込み系のCPUを販売しているメーカーが、MicrosoftのパートナーとしてこのSideShow用の評価キットを発売している。

 Microsoftによれば、SideShowデバイスは、どんな表示デバイスでもかまわないし、どんな接続方法も可能だという。たとえば、Bluetoothで接続したり、無線LANで接続することも可能だという。

 また、デバイスには、キャッシュの有無という違いがある。これは、PC側から(ガジェットから)送られたコンテンツを保存しておいて、PCがOFFの間も情報を表示するための機能である。ただし、このためには、SideShowデバイスはPCのON/OFFに関係なく動作できる必要がある。たとえば、メールや予定の表示をキャッシュできるのなら、PCがOFFでも、SideShowデバイスを使ってそれらを見ることができるわけだ。ただし、キャッシュが可能かどうかを指定するのはガジェット側である。

 なお、SideShowデバイスには、カーソルキーや実行キーといったボタンを接続できる。以前にMicrosoftに取材したときには、ボタン類は必須ではないといっていたが、エンハンスド・デバイスでは必須だと思われる。現実的には何らかのボタンがないと、キャッシュ(後述)した情報の閲覧は難しいだろう。

 また、Microsoftは、Windows Mobile 6.0用に、Windows MobileマシンをSideShowデバイスとするためのモジュールを提供する予定だという。これを使うと、たとえば、Windows Mobile 6.0搭載の携帯電話などにPCで受信したメールや今日の予定を表示させることができるようになる。ただ、Windows Mobileマシンに搭載するソフトウェアは、OEMメーカーの判断になるため、Windows Mobile 6.0だからといって必ず搭載されるとは限らない。

Nvidia(旧PortalPlayer)のSideShow開発キット。同社のデバイスを使ってSideShowデバイスを開発するときに利用するもの。このキットは、1GBのフラッシュメモリを搭載し、単体で音楽再生が可能な機能を持つ SideShowデバイス開発キットによる実際の表示。上部には、バッテリ、無線LAN、ボリュームなどの状態が表示される
Windows Media Playerの再生画面。ジャケットを登録してあると、SideShowデバイスでも表示される SideShowのアーキテクチャ。Microsoftのファームウェアである.NET Micro Frameworkを使うエンハンスド・デバイスと、自由なハードウェアで作ることが可能なBASICデバイスがある。東芝Portage R400のデバイスはBASICに相当するのだと思われる

●SideShowガジェットとは?

 ガジェットは、Vista上で動作するソフトウェアで、SideShowデバイスにコンテンツと呼ばれる情報を送信する役目を持つ。また、Vistaのもう1つの機能であるサイドバーガジェットがSideShowガジェットを兼ねることがもきる(ただしこちらは少し制限がある)。

 SideShowデバイスが表示可能な情報の形式としてSimple Contents Format(SCF)と呼ばれる形式が標準的に定義されている。これは、XMLを使うページ形式のデータである。テキストや画像、そしてページ間のリンク、メニューなどを定義できる。まあ、HTMLのようなものと考えればいいだろう。ガジェットが送ったSCFは、SideShowデバイス上で、カーソルキーなどを使ってナビゲーション(ページ間の移動)ができる。ただし、ナビゲーションは必ず必要というわけではない。

 ガジェット自体は、COMを使って、ビスタ側のSideShow APIを利用する。.NET Frameworkを使ってもガジェットを開発可能だというが、最終的にはCOMに変換されてVista側のSideShow APIを呼び出すことになるようだ。

 ガジェットは何をするかというと、SCFなどのコンテンツをデバイスへ送ることである。ガジェットは、可能ならば、表示ページなどをまとめてSideShowデバイスへ予め転送しておける。また、Windows Media Playerの表示のように刻々と変化するものなら、ガジェット側でコンテンツを適宜をアップデートしていく。

 コンテンツの表示に先立ち、ガジェットは、SideShowデバイスの性能(解像度や色数や文字表示のみか、グラフィックス表示が可能かなど)を調べ、適切なコンテンツを送る。あとは、ナビゲーションに応じてページ表示などのタイミングをイベントとして受け取ることができるが、基本的には、あまり細かい制御を行なうようにはできていない。

 なお、前述の.NET Micro Frameworkを使ったSideShowデバイスでは、前述のSCFとiCAL(カレンダー情報)のみがコンテンツとして利用可能である。

 SideShowデバイスは、複数接続可能で、ガジェットも複数種類組み込むことが可能だ。その組み合わせは、コントロールパネルのSideShowプロパティで行なう。ただし、ガジェットは、どんなSideShowデバイスに対しても動かすことができるわけではない。デバイスは、解釈できるデータの形式が決まっており、これをEndPointという。標準では、前述のSCFとiCalがEndPointとして定義されているが、デバイスが独自の形式をEndPointとして定義することができる。ガジェットは、こうした特定のEndPointを想定して作られる。

 SideShowデバイス側で何がコンテンツとして表示できるのか、つまりデバイスのEndPointは、デバイスドライバで決まる。デバイスドライバ内でコンテンツの形式変換を行なうことができるので、ハードウェア仕様に関係なく、ガジェットから受け取るコンテンツの形式はデバイスドライバで大部分を決定できるわけだ。しかし、テキストしか表示できないハードウェアにグラフィックスを表示することは困難であるなど、ハードウェア仕様もコンテンツにある程度影響する。

 ガジェットをSideShowデバイスと組み合わせて動かすためには、EndPointが一致している必要がある。Vista上のSideShowモジュールでは、ガジェットとデバイス双方のEndPointを把握しており、同じEndPointを持たないガジェットとデバイスは組み合わせられない。

 独自のEndPointは、たとえば簡易型の表示デバイスを使う場合などに定義する。このようにすることで、簡易なハードウェアを使い、ドライバも形式変換などを行なわない簡易なものとすることができるわけだ。SCFはXMLで記述されているため、ドライバ、デバイスのどこかでXMLを解釈する必要がある。また、画像もJPEGなどの圧縮形式を組み込み用の16bit CPUなどで扱うには困難がある。独自のEndPointを使う場合には、専用のガジェットが必要になるが、デバイスドライバ内で複雑なことを行なわせるよりはガジェットを作ったほうが簡単で、ガジェットを配布するだけで機能強化が行なえる。

画像表示の例。エンハンスド・デバイスならテキストだけでなく画像の表示も行なえる SideShowデバイスの表示では、アイコンが左側に縦にならぶ。選択されたガジェットが表示するテキストなどはGlanceコンテンツと呼ばれる ガジェットを選択してOKボタンを押すと最初のページが表示される。これはVista付属のWindows Media Playerのガジェット
ノーティフィケーションの表示 メニューの例。メニューボタンでその場所で利用可能なメニュー項目が表示される

●SideShowデバイスとガジェット

 SideShowデバイスには、ガジェットに1対1に対応する項目が表示される。ガジェットはかならずこのトップページに表示する「Glanceコンテンツ」を用意する。Glanceコンテンツは、どんなEndPointの場合でも、アイコンとテキスト(UTF-8)のみを使う。

 トップページは、カーソルキーの上下でスクロールが可能で、選択されているガジェット項目の情報はページの右側などに表示される。たとえば、メールなら件数とか、予定なら一番近い予定の内容などである。なお、Windows SDK付属のSideShowエミュレータでは、このトップページにリバーシなどのゲームも表示される。これはガジェットではなく、ファームウェアが持つプログラムである。

 ガジェットを選んだ後、OKボタンでガジェットのコンテンツの最初のページが表示される。ここから先は、カーソルキーやメニューなどで複数のページへナビゲーションしていくことができる。SCFを使うとリンクされたページを簡単に作成することができる。

 なお、こうしたコンテンツとは別にガジェットは、SideShowデバイスにノーティフィケーションと呼ばれる情報を表示させることができる。アラートは、画面の下側に表示される情報で、現在表示中のコンテンツとは独立して表示ができる。感じとしては、ライブメッセンジャーなどで、登録メンバーがオンラインになったときの表示のようなものであり、まさにそういう用途に利用する。これを使えば、たとえば、予定の時刻なったら、コンテンツ状態にかかわらず予定を教えるといったことができる。

 ガジェットは、テキストやアイコン、画像などページの中に何を表示するのかを指定する。テキストだとセンタリングなどの簡単な配置方法は指定できる。しかし、実際に画面にどうやって表示するのかはデバイスが決める。たとえば、1行のテキスト表示のみの簡易なデバイスなら、SCFを受け付けても、Glanceページのみを表示し、それ以外のページは無視するといった可能性がある。ノーティフィケーションは表示できるものの、やはりどのように表示されるのかはデバイス次第である。

 もう1つ、SideShowデバイスは、.NET Micro Frameworkで記述した、ミニアプリケーションを扱うことができる。Windows SDK付属のリバーシなどのミニゲームが組みこまれている。

 電子メールや予定など、定期的に更新する必要がある情報を管理するのは、ガジェット側の役割である。Vistaは、こうしたガジェットに対して、スリープ(スタンバイ)中に自動復帰し、ガジェットを実行する機能を提供する。これは、SideShowの設定として指定が可能だ。復帰した後にスリープ状態に戻るかどうかは、Vistaの電源プランの定義に依存する。つまり、電源プランで設定された、スリープスまでの時間が経過し、そのときに条件を満たしていれば、自動的にスリープ状態に入るが、特にガジェットのために起動したからといって、短時間でスリープに戻るというわけではない。自動的にスリープに入らない設定にしてあるなら、復帰した後はそのままになる。

 ガジェットが複数動いている状態では、その中の1つのガジェットが作業が終了したからといって勝手にスリープに入る指示を出すわけにはいかない。しかし、バッテリのことを考えると、勝手にスリープから復帰するのもちょっと考えものである。

 また、この機能は、ガジェットのコンテンツがオフラインでも利用可能と定義されていて、SideShowデバイスが独自の電源を持ち、PCがスリープ中でも動作できなければ意味がない。ガジェットは、自身のコンテンツをオフラインで利用可能、不可を設定でき、また、そのキャッシュアルゴリズムを指定できる。

複数のSideShowデバイスとガジェットの組合せ。コントロールパネルのSideShowプロパティで対応を設定することができる SideShowデバイスの設定。背景や色などのテーマや言語、バックライト制御などが設定できる
東芝Portage R400は、SideShowを使った表示機能「Personal Inforamtion Assistant」を持つ。これはバッテリ残量などのほかに新着メール数などが表示可能 R400のSideShowプロパティ画面。Vista側がデバイスの種類を判定してガジェットが利用できるかどうかを判定する。R400のSideShowデバイスは、VistaやOffice 2007の標準ガジェットは利用できないようだ

●意外に使えるデバイスだが……

 SideShowデバイスは、2005年のPDCなどでは、Auxiliary Displayと呼ばれていて、ノートPCのセカンドディスプレイ専用だった。リリースされたVistaでもSideShow用のDLLなどにこの名称が残っている。しかし、2006年のWinHECあたりから、無線接続などを使って、携帯電話やリモコン、電子写真立てといった応用をデモするようになってきた。

 無線LANなどでも接続が可能だと、たとえば、PCから離れたリビングに置いた写真立てに、PCで発生したメッセージ(時間の掛かる処理の終了やメッセンジャーからの呼び出しなど)を表示させるといったことが可能でちょっとおもしろい。

 なお、ガジェット自体は、Microsoftが提供しているWindows SDK(Vista以降のWindows用のSDK)とVisual Studioなどがあれば開発は可能である。Windows SDKには、SideShowデバイスのソフトウェアエミュレータが含まれているので、必ずしもSideShowデバイスはなくもいい。なお、現時点では、マネージコード用のSideShowモジュールは、β版(英語版)がダウンロードセンターから入手可能なだけで、Vistaのインストールパッケージには含まれていない。そのため、インストール時にモジュールの有無を確認する必要があるが、プログラム自体はCOMで作るよりすっきりと作ることができる。

 すでにSideShowデバイスはいくつか発表されているようだが、定着するかどうかは、ガジェット次第といえるだろう。ただ、RTMの頃には、サイドバーと同じくWindows Live GalleryでSideShowガジェットを扱っていたようだが、SideShowガジェットはいつのまにか消えている。Windows LiveがIE7のホームページにならなかった件といい、LiveやVista関連でMicrosoftの動きにいろいろとブレが見える。このSideShowに関しても、CESの展示などは多かったが、その後、Microsoftからあまり情報が出てこないなど、ちぐはぐな感じがするのも事実。そもそも、.NET Framework用のモジュールがVista自体に含まれず、まだβ版しか配布されていないことなどもすっきりとしない部分である。

 ただ、実際に使ってみると、ノートPCを開かなくても予定やメールが見える。バッテリを気にしなければ、ふたを閉じたままでもWindows Media Playerの操作ができるなど便利な点もある。携帯電話のセカンドディスプレイだって、使う前はそんなに便利とは思わなかったが、いざ、使ってみると意外に便利で、今や携帯電話にはほぼ装備されている機能にまでなった。SideShowデバイスがあれば、ノートPCの電源を入れなくてもバッテリ残量がわかるようになるなどの便利な機能が提供されれば、それなりに使えるシロモノだと思えるのだが。

□関連記事
【3月9日】ASUSTeK、世界初のSideShowノートを国内販売
http://pc.watch.impress.co.jp/docs/2007/0309/asus.htm
【2月19日】ASUSTeK、Vistaの新機能に対応したマザーボード4製品
http://pc.watch.impress.co.jp/docs/2007/0219/asustek.htm
【1月11日】【CES 2007】東芝がノートPC用のワイヤレスポートリプリケータをデモ
http://pc.watch.impress.co.jp/docs/2007/0112/ces19.htm
【1月10日】【CES 2007】富士通がHDMI端子付きリビングPCを展示
http://pc.watch.impress.co.jp/docs/2007/0110/ces11.htm
【2006年11月22日】マイクロソフト、Vistaの数々の新機能を総括
http://pc.watch.impress.co.jp/docs/2006/1122/ms.htm

バックナンバー

(2007年4月6日)

[Text by 塩田紳二]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2007 Impress Corporation, an Impress Group company. All rights reserved.