(57)【要約】【課題】例えば映像再生装置の操作に利用されるフロントパネルやリモコンなどのデバイスを仮想化するシミュレータでは、リモコンのカーソルボタンや数字ボタンに対応する表示上の入力部品を実際のボタン通りに配置したために、特定の状況で十分な操作性を確保することができない恐れがある。【解決手段】入力部品の機能や操作、使用履歴などに関する情報が管理され、その管理された情報に基づいて、入力部品の配置が、ボタンと相似する配置と異なる配置に自動的に変更されることによって、特定の機能や操作、使用履歴などに関して操作性が向上する。【選択図】　図３
2004046314.tif 000002
【特許請求の範囲】
【請求項１】
組み込み機器の操作に利用されるデバイスを仮想化するデバイス仮想化装置であって、
前記デバイスに備えられる入力手段に対応する表示上の入力部品を管理する管理手段と、
前記管理手段により管理される前記入力部品の管理情報に基づいて前記入力部品の配置を前記デバイスと異なる配置にする変更を行う配置変更手段と
を備えたデバイス仮想化装置。
【請求項２】
前記管理手段は、前記デバイスに備えられる出力手段に対応する表示上の出力部品も管理し、
前記配置変更手段は、前記管理手段により管理される前記出力部品の管理情報に基づいて前記出力部品の配置を前記デバイスと異なる配置にする変更も行う請求項１記載のデバイス仮想化装置。
【請求項３】
前記管理情報は、前記入力部品に関連付けられた機能の属性情報を含み、
前記配置変更手段は、前記機能の属性情報に基づいて前記入力部品の配置の変更を行う請求項１記載のデバイス仮想化装置。
【請求項４】
前記管理情報は、前記入力部品に対する操作の属性情報を含み、
前記配置変更手段は、前記操作の属性情報に基づいて前記入力部品の配置の変更を行う請求項１記載のデバイス仮想化装置。
【請求項５】
前記管理情報は、前記入力部品の使用履歴の情報を含み、
前記配置変更手段は、前記使用履歴の情報に基づいて前記入力部品の配置の変更を行う請求項１記載のデバイス仮想化装置。
【請求項６】
前記使用履歴の情報は、使用回数若しくは使用順序又はその両方を含む請求項５記載のデバイス仮想化装置。
【請求項７】
前記管理情報は、前記入力手段の配置の情報を含み、
前記入力手段の配置の情報に基づいて、前記入力手段の配置が前記入力部品と識別可能に表示される請求項１記載のデバイス仮想化装置。
【請求項８】
前記管理情報は、前記入力手段の配置の情報を含み、
前記配置変更手段は、前記入力手段の配置の情報に基づいて前記入力部品の配置を前記デバイスの配置に戻す変更も行う請求項１記載のデバイス仮想化装置。
【請求項９】
組み込み機器の操作に利用されるデバイスを仮想化するデバイス仮想化装置であって、前記デバイスに備えられる入力手段に対応する表示上の入力部品の属性情報を管理する管理手段と、前記管理手段により管理される前記入力部品の管理情報に基づいて前記入力部品の配置を前記デバイスと異なる配置にする変更を行う配置変更手段とを備えたデバイス仮想化装置
としてコンピュータを機能させるデバイス仮想化プログラム。
【請求項１０】
デバイスに備えられる入力手段に対応する表示上の入力部品を管理する管理手段と、
前記管理情報により管理される前記入力部品の管理情報に基づいて前記入力部品の配置の変更を行う配置変更手段と
を備えた表示変更装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば映像再生装置の操作に利用されるフロントパネルやリモコンなどのデバイスを仮想化するデバイス仮想化装置、デバイス仮想化プログラム、及び表示変更装置に関するものである。
【０００２】
【従来の技術】
組み込み機器向けソフトウェアの開発環境として、シミュレータを用いた開発環境が利用されている。組み込み機器の開発には、リモコンやフロントパネルなどの周辺デバイスを含むハードウェアの開発、そのハードウェアを制御する組み込みＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）の開発、そのＯＳが提供する機能を利用するアプリケーションソフトウェアの開発が含まれる。開発されたハードウェア（実機）を用いた開発環境をソフトウェアの開発環境として利用する場合、ハードウェアの開発がある程度進んでからソフトウェアの開発が行われることになり、その分だけ開発期間が延びてしまう。また、開発途中のハードウェアは、非常に高価であり数量も少ないので、多数のソフトウェア開発者に対して提供することが難しいという制約もある。
【０００３】
これに対し、シミュレータを用いた開発環境では、ソフトウェアの開発に実機が必要なくなるため、上述の制約から開放される。この開発環境では、組み込みＯＳに対応するＯＳシミュレータや周辺デバイスに対応するデバイスシミュレータが用意される。これらのシミュレータは、パソコンのＯＳ上で動作するソフトウェアにより実現される。ＯＳシミュレータが組み込みＯＳをシミュレートするため、開発されたアプリケーションソフトウェアは、実機でもそのまま利用することができる。
【０００４】
また、デバイスシミュレータを用いると、各種デバイスの動作確認を行うことができる。例えば周辺デバイスとしてリモコンとフロントパネルがある場合、デバイスシミュレータとして、リモコンを仮想化した仮想リモコンとフロントパネルを仮想化した仮想フロントパネルが用意される。仮想リモコンや仮想フロントパネルは、パソコンに接続されたディスプレイにＧＵＩ（Ｇｒａｐｈｉｃａｌ　Ｕｓｅｒ　Ｉｎｔｅｒｆａｃｅ）画面として表示される。このＧＵＩ画面には、実際のリモコンやフロントパネルに備えられる再生ボタンや予約ボタンなどの入力手段、及びディスプレイやＬＥＤなどの出力手段に対応するＧＵＩ部品が配置される。動作の確認は、入力手段に対応するＧＵＩ部品に対して操作を行い、出力手段に対応するＧＵＩ部品に、所望の結果が表示されるか否かによって行うことができる。
【０００５】
ＧＵＩ画面やＧＵＩ部品で用いられる画像には、実際の周辺デバイスを模したものが用いられ、これらは、周辺デバイスの通りに配置される。これは、周辺デバイスの機能だけでなく、その外観が忠実にディスプレイ上で再現されることによって、機能だけでなく視覚的にも実機と同等の環境で動作確認を行うことが可能になるためである。
【０００６】
【発明が解決しようとする課題】
ところで、実際の周辺デバイスにおける入力手段や出力手段の配置は、組み込み機器が提供する各種の機能を利用するために必要な様々な操作を総合的に考慮して最適化される。
【０００７】
周辺デバイスの外観が忠実に再現される場合、入力手段に対応するＧＵＩ部品の操作性は、入力手段の操作性に準じることになるが、開発段階では、その時々で頻繁に操作されるＧＵＩ部品が変わることもあり、ＧＵＩ部品を入力手段や出力手段の通りに配置することが好ましくないこともある。
【０００８】
本発明は、このような従来の技術における課題を鑑みてなされたものであり、組み込み機器の操作に利用されるデバイスに備えられる入力手段に対応する表示上の入力部品の配置を自動的に変更して操作性を向上させることができるデバイス仮想化装置、デバイス仮想化プログラム及び表示変更装置に関するものである。
【０００９】
【課題を解決するための手段】
上述の目的を達成するために、本発明は、以下の手段を採用している。
【００１０】
本発明は、組み込み機器の操作に利用されるデバイスを仮想化するデバイス仮想化装置を提供する。
【００１１】
このデバイス仮想化装置において、管理手段は、そのデバイスに備えられる入力手段に対応する表示上の入力部品を管理する。そして、配置変更手段は、入力部品の管理情報に基づいて入力部品の配置をそのデバイスと異なる配置に変更する。
【００１２】
管理情報として必要な情報を与えておけば、入力部品が入力手段の通りに配置されていても、その与えられた情報に応じて入力部品の配置が自動的に変更されるから、入力部品に対する操作性が向上する。
【００１３】
もちろん、管理手段は、入力部品だけでなく、デバイスに備えられる出力手段に対応する表示上の出力部品も管理してもよい。この場合、配置変更手段は、出力部品の管理情報に基づいてそのデバイスと異なる配置にする変更を行うこともできる。
【００１４】
また、管理情報に、入力部品に関連付けられた機能の属性情報が含まれていれば、配置変更手段は、その機能の属性情報に基づいて入力部品の配置を変更することもできる。機能の属性情報に基づいて入力部品の配置が自動的に変更されることによって、特定の機能に関して操作性を著しく向上させることができる。
【００１５】
管理情報に、入力部品に対する操作の属性情報が含まれていれば、配置変更手段は、その操作の属性情報に基づいて入力部品の配置を変更することができる。操作の属性情報に基づいて入力部品の配置が自動的に変更されることによって、特定の操作に関して操作性を著しく向上させることができる。
【００１６】
管理情報に、例えば使用回数や使用順序など入力部品の使用履歴の情報が含まれていれば、使用履歴に応じた配置の最適化を図ることもできる。これによって、開発段階における操作性が向上するだけでなく、製品における入力手段の配置決定に、入力部品の配置を利用することも可能となる。
【００１７】
管理情報に、入力手段の配置の情報が含まれている場合、その情報に基づいて入力手段の配置を入力部品と識別可能に表示すれば、入力部品の配置が入力手段と相似する配置と異なっている状態でも、その相違を視覚的に容易に把握することができる。
【００１８】
さらに、管理情報に入力手段の配置の情報が含まれている場合には、配置変更手段は、その情報に基づいて入力部品の配置をデバイスの配置に戻すこともできる。入力部品の配置が入力手段と相似する配置と異なっている状態でも、入力手段の配置の情報に基づいて自動的に入力手段の配置がデバイスの配置に変更されることによって、入力部品の操作性の向上か、外観の再現性のいずれを優先させるかを状況に応じて選択することが可能となる。
【００１９】
また、他の観点では、本発明は、コンピュータを上述の各手段として機能させるデバイス仮想化プログラムを提供する。このデバイス仮想化プログラムは、インターネットなどの電気通信回線を通じて流通することもあるし、ＣＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体に記録された状態で流通することもある。
【００２０】
さらに、本発明は、デバイスの仮想化を行うデバイス仮想化装置だけでなく、デバイスに備えられる入力手段に対応する表示上の入力部品の配置を自動的に変更する表示変更装置を提供することもできる。
【００２１】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態につき説明する。
【００２２】
この実施の形態において、本発明は、ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）レコーダに組み込まれるアプリケーションソフトウェアの開発環境に応用される。
【００２３】
ＤＶＤレコーダの場合、図１に示すように、ＤＶＤレコーダ１０１の操作に利用されるデバイスとして、リモコン１０２や、ＤＶＤレコーダ１０１本体に備えられるフロントパネル１０３などが用意される。リモコン１０２は、映像の録画や再生などＤＶＤレコーダ１０１が有する各種の機能に対するユーザの操作を受け付ける。フロントパネル１０３には、ＤＶＤレコーダ１０１が録画状態にあるとか出力音量がどの程度であるとか、ＤＶＤレコーダ１０１の動作状況が表示される。また、ＤＶＤレコーダ１０１に接続されたＴＶ１０４には、ＤＶＤレコーダ１０１から出力された映像やアプリケーションソフトウェアの処理結果が表示される。
【００２４】
このような環境を再現すべく、各実施の形態において、本発明が応用される開発環境では、ＤＶＤレコーダ１０１の組み込みＯＳに対応するＯＳシミュレータが用意される。開発されるアプリケーションソフトウェアは、ＯＳシミュレータ上で動作する。また、ＤＶＤレコーダの操作に利用されるデバイスを仮想化したデバイスシミュレータ（仮想デバイス）も用意される。仮想デバイスとして、仮想リモコンと仮想フロントパネルが別個に用意される。仮想リモコンは、リモコン１０２を仮想化するシミュレータであり、仮想フロントパネルは、フロントパネル１０３を仮想化するシミュレータである。
【００２５】
ＯＳシミュレータや仮想リモコン、仮想フロントパネルは、例えば図２に示すように、パソコンのＯＳが提供するＧＵＩ画面にウィンドウ２０１乃至２０３として表示される。各ウィンドウ２０１、２０２又は２０３は、アプリケーションソフトウェアの処理結果や、リモコン１０２の外観、フロントパネル１０３の外観を表している。
【００２６】
図２の例では、アプリケーションソフトウェアの処理結果として、ディスク管理、タイマー予約、初期設定などの項目を含む管理メニューが、ＯＳシミュレータに対応するウィンドウ２０１に表示されている。この表示では、管理メニューの項目のうち、タイマー予約にカーソルが合っているが、開発者が仮想リモコンを操作すれば、仮想リモコンとアプリケーションソフトウェアが通信を行い、ＯＳシミュレータに対応するウィンドウ２０１の表示が更新される。仮想リモコンを表すウィンドウ２０２では、リモコン１０２の外形を表す画像上に、リモコン１０２の数字ボタンやカーソルボタン、再生ボタン、録画ボタンなどの入力手段に対応するＧＵＩ部品として入力部品が配置されている。入力部品は、クリックやダブルクリックなどの入力操作を受け付ける。開発者は、入力部品のクリック時などに、その入力部品が対応する入力手段の機能を関連付けることができる。例えば上方向のカーソルボタンに対応する入力部品がクリックされると、仮想リモコンは、アプリケーションソフトウェアと通信を行い、カーソルを上方向に移動させる指示を行う。アプリケーションソフトウェアが正常に動作すれば、タイマー予約について文字部分の反転表示と枠の強調表示が解除され、ディスク管理について文字部分の反転表示と枠の強調表示が行われる。
【００２７】
また、仮想リモコンには、リモコン１０２の出力手段に対応するＧＵＩ部品として出力部品も配置されている。この例では、液晶ディスプレイに対応する出力部品が配置されている。出力部品は、仮想リモコンの入力部品に対する操作に従って仮想リモコンの動作状況を表示することができる。
【００２８】
このような仮想リモコンは、本発明が提供するデバイス仮想化プログラムの一具体例である。デバイス仮想化プログラムが、コンピュータのＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）やメモリなどのハードウェアと協働することによって、コンピュータはデバイス仮想化装置として機能する。
（実施の形態１）
デバイス仮想化装置は、図３に示すように、通信手段３００を備える。通信手段３００は、アプリケーションソフトウェア３０１と通信を行うための共通インターフェースを提供する。この通信手段３００によって、入力部品３０２の操作に関する情報はアプリケーションソフトウェア３０１へ送信され、アプリケーションソフトウェア３０１からの情報は受信される。
【００２９】
管理手段３０３は、入力部品３０２及び出力部品３０４の情報を部品毎に管理する。この実施の形態において、管理手段３０３により管理される部品の管理情報は、共通のデータ構造を有する。カーソルボタンや再生ボタンなど各種の入力手段にそれぞれ対応する具体的な部品が作成される際に、その部品に応じた値が管理情報やその他の情報に与えられる。
【００３０】
配置変更手段３０５は、管理情報に基づいて、表示手段３０６により表示される部品の配置を変更する。
【００３１】
例えば図４に示すように、管理情報は、部品の識別子、名称、種別及び位置情報を含む。識別子は、各部品に固有に与えられ、部品を識別するために用いられる。名称は、文字列で設定される。種別は、入力部品であるか出力部品であるかを区別するための値である。位置情報は、部品を配置する位置を表す値から構成され、初期位置の情報と現在位置の情報とを含む。初期位置は、具体的な部品が作成される際に与えられる位置の値であり、通常、その値は入力手段及び出力手段の配置に基づく。全ての部品が初期位置で配置されれば、部品の配置は、入力手段及び出力手段の配置と相似する。現在位置は、配置変更手段３０５により部品の配置が変更された場合の部品の位置を表す。
【００３２】
図５に管理情報の具体例を示す。この具体例は、あるリモコンが有する１３個の入力手段に対応して、図６に示すように、仮想リモコンが１３個の入力部品３０２を有する場合の例である。
【００３３】
図５の例では、各部品に識別子として１乃至１３の数値が与えられている。名称には、入力部品３０２に関連付けられる機能を表す文字列が設定されている。識別子「１」の部品には、「Ｐｏｗ」という文字列が名称として設定されており、この文字列が入力部品３０２の近傍に表示されることによって、開発者は、その入力部品３０２が電源ボタンであることを容易に把握することができる。また、部品の種別として、「０」か「１」が与えられる。この数値が０の場合、その部品が入力部品３０２であることを表し、数値が１の場合、その部品が出力部品３０４であることを表す。この場合、全ての部品が入力部品３０２であるから、全ての部品の種別に「０」が与えられている。初期位置は、図６において仮想リモコンの外形を表す画像６００の左上角を原点とするｘ座標及びｙ座標で与えられる。ｘ座標及びｙ座標によって、部品の左上角の位置が表される。
【００３４】
また、部品については、表示情報として、図７に示すように、部品の識別子毎に指定画像、幅及び高さの情報も管理される。指定画像には、例えば画像ファイルを指定する相対パスが与えられる。また、幅及び高さには、画像の幅及び高さが与えられる。表示手段３０６は、部品の初期位置を始点として、与えられた幅及び高さで指定画像を表示する。識別番号が「６」の部品であれば、その初期位置は（４５，６０）であり、これを始点として、幅「２０」及び高さ「１０」の画像が表示される。全ての部品の表示が初期位置に従って行われることによって、仮想リモコンの入力部品３０２の配置は、リモコンの入力手段の配置を再現する。
【００３５】
仮想リモコンは、このようにリモコンの入力手段の配置を再現するだけでなく、自動的に入力部品３０２を含む部品の配置を変更することができる。
【００３６】
入力部品３０２の配置を自動的に変更するため、管理情報には、例えば図４又は図５に示すように、機能属性情報も含まれる。機能属性情報には、部品に関連付けられる機能が属する区分を表す機能種別と機能種別の個数が含まれる。この実施の形態では、機能が属する区分は、「再生」か「編集」又はその両方である。「再生」は、映像の再生、停止など映像の再生に利用される機能が属する区分であり、「編集」は、メニュー表示、決定など編集に利用される機能が属する区分である。機能種別及びその個数は、数値によって与えられる。機能が属する区分が「再生」である場合には、機能種別として「１０」が与えられ、「編集」の場合には、「１１」が与えられ、両方の場合には、「１０」、「１１」の２つの数値が与えられる。
【００３７】
図５の例では、識別子が「１」の入力部品３０２の場合、機能種別の個数は２個であり、「１０」、「１１」の両方の数値が機能種別として与えられている。識別子が「３」の入力部品３０２の場合、機能種別の個数は１個であり、「１１」が機能種別として与えられている。識別子が「１１」の入力部品３０２の場合、機能種別の個数は１個であり、「１０」が機能種別として与えられている。
【００３８】
配置変更手段３０５は、このような機能属性情報に基づいて、入力部品３０２の配置を変更し、表示手段３０６は、その変更に従って入力部品３０２を表示する。
【００３９】
例えば仮想リモコンを利用する開発者が、再生に関する動作確認のみを行うような場合に、開発者が、機能種別として「再生」を指定する要求をデバイス仮想化装置に行うと、図８に示す手順の通り、その要求は、配置変更手段３０５に通知される（Ｓ１００１）。配置変更手段３０５は、要求があったことを表示手段３０６に通知し、表示手段３０６は、現在表示されている全ての部品を非表示にする（Ｓ１００２）。配置変更手段３０５は、管理情報の機能種別に「１０」という数値が与えられている否かを部品毎に確認する（Ｓ１００３）。機能種別に「１０」という数値が与えられていれば、配置変更手段３０５は、その部品の位置情報を取得する（Ｓ１００４）。機能種別に「１０」という数値が与えられていないか、手順Ｓ１００４が行われると、全ての部品について手順Ｓ１００３が行われたか否かが確認される（Ｓ１００５）。全ての部品について手順Ｓ１００３が行われていないことが確認された場合、手順Ｓ１００３以降の手順が繰り返される。全ての部品について手順Ｓ１００３が行われていることが確認された場合、配置変更手段３０５は、取得された位置情報に従って仮想リモコンの外形を表す画像６００上に部品を配置し、表示手段３０６が、配置された部品を表示する（Ｓ１００６）。この場合、図９に示すように、その機能が「再生」に属する入力部品３０２のみが表示される。
【００４０】
また、編集に関する動作確認のみが行われるような場合には、同様の手順に従い、配置変更手段３０５は、その機能種別として「１１」という数値が与えられている入力部品３０２のみを画像６００上に配置し、表示手段３０６は、入力部品３０２が配置された画像を表示する。これによって、図１０に示すように、その機能が「編集」に属する入力部品３０２のみが表示される。
【００４１】
このように、実際のデバイスの入力手段に対応する入力部品のうち、一部の機能種別にその機能が属する入力部品のみが表示されることによって、開発者は、特定の操作を容易に行うことができる。
（実施の形態２）
上述の実施の形態１では、配置変更手段３０５は、機能種別に基づいて部品の配置を変更したが、これに限られるものではない。この実施の形態では、図１１に示すように、管理情報は、部品に対する操作の属性情報を含む。この操作の属性情報には、部品に対する操作が属する区分を表す操作種別、操作種別の個数、操作種別毎の操作順序が含まれる。この実施の形態では、操作が属する区分は、「編集１」、「再生２」、「機能３」又はこれらの組み合わせである。
【００４２】
操作種別、操作種別の個数、及び操作種別毎の操作順序は数値によって与えられ、操作が属する区分が「編集１」である場合には、操作種別として「２０」が与えられ、「再生２」の場合には、「２１」が与えられ、「機能３」の場合には、「２２」が与えられる。
【００４３】
図１２は操作属性情報を含む管理情報の図６に対応する具体例を示す。
【００４４】
図１２の例では、識別子が「２」の入力部品３０２の場合、操作種別の個数は１個であり、「２０」が操作種別として与えられており、「１」が操作順序として与えられている。識別子が「６」の入力部品３０２の場合、操作種別の個数は２個であり、「２０」、「２１」の２つの数値が操作種別として与えられており、操作種別「２０」には操作順序として「２」が与えられ、操作種別「２１」には操作順序として「４」が与えられている。識別子が「８」の入力部品３０２の場合、操作種別の個数は３個であり、「２０」、「２１」、「２２」の３つの数値が操作種別として与えられている。この操作種別「２０」には操作順序として「４」が与えられ、操作種別「２１」には操作順序として「５」が与えられ、操作種別「２２」には操作順序として「３」が与えられている。
【００４５】
配置変更手段３０５は、このような操作属性情報に基づいて、入力部品３０２の配置を変更し、表示手段３０６は、その変更に従って入力部品３０２を表示する。
【００４６】
例えば仮想リモコンを利用する開発者が、操作種別として「編集１」を指定する要求をデバイス仮想化装置に行うと、図１３に示す手順の通り、その要求は、配置変更手段３０５に通知される（Ｓ２００１）。配置変更手段３０５は、要求があったことを表示手段３０６に通知し、表示手段３０６は、現在表示されている全ての部品を非表示にする（Ｓ２００２）。配置変更手段３０５は、管理情報の操作種別に「２０」という数値が与えられている否かを部品毎に確認する（Ｓ１００３）。機能種別に「２０」という数値が与えられていれば、配置変更手段３０５は、その部品の操作順序を取得する（Ｓ２００４）。操作種別に「２０」という数値が与えられていないか、手順Ｓ２００４が行われると、全ての部品について手順Ｓ２００３が行われたか否かが確認される（Ｓ２００５）。全ての部品について手順Ｓ２００３が行われていないことが確認された場合、手順Ｓ２００３以降の手順が繰り返される。全ての部品について手順Ｓ２００３が行われていることが確認された場合、配置変更手段３０５は、取得された操作順序に従って仮想リモコンの外形を表す画像上に部品を配置し、表示手段３０６が配置された部品を表示する（Ｓ２００６）。図１２の例では、識別子が「２」、「６」、「７」、「８」、「１１」の入力部品３０２について操作順序が取得される。これらの入力部品には、１乃至５の数値で操作順序が与えられており、配置変更手段３０５は、操作順序として与えられた数値が小さいものから順に入力部品３０２を配置する。配置開始位置のｘ座標及びｙ座標として１０及び１０が、配置間隔として１０がそれぞれ予め与えられていれば、まず配置変更手段３０５は、操作順序として与えられた数値が最も小さい識別子が「２」の入力部品３０２を配置開始位置に配置する。２番目に配置される入力部品３０２は、残った部品のうち操作順序として与えられた数値が最も小さい識別子が「６」の入力部品３０２である。この部品の配置位置は配置変更手段３０５により求められる。配置変更手段３０５は、配置開始位置のｘ座標とこの部品の幅と配置間隔とを加算して、この部品の配置位置のｘ座標を求める。また、配置変更手段３０５は、配置間隔を２で割った値を配置開始位置のｙ座標に加算して、この部品の配置位置のｙ座標を求める。識別子が「６」の入力部品３０２は、求められた配置位置に配置される。その他の部品については、上述の配置位置の計算における配置開始位置を前の部品の配置位置に置き換えた計算によって配置位置が求められる。これらの部品は、それぞれについて求められた配置位置に順次配置される。表示手段３０６は、このようにして配置された入力部品３０２を表示する。これによって、図１４に示すように、仮想リモコンの入力部品３０２の配置は、リモコンの入力手段と相似する配置とは異なったものに変更される。
【００４７】
また、操作種別として「再生２」を指定する要求が開発者により行われた場合には、同様の手順に従い、配置変更手段３０５は、その操作種別として「２１」という数値が与えられている入力部品３０２を操作順序に従って配置する。この場合、それらの入力部品３０２は、図１５に示すように配置される。
【００４８】
このように、特定の操作に使用される入力部品が操作順序に従って配置されることによって、それらの部品に対して順次操作が行われる場合でも、開発者は、操作を効率的に行うことができる。
（実施の形態３）
上述の実施の形態１及び２では、配置変更手段３０５は、機能又は操作の属性情報に基づいて部品の配置を変更したが、入力部品の使用履歴の情報に基づいて部品の配置の変更を行うようにしてもよい。この実施の形態では、図１６に示すように、管理情報は、使用履歴の情報として、使用回数の履歴を含む。この使用回数の履歴には、使用回数を表す数値が与えられる。使用回数を表す数値は、部品が使用される度にインクリメントされる。
【００４９】
図１７は使用回数の履歴を含む管理情報の図６に対応する具体例を示す。
【００５０】
図１７の例では、識別子が「１」の入力部品３０２の場合、「５０」が使用回数履歴として与えられている。また、識別子が「２」の入力部品３０２の場合、「３０」が使用回数履歴として与えられている。これらは、識別子が「１」又は「２」の入力部品３０２が、履歴の管理が開始されてから５０回又は３０回使用されたことを表す。
【００５１】
配置変更手段３０５は、このような使用回数の履歴に基づいて、入力部品３０２の配置を変更し、表示手段３０６は、その変更に従って入力部品３０２を表示する。
【００５２】
例えば仮想リモコンを利用する開発者が、使用回数履歴に基づく配置変更の要求をデバイス仮想化装置に行うと、図１８に示す手順の通り、その要求は、配置変更手段３０５に通知される（Ｓ３００１）。配置変更手段３０５は、要求があったことを表示手段３０６に通知し、表示手段３０６は、現在表示されている全ての部品を非表示にする（Ｓ３００２）。配置変更手段３０５は、使用回数履歴として与えられている数値が最大の入力部品３０２の表示情報を取得する（Ｓ３００３）。使用回数履歴として与えられている数値が最大の入力部品３０２が複数あれば、配置変更手段３０５は、それらのうちのいずれかの表示情報を取得する。配置変更手段３０５は、それまでに表示情報を取得した入力部品３０２の個数をその入力部品３０２に関連付けた上で、その個数に基づき所定数の入力部品３０２の表示情報が得られたか否かを確認する（Ｓ３００４）。所定数の入力部品３０２の表示情報が得られていなければ、表示情報を取得していない入力部品３０２について手順Ｓ３００４が繰り返される。所定数の入力部品３０２の表示情報が得られると、配置変更手段３０５は、表示情報に基づいて各入力部品３０２の配置位置を求める。この実施の形態では、９つの入力部品３０２について表示情報が求められており、各入力部品３０２の配置位置が、その部品に関連付けられた個数の小さい順に、（Ｘ０，Ｙ０）、…、（Ｘ８，Ｙ８）で表されるとする。配置変更手段３０５は、例えば次式に従って各入力部品３０２の配置位置を求める。
【００５３】
（Ｘ０，Ｙ０）＝（ＸＭＡＸ／２，ＹＭＡＸ／２）
（Ｘ１，Ｙ１）＝（Ｘ０＋Ｗ０＋Ｄ，Ｙ０）
（Ｘ２，Ｙ２）＝（Ｘ０，Ｙ０＋Ｈ０＋Ｄ）
（Ｘ３，Ｙ３）＝（Ｘ２＋Ｗ２＋Ｄ，Ｙ１＋Ｈ１＋Ｄ）
（Ｘ４，Ｙ４）＝（Ｘ０−Ｗ４−Ｄ，Ｙ０）
（Ｘ５，Ｙ５）＝（Ｘ２＋Ｗ５＋Ｄ，Ｙ４＋Ｈ４＋Ｄ）
（Ｘ６，Ｙ６）＝（Ｘ０，Ｙ０−Ｈ６−Ｄ）
（Ｘ７，Ｙ７）＝（Ｘ６＋Ｗ６＋Ｄ，Ｙ１−Ｗ７−Ｄ）
（Ｘ８，Ｙ８）＝（Ｘ７−Ｗ７−Ｄ，Ｙ４−Ｗ８−Ｄ）
ただし、Ｗｎ及びＨｎは（ｎ＋１）個（ｎ＝０，１，…，８）の個数が関連付けられた部品の幅及び高さ、Ｄは配置間隔、ＸＭＡＸは幅方向（ｘ方向）の最大値、ＹＭＡＸは高さ方向（ｙ方向）の最大値である。
【００５４】
１３個の入力部品３０２のうち、その部品に関連付けられた個数が最も小さい入力部品３０２、すなわち使用回数履歴として与えられた数値が最も大きな入力部品３０２は、識別子が「１３」の入力部品３０２である。ＸＭＡＸ及びＹＭＡＸが両方とも１２０であれば、この部品の配置位置（Ｘ０，Ｙ０）は、（６０，６０）となる。また、使用回数履歴として与えられた数値が２番目に大きな入力部品３０２は、識別子が「１１」の入力部品３０２である。配置間隔Ｄが１０で与えられているとすると、識別子が「１３」の入力部品３０２の幅Ｗ０は２０であるから、識別子が「１１」の入力部品３０２の配置位置（Ｘ１，Ｙ１）は、（９０，６０）となる。残りの７つの入力部品３０２についても、上式に従い、配置位置が求められる。管理手段３０３は、このようにして求められた配置位置を現在位置として管理情報に登録する。また、配置変更手段３０５は、求められた配置位置に各入力部品３０２を配置し、表示手段３０６は、配置された入力部品３０２を表示する（Ｓ３００５）。
【００５５】
これによって、図１９に示すように、識別子が「１３」の入力部品３０２の周りに、使用回数の多い入力部品３０２が配置される。従って、開発者が、操作のために入力部品３０２から他の入力部品３０２へマウスポインタを移動させる移動量を抑えることができ、その結果、入力部品３０２を操作する開発者の操作負担が抑えられる。使用履歴に応じた入力部品の最適な配置が得られるため、開発段階における操作性が向上するだけでなく、製品における入力手段の配置の決定に入力部品の配置を利用することもできる。
（実施の形態４）
上述の実施の形態３では、配置変更手段３０５は、使用回数履歴に基づいて部品の配置を変更したが、これに限られるものではない。この実施の形態では、図２０に示すように、管理情報は、使用履歴の情報として、使用順序の履歴を含む。ある部品の使用順序の履歴には、履歴個数、他部品識別子、他部品使用回数が含まれ、これらは数値によって与えられる。履歴個数は、その部品が使用される前後に使用された他の部品の個数を表す。他部品識別子は、他の部品の識別子である。他部品使用回数は、その部品が使用される前後に、他の部品が使用された回数である。
【００５６】
図２１は使用順序履歴を含む管理情報の図６に対応する具体例を示す。
【００５７】
図２１の例では、識別子が「１」の入力部品３０２の場合、履歴個数は、２個であり、「２」、「３」の２つの数値が他部品識別子として与えられている。他部品識別子「２」には他部品使用回数として「８０」が与えられ、他部品識別子「３」には他部品使用回数として「６０」が与えられている。これらは、識別子が「１」の入力部品３０２が使用される前に、識別子が「２」の入力部品３０２が、履歴の管理が開始されてから８０回使用され、識別子が「１」の入力部品３０２が使用された後に、識別子が「３」の入力部品３０２が６０回使用されたことを表す。
【００５８】
配置変更手段３０５は、このような使用順序履歴に基づいて、入力部品３０２の配置を変更し、表示手段３０６は、その変更に従って入力部品３０２を表示する。
【００５９】
例えば仮想リモコンを利用する開発者が、使用順序履歴に基づく配置変更の要求をデバイス仮想化装置に行うと、図２２に示す手順の通り、その要求は、配置変更手段３０５に通知される（Ｓ４００１）。配置変更手段３０５は、要求があったことを表示手段３０６に通知し、表示手段３０６は、現在表示されている全ての部品を非表示にする（Ｓ４００２）。配置変更手段３０５は、履歴個数が最大の入力部品３０２とその入力部品３０２の使用前後に使用された他部品の表示情報を取得する（Ｓ４００３）。図２１の例では、１３個の入力部品３０２のうち、履歴個数が最大であるとして表示情報が取得された入力部品３０２は、識別子が「１」の入力部品３０２である。
【００６０】
配置変更手段３０５は、取得された表示情報に基づいて各入力部品３０２の配置位置を定める。履歴個数が最大であるとして表示情報が取得された入力部品３０２、その入力部品３０２の使用前に使用された他部品、その入力部品３０２の使用後に使用された他部品それぞれの配置位置が（Ｘｔ，Ｙｔ）、（Ｘｂｅ，Ｙｂｅ）、（Ｘａｆ，Ｙａｆ）で表されるとする。識別子が「１」の入力部品３０２の場合、入力部品３０２の配置位置（Ｘｔ，Ｙｔ）は、配置開始位置（Ｘｓ，Ｙｓ）に定められる。また、配置変更手段３０５は、配置位置（Ｘｂｅ，Ｙｂｅ）、（Ｘａｆ，Ｙａｆ）を次式に従って求める。
【００６１】
（Ｘｂｅ，Ｙｂｅ）＝（Ｘｔ＋Ｗｔ＋Ｄ，Ｙｔ）
（Ｘａｆ，Ｙａｆ）＝（Ｘｔ，Ｙｔ＋Ｈｔ＋Ｄ）
ただし、Ｗｔ及びＨｔは入力部品の幅及び高さ、Ｄは配置間隔を表す。
【００６２】
配置開始位置（Ｘｓ，Ｙｓ）が（１０，１０）で与えられているとすると、識別子が「１」の入力部品３０２の配置位置は（１０，１０）である。従って、配置間隔Ｄが１０で与えられていれば、識別子が「２」の入力部品３０２の配置位置は（３５，１０）と求められ、識別子が「３」の入力部品３０２の配置位置は（１０，３５）と求められる。
【００６３】
管理手段３０３は、このようにして定められた各部品の配置位置を現在位置として管理情報に登録する。また、配置変更手段３０５は、求められた配置位置に各入力部品３０２を配置し、表示手段３０６は、配置された入力部品３０２を表示する（Ｓ４００４）。
【００６４】
次に、配置変更手段３０５は、全ての入力部品３０２を配置したか否かを確認する（Ｓ４００５）。全ての入力部品３０２が配置されていなければ、配置されていない入力部品３０２について手順Ｓ４００３及びＳ４００４が繰り返される。
【００６５】
手順Ｓ４００４が繰り返される場合、配置変更手段３０５は、入力部品３０２の配置位置（Ｘｔ，Ｙｔ）を次式に従って求める。
【００６６】
（Ｘｔ，Ｙｔ）＝（Ｘｅｘ，Ｙｅｘ＋Ｈｅｘ＋Ｄ）
ただし、Ｘｅｘ、Ｙｅｘ及びＨｅｘはそれぞれ、既に配置されている入力部品３０２のうち最も配置位置のｙ座標の値が大きな入力部品のｘ座標、ｙ座標及び高さである。
【００６７】
識別子が「１」、「２」及び「３」の入力部品３０２が上述のように既に配置されている場合、配置されていない入力部品３０２のうちで履歴個数が最大であるとして表示情報が取得される入力部品３０２は識別子が「７」の入力部品３０２である。識別子が「７」の入力部品３０２の場合、配置位置（Ｘｔ，Ｙｔ）は、識別子が「３」の入力部品３０２の配置位置に基づいて、（１０，５５）と求められる。また、配置位置（Ｘｂｅ，Ｙｂｅ）、（Ｘａｆ，Ｙａｆ）は上述と同様に求められる。識別子が「７」の入力部品３０２の配置位置が（１０，５５）であるから、識別子が「６」及び「８」の入力部品３０２の配置位置はそれぞれ（３０，５５）及び（１０，８５）と求められる。
【００６８】
このようにして求められた配置位置に識別子が「６」、「７」及び「８」の入力部品３０２も配置された場合には、配置されていない入力部品３０２のうちで履歴個数が最大であるとして表示情報が取得される入力部品３０２は識別子が「１１」の入力部品３０２である。識別子が「１１」の入力部品３０２の場合、配置位置（Ｘｔ，Ｙｔ）は、識別子が「８」の入力部品３０２の配置位置に基づいて、（１０，１０５）と求められる。また、識別子が「１１」の入力部品３０２の使用後に使用された他部品の識別子は管理情報に登録されていない。このため、配置位置（Ｘｂｅ，Ｙｂｅ）のみが上述と同様に求められる。識別子が「１１」の入力部品３０２の配置位置が（１０，１０５）であるから、識別子が「１３」の入力部品３０２の配置位置は（４０，１０５）と求められる。
【００６９】
このようにして求められた配置位置に識別子が「１１」及び「１３」の入力部品３０２も配置された場合には、配置されていない入力部品３０２のうちで履歴個数が最大であるとして表示情報が取得される入力部品３０２は識別子が「９」の入力部品３０２である。また、既に配置されている入力部品３０２のうちで配置位置のｙ座標の値が最も大きな入力部品３０２は識別子が「１１」の入力部品３０２である。このため、識別子が「９」の入力部品３０２の場合、配置位置（Ｘｔ，Ｙｔ）は、識別子が「１１」の入力部品３０２の配置位置に基づいて、（１０，１２５）と求められる。また、識別子が「９」の入力部品３０２の使用前に使用された他部品の識別子として「８」が登録されているが、識別子が「８」の入力部品３０２は既に配置されているため、配置位置（Ｘｂｅ，Ｙｂｅ）は求められない。
【００７０】
残りの入力部品３０２についても同様に配置位置が求められると、その結果として、図２３に示すように、仮想リモコンの１３個の入力部品３０２は配置される。
【００７１】
この例では、ある入力部品３０２の使用前に使用されることの多い他の入力部品３０２はその入力部品３０２の直ぐ左側に配置され、その入力部品３０２の使用後に使用されることの多い他の入力部品３０２はその入力部品３０２の直ぐ下側に配置される。
【００７２】
このように連続的に操作されることの多い入力部品３０２が近くに配置されることによって、仮想リモコンを利用する開発者は、複数の入力部品３０２に対する連続的な操作を容易に行うことができる。
【００７３】
上述した各実施の形態の通り、本発明が提供する仮想リモコンでは、仮想リモコン上の入力部品の配置をリモコンの入力手段と相似する配置と異なる配置にすることができ、それによって、操作性が向上する。
【００７４】
もっとも、アプリケーションソフトウェアの開発段階において、このような操作性の向上が強く求められるのは、入力部品の頻繁な操作が開発上必要とされる場合であり、リモコンの外観上の特徴が開発に影響を与えることもあるので、他の場合には、リモコンの外観が仮想リモコン上で再現されるようにしてもよい。
【００７５】
上述のように、管理情報に初期位置として入力手段の配置の情報が含まれていれば、開発者の要求に従い、配置変更手段３０５は、その入力手段の配置の情報に基づいて入力部品３０２の配置を入力手段の配置に戻すこともできる。
【００７６】
この場合には、開発者の要求に伴い、表示手段３０６が、それまでに表示されている入力部品３０２を全て非表示にし、その後、配置変更手段３０５が、初期位置の通りに、各入力部品３０２を配置すればよい。
【００７７】
これによって、開発者は、開発の状況に応じて、操作性の向上か、外観の再現性のいずれを優先するかを選択することができる。
【００７８】
また、管理情報に入力手段の配置の情報が含まれていれば、入力部品の配置が入力手段と相似する配置と異なる配置に変更された状態で、その入力手段の配置の情報に基づいて、入力手段の配置を入力部品３０２と識別可能に表示することも可能である。
【００７９】
入力手段の配置と同様に入力部品が配置されていた状態から、実施の形態３で説明した通り、入力部品３０２の配置が、図１９に示すように変更されたとする。
【００８０】
この状態で、開発者が、識別子が「１」の入力部品３０２を指定した上で、この入力部品３０２の初期位置を表示する要求をデバイス仮想化装置に対して行うと、図２４に示す手順の通り、その要求は、配置変更手段３０５に通知される（Ｓ５００１）。配置変更手段３０５は、要求があったことを表示手段３０６に通知し、表示手段３０６は、現在表示されている全ての部品を非表示にする（Ｓ５００２）。配置変更手段３０５は、指定された識別子が「１」の入力部品３０２を管理情報の現在位置に配置し、表示手段３０６は、管理情報の現在位置に配置された入力部品を表示する（Ｓ５００３）。さらに、配置変更手段３０５は、同じ入力部品３０２を管理情報の初期位置に配置し、表示手段３０６は、管理情報の初期位置に配置された入力部品を半透明で表示する（Ｓ５００４）。
【００８１】
これによって、識別子が「１」の入力部品３０２は、図２５に示すように、現在位置（８０，８０）及び初期位置（１０，１０）に配置される。初期位置では、その入力部品３０２は半透明で表示されており、初期位置と現在位置とを視覚上容易に区別することができる。もちろん、初期位置にある入力部品の外枠を破線で表示するなどして、初期位置にある入力部品と現在位置に入力部品を識別可能に表示するようにしてもよい。
【００８２】
このように、初期位置にある入力部品と現在位置にある入力部品が識別可能に表示されることによって、仮想リモコンを利用する開発者は、その入力部品について配置上どのような相違があるかを把握し、把握内容を開発に利用することができる。
【００８３】
なお、上述の各実施の形態では、配置変更手段３０５は、入力部品の配置を変更したが、入力部品の変更と同様に、管理情報に基づいて出力部品の配置をデバイスと異なる配置にする変更も行うようにしてもよい。
【００８４】
また、上述の各実施の形態では、ＤＶＤレコーダの操作に利用されるリモコンを仮想化する仮想リモコンに本発明が適用されたが、これに限られるものではなく、他の組み込み機器の操作に利用される他のデバイスを仮想化する仮想デバイスに本発明を適用することも可能である。さらに、開発される又は実存するデバイスを仮想化するソフトウェアだけでなく、フロントパネルなどにおける一般的な入力手段の配置を再現するソフトウェアに本発明を適用することも可能である。本発明が適用されたこのようなソフトウェアをコンピュータ上で動作することによって、コンピュータは、管理手段と配置変更手段とを備えた表示変更装置として機能する。
【００８５】
【発明の効果】
以上説明した通り、本発明によれば、デバイスに備えられる入力手段に対応する表示上の入力部品の配置を自動的に変更することによって、入力部品に対する操作性を向上させることができる。
【００８６】
例えば機能の属性情報に基づいて入力部品の配置が自動的に変更されることによって、特定の機能に関して操作性を著しく向上させることができる。
【００８７】
また、操作の属性情報に基づいて入力部品の配置が自動的に変更されることによって、特定の操作に関して操作性を著しく向上させることができる。
【００８８】
さらに、使用回数や使用順序など入力部品の使用履歴に応じて配置を変更することによって、使用履歴に応じて入力部品の配置を最適化することができ、開発段階における操作性の向上だけでなく、入力部品の配置を入力手段の配置の決定に利用することも可能となる。
【００８９】
入力手段の配置の情報が含まれている場合、その情報に基づいて入力手段の配置を入力部品と識別可能に表示すれば、入力部品の配置がデバイスと異なっている状態でも、その相違を視覚的に容易に把握することができる。
【００９０】
さらに、入力手段の配置の情報に基づいて自動的に入力手段の配置が入力手段と相違する配置に変更されることによって、入力部品の配置がデバイスと異なっている状態でも、入力部品の操作性の向上か、外観の再現性のいずれを優先させるかを状況に応じて容易に選択することができる。
【図面の簡単な説明】
【図１】組み込み機器とその操作に利用されるデバイスの具体例を示す図
【図２】本発明が応用される開発環境のＧＵＩ画面を示す図
【図３】本実施の形態におけるデバイス仮想化装置の概略構成を示す図
【図４】実施の形態１における管理情報のデータ構造を示す図
【図５】実施の形態１における管理情報の具体例を示す図
【図６】仮想リモコンの初期状態における入力部品の配置例を示す図
【図７】入力部品の表示情報の具体例を示す図
【図８】実施の形態１における部品の配置変更方法を説明するためのフローチャート
【図９】実施の形態１における部品の配置変更後の仮想リモコンを示す図
【図１０】実施の形態１における部品の配置変更後の仮想リモコンを示す他の図
【図１１】実施の形態２における管理情報のデータ構造を示す図
【図１２】実施の形態２における管理情報の具体例を示す図
【図１３】実施の形態２における部品の配置変更方法を説明するためのフローチャート
【図１４】実施の形態２における部品の配置変更後の仮想リモコンを示す図
【図１５】実施の形態２における部品の配置変更後の仮想リモコンを示す他の図
【図１６】実施の形態３における管理情報のデータ構造を示す図
【図１７】実施の形態３における管理情報の具体例を示す図
【図１８】実施の形態３における部品の配置変更方法を説明するためのフローチャート
【図１９】実施の形態３における部品の配置変更後の仮想リモコンを示す図
【図２０】実施の形態４における管理情報のデータ構造を示す図
【図２１】実施の形態４における管理情報の具体例を示す図
【図２２】実施の形態４における部品の配置変更方法を説明するためのフローチャート
【図２３】実施の形態４における部品の配置変更後の仮想リモコンを示す図
【図２４】部品を現在位置と初期位置に識別可能に表示する手順を示すフローチャート
【図２５】指定された部品が現在位置と初期位置とで識別可能に表示された仮想リモコンを示す図
【符号の説明】
２０１、２０２、２０３　　シミュレータを表すウィンドウ
３００　　通信手段
３０１　　アプリケーションソフトウェア
３０２　　入力部品
３０３　　管理手段
３０４　　出力部品
３０５　　配置変更手段
３０６　　表示手段
【図１】
2004046314.tif 000003
【図２】
2004046314.tif 000004
【図３】
2004046314.tif 000005
【図４】
2004046314.tif 000006
【図５】
2004046314.tif 000007
【図６】
2004046314.tif 000008
【図７】
2004046314.tif 000009
【図８】
2004046314.tif 000010
【図９】
2004046314.tif 000011
【図１０】
2004046314.tif 000012
【図１１】
2004046314.tif 000013
【図１２】
2004046314.tif 000014
【図１３】
2004046314.tif 000015
【図１４】
2004046314.tif 000016
【図１５】
2004046314.tif 000017
【図１６】
2004046314.tif 000018
【図１７】
2004046314.tif 000019
【図１８】
2004046314.tif 000020
【図１９】
2004046314.tif 000021
【図２０】
2004046314.tif 000022
【図２１】
2004046314.tif 000023
【図２２】
2004046314.tif 000024
【図２３】
2004046314.tif 000025
【図２４】
2004046314.tif 000026
【図２５】
2004046314.tif 000027