情報処理装置、制御方法、および制御プログラム
【課題】OS切り替え専用の入力デバイス以外からの入力に基づきOSを切り替えることができるようにする。
【解決手段】第1の処理部1aは、第1のオペレーティングシステムに基づく処理を実行する。第2の処理部1bは、第2のオペレーティングシステムに基づく処理を実行する。送信部1cは、第1の処理部1aまたは第2の処理部1bのいずれか一方が送信先として設定されており、設定された送信先に入力情報を送信する。切替制御部1eは、切替要求5を受信した場合、送信部1cの送信先の設定を、現在の送信先以外の第1の処理部1aまたは第2の処理部1bに切り替える。第1の処理部1aは、さらに、送信部1cから受信した入力情報に基づいて切替指示を検出し、切替指示を検出した場合、切替制御部1eに切替要求5を送信する。
【解決手段】第1の処理部1aは、第1のオペレーティングシステムに基づく処理を実行する。第2の処理部1bは、第2のオペレーティングシステムに基づく処理を実行する。送信部1cは、第1の処理部1aまたは第2の処理部1bのいずれか一方が送信先として設定されており、設定された送信先に入力情報を送信する。切替制御部1eは、切替要求5を受信した場合、送信部1cの送信先の設定を、現在の送信先以外の第1の処理部1aまたは第2の処理部1bに切り替える。第1の処理部1aは、さらに、送信部1cから受信した入力情報に基づいて切替指示を検出し、切替指示を検出した場合、切替制御部1eに切替要求5を送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は複数のOS(Operating System)を動作させることができる情報処理装置、制御方法、および制御プログラムに関する。
【背景技術】
【0002】
コンピュータが組み込まれた機器は、組み込み機器と呼ばれる。組み込み機器の中には、例えば携帯端末装置のような携帯型の組み込み機器がある。
近年の携帯型の組み込み機器で使用されているCPU(Central Processing Unit)は、以前に比べ性能が向上している。CPUの性能が向上したことで、例えば組み込み機器のハードウェア環境を仮想化して、仮想マシンによって処理を実行することも可能となってきている。例えば、複数の仮想マシンそれぞれで異なるOSを動作させることも可能である。
【0003】
ところで、携帯型の組み込み機器は、大画面化・小型化の傾向にある。大画面化と小型化を同時に進めるため、多くの携帯型の組み込み機器では、文字などの入力は、物理的なキーボード以外の入力装置を用いて行われる。例えば、組み込み機器には、タッチセンサ付き表示装置が搭載される。タッチセンサ付き表示装置は、タッチパネルまたはタッチスクリーンと呼ばれることもある。文字入力が必要な場面では、例えば、ソフトウェアで実現したキーボードがタッチセンサ付き表示装置に表示され、タッチセンサ付き表示装置へのタッチ操作によって文字が入力される。
【0004】
ただし、1つの仮想マシンで実行されているOSが全画面領域を制御している場合、タッチセンサ付き表示装置へのタッチ操作は、表示されているOSに対する指示として検出され、仮想マシンの管理機能(例えばハイパーバイザ)への指示とはならない。そのため、例えば、この管理機能に、組み込み機器で動作する複数のOSのうちのいずれのOSに画面領域を制御させる(フォアグラウンドで動作させる)かを切り替える処理を実行させたい場合であっても、タッチセンサ付き表示装置の画面領域へのタッチ操作は、その画面領域を制御するOSへの指示とされてしまう。従来の組み込み機器には、フォアグラウンドで動作する仮想マシンの切り替えに利用可能な入力装置が設けられている。例えば、フォアグラウンドの仮想マシンドメインの切り替え用のキーパッドを設けることが考えられている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Sang-bum Suh、"Secure Architecture and Implementation of Xen on ARM for Mobile Devices"、[online]、April 17, 2007、[平成22年12月14日検索]、インターネット<URL:http://www.xen.org/files/xensummit_4/Secure_Xen_ARM_xen-summit-04_07_Suh.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、入力情報の送信先とするOSの切り替えのために、キーパッドのような切り替え専用の入力装置を設けることは、機器の小型化の阻害要因となる。なお、このような問題は、組み込み機器に限らず情報処理装置一般に当てはまる。
【0007】
1つの側面では、本発明は切り替え専用の入力装置以外からの入力に基づき、入力情報の送信先とするOSを切り替えることができる情報処理装置、制御方法、および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、第1の処理部、第2の処理部、送信部、および切替制御部を有する情報処理装置が提供される。第1の処理部は、第1のオペレーティングシステムに基づく処理を実行する。第2の処理部は、第2のオペレーティングシステムに基づく処理を実行する。送信部は、第1の処理部または第2の処理部のいずれか一方が設定された送信先の設定に応じて入力情報を送信する。切替制御部は、送信先の設定の切替要求を受信した場合に、送信先の設定を、設定された送信先以外の第1の処理部または第2の処理部に切り替える。そして、第1の処理部は、送信部から受信した入力情報が、第1のオペレーティングシステムで定義された切替条件に合致する場合、切替制御部に切替要求を送信する。
【0009】
また他の1つの案では、上記情報処理装置の処理部と同様の処理を行う制御方法が提供される。
また他の1つの案では、上記処理部の処理を情報処理装置に実行させる制御プログラムが提供される。
【発明の効果】
【0010】
切り替え専用の入力装置以外からの入力に基づき、入力情報の送信先とするOSを切り替えることが可能となる。
【図面の簡単な説明】
【0011】
【図1】第1の実施の形態の機能を示す図である。
【図2】第2の実施の形態のシステム構成例を示す図である。
【図3】携帯端末装置のハードウェア構成例を示す図である。
【図4】OS起動時の携帯端末装置の機能を示すブロック図である。
【図5】切替制御部の内部構造の一例を示す図である。
【図6】OS起動後の携帯端末装置の機能を示す図である。
【図7】第2の実施の形態におけるVM切り替え操作の一例を示す図である。
【図8】第2の実施の形態のVM切替処理の手順を示すシーケンス図である。
【図9】第2の実施の形態のVM切替判断処理の手順を示すフローチャートである。
【図10】第2の実施の形態の切替制御処理の手順を示すフローチャートである。
【図11】仮切替要求の通信例を示す図である。
【図12】LCDの表示切替処理の一例を示す図である。
【図13】送信先切替処理の一例を示す図である。
【図14】第3の実施の形態におけるVM切り替え操作の一例を示す図である。
【図15】画像合成例を示す図である。
【図16】第3の実施の形態のVM切替処理の前半を示すシーケンス図である。
【図17】入力解析部で生成される座標リストの一例を示す図である。
【図18】第3の実施の形態のVM切替処理の後半を示すシーケンス図である。
【図19】第3の実施の形態のVM切替判断処理の手順を示すフローチャートである。
【図20】第3の実施の形態の切替制御処理の手順を示すフローチャートである。
【図21】第4の実施の形態の携帯端末装置の機能を示すブロック図である。
【図22】検知領域記憶部のデータ構造の一例を示す図である。
【図23】第4の実施の形態におけるVM切り替え操作の一例を示す図である。
【図24】第4の実施の形態のVM切替処理を示すシーケンス図である。
【図25】第5の実施の形態の携帯端末装置の機能を示すブロック図である。
【図26】ジェスチャ情報記憶部のデータ構造の一例を示す図である。
【図27】第5の実施の形態におけるVM切り替え操作の一例を示す図である。
【図28】第5の実施の形態のVM切替処理を示すシーケンス図である。
【図29】第6の実施の形態の携帯端末装置の機能を示すブロック図である。
【図30】第6の実施の形態におけるVM切り替え操作の一例を示す第1の図である。
【図31】第6の実施の形態におけるVM切り替え操作の一例を示す第2の図である。
【図32】第6の実施の形態におけるVM切り替え操作の一例を示す第3の図である。
【図33】第6の実施の形態のVM切替処理の第1のシーケンス図である。
【図34】第6の実施の形態のVM切替処理の第2のシーケンス図である。
【図35】第6の実施の形態のVM切替処理の第3のシーケンス図である。
【図36】第6の実施の形態のVM切替処理の第4のシーケンス図である。
【図37】通知ドライバリストのデータ構造の一例を示す図である。
【図38】第4の実施の形態の変形例を示す図である。
【図39】第5の実施の形態の変形例を示す図である。
【図40】第6の実施の形態の変形例を示す図である。
【図41】第6の実施の形態の変形例におけるVM切替処理の第1のシーケンス図である。
【図42】第6の実施の形態の変形例におけるVM切替処理の第2のシーケンス図である。
【図43】第6の実施の形態の変形例におけるVM切替処理の第3のシーケンス図である。
【図44】第6の実施の形態の変形例におけるVM切替処理の第4のシーケンス図である。
【発明を実施するための形態】
【0012】
以下、本実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態の機能を示す図である。情報処理装置1には、入力装置2と表示装置3とが接続されている。入力装置2は、例えばタッチパッド、マウス、キーボードなどである。表示装置3は、例えば、LCD(Liquid Crystal Display)装置、有機ELディスプレイ(organic electroluminescence display)などである。
【0013】
情報処理装置1は、第1の処理部1a、第2の処理部1b、送信部1c、表示制御部1d、および切替制御部1eを有する。
第1の処理部1aは、第1のオペレーティングシステム(OS)に基づく処理を実行する。例えば、ハードウェア環境を仮想化することで情報処理装置1内に生成される仮想マシンによって、第1の処理部1aが実現される。また、第1の処理部1aは、送信部1cから受信した入力情報4が、第1のOSで定義された切替条件に合致する場合、切替制御部1eに切替要求を送信する。例えば第1のOSには、画像6内の予め設定された検知領域への操作入力があることが、切替条件として定義されている。この場合、第1の処理部1aは、送信1cから受信した入力情報が、生成した画像6内の検知領域への操作入力を示す入力情報であるか否か判断し、検知領域への操作入力を示す入力情報検知領域への操作入力を示す入力情報である場合に、切替要求を送信する。
【0014】
第2の処理部1bは、第2のOSに基づく処理を実行する。例えば、情報処理装置1内に生成される仮想マシンによって、第2の処理部1bが実現される。
送信部1cは、第1の処理部1aまたは第2の処理部1bのいずれか一方が送信先として設定されており、設定された送信先に入力情報4を送信する。図1の例では、入力情報4は、入力装置2から入力されている。なお、ネットワークなどを介して接続された装置から、ネットワーク経由で入力情報4が入力される場合もある。
【0015】
表示制御部1dは、表示対象の画像を指定する表示対象情報を受信すると、第1の処理部1aで生成された画像6、または第2の処理部1bで生成された画像7のうち、表示対象情報によって指定された画像を表示装置3に表示させる制御を行う。例えば表示制御部1dは、表示装置3に対して指定された画像が格納された記憶領域のアドレス8を送信することで、そのアドレス8に格納されている画像を表示装置3に表示させる。
【0016】
切替制御部1eは、切替要求5を受信した場合、送信部1cの送信先の設定を、現在の送信先以外の前記第1の処理部または前記第2の処理部に切り替える。また切替制御部1eは、切替要求5を受信した場合、現在の表示されている画像とは別の画像を指定した表示対象情報を、表示制御部1dに送信する。
【0017】
このような情報処理装置1において、例えば送信部1cにおいて、送信先として第1の処理部1aが設定されており、第1の処理部1aで生成された画像6が、表示対象として指定されているものとする。この状況で入力装置2から入力情報4が入力された場合、入力情報4は送信部1cで受信され、第1の処理部1aに送信される。第1の処理部1aは、第1のOSに基づいて、入力情報4を処理する。この際、第1の処理部1aは、入力情報4が、第1のOSで定義された切替条件に合致する場合、切替要求5を切替制御部1eに送信する。
【0018】
切替要求5を受信した切替制御部1eは、送信部1cの送信先の設定を、第2の処理部1bに切り替える。すると、以後入力される入力情報は、送信部1cによって第2の処理部1bに送信される。
【0019】
また切替要求5を受信した切替制御部1eは、第2の処理部1bで生成された画像7を指定した表示対象情報を、表示制御部1dに送信する。すると、表示制御部1dにより、表示対象の画像が、第2の処理部1bで生成された画像7に変更され、画像7が表示装置3に表示される。
【0020】
このように、第1の実施の形態によれば、複数のOSそれぞれに基づいて複数の処理が実行されている状況下で、OSを実行している処理部に対する入力情報に基づいて、入力情報の送信先や、表示対象画像を切り替えることができる。このとき、入力情報4は、切り替え専用に設けられた入力装置からの入力でなくてもよい。従って、切り替え専用の入力装置以外からの入力に基づき、フォアグラウンドで動作させるOSを切り替えることが可能となる。その結果、切り替え専用の入力装置を設けずに済み、機器の小型化を促進させることができる。
【0021】
なお、OSに定義されている切替条件には、例えば、ソフトボタンを押下する入力情報の検出がある。他の切替条件としては、所定の領域内の操作対象位置の移動を示す入力情報の検出がある。さらの他の切替条件としては、所定のパターンに沿った入力情報の検出がある。以下、さまざまな切替条件に応じたOSの切替処理について、第2の〜第6の実施の形態で詳細に説明する。
【0022】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、複数の仮想マシンそれぞれで実行されるOSに、ソフトアイコンによる切替ボタンと切替操作判断部とを設ける形態である。第2の実施の形態に係る携帯端末装置は、切替ボタンの押下によって表示対象とする仮想マシンを変更し、押下した切替ボタンを離すことによってVM切替を確定する。
【0023】
なお、以下の説明では、仮想マシンをVM(virtual machine)と呼ぶ。
図2は、第2の実施の形態のシステム構成例を示す図である。携帯端末装置100は、例えばアクセスポイント装置11との間で無線通信を行うことができる。ネットワーク10には、サーバ12などが接続されている。携帯端末装置100は、アクセスポイント装置11を経由して、サーバ12と通信を行うことができる。例えば携帯端末装置100は、サーバ12からソフトウェアをダウンロードすることができる。
【0024】
サーバ12は、光ディスク13などの可搬型の記録媒体からデータを読み取るドライブ装置を有している。光ディスク13は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク13には、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。サーバ12は、光ディスク13から読み取ったOSや各種ドライバなどのソフトウェアを、携帯端末装置100に送信することもできる。
【0025】
携帯端末装置100は、組み込み機器の一例であり、予め内部の記憶媒体に格納されたソフトウェアや、サーバ12などから取得したソフトウェアを実行可能なコンピュータを内蔵している。携帯端末装置100は、内部のコンピュータにより、仮想マシンを生成することができる。仮想マシンは、CPU、主記憶、入出力装置などのコンピュータ資源を仮想化したものである。生成された各仮想マシンは、1つのコンピュータとして使用することができる。
【0026】
また携帯端末装置100は、タッチセンサ付き表示装置110を有している。タッチセンサ付き表示装置110は、表示された画像に対するユーザからの接触を検出することができる。携帯端末装置100は、ユーザが接触した位置に表示されている要素に応じて、処理を実行する。
【0027】
図3は、携帯端末装置のハードウェア構成例を示す図である。携帯端末装置100は、CPU101によって装置全体が制御されている。CPU101には、バス103を介してメモリ102と複数の周辺機器が接続されている。
【0028】
メモリ102は、携帯端末装置100の主記憶装置として使用される。メモリ102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。またメモリ102には、CPU101による処理に必要な各種データが格納される。メモリ102としては、例えばRAMなどの半導体記憶装置が用いられる。
【0029】
バス103に接続されている周辺機器には、タッチセンサ付き表示装置110が構成要素であるLCD装置111とタッチセンサ112とがある。LCD装置111は、液晶を利用した表示装置である。タッチセンサ112は、接触を検知するための素子を配置した透明なスクリーンである。LCD装置111は、タッチセンサ112で表面が覆われている。そのため、LCD装置111に表示された要素をユーザが触れると、接触位置がタッチセンサで検出される。
【0030】
バス103にはさらに、フラッシュメモリ121、カメラ122、モーションセンサ123、方位センサ124、位置センサ125、スピーカ126、機能ボタン127、および無線通信インタフェース128が接続されている。
【0031】
フラッシュメモリ121は、不揮発性記憶素子の一種である。フラッシュメモリ121としては、例えばNAND型フラッシュメモリがある。フラッシュメモリ121には、例えばハイパーバイザ、OS、ドライバ、およびアプリケーションなどのソフトウェアが格納される。CPU101は、フラッシュメモリ121からソフトウェアを読み出して、処理を実行する。
【0032】
カメラ122は、CCDイメージセンサ(Charge Coupled Device Image Sensor)などの撮像素子によって、レンズを介して入射した画像を電気信号に変換する。モーションセンサ123は、3次元で加速度を検出するセンサである。方位センサ124は、携帯端末装置100の向き(方位)を検出するセンサである。位置センサ125は、例えばGPS(Global Positioning System)の衛星からの信号を受信して、携帯端末装置100の位置を検出する。スピーカ126は、CPU101から送られた電気信号を音声に変換して出力する。機能ボタン127は、電源ボタンなどハードウェア的なボタンである。無線通信インタフェース128は、無線によって通話やデータ通信を行う。無線通信インタフェース128は、例えば第3世代移動通信システムによる通信や、Wi−Fi(Wireless Fidelity)による通信を行うことができる。
【0033】
なお、図3に示した携帯端末装置100の機能ボタン127は、仮想マシンの切り替えに用いるボタンではない。すなわち、携帯端末装置100は、タッチセンサ112以外に、仮想マシンの切り替えに用いる入力機器を有していないことから、小型化が促進されている。
【0034】
このようなハードウェア構成の携帯端末装置100において、複数のVMを用いた処理が実行される。
図4は、OS起動時の携帯端末装置の機能を示すブロック図である。携帯端末装置100は、ハイパーバイザ130を有している。コンピュータの機能を仮想化する。具体的には、ハイパーバイザ130は、CPU101、メモリ102、および入出力装置を仮想化する。仮想化される入出力装置には、LCD装置111やタッチセンサ112が含まれる。ハイパーバイザ130が仮想的に生成したコンピュータがVMである。ハイパーバイザ130が生成するVMには、管理VM140、ドライバVM150,160、およびOSを実行するVM170,180などがある。VM170,180には、識別子(VMID)が設定されている。例えばVM170のVMIDは「VM#1」であり、VM180のVMIDは「VM#2」である。
【0035】
管理VM140では、OS起動部141とVM間通信設定部142とが実行される。OS起動部141は、OSを実行するVM170に対して、OSの実行を指示する。例えば、OS起動部141は、フラッシュメモリ121に格納されている複数のOSプログラムのうちの1つの実行を、VM170,180それぞれに指示する。各VM170,180は、指定されたOSのプログラムのブートシーケンスを実行することにより、それぞれOS170a,180aを起動する。ここで、OS170aの識別子は「OS#1」、OS180aの識別子は「OS#2」であるものとする。
【0036】
VM間通信設定部142は、VMで実行されている機能に対して、VM間通信を可能とする設定を行う。例えばVM間通信設定部142には、VM170,180で起動されるOS170a,180aの識別子と、そのOSに通信を許可するドライバVM150,160内の要素との対応関係を示す情報が予め設定されている。OSとの通信を許可するドライバVM150,160内の要素は、VM対応タッチセンサドライバ151、VM対応LCDドライバ161、切替制御部162などである。
【0037】
そしてVM間通信設定部142は、例えばVM170で起動されたOS170aに対して、そのOS170aの通信相手として許可する他のVMのVMIDや、共有メモリ領域を送信する。同様に、他のOS180aやドライバVM150,160内の要素に対しても、通信相手として許可するVMのVMIDや、共有メモリ領域が送信される。各VMにおいて、他のVMとの共有メモリ領域はチャネルとして認識される。すなわち、各VMが他のVMに対応するチャネルへのデータ送信処理を行うと、送信データが共有メモリ領域に書き込まれる。
【0038】
各VM内のOSや要素は、通信相手のVMに送信するデータを、通信相手のVMに対応する共有メモリ領域に格納する。各VMは、自己に対応するVM間通信用の共有メモリ領域に対して他のVMから格納されたデータを、その共有メモリ領域から取得する。このようにして、VM間での通信が可能となる。なおVM間通信の方式として、別の方式を適用することも可能である。例えばハイパーバイザ130内で仮想ネットワークを構築し、各VM内のOSが、ネットワーク通信と同様の処理で他のVM内のOSと通信できるようにすることも可能である。その場合、VM間通信設定部142から各VM内のOSには、通信相手の仮想ネットワーク上でのアドレスや通信ポートが送信される。
【0039】
ドライバVM150は、タッチセンサ112からの入力切替を行うVMである。ドライバVM150では、VM対応タッチセンサドライバ151が実行される。VM対応タッチセンサドライバ151は、タッチセンサ112からの入力信号の出力先を切り替える。すなわちユーザがタッチセンサ112の表面にユーザの指などが接触すると、接触位置がタッチセンサ112からVM対応タッチセンサドライバ151に入力される。また、VM対応タッチセンサドライバ151には、ドライバVM160で実行されている切替制御部162から、タッチセンサ112によるフォアグラウンドで動作させるVMの識別子(VMID)が送信される。VM対応タッチセンサドライバ151は、タッチセンサ112から入力された情報を、切替制御部162により指定されたOS内のタッチセンサドライバに送信する。
【0040】
ドライバVM160は、LCD装置111への出力切替を行うVMである。また、ドライバVM160は、タッチセンサ112から入力された情報の送信先のVMの決定、およびLCD装置111で表示する画像情報の取得元となるVMの決定を行う。そのためにドライバVM160は、VM対応LCDドライバ161と切替制御部162とを有する。
【0041】
VM対応LCDドライバ161は、LCD装置111に対して、表示する画像データが格納されたフレームバッファの記憶領域を指示する。例えばVM170で動作しているOS170aの画像データをLCD装置111に表示させる場合、VM対応LCDドライバ161は、VM170内のフレームバッファのアドレスをLCD装置111に送信する。なおVM対応LCDドライバ161は、どのVMの画像をLCD装置111に表示させるのかは、切替制御部162からの指示に従う。例えばVM対応LCDドライバ161には、切替制御部162からLCD装置111への表示対象のVMの識別子(VMID)が送信される。VM対応LCDドライバ161は、切替制御部162により指定されたVMで実行されているOSのフレームバッファのアドレスをLCD装置111に送信する。
【0042】
切替制御部162は、タッチセンサ112による操作対象とするVMの切り替え、およびLCD装置111への表示対象とするVMの切り替えを制御する。例えば切替制御部162は、操作対象となっているVMからのフロント切替通知に応じて、次の操作対象候補となるVMのVMIDを判断する。切替制御部162は、操作対象候補のVMを表示対象のVMに決定し、そのVMのVMIDをVM対応LCDドライバ161に送信する。また切替制御部162は、操作対象となっているVMからのフロント切替確定通知に応じて、操作対象候補のVMへの操作対象の切替を決定する。そして切替制御部162は、操作対象候補であったVMのVMIDを、操作対象のVMのVMIDとしてVM対応タッチセンサドライバ151に送信する。
【0043】
図5は、切替制御部の内部構造の一例を示す図である。切替制御部162は、VM切替テーブル162a、操作対象ポインタ162b、および表示対象ポインタ162cを有している。VM切替テーブル162a、操作対象ポインタ162b、および表示対象ポインタ162cは、共にメモリ102内に格納される。
【0044】
VM切替テーブル162aには、操作対象のVMおよび表示対象のVMを切り替える際の順番が定義されている。図5の例では、VM切替テーブル162aには、操作VMと次候補VMとの欄が設けられている。各欄の横方向に並べられた情報同士が対応付けられている。
【0045】
操作VMの欄には、ハイパーバイザ130により生成されたVMのVMIDが設定されている。なお操作VMの欄には、ユーザインタフェースを有するプログラムを実行しているVMのVMIDが設定される。例えば、OSが実行されているVMのVMIDが、操作VMの欄に設定される。この場合、デバイスドライバを実行しているドライバVM150,160のVMIDは、操作VMの欄には設定されない。また、管理VM140が新たなOSの起動指示の受け付け用のユーザインタフェースを有していれば、管理VM140のVMIDを操作VMの欄に設定しておくこともできる。
【0046】
次候補VMの欄には、操作VMの欄の対応するVMIDで示されるVMがユーザからの操作対象であった場合に、VM切り替え処理によって次に操作対象となるVMのVMIDが設定される。例えば図5の例では、「VM#1」のVMが操作対象の場合、VM切り替えが行われると、次候補VMである「VM#3」が操作対象となる。
【0047】
操作対象ポインタ162bには、現在においてユーザからの操作対象となっているVMを示すポインタが設定される。例えば操作対象ポインタ162bには、VM切替テーブル162aの操作VMの欄における、現在において操作対象となっているVMのVMIDの位置を示す情報(図中矢印で示す)が設定される。図5の例では、「VM#1」のVMが現在の操作対象VMであることが、操作対象ポインタ162bに示されている。
【0048】
表示対象ポインタ162cには、現在において表示対象となっているVMを示すポインタが設定される。例えば表示対象ポインタ162cには、VM切替テーブル162aの操作VMの欄における、現在において表示対象となっているVMのVMIDの位置を示す情報(図中矢印で示す)が設定される。図5の例では、「VM#2」のVMが現在の表示対象のVMであることが、表示対象ポインタ162cに示されている。
【0049】
VM切替処理開始前は、操作対象ポインタ162bと表示対象ポインタ162cとは、同じ位置を指し示している。そして、切替制御部162により、VM切替テーブル162aに示された順番で、操作対象のVMおよび表示対象のVMの切り替えが行われる。すなわち切替制御部162は、操作対象のVMを切り替えるタイミングになると、操作対象ポインタ162bの内容を、現在の操作対象のVMの次候補VMを指し示すように変更する。また切替制御部162は、表示対象のVMを切り替えるタイミングになると、表示対象ポインタ162cの内容を、現在の表示対象のVMの次候補VMを指し示すように変更する。
【0050】
例えば操作対象ポインタ162bと表示対象ポインタ162cとが、操作VMの欄の「VM#1」の位置を指しているものとする。この状態で、タッチセンサ付き表示装置110へのユーザからの操作によりVM切替処理が開始されると、まず表示対象ポインタ162cが、次候補VMの位置を指し示すように更新される。すなわち「VM#1」に対応する次候補VM「VM#2」である。そこで表示対象ポインタ162cは、操作VMの欄の「VM#2」の位置を指し示すように更新される。この状態で、VMの切り替えが確定すると、表示対象ポインタ162cと同じ位置を指し示すように、操作対象ポインタ162bが更新される。すなわち操作対象ポインタ162bは、操作VMの欄の「VM#2」の位置を指し示すように更新される。
【0051】
第2の実施の形態では、ユーザによる切替ボタンの押下を検出したタイミングが、表示対象のVMを切り替えるタイミングである。また、ユーザによる切替ボタンの押下からの解放を検出したタイミングが、操作対象のVMを切り替えるタイミングである。
【0052】
次に、VM170,180で起動されたOS170a,180a内の機能について説明する。
図6は、OS起動後の携帯端末装置の機能を示す図である。なお図6では、管理VM140については省略されている。
【0053】
VM170は、ゲストOSと呼ばれるOS、およびそのOS上で実行されるアプリケーションソフトウェアを実行する。なお図6では、OSの機能を実現する要素のうち、VM切替の制御に関連する要素のみを示している。
【0054】
VM170は、OSの機能を実現する要素として、メニュー制御部171、切替ボタン制御部172、および入出力ドライバ173を有する。メニュー制御部171は、LCD装置111に操作用のメニューを表示する。メニューには、例えば複数の操作項目が含まれている。メニュー制御部171は、タッチセンサ112に対してユーザが接触した位置に表示されている操作対象項目に対応する処理機能に対し、ボタン押下を示す情報を送信する。
【0055】
切替ボタン制御部172は、メニュー内の操作対象項目の1つである切替ボタンに対応付けられた処理機能である。切替ボタン制御部172は、切替ボタンに対するボタン押下を示す情報をメニュー制御部171から取得すると、ボタン押下イベントを切替操作判断部173fに送信する。ボタン押下イベントは、例えば切替操作判断部173fを起動する関数の実行命令である。また切替ボタン制御部172は、切替ボタンが押下状態から解放されると、ボタン解放イベントを切替操作判断部173fに送信する。
【0056】
入出力ドライバ173は、入力信号の解析、および画像出力を行う。また入出力ドライバ173は、操作対象を他のVMへ切り替える要求を、切替制御部162へ送信する。そのために入出力ドライバ173は、タッチセンサドライバ173a、入力解析部173b、画像制御部173c、LCDドライバ173d、フレームバッファ173e、および切替操作判断部173fを有する。
【0057】
タッチセンサドライバ173aは、タッチセンサ112からの信号を受信する。タッチセンサドライバ173aは、受信した信号を入力解析部173bに渡す。入力解析部173bは、タッチセンサ112から入力された信号を解析して、タッチセンサ112へのユーザの接触状況を判断する。例えば、ユーザがタッチセンサ112に新たに接触したのか、接触状態が終了(リリース)したのかが判断される。入力解析部173bは、判断結果をメニュー制御部171に送信する。例えば入力解析部173bは、接触された位置の座標やリリースされた位置の座標を、メニュー制御部171に送信する。
【0058】
画像制御部173cは、LCD装置111に表示する画像データを生成する。例えば画像制御部173cは、メニュー制御部171からメニューの情報を取得し、画像データを生成する。画像制御部173cは、生成した画像データをLCDドライバ173dに渡す。
【0059】
LCDドライバ173dは、画像制御部173cから渡された画像データをLCD装置111に表示可能なビットマップ形式の画像に変換し、フレームバッファ173eに格納する。
【0060】
フレームバッファ173eは、ビットマップの画像を記憶する。例えば、メモリ102内の記憶領域の一部がフレームバッファ173eとして使用される。
切替操作判断部173fは、切替ボタン制御部172から出力されたボタン押下イベントに応じて、VMの切替判断を行う。例えば切替操作判断部173fは、ボタン押下イベントが入力されると、切替モードを「On」にする。切替モードとは、ゲストOSの動作モードである。操作対象のVMの切り替え制御中であれば切替モードは「On」であり、操作対象のVMの切替制御中でなければ切替モードは「Off」である。切替操作判断部173fは、例えば切替ボタン制御部172からボタン解放イベントが入力されると、切替モードを「Off」に設定する。切替モードが「On」(切り替え制御中)に設定されている間、タッチセンサ112に入力される操作情報が、LCD装置111に表示するVMを変更させるための情報として扱われる。切替操作判断部173fは、切替モードを「On」したときに、例えば切替制御部162に、VMの仮切替要求を送信する。また切替操作判断部173fは、切替モードを「Off」したときに、例えば切替制御部162に、VMの切替確定要求を送信する。なお仮切替要求は、例えば表示対象のVMの切替を要求するコマンドである。また切替確定要求は、例えば操作対象のVMを、現在表示対象のVMに切り替えることを要求するコマンドである。
【0061】
VM180は、OSの機能を実現する要素として、メニュー制御部181、切替ボタン制御部182、および入出力ドライバ183を有する。また入出力ドライバ183は、タッチセンサドライバ183a、入力解析部183b、画像制御部183c、LCDドライバ183d、フレームバッファ183e、および切替操作判断部183fを有する。VM180内の各要素の機能は、VM170内の同名の要素の機能と同じである。
【0062】
なお、図6に示す各要素間を結ぶ線は、主な通信経路を示すものであり、図示した通信経路以外の通信経路も設定可能である。
以上のような機能の携帯端末装置100により、複数のOSがVMによって実行されると共に、タッチセンサへのユーザからの操作入力によって、操作対象となるVMの切り替えが行われる。
【0063】
図6に示すように切替操作判断部173f,183fを、VMごとにOSのデバイスドライバとして設けた場合、例えば切替操作判断部173f,183fの機能が、各OSのアプリケーションソフトウェアによって実現できる。そして、切り替え操作開始を示すイベントを発生させる切替ボタン制御部172,182がメニュー画面上のソフトアイコン(切替ボタン)に対応付けられていることで、ソフトアイコン押下によって、切り替え操作開始を示すイベントが発生する。
【0064】
例えばVM170内の切替ボタン制御部172で発生した切り替え操作開始を示すイベントは、切替操作判断部173fで受信される。切り替え操作開始を示すイベントを受信した切替操作判断部173fは、VM仮切替要求を切替制御部162に送る。切替制御部162は、予め設定された切り替え順序情報から、次に表示対象とするVMを選択する。
【0065】
例えばVM180が表示対象として選択された場合、VM180で実行されているOSのフレームバッファのアドレスが、VM対応LCDドライバ161を介してLCD装置111に設定される。その結果、LCD装置111に表示される画像は、VM180がOSを実行することで生成した画像に切り替えられる。その後、切替ボタン押下の状態が解放(リリース)状態になることによって、切替確定要求が発生する。切替確定要求は、切替操作判断部173fで受信される。切替確定要求を受信した切替操作判断部173fにより、現在の表示対象のVM180を切り替え先として確定するためのVM切替確定要求が、切替制御部162に送られる。すると切替制御部162により、タッチセンサ112からの位置情報の送信先が、現在の表示対象のVM180に切り替えられる。
【0066】
図7は、第2の実施の形態におけるVM切り替え操作の一例を示す図である。図7には、VM170からVM180へ、操作対象、および表示対象を切り替える場合の例を示している。第1の状態は、表示対象の切替前の状態である。第2の状態は、表示対象切替後の状態である。
【0067】
VM170では「OS#1」のOS170aが実行されている。そのOS170aのメニュー画面20には、ソフトアイコンとして、切替ボタン21と複数の機能ボタン22〜26が表示されている。
【0068】
切替ボタン21は、切替ボタン制御部172に対応するボタンである。機能ボタン22〜26は、OS170aに実装されたアプリケーションソフトウェアなどの各種機能に対応するボタンである。
【0069】
メニュー画面20に含まれる切替ボタン21が押下されると、VMの切り替えが行われる。例えばユーザが指41で切替ボタン21を押下すると、表示対象のVMが切り替えられる。図5に示したVM切替テーブル162aでは、「VM#1」の次候補VMは「VM#2」である。そこでVMIDが「VM#1」のVM170のメニュー画面20中の切替ボタン21が押下されると、表示対象のVMがVM180に切り替えられる。
【0070】
表示対象のVMが切り替えられると、携帯端末装置100には、VM180で実行されているOS180aのメニュー画面30が表示される。OS180aのメニュー画面30には、切替ボタン31と複数の機能ボタン32〜36が表示されている。なお、ユーザが指41でタッチセンサ付き表示装置110に接触している間は、表示対象はVM180に切り替わっているが、操作対象はVM170のままとなっている。ここで、ユーザが指41を携帯端末装置100のタッチセンサ付き表示装置110から離す(リリースする)と、操作対象のVMが、VM170からVM180に切り替えられる。
【0071】
すなわち切替ボタン21の押下操作で、携帯端末装置100に表示するVMの画面が変更され、切替ボタン21のリリースによってVMの切替が確定される。切替の確定によって、タッチセンサからの入力経路も表示しているVMに切り替えられる。
【0072】
次に、VM切替処理の手順を詳細に説明する。
図8は、第2の実施の形態のVM切替処理の手順を示すシーケンス図である。以下、図8に示す処理をステップ番号に沿って説明する。
【0073】
[ステップS11]ユーザ40が、タッチセンサ112の切替ボタン21に対応する部分を押下する。
[ステップS12]タッチセンサ112は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ151に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0074】
[ステップS13]VM対応タッチセンサドライバ151は、接触があったことを示す情報を受け取ると、操作対象ポインタ162bを参照し、現在において操作対象となっているVMを判断する。図8の例では、VM170が操作対象であるものとする。そしてVM対応タッチセンサドライバ151は、操作対象のVM170のタッチセンサドライバ173aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0075】
[ステップS14]タッチセンサドライバ173aは、接触があったことを示す情報を受け取ると、入力解析部173bに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0076】
[ステップS15]入力解析部173bは、接触があったことを示す情報を取得すると、取得した情報を解析する。例えば、直前まで接触がなかった位置に新たに接触があったのであれば、入力解析部173bは、接触が開始されたと判断する。この場合、入力解析部173bは、接触開始を示す情報をメニュー制御部171に送信する。接触開始を示す情報には、接触が開始された位置の座標が含まれる。
【0077】
[ステップS16]メニュー制御部171は、接触開始を示す情報を取得すると、接触が開始された位置に表示されているオブジェクトを判断する。接触が開始された位置に、処理機能が対応付けられたオブジェクト(例えばボタン)が表示されている場合、メニュー制御部171は、そのオブジェクトに対応する機能を実行する。図8の例では、接触が開始された位置に、切替ボタン21が表示されているものとする。この場合、メニュー制御部171は、切替ボタン制御部172に対してボタン押下を示す情報を送信する。ボタン押下を示す情報には、接触された位置を示す座標が含まれる。
【0078】
[ステップS17]切替ボタン制御部172は、ボタン押下を示す情報を取得すると、ボタン押下イベントを、切替操作判断部173fに送信する。
[ステップS18]切替操作判断部173fは、ボタン押下イベントを取得すると、切替モードを「On」に変更する。そして切替操作判断部173fは、次候補へのVM仮切替要求を、切替制御部162に送信する。
【0079】
[ステップS19]切替制御部162は、VM切替テーブル162aと操作対象ポインタ162bとを参照し、次候補のVMを特定する。すなわち切替制御部162は、操作対象ポインタ162bで指し示されているVMの次候補VMとして設定されているVMIDを取得する。そして切替制御部162は、表示切替要求をVM対応LCDドライバ161に送信する。表示切替要求には、次候補のVMのVMIDが含まれる。
【0080】
[ステップS20]VM対応LCDドライバ161は、表示切替要求に応じて、表示対象のフレームバッファを選択する。例えばVM対応LCDドライバ161は、各VM170,180のVMIDそれぞれに対応付けて、それぞれで動作しているOS170a,180aのフレームバッファのアドレスが設定されている。VM対応LCDドライバ161は、表示切替要求に含まれるVMIDで示されたVMで動作しているOSのフレームバッファのアドレスを選択する。図8の例では、VM170で動作しているOSのフレームバッファのアドレスが選択される。
【0081】
なお現段階では、表示対象の切り替えは未確定であり、切り替えがキャンセルされる可能性が残されている。そこでVM対応LCDドライバ161は、例えば、表示対象のVMの切り替え前のフレームバッファのアドレスをメモリに保持しておく。VM対応LCDドライバ161は、切り替えがキャンセルされた場合には、保持しておいた表示対象のVMの切り替え前のフレームバッファのアドレスをLCD装置111に指定することで、表示対象のVMを元に戻すことができる。
【0082】
[ステップS21]VM対応LCDドライバ161は、表示バッファ指定をLCD装置111に送信する。表示バッファ指定には、ステップS20で選択したフレームバッファのアドレスによって、LCD装置111で表示する画像の格納場所が指定されている。するとLCD装置111は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0083】
このようにして、表示対象のVMが切り替えられ、次候補のVMで実行されているOSの画面がLCD装置111に表示される。
[ステップS22]ユーザ40は、表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置110から、指等の接触部を離す。すなわち、切替ボタンの解放(リリース)が行われる。
【0084】
[ステップS23]タッチセンサ112は、切替ボタンが解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ151に送信する。
[ステップS24]VM対応タッチセンサドライバ151は、接触状態が解放されたことを示す情報を受け取ると、操作対象ポインタ162bを参照し、現在において操作対象となっているVMを判断する。図8の例では、VM170が操作対象であるものとする。そしてVM対応タッチセンサドライバ151は、操作対象のVM170のタッチセンサドライバ173aに対して、接触状態が解放されたことを示す情報を送信する。
【0085】
[ステップS25]タッチセンサドライバ173aは、接触状態が解放されたことを示す情報を受け取ると、入力解析部173bに対して、接触状態が解放されたことを示す情報を送信する。
【0086】
[ステップS26]入力解析部173bは、接触状態が解放されたことを示す情報を取得すると、取得した情報を解析する。例えば、接触されていた位置の移動を経ずに接触状態が解放されたのであれば、入力解析部173bは、接触終了と判断する。この場合、入力解析部173bは、接触終了を示す情報をメニュー制御部171に送信する。
【0087】
なお、接触されていた位置が移動された後に接触状態が解放された場合、例えば入力解析部173bは、ボタン表示位置の変更操作が行われたものと解釈し、変更後の位置をメニュー制御部171に送信する。
【0088】
[ステップS27]メニュー制御部171は、接触終了を示す情報を取得すると、接触状態が終了したオブジェクトに対して、ボタン解放を示す情報を送信する。図8の例では、切替ボタン制御部172に対してボタン解放を示す情報が送信される。
【0089】
[ステップS28]切替ボタン制御部172は、ボタン解放を示す情報を取得すると、ボタン解放イベントを、切替操作判断部173fに送信する。
[ステップS29]切替操作判断部173fは、ボタン解放イベントを取得すると、切替モードを「Off」に変更する。そして切替操作判断部173fは、次候補への切替の確定を示すVM切替確定要求を、切替制御部162に送信する。
【0090】
[ステップS30]切替制御部162は、VM切替確定要求を取得すると、表示切替の確定を示す表示切替要求を、VM対応LCDドライバ161に送信する。VM対応LCDドライバ161では、ステップS20で選択したフレームバッファを、表示バッファとして確定する。
【0091】
[ステップS31]切替制御部162は、VM対応LCDドライバ161から、表示切替の確定結果を取得する。例えば切替制御部162は、VM対応LCDドライバ161に対して、現在の表示対象のフレームバッファに対応するVMIDを要求する。切替制御部162は、VM対応LCDドライバ161から応答されたVMIDが、切替先として確定したVMのVMIDと一致することを確認する。
【0092】
[ステップS32]切替制御部162は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ151に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0093】
[ステップS33]VM対応タッチセンサドライバ151は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ151は、以後のタッチセンサ112からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0094】
このようにして、タッチセンサ112へのユーザからの操作入力に応じたVMの切替が行われる。以下、切替操作判断部173fと切替制御部162との処理について、詳細に説明する。
【0095】
図9は、第2の実施の形態のVM切替判断処理の手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS41]切替操作判断部173fは、切替ボタン制御部172からのイベントを取得する。
【0096】
[ステップS42]切替操作判断部173fは、切替モードが「On」か否かを判断する。なお切替モードの初期状態は「Off」である。切替操作判断部173fは、切替モードが「On」であれば処理をステップS46に進める。切替操作判断部173fは、切替モードが「Off」であれば処理をステップS43に進める。
【0097】
[ステップS43]切替操作判断部173fは、切替モードが「Off」の場合、取得したイベントがボタン押下イベントか否かを判断する。切替操作判断部173fは、ボタン押下イベントであれば処理をステップS44に進める。切替操作判断部173fは、ボタン押下イベントでなければ処理を終了する。
【0098】
[ステップS44]切替操作判断部173fは、切替モードを「On」にする。
[ステップS45]切替操作判断部173fは、VM仮切替要求を切替制御部162に送信する。その後、処理が終了する。
【0099】
[ステップS46]切替操作判断部173fは、切替モードが「On」の場合、取得したイベントがボタン解放イベントか否かを判断する。切替操作判断部173fは、ボタン解放イベントであれば処理をステップS47に進める。切替操作判断部173fは、ボタン解放イベントでなければ処理を終了する。
【0100】
[ステップS47]切替操作判断部173fは、切替モードを「Off」にする。
[ステップS48]切替操作判断部173fは、VM切替確定要求を、切替制御部162に送信する。その後、処理が終了する。
【0101】
このようにして、切替ボタン制御部172から取得したイベントに応じた処理が行われる。例えば、ボタン押下イベントを受信した場合、切り替えモードの初期状態のままであり、「Off」状態であると判断される。さらに、ボタン押下イベントか否かの判定においてYESと判断され、切替モードが「On」に変更される。そして、切替制御部162に対して、VM仮切替要求が送信される。
【0102】
他方、ボタン解放イベントを受信した場合、その時の切替モードは「On」状態なので、ボタン解放イベントか否かが判断する。切替モードは「On」の状態で発行されるイベントのうち、ボタン解放イベント以外のイベントとしては、例えば横移動のイベントがある。ボタン解放イベントであれば、切替モードが「Off」に設定される。そして、切替制御部162に、VM切替確定要求が送信される。
【0103】
このようにして、切り替えソフトボタンからのボタン押下イベントとボタン解放イベントに応じて、切り替え操作開始を示すVM仮切替要求や切替確定要求が出される。
次に、切替制御部162による切替制御処理を詳細に説明する。
【0104】
図10は、第2の実施の形態の切替制御処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS51]切替制御部162は、他のVMからのメッセージを受信する。
【0105】
[ステップS52]切替制御部162は、受信したメッセージが操作対象のVMからのメッセージか否かを判断する。切替制御部162は、操作対象のVMからのメッセージであれば、処理をステップS53に進める。切替制御部162は、操作対象のVM以外のVMからのメッセージであれば、切替制御処理を終了する。
【0106】
[ステップS53]切替制御部162は、受信したメッセージの内容が、VM仮切替要求か否かを判断する。切替制御部162は、VM仮切替要求であれば処理をステップS54に進める。切替制御部162は、VM仮切替要求でなければ処理をステップS57に進める。
【0107】
[ステップS54]切替制御部162は、VM仮切替要求を受信した場合、現在表示対象のVMの次候補VMを取得する。具体的には、切替制御部162は、VM切替テーブル162aの中から、表示対象ポインタ162cで指し示されている操作VMを特定する。そして、切替制御部162は、特定した操作VMに対応付けられた次候補VMのVMIDを取得する。
【0108】
[ステップS55]切替制御部162は、次候補VMへの画面切替指示を行う。具体的には、切替制御部162は、表示対象ポインタ162cで指し示された位置のVMのVMIDを指定した表示切替要求を、VM対応LCDドライバ161に送信する。
【0109】
[ステップS56]切替制御部162は、表示対象のVMを更新する。例えば、切替制御部162は、ステップS54で取得した次候補VMを操作VMとするVM切替テーブル162a内のレコードの位置を、表示対象ポインタ162cに設定する。その後、処理が終了する。
【0110】
[ステップS57]切替制御部162は、取得したメッセージの内容がVM切替要求でない場合、VM切替確定要求か否かを判断する。切替制御部162は、VM切替確定要求であれば、処理をステップS58に進める。また切替制御部162は、VM切替確定要求でなければ、処理を終了する。
【0111】
[ステップS58]切替制御部162は、VM切替確定要求を取得した場合、表示対象のVMを、操作対象のVMとする。具体的には、切替制御部162は、表示対象ポインタ162cに設定されている情報を、操作対象ポインタ162bに設定する。これにより、操作対象ポインタ162bと表示対象ポインタ162cとは、VM切替テーブル162a内の同じレコードを指し示すこととなる。
【0112】
[ステップS59]切替制御部162は、表示切替確定指示を行う。具体的には、切替制御部162は、VM対応LCDドライバ161に対して、表示切替確定を示す表示切替要求を送信する。その後、切替制御部162は、VM対応LCDドライバ161から表示切替の確定結果を取得し、正しく切り替えられたことを確認する。
【0113】
[ステップS60]切替制御部162は、操作対象VMの切替指示を行う。具体的には、切替制御部162は、VM対応タッチセンサドライバ151に対して、切替先のVMのVMIDを指定した操作切替要求を送信する。切替先のVMのVMIDは、操作対象ポインタ162bで指し示されている位置に設定されているVMIDである。その後、処理が終了する。
【0114】
図11は、仮切替要求の通信例を示す図である。VM170の切替操作判断部173fは、切替要求送信先173−1を保持している。切替要求送信先173−1は、仮切替要求の送信先となるチャネルの識別番号(チャネル番号)である。切替要求送信先173−1のチャネル番号は、例えばVM170内のOS170aの起動時に、VM間通信設定部142により通知される。図11の例では、切替要求送信先173−1として「channel#1」が設定されている。
【0115】
ハイパーバイザ130は、VM間の通信に用いるチャネルに対応するリングバッファ131を有している。図11に示すリングバッファ131は、チャネル番号「channel#1」のチャネルに対応付けられており、VM170からドライバVM160への情報の送信に使用される。リングバッファ131は、VM170の共有メモリ174内のアドレスを示すインデックスを格納する単位記憶領域が複数設けられている。またリングバッファ131には、送信側カレントポインタと受信側カレントポインタとが設定されている。
【0116】
送信側カレントポインタは、情報を送信するVM170が次にインデックスを書き込む単位記憶領域の位置を示す情報である。送信側カレントポインタは、単位記憶領域にインデックスが書き込まれるごとに、指し示す単位記憶領域が1つずつずらされる。リングバッファ131の最後尾の単位記憶領域にインデックスが書き込まれた場合、送信側カレントポインタが指し示す位置は、リングバッファ131の先頭の単位記憶領域の位置に変更される。
【0117】
受信側カレントポインタは、情報を受信するドライバVM160が、次にインデックスを読み出す単位記憶領域の位置を示すポインタである。受信側カレントポインタは、単位記憶領域からインデックスが読み出されるごとに、指し示す単位記憶領域が1つずつずらされる。リングバッファ131の最後尾の単位記憶領域からインデックスが読み出された場合、送信側カレントポインタが指し示す位置は、リングバッファ131の先頭の単位記憶領域の位置に変更される。
【0118】
切替操作判断部173fは、仮切替要求をドライバVM160に送信する場合、仮切替要求を共有メモリ174に格納する。なお仮切替要求は、例えばVMの仮切替を要求するコマンドである。次に切替操作判断部173fは、切替要求送信先173−1から、ドライバVM160への情報の送信に使用するチャネルのチャネル番号を取得する。次に切替操作判断部173fは、取得したチャネル番号に対応するリングバッファ131における送信側カレントポインタで示される単位記憶領域に、仮切替要求を格納した共有メモリ174内の位置を示すインデックスを格納する。するとハイパーバイザ130により、送信側カレントポインタが示す単位記憶領域の位置が、次の単位記憶領域の位置にずらされる。
【0119】
さらに切替操作判断部173fは、切替要求送信先173−1で示されるチャネル番号を指定して、情報送信イベントの発生を示すハイパーバイザコールをハイパーバイザ130に対して出力する。するとハイパーバイザ130は、指定されたチャネルの受信側であるドライバVM160に対して、チャネル番号を指定して、受信情報の発生を示すシグナルを出力する。ドライバVM160の切替制御部162は、シグナルを受け取ることで受信情報があることを認識し、リングバッファ131の受信側カレントポインタで示される単位記憶領域からインデックスを読み出す。するとハイパーバイザ130により、受信側カレントポインタが示す単位記憶領域の位置が、次の単位記憶領域の位置にずらされる。
【0120】
リングバッファ131からインデックスを読み出した切替制御部162は、VM170の共有メモリ174内のインデックスで示される位置から、仮切替要求を取得する。
このようにして、VM170からドライバVM160へ、仮切替要求が送信される。なお、図11では仮切替要求の送信処理として説明したが、切替確定要求も同様の処理によって送信することができる。
【0121】
次に、VM対応LCDドライバ161による画面切替処理について詳細に説明する。
図12は、LCDの表示切替処理の一例を示す図である。メモリ102の記憶領域には、ハイパーバイザ用領域102a、VM#1用領域102b、VM#2用領域102cが設けられている。VM#1用領域102bには、VMIDが「VM#1」であるVM170のフレームバッファ領域102dが含まれている。フレームバッファ領域102dの開始アドレスは「add#1」である。VM#2用領域102cには、VMIDが「VM#2」であるVM180のフレームバッファ領域102eが含まれている。フレームバッファ領域102eの開始アドレスは「add#2」である。
【0122】
VM対応LCDドライバ161は、フレームバッファアドレスリスト161aを有している。フレームバッファアドレスリスト161aには、各VMに対応付けて、VMのフレームバッファ領域の開始アドレスが設定されている。
【0123】
LCD装置111は、DMA(Direct Memory Access)制御部111a、フレームバッファ111b、表示制御部111c、および液晶画面111dを有している。DMA制御部111aは、取得元開始アドレス111eを内部のメモリに保持している。取得元開始アドレス111eは、画像データの取得元となるフレームバッファの開始アドレスである。DMA制御部111aは、メモリ102内の取得元開始アドレス111eに示されたアドレスから開始されるフレームバッファ領域内の画像データを所定間隔(例えば1秒間に60回)で定期的に、フレームバッファ111bにDMA転送する。フレームバッファ111bは、画面に表示する画像データを記憶するメモリである。表示制御部111cは、フレームバッファ111bに格納された画像データに基づいて、液晶画面111dに画像を表示させる回路である。液晶画面111dは、液晶を用いた表示装置である。
【0124】
ここで、ドライバVM160内の切替制御部162が、VMID「VM#2」に更新する場合を想定する。この場合、切替制御部162により、表示対象ポインタ162c(図5参照)の指し示す位置が、VM切替テーブル162a内の「VM#2」の位置に変更される。すると、切替制御部162からVM対応LCDドライバ161へ、表示対象ポインタ162cが指し示す位置のVMID「VM#2」が出力される。
【0125】
VM対応LCDドライバ161は、VMID「VM#2」を受信すると、フレームバッファアドレスリスト161aを参照し、VMID「VM#2」に対応するアドレス「add#2」を取得する。そしてVM対応LCDドライバ161は、取得したアドレス「add#2」を、LCD装置111に送信する。
【0126】
LCD装置111のDMA制御部111aは、受信したアドレス「add#2」を取得元開始アドレス111eとして記憶する。そしてDMA制御部111aは、アドレス「add#2」から開始されるフレームバッファ領域102e内の画像データを、定期的にフレームバッファ111bにDMA転送する。フレームバッファ111bに書き込まれた画像データの内容は、表示制御部111cにより液晶画面111dに表示される。
【0127】
このようにして、表示画面が切り替えられる。
次に、タッチセンサからの入力の送信先切替処理について詳細に説明する。
図13は、送信先切替処理の一例を示す図である。VM対応タッチセンサドライバ151は、操作VM情報151aとチャネルリスト151bとを記憶している。操作VM情報151aは、現在の操作対象となっているVMのVMIDである。チャネルリスト151bには、OSを実行するVMごとに、VMへの入力情報の送信に使用するチャネルのチャネル番号が設定されている。なお、各VMに対応するチャネルのチャネル番号は、OSを実行するVMが起動された際に、VM間通信設定部142によって通知される。
【0128】
またVM対応タッチセンサドライバ151は、VM間通信に使用する共有メモリ151cを有している。
VM対応タッチセンサドライバ151は、ドライバVM160内の切替制御部162からVM間通信によりVMID「VM#2」を取得する。なお、切替制御部162からVM対応タッチセンサドライバ151へのVM間通信の方法は、図11に示した仮切替要求の通信方法と同様である。VM対応タッチセンサドライバ151は、切替制御部162からVMID「VM#2」を受け取ると、そのVMIDを操作VM情報151aとして記憶する。
【0129】
その後、タッチセンサ112から、例えば接触した位置の座標が入力される。するとVM対応タッチセンサドライバ151は、入力された座標を共有メモリ151cに格納する。次にVM対応タッチセンサドライバ151は、チャネルリスト151bから、操作VM情報151aで示されるVMID「VM#2」に対応するチャネルID「channel#12」を取得する。さらにVM対応タッチセンサドライバ151は、取得したチャネルID「channel#12」に対応する、ハイパーバイザ130内のリングバッファに、座標を格納した共有メモリ151c内の位置を示すインデックスを格納する。そしてVM対応タッチセンサドライバ151は、チャネルID「channel#12」への送信情報があることを示すハイパーバイザコールを、ハイパーバイザ130に出力する。VM対応タッチセンサドライバ151がこのような動作を行うことで、図11に示した仮切替要求のVM間通信と同様のVM間通信により、タッチセンサ112からの入力情報が、現在の操作対象のVMに送信される。
【0130】
以上のようにして、タッチセンサ付き表示装置110への操作によりVMの切り替えが可能となり、携帯端末装置100の小型化が促進されている。しかも、フォアグラウンドで動作しているVMを全画面で表示している状態からVMの切り替えが可能であり、表示画面を有効に利用できる。
【0131】
さらに、VMの切り替え操作の検出やVM切り替え制御をVM上で実行するため、物理ボタン押下のように、ハイパーバイザ130で入出力経路の切り替え機能を持たなくてもVMの切り替えが可能となる。また、切替モードを管理し、切り替えが確定するまでは仮切り替えとして表示対象のVMのみを切り替えるため、ユーザは、入力経路を切り替える前に表示されたVMの画像を参照して、切り替え先のVMが適切かどうかを判断することができる。
【0132】
〔第3の実施の形態〕
次に、第3の実施の形態について説明する。第3の実施の形態は、LCD装置111に表示された切替ボタン押下後の指の横移動の操作により、表示対象VMを更新するものである。なお第3の実施の形態における携帯端末装置の機能構成は、図4、図6に示した第2の実施の形態の構成と同様である。ただし、第3の実施の形態は、ドライバVM160内にフレームバッファが設けられている。またVM対応LCDドライバ161が、各VM170,180のLCDドライバ173d,183dから画像を取得した画像の合成画像を格納する。以下、図4、図6に示した各要素を用いて、第3の実施の形態について説明する。
【0133】
図14は、第3の実施の形態におけるVM切り替え操作の一例を示す図である。図14には、VM170からVM180へ、操作対象、および表示対象を切り替える場合の例を示している。第1の状態は、表示対象の切替前の状態である。第2の状態は、表示対象切替中の状態である。第3の状態は、表示対象切替後の状態である。
【0134】
ユーザが指41で切替ボタン31を押下し、指41をタッチセンサ付き表示装置110に接触させたまま横移動させる(第1の状態)。すると、携帯端末装置100は、移動速度に応じた量だけ、表示対象のVMで動作しているOS(OS#1)の画像を横にスクロールさせる(第2の状態)。図14の例では、移動方向と反対方向に画像がスクロールしている。この際、表示対象のVMで動作しているOS(OS#1)の画像がスクロールした分だけ、次候補となるVMで動作しているOS(OS#2)の画像が表示される。そして、ユーザが指41をタッチセンサ付き表示装置110から離すと、そのとき画面の半分以上で表示されているVMのOSが画面全体に表示される(第3の状態)。そして画面全体に表示されたOSを実行しているVMが操作対象となる。
【0135】
このようにスクロールさせながら画面を徐々に切り替えることで、切替ボタン31を離すまでの間に、切替先のVMが適切かどうかを判断できる。
なお図14の例では、指41をタッチセンサ付き表示装置110に接触させた状態で、指41を右に移動させた場合、正の方向の横移動と判断される。正の方向への横移動であれば、表示対象のVMが次候補VMに切り替えられる。他方、指41をタッチセンサ付き表示装置110に接触させた状態で、指41を左に移動させた場合、負の方向の横移動と判断される。負の方向への横移動であれば、表示対象のVMが、前の順番のVMに切り替えられる。
【0136】
ソフトアイコンである切替ボタン21を使用している場合、切替モードが「On」であるのは、切替ボタン21を押下した状態にある場合である。切替モードが「On」の状態で、指を横移動させることで、指の移動速度が算出され、その移動速度から画面をスクロールするための移動量が求められる。そして、2つのOSの画像が結合され、タッチセンサ付き表示装置110に表示される画面が、算出された移動量分だけ横にスクロールされる。
【0137】
なお図14に示す第2の状態のような画面は、フレームバッファ内の画像を合成することで生成される。このとき、操作対象ポインタ162b(図5参照)で示されたVMで実行されているOSの画像が左側に表示され、表示対象ポインタ162c(図5参照)で示されたVMで実行されているOSの画像が右側に表示されている。すなわち図14に示す第2の状態では、操作対象ポインタ162bで示されたVMと表示対象ポインタ162cで示されたVMとの両方が表示対象となっている。
【0138】
図15は、画像合成例を示す図である。例えば表示対象をVM170からVM180に切り替える場合、フレームバッファ173e内の画像と、フレームバッファ183e内の画像とが合成される。例えばVM対応LCDドライバ161が各OSのフレームバッファから合成対象画像を取得する。この際、VM対応LCDドライバ161は、表示対象のVMで実行されているOSのフレームバッファ173e内の画像のうち、左端から、スクロールによる移動量分の距離離れた位置までの矩形の領域を除外した残りの領域の画像を、合成対象画像とする。またVM対応LCDドライバ161は、次候補のVMで実行されているOSのフレームバッファ183e内の画像のうち、左端から、画面の横幅からスクロールによる移動量分の距離だけ離れた位置までの矩形の領域の画像を、合成対象画像とする。そしてVM対応LCDドライバ161は、表示対象のVMの合成対象画像を左側に、次候補のVMの合成対象画像を右側に配置した合成画像を、フレームバッファ161bに格納する。VM対応LCDドライバ161が、LCD装置111に対してフレームバッファ161bのアドレスを指定して画面表示を行わせることで、合成された画像が表示される。
【0139】
なお、LCD装置111内部で画像の合成機能を備えている場合、VM対応LCDドライバ161がフレームバッファ161bを有していなくてもよい。その場合、例えばVM対応LCDドライバ161は、合成画像に含まれる合成対象画像が格納されている各フレームバッファのアドレスと、各フレームバッファから読み出す画像の領域、およびその画像の表示位置をLCD装置111に送信する。
【0140】
以下、第3の実施の形態におけるVM切替処理を詳細に説明する。
図16は、第3の実施の形態のVM切替処理の前半を示すシーケンス図である。以下、図16に示す処理をステップ番号に沿って説明する。なお、ステップS71〜S78の処理は、図8に示すステップS11〜S18の処理と同じである。
【0141】
[ステップS79]切替制御部162は、表示対象のVMの次候補VMを取得し、表示対象のVMと、そのVMの次候補VMとの表示画面の合成指示をVM対応LCDドライバ161に送信する。表示画面の合成指示には、次候補のVMのVMIDが含まれる。
【0142】
[ステップS80]VM対応LCDドライバ161は、表示対象のVMと、そのVMの次候補VMとのそれぞれのOSのフレームバッファ内の画像を結合した合成画像を生成する。
【0143】
なお、切替ボタン押下直後においては、移動量は「0」であり、表示対象のVMで実行されているOSの画像全体が、合成対象画像となる。
[ステップS81]VM対応LCDドライバ161は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置111に送信する。
【0144】
[ステップS82]ユーザ40が切替ボタン31を押下したまま指41を横に移動させる。
[ステップS83]タッチセンサ112は、ユーザ40の指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ151に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。なお、タッチセンサ112による接触位置の検知は、所定のサンプリング周期で繰り返し行われる。
【0145】
[ステップS84]VM対応タッチセンサドライバ151は、接触があったことを示す情報を受け取ると、操作対象ポインタ162bを参照し、現在において操作対象となっているVMを判断する。そしてVM対応タッチセンサドライバ151は、操作対象のVM170のタッチセンサドライバ173aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0146】
[ステップS85]タッチセンサドライバ173aは、接触があったことを示す情報を受け取ると、入力解析部173bに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0147】
[ステップS86]入力解析部173bは、接触があったことを示す情報を取得すると、座標リストを更新する。具体的には入力解析部173bは、横移動によって取得した座標を、座標の取得時刻に対応付けて座標リストに登録する。タッチセンサ112が所定のサンプリング周期で接触された位置の座標を取得するため、座標リストには、ユーザ40が指41を横移動している間、継続して座標が蓄積されていく。
【0148】
[ステップS87]切替ボタン制御部172は、入力解析部173bが有する座標リストを取得する。
[ステップS88]切替ボタン制御部172は、ボタン移動イベントを切替操作判断部173fに対して送信する。ボタン移動イベントには、座標リストが含まれる。
【0149】
[ステップS89]切替操作判断部173fは、ボタン移動イベントを取得すると、切替ボタン31の移動開始時からの移動速度を計算する。そして切替操作判断部173fは、移動速度を指定したVM仮切替要求を切替制御部162に送信する。
【0150】
[ステップS90]切替制御部162は、移動速度に基づいて、移動量を計算する。
[ステップS91]切替制御部162は、移動量を指定したスクロール指示をVM対応LCDドライバ161に送信する。
【0151】
[ステップS92]VM対応LCDドライバ161は、指定された移動量に応じて、表示対象のVMで実行されているOSのフレームバッファ内の合成対象画像と、次候補のVMで実行されているOSのフレームバッファ内の合成対象画像とを決定する。そして、VM対応LCDドライバ161は、決定した合成対象画像を結合した合成画像を生成する。
【0152】
[ステップS93]VM対応LCDドライバ161は、合成画像が格納されているフレームバッファのアドレスをLCD装置111に指定する。これにより、スクロールさせた画面が表示される。
【0153】
図17は、入力解析部で生成される座標リストの一例を示す図である。座標リスト60には、座標に対応付けて、座標の取得時刻が設定されている。座標は、例えばタッチセンサ112の横方向をx軸(右方向が正)、縦軸をy軸(下方向が正)とし、左上の角を原点とした座標系での接触位置の座標である。このような座標と時刻との組が、所定のサンプリング周期で座標リスト60に追加される。
【0154】
このような座標リストを参照して、移動速度を計算できる。例えば、同じ座標が続いている間は、接触させた指41を動かしていないため、移動速度の計算から除外する。例えば切替操作判断部173fは、座標の変化があった時点の最初の座標から最新の座標までの座標間の距離を計算する。図17の例では、時刻「t12」に取得した座標「x2,y2」が、座標の変化があった時点の最初の座標である。第3の実施の形態では、画面を横にスクロールさせるため、例えばy軸の値の差分を距離とする。さらに切替操作判断部173fは、座標の変化があった時点の最初の座標から最新の座標までの経過時間を計算する。例えば切替操作判断部173fは、最新の座標の取得時刻から、座標の変化があった最初の座標の取得時刻を減算し、経過時間とする。そして切替操作判断部173fは、距離を経過時間で除算した結果を、移動速度とする。
【0155】
移動速度が求まると、切替制御部162によってスクロールの移動量が計算される。移動量は、移動速度から下記のように求められる。
横移動の増加量=移動粒度(固定値)×移動速度 ・・・(1)
移動量=前回の移動量+横移動の増加量 ・・・(2)
ここで移動粒度は、画面を横スクロールさせる際の最小の移動量であり、予め設定された固定値である。例えば、LCD装置111の画面の横サイズが3cmの場合、移動粒度を0.5cmとすると、移動速度が1の時に、画面の横移動の増加量が0.5cmとなる。また、前回の移動量が画面の横サイズを超えた場合は、式(2)の計算の前に以下の計算を行う。
前回の移動量=前回の移動量−横サイズ ・・・(3)
式(3)の「=」の記号は、右辺の値を左辺に代入することを示す代入演算子である。これにより移動量が、表示対象ポインタで指定される表示対象のVMと、そのVMの次候補のVMとのそれぞれのOSの表示バッファの関係に閉じることとなる。
【0156】
図18は、第3の実施の形態のVM切替処理の後半を示すシーケンス図である。以下、図18に示す処理をステップ番号に沿って説明する。なお、ステップS94〜S101の処理は、図8に示すステップS22〜S29の処理と同じである。
【0157】
[ステップS102]切替制御部162は、VM切替確定要求を取得すると、その時点で画面の半分以上で表示されているVMを判断する。切替制御部162は、画面の半分以上に表示されているVMを操作対象のVMとする。そして、切替制御部162は、操作対象のVMのVMIDを指定し、そのVMへの表示切替の確定を示す表示切替要求を、VM対応LCDドライバ161に送信する。
【0158】
[ステップS103]VM対応LCDドライバ161は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS104]VM対応LCDドライバ161は、表示バッファ指定をLCD装置111に送信する。表示バッファ指定には、ステップS103で選択したフレームバッファのアドレスによって、LCD装置111で表示する画像の格納場所が指定されている。するとLCD装置111は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0159】
[ステップS105]切替制御部162は、VM対応LCDドライバ161から、表示切替の確定結果を取得する。
[ステップS106]切替制御部162は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ151に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0160】
[ステップS107]VM対応タッチセンサドライバ151は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ151は、以後のタッチセンサ112からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0161】
このようにして、切替ボタン31を押下した状態での指の横移動によって、画面スクロールによって徐々に表示対象のVMを変更することができる。そして、切替ボタン31から指を離した時点で画面により多く表示されているVMが、操作対象のVMに決定される。
【0162】
以下、切替操作判断部173fと切替制御部162との処理を詳細に説明する。
図19は、第3の実施の形態のVM切替判断処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
【0163】
[ステップS111]切替操作判断部173fは、切替ボタン制御部172からのイベントを取得する。
[ステップS112]切替操作判断部173fは、切替モードが「On」か否かを判断する。なお切替モードの初期状態は「Off」である。切替操作判断部173fは、切替モードが「On」であれば処理をステップS116に進める。切替操作判断部173fは、切替モードが「Off」であれば処理をステップS113に進める。
【0164】
[ステップS113]切替操作判断部173fは、切替モードが「Off」の場合、取得したイベントがボタン押下イベントか否かを判断する。切替操作判断部173fは、ボタン押下イベントであれば処理をステップS114に進める。切替操作判断部173fは、ボタン押下イベントでなければ処理を終了する。
【0165】
[ステップS114]切替操作判断部173fは、切替モードを「On」にする。
[ステップS115]切替操作判断部173fは、VM仮切替要求を切替制御部162に送信する。なお、ステップS117の後にステップS115を実行する場合、切替操作判断部173fは、移動量と移動速度を含むVM仮切替要求を送信する。その後、処理が終了する。
【0166】
[ステップS116]切替操作判断部173fは、切替モードが「On」の場合、取得したイベントが横移動イベントか否かを判断する。切替操作判断部173fは、横移動イベントであれば処理をステップS117に進める。切替操作判断部173fは、横移動イベントでなければ、処理をステップS118に進める。横移動イベントでない場合とは、ボタン解放イベントの場合である。
【0167】
[ステップS117]切替操作判断部173fは、横移動イベントであれば、座標リストに基づいて、切替ボタン31を押下した指41の移動速度を算出する。その後、処理がステップS115に進められる。
【0168】
[ステップS118]切替操作判断部173fは、ボタン解放イベントであれば、切替モードを「Off」にする。
[ステップS119]切替操作判断部173fは、VM切替確定要求を切替制御部162に送信する。その後、処理が終了する。
【0169】
このようにして、切り替えソフトボタンからのボタン押下イベント、横移動イベント、およびボタン解放イベントに応じて、切り替え操作開始を示すVM仮切替要求や切替確定要求が出される。
【0170】
次に、切替制御部162による切替制御処理を詳細に説明する。
図20は、第3の実施の形態の切替制御処理の手順を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
【0171】
[ステップS121]切替制御部162は、他のVMからのメッセージを受信する。
[ステップS122]切替制御部162は、受信したメッセージが操作対象のVMからのメッセージか否かを判断する。切替制御部162は、操作対象のVMからのメッセージであれば、処理をステップS123に進める。切替制御部162は、操作対象のVM以外のVMからのメッセージであれば、切替制御処理を終了する。
【0172】
[ステップS123]切替制御部162は、受信したメッセージの内容が、VM仮切替要求か否かを判断する。切替制御部162は、VM仮切替要求であれば処理をステップS124に進める。切替制御部162は、VM仮切替要求でなければ処理をステップS130に進める。
【0173】
[ステップS124]切替制御部162は、VM仮切替要求を受信した場合、受信したVM仮切替要求により移動量と移動速度との通知あるか否かを判断する。切替制御部162は、移動量と移動速度とが通知された場合、処理をステップS128に進める。切替制御部162は、移動量と移動速度とが通知されていない場合、処理をステップS125に進める。
【0174】
[ステップS125]切替制御部162は、移動量と移動速度とが通知されていなければ、現在表示対象のVMの次候補VMを取得する。
[ステップS126]切替制御部162は、次候補VMのVMIDを指定して、表示対象のVMと次候補VMとの画面合成指示をVM対応LCDドライバ161に送信する。
【0175】
[ステップS127]切替制御部162は、表示対象のVMを更新する。具体的には、切替制御部162は、ステップS125で取得した次候補VMを操作VMとするVM切替テーブル162a内のレコードの位置を、表示対象ポインタ162cに設定する。その後、処理が終了する。
【0176】
[ステップS128]切替制御部162は、移動量と移動速度とが通知されている場合、移動量を計算する。
[ステップS129]切替制御部162は、VM対応LCDドライバ161に対して、移動量を指定してスクロールを指示する。その後、処理が終了する。
【0177】
[ステップS130]切替制御部162は、メッセージがVM仮切替要求ではない場合、VM切替確定要求か否かを判断する。切替制御部162は、VM切替確定要求であれば、処理をステップS131に進める。切替制御部162は、VM切替確定要求でなければ処理を終了する。
【0178】
[ステップS131]切替制御部162は、画面の半分以上に表示されているVMを操作対象のVMに決定する。例えば切替制御部162は、前回の移動量の計算で算出した移動量が、LCD装置111の画面の横幅の半分未満であれば、スクロール前に表示対象だったVMを操作対象VMに決定する。また切替制御部162は、前回の移動量の計算で算出した移動量が、LCD装置111の画面の横幅の半分以上であれば、ステップS127で表示対象とされたVMを操作対象VMに決定する。
【0179】
[ステップS132]切替制御部162は、ステップS131で決定された操作対象のVMと、操作対象ポインタ162bで示される操作対象のVMとを比較し、操作対象のVMに変更があるか否かを判断する。切替制御部162は、操作対象のVMに変更がない場合、処理をステップS133に進める。切替制御部162は、操作対象のVMに変更がある場合、処理をステップS134に進める。
【0180】
[ステップS133]切替制御部162は、ステップS127で更新した表示対象のVMを、元のVMに戻す。すなわち切替制御部162は、表示対象ポインタ162cに、操作対象ポインタ162bと同じ値を設定する。その後、処理が終了する。
【0181】
[ステップS134]切替制御部162は、表示切替確定指示を行う。具体的には、切替制御部162は、VM対応LCDドライバ161に対して、表示切替確定を示す表示切替要求を送信する。このとき送信される表示切替確定要求には、表示対象ポインタ162cで示される表示対象のVMのVMIDが含まれる。その後、切替制御部162は、VM対応LCDドライバ161から表示切替の確定結果を取得し、正しく切り替えられたことを確認する。
【0182】
[ステップS135]切替制御部162は、操作対象VMの切替指示を行う。具体的には、切替制御部162は、VM対応タッチセンサドライバ151に対して、切替先のVMのVMIDを指定した操作切替要求を送信する。切替先のVMのVMIDは、操作対象ポインタ162bで示されているVMのVMIDである。その後、処理が終了する。
【0183】
このようにして、操作対象のVM上で実行されているOSの切替ボタンに対する、タッチセンサを用いた横移動操作によって、VMの切替が可能となる。
〔第4の実施の形態〕
次に第4の実施の形態について説明する。第4の実施の形態では、タッチセンサ付き表示装置の特定領域を、各OSに共通の検知領域として設定する。例えば、画面の上辺に沿った細長い領域を、検知領域とする。携帯端末装置は、検知領域への入力を検知することで、表示対象のVMおよび操作対象のVMを切り替える。
【0184】
図21は、第4の実施の形態の携帯端末装置の機能を示すブロック図である。なお図21に示すブロック図には、VMで実行するOSを起動後の状態を示している。
携帯端末装置200は、LCD装置211とタッチセンサ212とで構成されるタッチセンサ付き表示装置を有する。また携帯端末装置200は、図3に示した第1の実施の形態と同様のハードウェア構成で実現され、CPUにより、ハイパーバイザ230を実行する。ハイパーバイザ230は、ドライバVM250,260と、OSを実行する2つのVM270,280を生成している。
【0185】
ドライバVM250は、タッチセンサ212からの入力切替を行うVMである。ドライバVM250は、VM対応タッチセンサドライバ251を有する。VM対応タッチセンサドライバ251は、タッチセンサ212からの入力信号の出力先を切り替える。
【0186】
ドライバVM260は、LCD装置211への出力切替を行うVMである。また、ドライバVM260は、タッチセンサ212から入力された情報の送信先のVMの決定、およびLCD装置211で表示する画像情報の取得元となるVMの決定を行う。そのためにドライバVM260は、VM対応LCDドライバ261と切替制御部262とを有する。
【0187】
VM対応LCDドライバ261は、LCD装置211に対して、表示する画像データが格納されたフレームバッファの記憶領域を指示する。切替制御部262は、タッチセンサ212による操作対象とするVMの切り替え、およびLCD装置211への表示対象とするVMの切り替えを制御する。
【0188】
VM270は、OSの機能を実現する要素として、メニュー制御部271、および入出力ドライバ273を有する。入出力ドライバ273は、タッチセンサドライバ273a、入力解析部273b、画像制御部273c、LCDドライバ273d、フレームバッファ273e、切替操作判断部273f、および検知領域記憶部273gを有する。VM270内の切替操作判断部273f、および検知領域記憶部273g以外の各要素の機能は、図6に示したVM170内の同名の要素と同じである。
【0189】
切替操作判断部273fは、検知領域に対するユーザからの入力内容を検知し、VM仮切替要求やVM切替確定要求を、切替制御部262に送信する。検知領域記憶部273gは、LCD装置211の表示画面のうち、画面の切り替えに使用する領域(検知領域)を示す情報を記憶する。
【0190】
VM280は、OSの機能を実現する要素として、メニュー制御部281、および入出力ドライバ283を有する。入出力ドライバ283は、タッチセンサドライバ283a、入力解析部283b、画像制御部283c、LCDドライバ283d、フレームバッファ283e、切替操作判断部283f、および検知領域記憶部283gを有する。VM280内の各要素の機能は、VM270内の同名の要素と同じである。
【0191】
なお、図21に示す各要素間を結ぶ線は、主な通信経路を示すものであり、図示した通信経路以外の通信経路も設定可能である。
このように切替操作判断部273f,283fを、各OSの入出力ドライバ273,283内に設けた場合、タッチセンサ付き表示装置の画面の検知領域(例えば、画面の上辺と端末のフレーム境界)が設定される。設定された検知領域への入力を検知することでVMの切り替え処理が開始される。
【0192】
次に、検知領域記憶部273gのデータ構造について説明する。
図22は、検知領域記憶部のデータ構造の一例を示す図である。検知領域記憶部273gは、検知領域を定義する領域管理テーブル273hを有している。領域管理テーブル273hには、領域ID、上座標、および下座標の欄が設けられている。
【0193】
領域IDの欄には、検知領域ごとに、その検知領域の識別子(領域ID)が設定される。図22の例では、「領域A」と「領域B」とが、領域IDの欄に設定されている。上座標の欄には、対応する検知領域の左上の角の座標が設定される。下座標の欄には、対応する検知領域の右下の角の座標が設定される。
【0194】
図22の例では、「領域A」は、画面が縦の場合の検知領域が設定されている。例えばLCD装置211の画面の短辺の長さがaピクセル(aは、1以上の整数)、長辺の長さがbピクセル(bは、1以上の整数)とする。
【0195】
画面を縦にして携帯端末装置200を使用する場合、横サイズが「a」となる。第4の実施の形態では、上辺に沿った細長い領域を、検知領域とする。そのため上座標が(0,0)、下座標が(a,1)となる。他方、画面を横にして携帯端末装置200を使用する場合、横サイズが「b」となる。そのため上座標が(0,0)、下座標が(b,1)となる。
【0196】
図23は、第4の実施の形態におけるVM切り替え操作の一例を示す図である。図23には、VM270からVM280へ、操作対象、および表示対象を切り替える場合の例を示している。第1の状態は、表示対象の切替前の状態である。第2の状態は、表示対象切替中の状態である。第3の状態は、表示対象切替後の状態である。
【0197】
VM270で実行されているOSのメニュー画面70には、ソフトアイコンとして、複数の機能ボタン71〜76が表示されている。またメニュー画面70の上側の辺に沿って、検知領域42が定義されている。
【0198】
ユーザが指41で、タッチセンサ付き表示装置210に表示されている検知領域42内を押下し、指41をタッチセンサ付き表示装置210に接触させたまま横移動させる(第1の状態)。すると、携帯端末装置200では、移動速度に応じた量だけ、表示対象のVMで動作しているOSの画像を横にスクロールさせる(第2の状態)。図23の例では、移動方向と反対方向に画像がスクロールしている。この際、表示対象のVMで動作しているOSの画像がスクロールした分だけ、次候補となるVMで動作しているOSの画像が表示される。そして、ユーザが指41をタッチセンサ付き表示装置210から離すと、そのとき画面の半分以上で表示されているVMのOSが画面全体に表示される(第3の状態)。そして画面全体に表示されたOSを実行しているVMが操作対象となる。
【0199】
このようにして、検知領域42を押下した状態での指41の横移動により、画面を切り替えることができる。すなわち、タッチセンサ付き表示装置210の検知領域42を、VM切り替えの指示に使用している場合、切替モードが「On」(切り替え制御中)であるのは、検知領域に指41を接触させた状態である。指41を接触させた状態で、指を横移動させることで、OSのフロント画面だけが横スクロールするように表示される。
【0200】
以下、第4の実施の形態におけるVM切替処理を詳細に説明する。
図24は、第4の実施の形態のVM切替処理を示すシーケンス図である。以下、図24に示す処理をステップ番号に沿って説明する。
【0201】
[ステップS141]ユーザ40が、タッチセンサ212の検知領域42に対応する部分を押下する。
[ステップS142]タッチセンサ212は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ251に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0202】
[ステップS143]VM対応タッチセンサドライバ251は、接触があったことを示す情報を受け取ると、タッチセンサドライバ273aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0203】
[ステップS144]タッチセンサドライバ273aは、接触があったことを示す情報を受け取ると、切替操作判断部273fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0204】
[ステップS145]切替操作判断部273fは、接触があったことを示す情報を取得すると、座標リストを更新する。切替操作判断部273fが更新する座標リストのデータ構造は、図17に示した座標リスト60と同様である。
【0205】
[ステップS146]切替操作判断部273fは、切替モード判断を行う。具体的には切替操作判断部273fは、現在の切替モードが「On」か「Off」かを判断する。切替モードの初期状態は「Off」であり、図17の例ではステップS145において切替モードが「Off」であると判断される。
【0206】
[ステップS147]切替操作判断部273fは、切替モードを「On」に設定する。
[ステップS148]切替操作判断部273fは、VM仮切替要求を切替制御部262に送信する。
【0207】
[ステップS149]切替制御部262は、次候補のVMを特定する。そして切替制御部262は、表示対象のVMと、そのVMの次候補VMとの表示画面の合成指示をVM対応LCDドライバ261に送信する。
【0208】
[ステップS150]VM対応LCDドライバ261は、表示対象のVMと、そのVMの次候補VMとのそれぞれのOSのフレームバッファ内の画像を結合した合成画像を定義する。
【0209】
[ステップS151]VM対応LCDドライバ261は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置211に送信する。
[ステップS152]ユーザ40が検知領域42内を押下したまま指41を横に移動させる。
【0210】
[ステップS153]タッチセンサ212は、ユーザ40の指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ251に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0211】
[ステップS154]VM対応タッチセンサドライバ251は、接触があったことを示す情報を受け取ると、タッチセンサドライバ273aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0212】
[ステップS155]タッチセンサドライバ273aは、接触があったことを示す情報を受け取ると、切替操作判断部273fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0213】
[ステップS156]切替操作判断部273fは、接触があったことを示す情報を取得すると、座標リストを更新する。具体的には切替操作判断部273fは、横移動によって取得した座標を、座標の取得時刻に対応付けて座標リストに登録する。
【0214】
[ステップS157]切替操作判断部273fは、ユーザ40による接触位置の移動開始時からの移動速度を計算する。そして切替操作判断部273fは、移動速度を指定したVM仮切替要求を切替制御部262に送信する。なお、移動速度の計算方法は、第3の実施の形態と同様である。
【0215】
[ステップS158]切替制御部262は、移動速度に基づいて、移動量を計算する。
[ステップS159]切替制御部262は、移動量を指定したスクロール指示をVM対応LCDドライバ261に送信する。
【0216】
[ステップS160]VM対応LCDドライバ261は、指定された移動量に応じて、表示対象のVMで実行されているOSのフレームバッファ内の合成対象画像と、次候補のVMで実行されているOSのフレームバッファ内の合成対象画像とを決定する。そして、VM対応LCDドライバ261は、決定した合成対象画像を結合した合成画像を生成する。
【0217】
[ステップS161]VM対応LCDドライバ261は、合成画像が格納されている各フレームバッファのアドレスをLCD装置211に指定する。これにより、スクロールさせた画面が表示される。
【0218】
[ステップS162]ユーザ40は、画面の半分以上に表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置210から、指等の接触部を離す。すなわち、スクリーンの解放(リリース)が行われる。
【0219】
[ステップS163]タッチセンサ212は、接触されていた位置が解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ251に送信する。
【0220】
[ステップS164]VM対応タッチセンサドライバ251は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ273aに対して、接触状態が解放されたことを示す情報を送信する。
【0221】
[ステップS165]タッチセンサドライバ273aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部273fに対して、接触状態が解放されたことを示す情報を送信する。
【0222】
[ステップS166]切替操作判断部273fは、接触状態が解放されたことを示す情報を取得すると、切替モードを「Off」に変更する。
[ステップS167]切替操作判断部273fは、次候補への切替の確定を示すVM切替確定要求を、切替制御部262に送信する。
【0223】
[ステップS168]切替制御部262は、VM切替確定要求を取得すると、その時点で画面の半分以上で表示されているVMを判断する。切替制御部262は、画面の半分以上に表示されているVMを、操作対象のVMと判断する。そして、切替制御部262は、操作対象のVMのVMIDを指定し、そのVMへの表示切替の確定を示す表示切替要求を、VM対応LCDドライバ261に送信する。
【0224】
[ステップS169]VM対応LCDドライバ261は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS170]VM対応LCDドライバ261は、表示バッファ指定をLCD装置211に送信する。表示バッファ指定には、ステップS169で選択したフレームバッファのアドレスによって、LCD装置211で表示する画像の格納場所が指定されている。するとLCD装置211は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0225】
[ステップS171]切替制御部262は、VM対応LCDドライバ261から、表示切替の確定結果を取得する。
[ステップS172]切替制御部262は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ251に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0226】
[ステップS173]VM対応タッチセンサドライバ251は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ251は、以後のタッチセンサ212からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0227】
このようにして、OSを実行するVM270,280において、タッチセンサ212から入力された接触位置の座標が、検知領域42内かどうかを判断することができる。そして検知領域42内への接触であれば、切替モードを「On」にして、指41の横移動の速度に応じて画面をスクロールさせ、VMを切り替えることができる。
【0228】
しかも第4の実施の形態では、携帯端末装置200の持ち方(縦表示用に持つか、横表示用に持つか)に応じて、検知領域を変更することができる。すなわち切替操作判断部273fは、モーションセンサで検出される加速度から、重力の方向を判断する。そして切替操作判断部273fは、重力の方向が、画面の長辺と平行に近ければ、縦表示を行っていると判断する。また切替操作判断部273fは、重力の方向が、画面の短辺と平行に近ければ、横表示を行っていると判断する。切替操作判断部273fは、縦表示の場合、図22に示す「領域A」を、検知領域と判断する。また切替操作判断部273fは、横表示の場合、図22に示す「領域B」を、検知領域と判断する。
【0229】
なお検知領域は、ユーザが任意に切替操作判断部273f,283fに指定することもできる。また、切替操作判断部273f,283fが、各VM270,280で動作しているOSのLCDドライバ273d,283dから、現在の画面の表示方向を示す情報を取得するようにしてもよい。
【0230】
〔第5の実施の形態〕
次に第5の実施の形態について説明する。第5の実施の形態は、特別な切り替え用の領域を必要とせず、共通のジェスチャ操作で、フロント切り替えの操作を行うものである。第5の実施の形態では、仮想環境で動くOSで共通となるジェスチャ操作を予め設定する。例えば、2本指でタップを2回すると、切り替え用のジェスチャ操作であるというような内容を設定する。
【0231】
図25は、第5の実施の形態の携帯端末装置の機能を示すブロック図である。なお図25に示すブロック図には、VMで実行するOSを起動後の状態を示している。
携帯端末装置300は、LCD装置311とタッチセンサ312とで構成されるタッチセンサ付き表示装置を有する。また携帯端末装置300は、図3に示した第1の実施の形態と同様のハードウェア構成で実現され、CPUにより、ハイパーバイザ330を実行する。ハイパーバイザ330は、ドライバVM350,360と、OSを実行する2つのVM370,380を生成している。
【0232】
ドライバVM350は、タッチセンサ312からの入力切替を行うVMである。ドライバVM350は、VM対応タッチセンサドライバ351を有する。VM対応タッチセンサドライバ351は、タッチセンサ312からの入力信号の出力先を切り替える。
【0233】
ドライバVM360は、LCD装置311への出力切替を行うVMである。また、ドライバVM360は、タッチセンサ312から入力された情報の送信先のVMの決定、およびLCD装置311で表示する画像情報の取得元となるVMの決定を行う。そのためにドライバVM360は、VM対応LCDドライバ361と切替制御部362とを有する。
【0234】
VM対応LCDドライバ361は、LCD装置311に対して、表示する画像データが格納されたフレームバッファの記憶領域を指示する。切替制御部362は、タッチセンサ312による操作対象とするVMの切り替え、およびLCD装置311への表示対象とするVMの切り替えを制御する。
【0235】
VM370は、OSの機能を実現する要素として、メニュー制御部371、および入出力ドライバ373を有する。入出力ドライバ373は、タッチセンサドライバ373a、入力解析部373b、画像制御部373c、LCDドライバ373d、フレームバッファ373e、切替操作判断部373f、およびジェスチャ情報記憶部373gを有する。VM370内の切替操作判断部373f、およびジェスチャ情報記憶部373g以外の各要素の機能は、図6に示したVM170内の同名の要素と同じである。
【0236】
切替操作判断部373fは、タッチセンサ312に対して行われるユーザの操作から、VM切替指示のジェスチャを検知し、VM仮切替要求やVM切替確定要求を、切替制御部362に送信する。ジェスチャ情報記憶部373gは、VM切替指示のジェスチャであると認識する条件を記憶する。
【0237】
VM380は、OSの機能を実現する要素として、メニュー制御部381、および入出力ドライバ383を有する。入出力ドライバ383は、タッチセンサドライバ383a、入力解析部383b、画像制御部383c、LCDドライバ383d、フレームバッファ383e、切替操作判断部383f、およびジェスチャ情報記憶部383gを有する。VM380内の各要素の機能は、VM370内の同名の要素と同じである。
【0238】
なお、図25に示す各要素間を結ぶ線は、主な通信経路を示すものであり、図示した通信経路以外の通信経路も設定可能である。
第5の実施の形態では、タッチセンサ付き表示装置310への操作として特定のジェスチャ(例えば、2本指で画面をタップ)を示す情報が、予め設定される。切替操作判断部373fがそのジェスチャ入力を検知することで、切り替え操作が開始される。
【0239】
図26は、ジェスチャ情報記憶部のデータ構造の一例を示す図である。図26の例では、ジェスチャ情報記憶部373gには、接触箇所の数、連続接触回数、および接触間隔によって、VM切替を指定するジェスチャと認識する条件が定義されている。接触箇所の数は、同時に何箇所の接触が必要かを示している。連続接触回数は、連続して何回の接触が必要かを示している。接触間隔は、連続した接触であると判断するための時間間隔が設定されている。
【0240】
図26の例では、接触箇所の数が「2カ所」、連続接触回数が「2回」、接触間隔が「0.18秒〜0.9秒」である。この場合、ユーザは、指を2本そろえて、タッチセンサ312を連続して2回叩くように接触させることで、VM切替の指示を携帯端末装置300に入力することができる。
【0241】
図27は、第5の実施の形態におけるVM切り替え操作の一例を示す図である。図27には、VM370からVM380へ、操作対象、および表示対象を切り替える場合の例を示している。第1の状態は、表示対象の切替前の状態である。第2の状態は、表示対象切替後の状態である。
【0242】
ユーザが2本の指41a,41bで、タッチセンサ付き表示装置310の画面を2回連続で叩くジェスチャを行う(第1の状態)。すると携帯端末装置300では、VM切替指示であると認識し、現在表示されているOSを実行しているVMの次候補VMが、表示対象のVMおよび操作対象のVMに決定される。そして表示対象かつ操作対象に決定されたVMで実行されているOSの画像が、タッチセンサ付き表示装置310に表示される(第2の状態)。
【0243】
このようにして、簡単なジェスチャ動作により、画面上にVMの切り替えに使用するアイコンなどを表示せずに、VMの切り替えが可能となる。
以下、第5の実施の形態におけるVM切替処理を詳細に説明する。
【0244】
図28は、第5の実施の形態のVM切替処理を示すシーケンス図である。以下、図28に示す処理をステップ番号に沿って説明する。
[ステップS181]ユーザ40が2本の指で、タッチセンサ312の2箇所を同時に押下する。
【0245】
[ステップS182]タッチセンサ312は、押下された2箇所の接触を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ351に送信する。接触があったことを示す情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0246】
[ステップS183]VM対応タッチセンサドライバ351は、接触があったことを示す情報を受け取ると、タッチセンサドライバ373aに対して、接触があったことを示す情報を送信する。この情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0247】
[ステップS184]タッチセンサドライバ373aは、接触があったことを示す情報を受け取ると、切替操作判断部373fに対して、接触があったことを示す情報を送信する。この情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0248】
[ステップS185]切替操作判断部373fは、接触があったことを示す情報を取得すると、座標リストを更新する。切替操作判断部373fが更新する座標リストのデータ構造は、図17に示した座標リスト60と同様である。ただし、2箇所が同時に接触された場合、同一時刻で2つの点の座標が座標リスト60に登録される。
【0249】
[ステップS186]切替操作判断部373fは、ジェスチャ照合を開始する。例えば切替操作判断部373fは、ジェスチャ情報記憶部373gに登録されている接触箇所の数と、接触があったことを示す情報で示される座標の数が一致したことを確認し、ジェスチャ照合を開始する。
【0250】
[ステップS187]ユーザ40は、VM切替を指示するジェスチャを行う。すなわち、ユーザ40は、ステップS181におけるスクリーンの押下から連続して、2本の指でタッチセンサ312の2箇所を同時に押下する。
【0251】
その後のステップS188〜S191の処理は、ステップS182〜S185と同じである。
[ステップS192]切替操作判断部373fは、ジェスチャ照合を行う。例えば切替操作判断部373fは、ジェスチャ照合が開始されたときの2箇所の接触箇所における連続接触回数を数える。なお、切替操作判断部373fは、図26に示すジェスチャ情報記憶部373gを参照し、0.18〜0.9秒の間隔を置いて連続してタッチセンサ312に接触されたときに、連続接触があったと判断する。そして切替操作判断部373fは、連続して2回の接触があった場合、VM切替を指示するジェスチャが行われたと判断する。
【0252】
[ステップS193]切替操作判断部373fは、VM切替を指示するジェスチャが行われたと判断した場合、VM仮切替要求を切替制御部362に送信する。
[ステップS194]切替制御部362は、次候補のVMを特定する。そして切替制御部362は、表示切替要求をVM対応LCDドライバ361に送信する。表示切替要求には、次候補のVMのVMIDが含まれる。
【0253】
[ステップS195]VM対応LCDドライバ361は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS196]VM対応LCDドライバ361は、表示バッファ指定をLCD装置311に送信する。するとLCD装置311は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0254】
このようにして、表示対象のVMが切り替えられる。
[ステップS197]ユーザ40は、画面の半分以上に表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置310から、指等の接触部を離す。すなわち、スクリーンの解放(リリース)が行われる。
【0255】
[ステップS198]タッチセンサ312は、接触されていた位置が解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ351に送信する。
【0256】
[ステップS199]VM対応タッチセンサドライバ351は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ373aに対して、接触状態が解放されたことを示す情報を送信する。
【0257】
[ステップS200]タッチセンサドライバ373aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部373fに対して、接触状態が解放されたことを示す情報を送信する。
【0258】
[ステップS201]切替操作判断部373fは、接触状態が解放されたことを示す情報を取得すると、ジェスチャ照合を終了する。
[ステップS202]切替操作判断部373fは、次候補への切替の確定を示すVM切替確定要求を、切替制御部362に送信する。
【0259】
[ステップS203]切替制御部362は、VM切替確定要求を取得すると、表示切替の確定を示す表示切替要求を、VM対応LCDドライバ361に送信する。VM対応LCDドライバ361では、ステップS195で選択したフレームバッファを、表示バッファとして確定する。
【0260】
[ステップS204]切替制御部362は、VM対応LCDドライバ361から、表示切替の確定結果を取得する。
[ステップS205]切替制御部362は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ351に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0261】
[ステップS206]VM対応タッチセンサドライバ351は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ351は、以後のタッチセンサ312からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0262】
このようにして携帯端末装置300は、ユーザ40によるジェスチャ操作を検出し、切り替え操作開始要求であることを認識すると、表示対象のVMおよび操作対象のVMを切り替えることができる。
【0263】
〔第6の実施の形態〕
次に、第6の実施の形態について説明する。第5の実施の形態では、ジェスチャ操作で次画面に切り替えているが、第6の本実施の形態に係る携帯端末装置では、ジェスチャ操作で、VMを切り替えるモードに移行し、ソフトアイコンを画面にオーバレイの形で表示する。オーバレイ表示とは、1つの画像に別の画像を重ね合わせて表示することである。第6の実施の形態では、OSの画面の上に、ソフトアイコンの1つである切替ボタンが重ねて表示される。ユーザが、表示されたソフトアイコンを押下し、指を横移動させることで、第3の実施の形態に示したようなスクロールによる表示対象とするVMの切替操を可能とする。第6の実施の形態によれば、第2の実施の形態のように、各OSのメニュー画面に切り替え用のソフトアイコンを保持しなくてもよい。また第4の実施の形態のように、端末画面上に特別な領域を設定しなくてもよい。
【0264】
図29は、第6の実施の形態の携帯端末装置の機能を示すブロック図である。なお図29に示すブロック図には、VMにおいてOSを起動した後の状態を示している。
携帯端末装置400は、LCD装置411とタッチセンサ412とで構成されるタッチセンサ付き表示装置を有する。また携帯端末装置400は、図3に示した第1の実施の形態と同様のハードウェア構成で実現され、CPUにより、ハイパーバイザ430を実行する。ハイパーバイザ430は、ドライバVM450,460と、OSを実行する2つのVM470,480を生成している。
【0265】
ドライバVM450は、タッチセンサ412からの入力切替を行うVMである。ドライバVM450は、VM対応タッチセンサドライバ451を有する。VM対応タッチセンサドライバ451は、タッチセンサ412からの入力信号の出力先を切り替える。
【0266】
ドライバVM460は、LCD装置411への出力切替を行うVMである。また、ドライバVM460は、タッチセンサ412から入力された情報の送信先のVMの決定、およびLCD装置411で表示する画像情報の取得元となるVMの決定を行う。そのためにドライバVM460は、VM対応LCDドライバ461、および切替制御部462を有する。
【0267】
VM対応LCDドライバ461は、LCD装置411に対して、表示する画像データが格納されたフレームバッファの記憶領域を指示する。切替制御部462は、タッチセンサ412による操作対象とするVMの切り替え、およびLCD装置411への表示対象とするVMの切り替えを制御する。
【0268】
VM470は、OSの機能を実現する要素として、メニュー制御部471、および切替ボタン制御部472、および入出力ドライバ473を有する。切替ボタン制御部472は、ソフトボタンの1つである切替ボタンの表示、非表示などを制御する。
【0269】
入出力ドライバ473は、タッチセンサドライバ473a、入力解析部473b、画像制御部473c、LCDドライバ473d、フレームバッファ473e、切替操作判断部473f、およびジェスチャ情報記憶部473gを有する。VM470内の各要素の機能は、図6に示したVM170内の同名の要素と同じである。
【0270】
切替操作判断部473fは、タッチセンサ412に対して行われるユーザの操作から、切替ボタンの表示を指示するジェスチャを検知し、切替ボタン表示要求を、切替ボタン制御部472に送信する。ジェスチャ情報記憶部473gは、切替ボタン表示を指示するジェスチャであると認識する条件を記憶する。
【0271】
VM480は、OSの機能を実現する要素として、メニュー制御部481、切替ボタン制御部482、および入出力ドライバ483を有する。入出力ドライバ483は、タッチセンサドライバ483a、入力解析部483b、画像制御部483c、LCDドライバ483d、フレームバッファ483e、切替操作判断部483f、およびジェスチャ情報記憶部483gを有する。VM480内の各要素の機能は、VM470内の同名の要素と同じである。
【0272】
なお、図29に示す各要素間を結ぶ線は、主な通信経路を示すものであり、図示した通信経路以外の通信経路も設定可能である。
第6の実施の形態のジェスチャ情報記憶部473gのデータ構造は、図26に示した第5の実施の形態のジェスチャ情報記憶部373gと同様である。
【0273】
図30は、第6の実施の形態におけるVM切り替え操作の一例を示す第1の図である。第1の状態は、切替ボタン表示前の状態である。第2の状態は、切替ボタン表示後の状態である。
【0274】
ユーザが2本の指41a,41bで、タッチセンサ付き表示装置410の画面を2回連続で叩くジェスチャを行う(第1の状態)。すると携帯端末装置400では、切替ボタンの表示指示であると認識する。切替ボタン91が、例えばそして表示対象かつ操作対象に決定されたVMで実行されているOSの画像が、オーバレイの形で、タッチセンサ付き表示装置410に表示される(第2の状態)。
【0275】
図31は、第6の実施の形態におけるVM切り替え操作の一例を示す第2の図である。第3の状態は、切替ボタンを横移動時の状態である。第4の状態は、切替ボタンを解放後の状態である。
【0276】
ユーザが指41で切替ボタン91を押下し、指41をタッチセンサ付き表示装置410に接触させたまま横移動させる。すると、携帯端末装置400は、移動速度に応じた量だけ、表示対象のVMで動作しているOS(OS#1)の画像を横にスクロールさせる(第3の状態)。図31の例では、移動方向と反対方向に画像がスクロールしている。この際、表示対象のVMで動作しているOS(OS#1)の画像がスクロールした分だけ、次候補となるVMで動作しているOS(OS#2)の画像が表示される。そして、ユーザが指41をタッチセンサ付き表示装置410から離すと、切替ボタン91が所定のホームポジションに移動する(第4の状態)。なお、図31に示す第4の状態は、画面の横幅分の移動量だけスクロールさせた後に指41を離した結果、VM480で実行されているOSの画像が表示されている。
【0277】
図32は、第6の実施の形態におけるVM切り替え操作の一例を示す第3の図である。第5の状態は、切替ボタン押下時の状態である。第6の状態は、VM切替確定後の状態である。
【0278】
ユーザが指41で切替ボタン91を押下する(第5の状態)。そして、ユーザが指41をタッチセンサ付き表示装置410から離すと、そのとき表示対象となっているVMへの切替が確定し、切替ボタン91が画面から消える(第6の状態)。そして画面全体に表示されたOSを実行しているVMが操作対象となる。
【0279】
このように、タッチセンサ付き表示装置410へのVMの切り替えの操作として特定のジェスチャを使用する場合、切替モードが「On」(切り替え制御中)であるのは、特定のジェスチャにより表示された切替ボタン91が押下された後である。切替ボタン91を押下した状態で指を横移動させることで、LCD装置411の画面が横スクロールするように表示される。この場合、VM切替確定要求は、切替ボタン91を消去する操作で発生する。
【0280】
以下、第6の実施の形態におけるVM切替処理を詳細に説明する。
図33は、第6の実施の形態のVM切替処理の第1のシーケンス図である。以下、図33に示す処理をステップ番号に沿って説明する。なお、ステップS211〜S221の処理は、図28に示す第5の実施の形態のステップS181〜S191の処理と同じである。
【0281】
[ステップS222]切替操作判断部473fは、ジェスチャ照合を行う。例えば切替操作判断部473fは、ジェスチャ照合が開始されたときの2箇所の接触箇所における連続接触回数を数える。そして切替操作判断部473fは、連続して2回の接触があった場合、切替ボタンの表示を指示するジェスチャが行われたと判断する。
【0282】
[ステップS223]切替操作判断部473fは、切替ボタンの表示を指示するジェスチャが行われたと判断した場合、切替ボタン表示要求を切替ボタン制御部472に送信する。
【0283】
[ステップS224]切替ボタン制御部472は、切替ボタンの表示要求をメニュー制御部471に対して送信する。
[ステップS225]メニュー制御部471は、切替ボタンの画像データを指定して、画像制御部473cに対して切替ボタン表示要求を送信する。
【0284】
[ステップS226]画像制御部473cは、切替ボタンの画像を含む画像データへの更新要求をLCDドライバ473dに送信する。
[ステップS227]LCDドライバ473dは、切替ボタンの画像を含む画像データをフレームバッファに書き込む。フレームバッファ473eの画像データは、LCD装置411に転送され、画面に表示される。
【0285】
[ステップS228]ユーザ40は、タッチセンサ付き表示装置410から、指等の接触部を離す。すなわち、スクリーンの解放(リリース)が行われる。
[ステップS229]タッチセンサ412は、スクリーンの解放を検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451に送信する。
【0286】
[ステップS230]VM対応タッチセンサドライバ451は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触状態が解放されたことを示す情報を送信する。
【0287】
[ステップS231]タッチセンサドライバ473aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部473fに対して、接触状態が解放されたことを示す情報を送信する。
【0288】
[ステップS232]切替操作判断部473fは、ジェスチャ照合処理を終了する。
図34は、第6の実施の形態のVM切替処理の第2のシーケンス図である。以下、図34に示す処理をステップ番号に沿って説明する。
【0289】
[ステップS241]ユーザ40が、タッチセンサ412の切替ボタン91に対応する部分を押下する。
[ステップS242]タッチセンサ412は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0290】
[ステップS243]VM対応タッチセンサドライバ451は、接触があったことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0291】
[ステップS244]タッチセンサドライバ473aは、接触があったことを示す情報を受け取ると、切替操作判断部473fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0292】
[ステップS245]切替操作判断部473fは、接触があったことを示す情報を受け取ると、切替ボタン制御部472に対して、ボタン押下を示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0293】
[ステップS246]切替ボタン制御部472は、ボタン押下を示す情報を取得すると、ボタン押下イベントを、切替操作判断部473fに送信する。
[ステップS247]切替操作判断部473fは、ボタン押下イベントを取得すると、切替モードを「On」に変更する。そして切替操作判断部473fは、次候補へのVM仮切替要求を、切替制御部462に送信する。
【0294】
[ステップS248]切替制御部462は、表示対象のVMの次候補VMを取得し、表示対象のVMと、そのVMの次候補VMとの表示画面の合成指示をVM対応LCDドライバ461に送信する。表示画面の合成指示には、次候補のVMのVMIDが含まれる。
【0295】
[ステップS249]VM対応LCDドライバ461は、表示対象のVMと、そのVMの次候補VMとのそれぞれのOSのフレームバッファ内の画像を結合した合成画像を生成する。
【0296】
[ステップS250]VM対応LCDドライバ461は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置411に送信する。
[ステップS251]ユーザ40は、指41をタッチセンサ412から離さずに、横移動させる。
【0297】
[ステップS252]タッチセンサ412は、ユーザ40の指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0298】
[ステップS253]VM対応タッチセンサドライバ451は、接触があったことを示す情報を受け取ると、現在において操作対象となっているVMを判断する。そしてVM対応タッチセンサドライバ451は、タッチセンサドライバ473aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0299】
[ステップS254]タッチセンサドライバ473aは、切替操作判断部473fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0300】
[ステップS255]切替操作判断部473fは、接触があったことを示す情報を取得すると、座標リストを更新する。
[ステップS256]切替ボタン制御部472は、切替操作部43が有する座標リストを取得する。
【0301】
[ステップS257]切替ボタン制御部472は、座標リストに基づいて、切替ボタン91の移動開始時からの移動速度を計算する。そして切替ボタン制御部472は、移動速度を指定したVM仮切替要求を切替制御部462に送信する。
【0302】
[ステップS258]切替制御部462は、移動速度に基づいて、スクロールの移動量を計算する。
[ステップS259]切替制御部462は、移動量を指定したスクロール指示をVM対応LCDドライバ461に送信する。
【0303】
[ステップS260]VM対応LCDドライバ461は、指定された移動量に応じて、合成画像を生成する。
[ステップS261]VM対応LCDドライバ461は、合成画像が格納されているフレームバッファのアドレスをLCD装置411に指定する。これにより、スクロールさせた画面が表示される。
【0304】
図35は、第6の実施の形態のVM切替処理の第3のシーケンス図である。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS271]ユーザ40は、タッチセンサ付き表示装置410から指等の接触部を離す。
【0305】
[ステップS272]タッチセンサ412は、切替ボタン91が解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451に送信する。
【0306】
[ステップS273]VM対応タッチセンサドライバ451は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触状態が解放されたことを示す情報を送信する。
【0307】
[ステップS274]タッチセンサドライバ473aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部473fに対して、接触状態が解放されたことを示す情報を送信する。
【0308】
[ステップS275]切替操作判断部473fは、接触状態が解放されたことを示す情報を受け取ると、切替モードを「Off」に変更し、切替ボタン制御部472に対してボタン解放を示す情報を送信する。
【0309】
[ステップS276]切替ボタン制御部472は、ステップS256で取得した座標リストに基づいて、切替ボタン91が、最初の表示位置(ホーム座標)から移動しているか否かをチェックする。
【0310】
[ステップS277]切替ボタン制御部472は、切替ボタン91がホーム座標から移動している場合、ホーム座標を指定したボタン移動要求を切替制御部462に送信する。
[ステップS278]切替制御部462は、現在の切替ボタン91の位置からホーム座標までの移動量を計算する。そして切替制御部462は、VM対応LCDドライバ461に対して、移動量を指定したボタン移動要求を送信する。
【0311】
[ステップS279]VM対応LCDドライバ461は、切替ボタン91のアイコン画像を、現在の表示対象のVMで動作しているOSのフレームバッファ内の画像にオーバレイ表示した画像を生成する。このときの切替ボタン91のアイコン画像は、指定された移動量だけ移動させた位置に配置される。切替制御部462からはホーム座標までの移動量が指定されているため、結果的に、切替ボタン91のアイコン画像がホーム座標の位置に配置されることとなる。
【0312】
[ステップS280]VM対応LCDドライバ461は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置411に送信する。
図36は、第6の実施の形態のVM切替処理の第4のシーケンス図である。以下、図36に示す処理をステップ番号に沿って説明する。
【0313】
[ステップS291]ユーザ40が、タッチセンサ412の切替ボタン91に対応する部分を押下する。
[ステップS292]タッチセンサ412は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0314】
[ステップS293]VM対応タッチセンサドライバ451は、接触があったことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0315】
[ステップS294]タッチセンサドライバ473aは、接触があったことを示す情報を受け取ると、切替操作判断部473fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0316】
[ステップS295]切替操作判断部473fは、接触があったことを示す情報を受け取ると、切替ボタン制御部472に対してボタン押下を示す情報を送信する。ボタン押下を示す情報には、接触された位置を示す座標が含まれる。
【0317】
[ステップS296]切替ボタン制御部472は、ボタン押下を示す情報を取得すると、ボタン押下イベントを、切替操作判断部473fに送信する。切替操作判断部473fは、ボタン押下イベントを取得すると、切替モードを「On」に変更する。
【0318】
[ステップS297]ユーザ40は、表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置410から、指等の接触部を離す。すなわち、切替ボタンの解放(リリース)が行われる。
【0319】
[ステップS298]タッチセンサ412は、切替ボタンが解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451に送信する。
【0320】
[ステップS299]VM対応タッチセンサドライバ451は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触状態が解放されたことを示す情報を送信する。
【0321】
[ステップS300]タッチセンサドライバ473aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部473fに対して、接触状態が解放されたことを示す情報を送信する。
【0322】
[ステップS301]切替操作判断部473fは、接触状態が解放されたことを示す情報を取得すると、切替モードを「Off」に変更する。そして切替操作判断部473fは、切替ボタン制御部472に対してボタン解放を示す情報を送信する。
【0323】
[ステップS302]切替ボタン制御部472は、ステップS256で取得した座標リストに基づいて、切替ボタン91が、最初の表示位置(ホーム座標)から移動しているか否かをチェックする。
【0324】
[ステップS303]切替ボタン制御部472は、切替ボタン91がホーム座標から移動していない場合、メニュー制御部471に対して切替ボタン非表示要求を送信する。
[ステップS304]メニュー制御部471は、画像制御部473cに対して、切替ボタン非表示要求を送信する。
【0325】
[ステップS305]画像制御部473cは、切替ボタンのアイコン画像を除外した画像を生成し、その画像への更新要求をLCDドライバ473dに送信する。
[ステップS306]LCDドライバ473dは、切替ボタンのアイコン画像を除外した画像をフレームバッファに書き込む。すると、フレームバッファ内の画像データがLCD装置411に転送され、切替ボタンを含まない画像が表示される。
【0326】
[ステップS307]切替操作判断部473fは、切替の確定を示すVM切替確定要求を、切替制御部462に送信する。
[ステップS308]切替制御部462は、VM切替確定要求を取得すると、その時点で画面の半分以上で表示されているVMを操作対象のVMとする。そして、切替制御部462は、操作対象のVMのVMIDを指定し、そのVMへの表示切替の確定を示す表示切替要求を、VM対応LCDドライバ461に送信する。
【0327】
[ステップS309]VM対応LCDドライバ461は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS310]VM対応LCDドライバ461は、表示バッファ指定をLCD装置411に送信する。するとLCD装置411は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0328】
[ステップS311]切替制御部462は、VM対応LCDドライバ461から、表示切替の確定結果を取得する。
[ステップS312]切替制御部462は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ451に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0329】
[ステップS313]VM対応タッチセンサドライバ451は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ451は、以後のタッチセンサ412からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0330】
このようにして、第6の実施の形態に係る携帯端末装置400では、まず切替ボタン表示用のジェスチャ操作を認識して、切替ボタン91を画面に表示する。その後、携帯端末装置400は、ユーザ40による切替ボタン91の押下および横移動を検出して、画面をスクロールさせながら表示対処のVMを切り替える。切替ボタン91が解放されると、携帯端末装置400は、切替ボタン91をホームポジションに移動させる。そして、切替ボタン91を移動させずに、押下と解放が行われると、携帯端末装置400は、切替ボタン91を画面から消し、現在表示されているOSを実行しているVMに、タッチセンサ412からの入力経路を切り替える。
【0331】
これにより、通常使用時には、VM切り替え用のボタンや領域を設けずに済み、画面を有効利用できる。そして、VMを切り替える際には、画面のスクロールによるVM切り替えが可能となる。
【0332】
〔その他の実施の形態〕
第2〜第6の実施の形態では、VMに対する操作入力に使用する入力デバイスがタッチセンサのみである。そのため、入力デバイス用のドライバVMは、VM対応タッチセンサドライバを実行するVMだけである。しかし、携帯端末装置に他の入力デバイスを設けることもできる。例えば、物理的なキーを有するキーパッドや、ポインティングデバイスである。タッチセンサ以外にも入力デバイスがある場合、各入力デバイスに対応するドライバVMが生成され、各ドライバVMにおいて入力デバイスのドライバが実行される。このように入力デバイス用のドライバVMが多数ある場合には、例えば切替制御部に送信ドライバリストを持たせる。
【0333】
図37は、通知ドライバリストのデータ構造の一例を示す図である。通知ドライバリスト92には、VMID、ドライバ名、およびポート番号の欄が設けられている。VMIDの欄には、操作切替要求の送信相手とするドライバVMのVMIDが設定される。ドライバ名の欄には、送信相手のドライバVMで実行されているデバイスドライバの名称が設定される。ポート番号の欄には、送信相手のドライバVM内のデバイスドライバとの通信に使用する通信ポートの番号が設定される。
【0334】
このように、通知ドライバリスト92には、入力デバイス用のドライバVMで実行されているデバイスドライバのリストが登録されている。切替制御部は、操作対象のVMを切り替える場合、新たに決定した操作対象のVMのVMIDを、通知ドライバリスト92に登録されているすべてのデバイスドライバに送信する。これにより、すべての入力デバイスからの操作の対象となるVMを切り替えることができる。
【0335】
また、第4の実施の形態に示した切替操作判断部273f、283fと検知領域記憶部273g,283g(図21参照)とは、例えばドライバVM内に設けることもできる。
図38は、第4の実施の形態の変形例を示す図である。図38において、図21に示した要素と同じ機能の要素には、図21の要素と同じ符号を付し、説明を省略する。
【0336】
携帯端末装置200aのドライバVM250aは、VM対応タッチセンサドライバ251a、切替操作判断部252、および検知領域記憶部253を有する。その一方、VM270a,280aは、図21に示した切替操作判断部273f、283fと検知領域記憶部273g,283gを有していない。
【0337】
ドライバVM250aのVM対応タッチセンサドライバ251aは、図21に示したVM対応タッチセンサドライバ251が有する機能に加え、タッチセンサ212からの入力情報を切替操作判断部252に送信する機能を有する。切替操作判断部252は、図21に示した切替操作判断部273fと同じ機能を有する。検知領域記憶部253は、図21に示した検知領域記憶部273gと同じ機能を有する。
【0338】
第4の実施の形態の変形例の処理手順は、VM対応タッチセンサドライバ251aと切替操作判断部252との間で直接通信が行われることを除き、図24に示した第4の実施の形態の処理手順と同様である。ただし、図24に示したVM対応タッチセンサドライバ251は、図38に示すVM対応タッチセンサドライバ251aに置き換えられる。また図24に示した切替操作判断部273fは、図38に示す切替操作判断部252に置き換えられる。
【0339】
このように切替操作判断部252と検知領域記憶部253とをドライバVM250a内に設けることにより、VM270a,280aで実行されるOSに対して、VM切替用の機能を組み込まずにすむ。
【0340】
同様に、第5の実施の形態に示した切替操作判断部373f、383fとジェスチャ情報記憶部373g,383g(図25参照)とを、例えばドライバVM内に設けることもできる。
【0341】
図39は、第5の実施の形態の変形例を示す図である。図39において、図25に示した要素と同じ機能の要素には、図25の要素と同じ符号を付し、説明を省略する。
携帯端末装置300aのドライバVM350aは、VM対応タッチセンサドライバ351a、切替操作判断部352、およびジェスチャ情報記憶部353を有する。その一方、VM370a,380aは、図25に示した切替操作判断部373f、383fとジェスチャ情報記憶部373g,383gを有していない。
【0342】
ドライバVM350aのVM対応タッチセンサドライバ351aは、図25に示したVM対応タッチセンサドライバ351が有する機能に加え、タッチセンサ312からの入力情報を切替操作判断部352に送信する機能を有する。切替操作判断部352は、図25に示した切替操作判断部373fと同じ機能を有する。ジェスチャ情報記憶部353は、図25に示したジェスチャ情報記憶部373gと同じ機能を有する。
【0343】
第5の実施の形態の変形例の処理手順は、VM対応タッチセンサドライバ351aと切替操作判断部352との間で直接通信が行われることを除き、図28に示した第5の実施の形態の処理手順と同様である。ただし、図28に示したVM対応タッチセンサドライバ351は、図39に示すVM対応タッチセンサドライバ351aに置き換えられる。また図28に示した切替操作判断部373fは、図39に示す切替操作判断部352に置き換えられる。
【0344】
このように切替操作判断部352とジェスチャ情報記憶部353とをドライバVM350a内に設けることにより、ジェスチャによってVM切替を行う場合であっても、VM370a,380aで実行されるOSに対して、VM切替用の機能を組み込まずにすむ。
【0345】
同様に、第6の実施の形態に示した切替操作判断部473f、483f、ジェスチャ情報記憶部473g,483g、および切替ボタン制御部472,482(図29参照)を、例えばドライバVM内に設けることもできる。
【0346】
図40は、第6の実施の形態の変形例を示す図である。図40において、図29に示した要素と同じ機能の要素には、図29の要素と同じ符号を付し、説明を省略する。
携帯端末装置400aのドライバVM450aは、VM対応タッチセンサドライバ451a、切替操作判断部452、およびジェスチャ情報記憶部453を有する。ドライバVM460aは、VM対応LCDドライバ461、切替制御部462a、および切替ボタン制御部463を有する。その一方、VM470a,480aは、図29に示した切替操作判断部473f、483f、ジェスチャ情報記憶部473g,483g、および切替ボタン制御部472,482を有していない。
【0347】
ドライバVM450aのVM対応タッチセンサドライバ451aは、図29に示したVM対応タッチセンサドライバ451が有する機能に加え、タッチセンサ412からの入力情報を切替操作判断部452に送信する機能を有する。切替操作判断部452は、図29に示した切替操作判断部473fと同じ機能を有する。ジェスチャ情報記憶部453は、図29に示したジェスチャ情報記憶部473gと同じ機能を有する。
【0348】
ドライバVM460aの切替制御部462aは、図29に示した切替制御部462が有する機能に加え、切替ボタン制御部463からの入力情報を切替操作判断部452に送信する機能を有する。切替操作判断部452は、図29に示した切替操作判断部473fと同じ機能を有する。ジェスチャ情報記憶部453は、図29に示したジェスチャ情報記憶部473gと同じ機能を有する。
【0349】
以下、第6の実施の形態の変形例におけるVM切替処理を詳細に説明する。
図41は、第6の実施の形態の変形例におけるVM切替処理の第1のシーケンス図である。以下、図41に示す処理をステップ番号に沿って説明する。
【0350】
[ステップS411]ユーザ40が2本の指で、タッチセンサ412の2箇所を同時に押下する。
[ステップS412]タッチセンサ412は、押下された2箇所の接触を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451aに送信する。接触があったことを示す情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0351】
[ステップS413]VM対応タッチセンサドライバ451aは、接触があったことを示す情報を受け取ると、切替操作判断部452に対して、接触があったことを示す情報を送信する。この情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0352】
[ステップS414]切替操作判断部452は、接触があったことを示す情報を取得すると、座標リストを更新する。切替操作判断部452が更新する座標リストのデータ構造は、図17に示した座標リスト60と同様である。ただし、2箇所が同時に接触された場合、同一時刻で2つの点の座標が座標リスト60に登録される。
【0353】
[ステップS415]切替操作判断部452は、ジェスチャ照合を開始する。例えば切替操作判断部452は、ジェスチャ情報記憶部453に登録されている接触箇所の数と、接触があったことを示す情報で示される座標の数が一致したことを確認し、ジェスチャ照合を開始する。
【0354】
[ステップS416]ユーザ40は、VM切替を指示するジェスチャを行う。すなわち、ユーザ40は、ステップS411におけるスクリーンの押下から連続して、2本の指でタッチセンサ412の2箇所を同時に押下する。
【0355】
その後のステップS417〜S419の処理は、ステップS412〜S414と同じである。
[ステップS420]切替操作判断部452は、ジェスチャ照合を行う。例えば切替操作判断部452は、ジェスチャ照合が開始されたときの2箇所の接触箇所における連続接触回数を数える。そして切替操作判断部452は、連続して2回の接触があった場合、切替ボタンの表示を指示するジェスチャが行われたと判断する。
【0356】
[ステップS421]切替操作判断部452は、切替ボタンの表示を指示するジェスチャが行われたと判断した場合、切替ボタン表示要求を切替ボタン制御部463に送信する。
【0357】
[ステップS422]切替ボタン制御部463は、切替ボタン表示要求を、切替制御部462aに送信する。
[ステップS423]切替制御部462aは、切替ボタン表示要求を、VM対応LCDドライバ461に送信する。
【0358】
[ステップS424]VM対応LCDドライバ461は、切替ボタン91のアイコン画像を、現在の表示対象のVMで動作しているOSのフレームバッファ内の画像にオーバレイ表示した画像を生成する。この際、切替ボタン91が、画面内の予め決められた位置(ホーム座標)に表示されるように、合成画像が生成される。
【0359】
[ステップS425]VM対応LCDドライバ461は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置411に送信する。
[ステップS426]ユーザ40は、タッチセンサ付き表示装置410から、指等の接触部を離す。すなわち、スクリーンの解放(リリース)が行われる。
【0360】
[ステップS427]タッチセンサ412は、スクリーンの解放を検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451aに送信する。
[ステップS428]VM対応タッチセンサドライバ451aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部452に対して、接触状態が解放されたことを示す情報を送信する。
【0361】
[ステップS429]切替操作判断部452は、ジェスチャ照合処理を終了する。
図42は、第6の実施の形態の変形例におけるVM切替処理の第2のシーケンス図である。なお図42のステップS431,S432,S434〜S441,S443〜S449の処理は、それぞれ図34に示すステップS241,S242,S245〜S252,S255〜S261の処理と同じである。図42の処理のうち、図34の処理と異なるのは、ステップS433,S442の処理である。以下、この2つのステップの処理について説明する。
【0362】
[ステップS433]VM対応タッチセンサドライバ451aは、接触があったことを示す情報を受け取ると、切替操作判断部452に対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0363】
[ステップS442]VM対応タッチセンサドライバ451aは、接触があったことを示す情報を受け取ると、現在において操作対象となっているVMを判断する。そしてVM対応タッチセンサドライバ451aは、切替操作判断部452に対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0364】
このように図42の処理では、VM対応タッチセンサドライバ451aから直接、切替操作判断部452に情報が通知される。
図43は、第6の実施の形態の変形例におけるVM切替処理の第3のシーケンス図である。なお図43のステップS451,S452,S454〜S459の処理は、それぞれ図35に示すステップS271,S272,S275〜S280の処理と同じである。図43の処理のうち、図35の処理と異なるのは、ステップS453の処理である。以下、このステップの処理について説明する。
【0365】
[ステップS453]VM対応タッチセンサドライバ451aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部452に対して、接触状態が解放されたことを示す情報を送信する。
【0366】
図44は、第6の実施の形態の変形例におけるVM切替処理の第4のシーケンス図である。以下、図44に示す処理をステップ番号に沿って説明する。
[ステップS471]ユーザ40が、タッチセンサ412の切替ボタン91に対応する部分を押下する。
【0367】
[ステップS472]タッチセンサ412は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451aに送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0368】
[ステップS473]VM対応タッチセンサドライバ451aは、接触があったことを示す情報を受け取ると、切替操作判断部452に対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0369】
[ステップS474]切替操作判断部452は、接触があったことを示す情報を受け取ると、切替ボタン制御部463に対してボタン押下を示す情報を送信する。ボタン押下を示す情報には、接触された位置を示す座標が含まれる。
【0370】
[ステップS475]切替ボタン制御部463は、ボタン押下を示す情報を取得すると、ボタン押下イベントを、切替操作判断部452に送信する。切替操作判断部452は、ボタン押下イベントを取得すると、切替モードを「On」に変更する。
【0371】
[ステップS476]ユーザ40は、表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置410から、指等の接触部を離す。すなわち、切替ボタンの解放(リリース)が行われる。
【0372】
[ステップS477]タッチセンサ412は、切替ボタンが解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451aに送信する。
【0373】
[ステップS478]VM対応タッチセンサドライバ451aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部452に対して、接触状態が解放されたことを示す情報を送信する。
【0374】
[ステップS479]切替操作判断部452は、接触状態が解放されたことを示す情報を取得すると、切替モードを「Off」に変更する。そして切替操作判断部452は、切替ボタン制御部463に対してボタン解放を示す情報を送信する。
【0375】
[ステップS480]切替ボタン制御部463は、ステップS443で取得した座標リストに基づいて、切替ボタン91が、最初の表示位置(ホーム座標)から移動しているか否かをチェックする。
【0376】
[ステップS481]切替ボタン制御部463は、切替ボタン91がホーム座標から移動していない場合、切替制御部462aに対して切替ボタン非表示要求を送信する。
[ステップS482]切替制御部462aは、VM対応LCDドライバ461に対して、切替ボタン非表示要求を送信する。
【0377】
[ステップS483]VM対応LCDドライバ461は、各OSのフレームバッファ内の画像を合成し、切替ボタン91のアイコン画像を除外した画像を生成する。
[ステップS484]VM対応LCDドライバ461は、合成画像が格納されているフレームバッファのアドレスをLCD装置411に指定する。
【0378】
[ステップS485]切替操作判断部452は、ステップS479の処理に加え、切替の確定を示すVM切替確定要求を、切替制御部462aに送信する。
[ステップS486]切替制御部462aは、VM切替確定要求を取得すると、その時点で画面の半分以上で表示されているVMを操作対象のVMとする。そして、切替制御部462aは、操作対象のVMのVMIDを指定し、そのVMへの表示切替の確定を示す表示切替要求を、VM対応LCDドライバ461に送信する。
【0379】
[ステップS487]VM対応LCDドライバ461は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS488]VM対応LCDドライバ461は、表示バッファ指定をLCD装置411に送信する。するとLCD装置411は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0380】
[ステップS489]切替制御部462aは、VM対応LCDドライバ461から、表示切替の確定結果を取得する。
[ステップS490]切替制御部462aは、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ451aに送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0381】
[ステップS491]VM対応タッチセンサドライバ451aは、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ451aは、以後のタッチセンサ412からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0382】
第4から第6の実施の形態の応用例で示したように、切替指示の入力を検出する機能を、OSが動作するVMとは別のドライバVMに設けることも可能である。
また上記の各実施の形態および応用例では携帯端末装置の例を示したが、各実施の形態のVM切替機能は、携帯端末装置以外のコンピュータにも実装可能である。
【0383】
さらに、上記の各実施の形態および応用例では、タッチセンサによる入力の例を示したが、他の入力装置からのOSに対する入力情報に基づいて、VM切替指示を検出することもできる。例えばマウスやタブレットなどのポインティングデバイスからの入力情報に基づいて、VM切替指示を検出できる。ポインティングデバイスからの入力情報は、画面上の座標に変換できるため、座標に変換後は、タッチセンサの入力情報と同様に処理することができる。
【0384】
さらに、上記の各実施の形態および応用例では、仮切替要求で表示対象を切り替え、切替確定要求で操作対象を切り替えているが、表示対象と操作対象との切り替えを、同じタイミングで行ってもよい。例えば、仮切替要求が出されたタイミングで、表示対象と操作対象との両方を切り替えてもよい。また切替確定要求が出されたタイミングで、表示対象と操作対象との両方を切り替えてもよい。
【0385】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、携帯端末装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0386】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0387】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0388】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0389】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0390】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
(付記1) 第1のオペレーティングシステムに基づく処理を実行する第1の処理部と、
第2のオペレーティングシステムに基づく処理を実行する第2の処理部と、
前記第1の処理部または前記第2の処理部のいずれか一方が設定された送信先の設定に応じて入力情報を送信する送信部と、
前記送信先の設定の切替要求を受信した場合に、前記送信先の設定を、設定された送信先以外の前記第1の処理部または前記第2の処理部に切り替える切替制御部と、を有し、
前記第1の処理部が、
前記送信部から受信した入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合に、前記切替制御部に切替要求を送信する、
ことを特徴とする情報処理装置。
【0391】
(付記2) 表示部と、
表示対象の画像を指定する表示対象情報を受信すると、前記第1の処理部で生成された画像、または前記第2の処理部で生成された画像のうち、該表示対象情報によって指定された画像を前記表示部に表示させる制御を行う表示制御部と、をさらに有し、
前記切替制御部は、切替要求を受信した場合、現在の表示されている画像とは別の画像を指定した表示対象情報を、前記表示制御部に送信することを特徴とする付記1記載の情報処理装置。
【0392】
(付記3) 前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内の場合に、切替要求を送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0393】
(付記4) 前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内であることを検出後、入力情報で示される操作対象の位置が時間経過と共に移動した場合に、切替要求送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0394】
(付記5) 前記検知領域は、表示対象の画像内のソフトボタンの表示領域であることを特徴とする付記3または4のいずれかに記載の情報処理装置。
(付記6) 前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内であることを検出後、入力情報で示される操作対象の位置が時間経過と共に該検知領域内を移動した場合に、切替要求を送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0395】
(付記7) 前記検知領域は、表示装置の画面の少なくとも1辺の縁に沿った領域であることを特徴とする付記6記載の情報処理装置。
(付記8) 複数の領域情報を記憶する記憶部をさらに有し、
前記第1の処理部は、生成した画像の向きに応じて前記記憶部から領域情報を選択し、選択した領域情報で示される領域を前記検知領域とすることを特徴とする付記4乃至7のいずれかに記載の情報処理装置。
【0396】
(付記9) 前記第1の処理部は、入力情報で示される操作対象の位置の移動速度を計算し、
前記切替制御部は、移動速度に応じて画面をスクロールさせる移動量を計算し、前記第1の処理部で生成された画像から前記第2の処理部で生成された画像への、該移動量分のスクロール指示を、前記表示制御部に送信し、
前記表示制御部は、スクロール指示を受信すると、該スクロール指示で示される移動量だけ、前記第1の処理部で生成された画像から前記第2の処理部で生成された画像へスクロールする画像を表示させることを特徴とする付記2記載の情報処理装置。
【0397】
(付記10) 位置情報で示される位置のパターンを記憶する記憶部をさらに有し、
前記第1の処理部は、入力情報で示される操作対象の位置の発生パターンが、前記記憶部に記憶されたパターンに合致する場合に、切替要求を送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0398】
(付記11) 入力情報で示される操作対象の位置のパターンを記憶する記憶部をさらに有し、
前記第1の処理部は、入力情報で示される操作対象の位置の発生パターンが、前記記憶部に記憶されたパターンに合致する場合に、検知領域を示す画像を表示させ、入力情報で示される操作対象の位置が、該検知領域内であることを検出後、タッチセンサが出力した位置情報で示される位置が時間経過と共に移動した場合に、切替要求を送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0399】
(付記12) 表示装置と、
前記表示装置の表示領域と少なくとも一部の領域が重複するセンサ領域内の接触された位置を示す位置情報を、前記送信部に対して出力するタッチセンサと、
をさらに有することを特徴とする付記1乃至11のいずれかに記載の情報処理装置。
【0400】
(付記13) 情報処理装置が、
第1のオペレーティングシステムに基づく第1の処理を実行すると共に、第2のオペレーティングシステムに基づく第2の処理を実行し、
前記第1の処理の処理過程で受け付けた入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合、前記第1の処理によって切替要求を出力し、
切替要求が出力された場合、以後の入力情報を、前記第2の処理で処理させる、
ことを特徴とする制御方法。
【0401】
(付記14) 情報処理装置に、
第1のオペレーティングシステムに基づく第1の処理を実行すると共に、第2のオペレーティングシステムに基づく第2の処理を実行し、
前記第1の処理の処理過程で受け付けた入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合、該第1の処理によって切替要求を出力し、
切替要求が出力された場合、以後の入力情報を、前記第2の処理で処理させる、
処理を実行させることを特徴とする制御プログラム。
【符号の説明】
【0402】
1 情報処理装置
1a 第1の処理部
1b 第2の処理部
1c 送信部
1d 表示制御部
1e 切替制御部
2 入力装置
3 表示装置
4 入力情報
5 切替要求
6,7 画像
8 アドレス
【技術分野】
【0001】
本発明は複数のOS(Operating System)を動作させることができる情報処理装置、制御方法、および制御プログラムに関する。
【背景技術】
【0002】
コンピュータが組み込まれた機器は、組み込み機器と呼ばれる。組み込み機器の中には、例えば携帯端末装置のような携帯型の組み込み機器がある。
近年の携帯型の組み込み機器で使用されているCPU(Central Processing Unit)は、以前に比べ性能が向上している。CPUの性能が向上したことで、例えば組み込み機器のハードウェア環境を仮想化して、仮想マシンによって処理を実行することも可能となってきている。例えば、複数の仮想マシンそれぞれで異なるOSを動作させることも可能である。
【0003】
ところで、携帯型の組み込み機器は、大画面化・小型化の傾向にある。大画面化と小型化を同時に進めるため、多くの携帯型の組み込み機器では、文字などの入力は、物理的なキーボード以外の入力装置を用いて行われる。例えば、組み込み機器には、タッチセンサ付き表示装置が搭載される。タッチセンサ付き表示装置は、タッチパネルまたはタッチスクリーンと呼ばれることもある。文字入力が必要な場面では、例えば、ソフトウェアで実現したキーボードがタッチセンサ付き表示装置に表示され、タッチセンサ付き表示装置へのタッチ操作によって文字が入力される。
【0004】
ただし、1つの仮想マシンで実行されているOSが全画面領域を制御している場合、タッチセンサ付き表示装置へのタッチ操作は、表示されているOSに対する指示として検出され、仮想マシンの管理機能(例えばハイパーバイザ)への指示とはならない。そのため、例えば、この管理機能に、組み込み機器で動作する複数のOSのうちのいずれのOSに画面領域を制御させる(フォアグラウンドで動作させる)かを切り替える処理を実行させたい場合であっても、タッチセンサ付き表示装置の画面領域へのタッチ操作は、その画面領域を制御するOSへの指示とされてしまう。従来の組み込み機器には、フォアグラウンドで動作する仮想マシンの切り替えに利用可能な入力装置が設けられている。例えば、フォアグラウンドの仮想マシンドメインの切り替え用のキーパッドを設けることが考えられている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Sang-bum Suh、"Secure Architecture and Implementation of Xen on ARM for Mobile Devices"、[online]、April 17, 2007、[平成22年12月14日検索]、インターネット<URL:http://www.xen.org/files/xensummit_4/Secure_Xen_ARM_xen-summit-04_07_Suh.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、入力情報の送信先とするOSの切り替えのために、キーパッドのような切り替え専用の入力装置を設けることは、機器の小型化の阻害要因となる。なお、このような問題は、組み込み機器に限らず情報処理装置一般に当てはまる。
【0007】
1つの側面では、本発明は切り替え専用の入力装置以外からの入力に基づき、入力情報の送信先とするOSを切り替えることができる情報処理装置、制御方法、および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、第1の処理部、第2の処理部、送信部、および切替制御部を有する情報処理装置が提供される。第1の処理部は、第1のオペレーティングシステムに基づく処理を実行する。第2の処理部は、第2のオペレーティングシステムに基づく処理を実行する。送信部は、第1の処理部または第2の処理部のいずれか一方が設定された送信先の設定に応じて入力情報を送信する。切替制御部は、送信先の設定の切替要求を受信した場合に、送信先の設定を、設定された送信先以外の第1の処理部または第2の処理部に切り替える。そして、第1の処理部は、送信部から受信した入力情報が、第1のオペレーティングシステムで定義された切替条件に合致する場合、切替制御部に切替要求を送信する。
【0009】
また他の1つの案では、上記情報処理装置の処理部と同様の処理を行う制御方法が提供される。
また他の1つの案では、上記処理部の処理を情報処理装置に実行させる制御プログラムが提供される。
【発明の効果】
【0010】
切り替え専用の入力装置以外からの入力に基づき、入力情報の送信先とするOSを切り替えることが可能となる。
【図面の簡単な説明】
【0011】
【図1】第1の実施の形態の機能を示す図である。
【図2】第2の実施の形態のシステム構成例を示す図である。
【図3】携帯端末装置のハードウェア構成例を示す図である。
【図4】OS起動時の携帯端末装置の機能を示すブロック図である。
【図5】切替制御部の内部構造の一例を示す図である。
【図6】OS起動後の携帯端末装置の機能を示す図である。
【図7】第2の実施の形態におけるVM切り替え操作の一例を示す図である。
【図8】第2の実施の形態のVM切替処理の手順を示すシーケンス図である。
【図9】第2の実施の形態のVM切替判断処理の手順を示すフローチャートである。
【図10】第2の実施の形態の切替制御処理の手順を示すフローチャートである。
【図11】仮切替要求の通信例を示す図である。
【図12】LCDの表示切替処理の一例を示す図である。
【図13】送信先切替処理の一例を示す図である。
【図14】第3の実施の形態におけるVM切り替え操作の一例を示す図である。
【図15】画像合成例を示す図である。
【図16】第3の実施の形態のVM切替処理の前半を示すシーケンス図である。
【図17】入力解析部で生成される座標リストの一例を示す図である。
【図18】第3の実施の形態のVM切替処理の後半を示すシーケンス図である。
【図19】第3の実施の形態のVM切替判断処理の手順を示すフローチャートである。
【図20】第3の実施の形態の切替制御処理の手順を示すフローチャートである。
【図21】第4の実施の形態の携帯端末装置の機能を示すブロック図である。
【図22】検知領域記憶部のデータ構造の一例を示す図である。
【図23】第4の実施の形態におけるVM切り替え操作の一例を示す図である。
【図24】第4の実施の形態のVM切替処理を示すシーケンス図である。
【図25】第5の実施の形態の携帯端末装置の機能を示すブロック図である。
【図26】ジェスチャ情報記憶部のデータ構造の一例を示す図である。
【図27】第5の実施の形態におけるVM切り替え操作の一例を示す図である。
【図28】第5の実施の形態のVM切替処理を示すシーケンス図である。
【図29】第6の実施の形態の携帯端末装置の機能を示すブロック図である。
【図30】第6の実施の形態におけるVM切り替え操作の一例を示す第1の図である。
【図31】第6の実施の形態におけるVM切り替え操作の一例を示す第2の図である。
【図32】第6の実施の形態におけるVM切り替え操作の一例を示す第3の図である。
【図33】第6の実施の形態のVM切替処理の第1のシーケンス図である。
【図34】第6の実施の形態のVM切替処理の第2のシーケンス図である。
【図35】第6の実施の形態のVM切替処理の第3のシーケンス図である。
【図36】第6の実施の形態のVM切替処理の第4のシーケンス図である。
【図37】通知ドライバリストのデータ構造の一例を示す図である。
【図38】第4の実施の形態の変形例を示す図である。
【図39】第5の実施の形態の変形例を示す図である。
【図40】第6の実施の形態の変形例を示す図である。
【図41】第6の実施の形態の変形例におけるVM切替処理の第1のシーケンス図である。
【図42】第6の実施の形態の変形例におけるVM切替処理の第2のシーケンス図である。
【図43】第6の実施の形態の変形例におけるVM切替処理の第3のシーケンス図である。
【図44】第6の実施の形態の変形例におけるVM切替処理の第4のシーケンス図である。
【発明を実施するための形態】
【0012】
以下、本実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態の機能を示す図である。情報処理装置1には、入力装置2と表示装置3とが接続されている。入力装置2は、例えばタッチパッド、マウス、キーボードなどである。表示装置3は、例えば、LCD(Liquid Crystal Display)装置、有機ELディスプレイ(organic electroluminescence display)などである。
【0013】
情報処理装置1は、第1の処理部1a、第2の処理部1b、送信部1c、表示制御部1d、および切替制御部1eを有する。
第1の処理部1aは、第1のオペレーティングシステム(OS)に基づく処理を実行する。例えば、ハードウェア環境を仮想化することで情報処理装置1内に生成される仮想マシンによって、第1の処理部1aが実現される。また、第1の処理部1aは、送信部1cから受信した入力情報4が、第1のOSで定義された切替条件に合致する場合、切替制御部1eに切替要求を送信する。例えば第1のOSには、画像6内の予め設定された検知領域への操作入力があることが、切替条件として定義されている。この場合、第1の処理部1aは、送信1cから受信した入力情報が、生成した画像6内の検知領域への操作入力を示す入力情報であるか否か判断し、検知領域への操作入力を示す入力情報検知領域への操作入力を示す入力情報である場合に、切替要求を送信する。
【0014】
第2の処理部1bは、第2のOSに基づく処理を実行する。例えば、情報処理装置1内に生成される仮想マシンによって、第2の処理部1bが実現される。
送信部1cは、第1の処理部1aまたは第2の処理部1bのいずれか一方が送信先として設定されており、設定された送信先に入力情報4を送信する。図1の例では、入力情報4は、入力装置2から入力されている。なお、ネットワークなどを介して接続された装置から、ネットワーク経由で入力情報4が入力される場合もある。
【0015】
表示制御部1dは、表示対象の画像を指定する表示対象情報を受信すると、第1の処理部1aで生成された画像6、または第2の処理部1bで生成された画像7のうち、表示対象情報によって指定された画像を表示装置3に表示させる制御を行う。例えば表示制御部1dは、表示装置3に対して指定された画像が格納された記憶領域のアドレス8を送信することで、そのアドレス8に格納されている画像を表示装置3に表示させる。
【0016】
切替制御部1eは、切替要求5を受信した場合、送信部1cの送信先の設定を、現在の送信先以外の前記第1の処理部または前記第2の処理部に切り替える。また切替制御部1eは、切替要求5を受信した場合、現在の表示されている画像とは別の画像を指定した表示対象情報を、表示制御部1dに送信する。
【0017】
このような情報処理装置1において、例えば送信部1cにおいて、送信先として第1の処理部1aが設定されており、第1の処理部1aで生成された画像6が、表示対象として指定されているものとする。この状況で入力装置2から入力情報4が入力された場合、入力情報4は送信部1cで受信され、第1の処理部1aに送信される。第1の処理部1aは、第1のOSに基づいて、入力情報4を処理する。この際、第1の処理部1aは、入力情報4が、第1のOSで定義された切替条件に合致する場合、切替要求5を切替制御部1eに送信する。
【0018】
切替要求5を受信した切替制御部1eは、送信部1cの送信先の設定を、第2の処理部1bに切り替える。すると、以後入力される入力情報は、送信部1cによって第2の処理部1bに送信される。
【0019】
また切替要求5を受信した切替制御部1eは、第2の処理部1bで生成された画像7を指定した表示対象情報を、表示制御部1dに送信する。すると、表示制御部1dにより、表示対象の画像が、第2の処理部1bで生成された画像7に変更され、画像7が表示装置3に表示される。
【0020】
このように、第1の実施の形態によれば、複数のOSそれぞれに基づいて複数の処理が実行されている状況下で、OSを実行している処理部に対する入力情報に基づいて、入力情報の送信先や、表示対象画像を切り替えることができる。このとき、入力情報4は、切り替え専用に設けられた入力装置からの入力でなくてもよい。従って、切り替え専用の入力装置以外からの入力に基づき、フォアグラウンドで動作させるOSを切り替えることが可能となる。その結果、切り替え専用の入力装置を設けずに済み、機器の小型化を促進させることができる。
【0021】
なお、OSに定義されている切替条件には、例えば、ソフトボタンを押下する入力情報の検出がある。他の切替条件としては、所定の領域内の操作対象位置の移動を示す入力情報の検出がある。さらの他の切替条件としては、所定のパターンに沿った入力情報の検出がある。以下、さまざまな切替条件に応じたOSの切替処理について、第2の〜第6の実施の形態で詳細に説明する。
【0022】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、複数の仮想マシンそれぞれで実行されるOSに、ソフトアイコンによる切替ボタンと切替操作判断部とを設ける形態である。第2の実施の形態に係る携帯端末装置は、切替ボタンの押下によって表示対象とする仮想マシンを変更し、押下した切替ボタンを離すことによってVM切替を確定する。
【0023】
なお、以下の説明では、仮想マシンをVM(virtual machine)と呼ぶ。
図2は、第2の実施の形態のシステム構成例を示す図である。携帯端末装置100は、例えばアクセスポイント装置11との間で無線通信を行うことができる。ネットワーク10には、サーバ12などが接続されている。携帯端末装置100は、アクセスポイント装置11を経由して、サーバ12と通信を行うことができる。例えば携帯端末装置100は、サーバ12からソフトウェアをダウンロードすることができる。
【0024】
サーバ12は、光ディスク13などの可搬型の記録媒体からデータを読み取るドライブ装置を有している。光ディスク13は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク13には、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。サーバ12は、光ディスク13から読み取ったOSや各種ドライバなどのソフトウェアを、携帯端末装置100に送信することもできる。
【0025】
携帯端末装置100は、組み込み機器の一例であり、予め内部の記憶媒体に格納されたソフトウェアや、サーバ12などから取得したソフトウェアを実行可能なコンピュータを内蔵している。携帯端末装置100は、内部のコンピュータにより、仮想マシンを生成することができる。仮想マシンは、CPU、主記憶、入出力装置などのコンピュータ資源を仮想化したものである。生成された各仮想マシンは、1つのコンピュータとして使用することができる。
【0026】
また携帯端末装置100は、タッチセンサ付き表示装置110を有している。タッチセンサ付き表示装置110は、表示された画像に対するユーザからの接触を検出することができる。携帯端末装置100は、ユーザが接触した位置に表示されている要素に応じて、処理を実行する。
【0027】
図3は、携帯端末装置のハードウェア構成例を示す図である。携帯端末装置100は、CPU101によって装置全体が制御されている。CPU101には、バス103を介してメモリ102と複数の周辺機器が接続されている。
【0028】
メモリ102は、携帯端末装置100の主記憶装置として使用される。メモリ102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。またメモリ102には、CPU101による処理に必要な各種データが格納される。メモリ102としては、例えばRAMなどの半導体記憶装置が用いられる。
【0029】
バス103に接続されている周辺機器には、タッチセンサ付き表示装置110が構成要素であるLCD装置111とタッチセンサ112とがある。LCD装置111は、液晶を利用した表示装置である。タッチセンサ112は、接触を検知するための素子を配置した透明なスクリーンである。LCD装置111は、タッチセンサ112で表面が覆われている。そのため、LCD装置111に表示された要素をユーザが触れると、接触位置がタッチセンサで検出される。
【0030】
バス103にはさらに、フラッシュメモリ121、カメラ122、モーションセンサ123、方位センサ124、位置センサ125、スピーカ126、機能ボタン127、および無線通信インタフェース128が接続されている。
【0031】
フラッシュメモリ121は、不揮発性記憶素子の一種である。フラッシュメモリ121としては、例えばNAND型フラッシュメモリがある。フラッシュメモリ121には、例えばハイパーバイザ、OS、ドライバ、およびアプリケーションなどのソフトウェアが格納される。CPU101は、フラッシュメモリ121からソフトウェアを読み出して、処理を実行する。
【0032】
カメラ122は、CCDイメージセンサ(Charge Coupled Device Image Sensor)などの撮像素子によって、レンズを介して入射した画像を電気信号に変換する。モーションセンサ123は、3次元で加速度を検出するセンサである。方位センサ124は、携帯端末装置100の向き(方位)を検出するセンサである。位置センサ125は、例えばGPS(Global Positioning System)の衛星からの信号を受信して、携帯端末装置100の位置を検出する。スピーカ126は、CPU101から送られた電気信号を音声に変換して出力する。機能ボタン127は、電源ボタンなどハードウェア的なボタンである。無線通信インタフェース128は、無線によって通話やデータ通信を行う。無線通信インタフェース128は、例えば第3世代移動通信システムによる通信や、Wi−Fi(Wireless Fidelity)による通信を行うことができる。
【0033】
なお、図3に示した携帯端末装置100の機能ボタン127は、仮想マシンの切り替えに用いるボタンではない。すなわち、携帯端末装置100は、タッチセンサ112以外に、仮想マシンの切り替えに用いる入力機器を有していないことから、小型化が促進されている。
【0034】
このようなハードウェア構成の携帯端末装置100において、複数のVMを用いた処理が実行される。
図4は、OS起動時の携帯端末装置の機能を示すブロック図である。携帯端末装置100は、ハイパーバイザ130を有している。コンピュータの機能を仮想化する。具体的には、ハイパーバイザ130は、CPU101、メモリ102、および入出力装置を仮想化する。仮想化される入出力装置には、LCD装置111やタッチセンサ112が含まれる。ハイパーバイザ130が仮想的に生成したコンピュータがVMである。ハイパーバイザ130が生成するVMには、管理VM140、ドライバVM150,160、およびOSを実行するVM170,180などがある。VM170,180には、識別子(VMID)が設定されている。例えばVM170のVMIDは「VM#1」であり、VM180のVMIDは「VM#2」である。
【0035】
管理VM140では、OS起動部141とVM間通信設定部142とが実行される。OS起動部141は、OSを実行するVM170に対して、OSの実行を指示する。例えば、OS起動部141は、フラッシュメモリ121に格納されている複数のOSプログラムのうちの1つの実行を、VM170,180それぞれに指示する。各VM170,180は、指定されたOSのプログラムのブートシーケンスを実行することにより、それぞれOS170a,180aを起動する。ここで、OS170aの識別子は「OS#1」、OS180aの識別子は「OS#2」であるものとする。
【0036】
VM間通信設定部142は、VMで実行されている機能に対して、VM間通信を可能とする設定を行う。例えばVM間通信設定部142には、VM170,180で起動されるOS170a,180aの識別子と、そのOSに通信を許可するドライバVM150,160内の要素との対応関係を示す情報が予め設定されている。OSとの通信を許可するドライバVM150,160内の要素は、VM対応タッチセンサドライバ151、VM対応LCDドライバ161、切替制御部162などである。
【0037】
そしてVM間通信設定部142は、例えばVM170で起動されたOS170aに対して、そのOS170aの通信相手として許可する他のVMのVMIDや、共有メモリ領域を送信する。同様に、他のOS180aやドライバVM150,160内の要素に対しても、通信相手として許可するVMのVMIDや、共有メモリ領域が送信される。各VMにおいて、他のVMとの共有メモリ領域はチャネルとして認識される。すなわち、各VMが他のVMに対応するチャネルへのデータ送信処理を行うと、送信データが共有メモリ領域に書き込まれる。
【0038】
各VM内のOSや要素は、通信相手のVMに送信するデータを、通信相手のVMに対応する共有メモリ領域に格納する。各VMは、自己に対応するVM間通信用の共有メモリ領域に対して他のVMから格納されたデータを、その共有メモリ領域から取得する。このようにして、VM間での通信が可能となる。なおVM間通信の方式として、別の方式を適用することも可能である。例えばハイパーバイザ130内で仮想ネットワークを構築し、各VM内のOSが、ネットワーク通信と同様の処理で他のVM内のOSと通信できるようにすることも可能である。その場合、VM間通信設定部142から各VM内のOSには、通信相手の仮想ネットワーク上でのアドレスや通信ポートが送信される。
【0039】
ドライバVM150は、タッチセンサ112からの入力切替を行うVMである。ドライバVM150では、VM対応タッチセンサドライバ151が実行される。VM対応タッチセンサドライバ151は、タッチセンサ112からの入力信号の出力先を切り替える。すなわちユーザがタッチセンサ112の表面にユーザの指などが接触すると、接触位置がタッチセンサ112からVM対応タッチセンサドライバ151に入力される。また、VM対応タッチセンサドライバ151には、ドライバVM160で実行されている切替制御部162から、タッチセンサ112によるフォアグラウンドで動作させるVMの識別子(VMID)が送信される。VM対応タッチセンサドライバ151は、タッチセンサ112から入力された情報を、切替制御部162により指定されたOS内のタッチセンサドライバに送信する。
【0040】
ドライバVM160は、LCD装置111への出力切替を行うVMである。また、ドライバVM160は、タッチセンサ112から入力された情報の送信先のVMの決定、およびLCD装置111で表示する画像情報の取得元となるVMの決定を行う。そのためにドライバVM160は、VM対応LCDドライバ161と切替制御部162とを有する。
【0041】
VM対応LCDドライバ161は、LCD装置111に対して、表示する画像データが格納されたフレームバッファの記憶領域を指示する。例えばVM170で動作しているOS170aの画像データをLCD装置111に表示させる場合、VM対応LCDドライバ161は、VM170内のフレームバッファのアドレスをLCD装置111に送信する。なおVM対応LCDドライバ161は、どのVMの画像をLCD装置111に表示させるのかは、切替制御部162からの指示に従う。例えばVM対応LCDドライバ161には、切替制御部162からLCD装置111への表示対象のVMの識別子(VMID)が送信される。VM対応LCDドライバ161は、切替制御部162により指定されたVMで実行されているOSのフレームバッファのアドレスをLCD装置111に送信する。
【0042】
切替制御部162は、タッチセンサ112による操作対象とするVMの切り替え、およびLCD装置111への表示対象とするVMの切り替えを制御する。例えば切替制御部162は、操作対象となっているVMからのフロント切替通知に応じて、次の操作対象候補となるVMのVMIDを判断する。切替制御部162は、操作対象候補のVMを表示対象のVMに決定し、そのVMのVMIDをVM対応LCDドライバ161に送信する。また切替制御部162は、操作対象となっているVMからのフロント切替確定通知に応じて、操作対象候補のVMへの操作対象の切替を決定する。そして切替制御部162は、操作対象候補であったVMのVMIDを、操作対象のVMのVMIDとしてVM対応タッチセンサドライバ151に送信する。
【0043】
図5は、切替制御部の内部構造の一例を示す図である。切替制御部162は、VM切替テーブル162a、操作対象ポインタ162b、および表示対象ポインタ162cを有している。VM切替テーブル162a、操作対象ポインタ162b、および表示対象ポインタ162cは、共にメモリ102内に格納される。
【0044】
VM切替テーブル162aには、操作対象のVMおよび表示対象のVMを切り替える際の順番が定義されている。図5の例では、VM切替テーブル162aには、操作VMと次候補VMとの欄が設けられている。各欄の横方向に並べられた情報同士が対応付けられている。
【0045】
操作VMの欄には、ハイパーバイザ130により生成されたVMのVMIDが設定されている。なお操作VMの欄には、ユーザインタフェースを有するプログラムを実行しているVMのVMIDが設定される。例えば、OSが実行されているVMのVMIDが、操作VMの欄に設定される。この場合、デバイスドライバを実行しているドライバVM150,160のVMIDは、操作VMの欄には設定されない。また、管理VM140が新たなOSの起動指示の受け付け用のユーザインタフェースを有していれば、管理VM140のVMIDを操作VMの欄に設定しておくこともできる。
【0046】
次候補VMの欄には、操作VMの欄の対応するVMIDで示されるVMがユーザからの操作対象であった場合に、VM切り替え処理によって次に操作対象となるVMのVMIDが設定される。例えば図5の例では、「VM#1」のVMが操作対象の場合、VM切り替えが行われると、次候補VMである「VM#3」が操作対象となる。
【0047】
操作対象ポインタ162bには、現在においてユーザからの操作対象となっているVMを示すポインタが設定される。例えば操作対象ポインタ162bには、VM切替テーブル162aの操作VMの欄における、現在において操作対象となっているVMのVMIDの位置を示す情報(図中矢印で示す)が設定される。図5の例では、「VM#1」のVMが現在の操作対象VMであることが、操作対象ポインタ162bに示されている。
【0048】
表示対象ポインタ162cには、現在において表示対象となっているVMを示すポインタが設定される。例えば表示対象ポインタ162cには、VM切替テーブル162aの操作VMの欄における、現在において表示対象となっているVMのVMIDの位置を示す情報(図中矢印で示す)が設定される。図5の例では、「VM#2」のVMが現在の表示対象のVMであることが、表示対象ポインタ162cに示されている。
【0049】
VM切替処理開始前は、操作対象ポインタ162bと表示対象ポインタ162cとは、同じ位置を指し示している。そして、切替制御部162により、VM切替テーブル162aに示された順番で、操作対象のVMおよび表示対象のVMの切り替えが行われる。すなわち切替制御部162は、操作対象のVMを切り替えるタイミングになると、操作対象ポインタ162bの内容を、現在の操作対象のVMの次候補VMを指し示すように変更する。また切替制御部162は、表示対象のVMを切り替えるタイミングになると、表示対象ポインタ162cの内容を、現在の表示対象のVMの次候補VMを指し示すように変更する。
【0050】
例えば操作対象ポインタ162bと表示対象ポインタ162cとが、操作VMの欄の「VM#1」の位置を指しているものとする。この状態で、タッチセンサ付き表示装置110へのユーザからの操作によりVM切替処理が開始されると、まず表示対象ポインタ162cが、次候補VMの位置を指し示すように更新される。すなわち「VM#1」に対応する次候補VM「VM#2」である。そこで表示対象ポインタ162cは、操作VMの欄の「VM#2」の位置を指し示すように更新される。この状態で、VMの切り替えが確定すると、表示対象ポインタ162cと同じ位置を指し示すように、操作対象ポインタ162bが更新される。すなわち操作対象ポインタ162bは、操作VMの欄の「VM#2」の位置を指し示すように更新される。
【0051】
第2の実施の形態では、ユーザによる切替ボタンの押下を検出したタイミングが、表示対象のVMを切り替えるタイミングである。また、ユーザによる切替ボタンの押下からの解放を検出したタイミングが、操作対象のVMを切り替えるタイミングである。
【0052】
次に、VM170,180で起動されたOS170a,180a内の機能について説明する。
図6は、OS起動後の携帯端末装置の機能を示す図である。なお図6では、管理VM140については省略されている。
【0053】
VM170は、ゲストOSと呼ばれるOS、およびそのOS上で実行されるアプリケーションソフトウェアを実行する。なお図6では、OSの機能を実現する要素のうち、VM切替の制御に関連する要素のみを示している。
【0054】
VM170は、OSの機能を実現する要素として、メニュー制御部171、切替ボタン制御部172、および入出力ドライバ173を有する。メニュー制御部171は、LCD装置111に操作用のメニューを表示する。メニューには、例えば複数の操作項目が含まれている。メニュー制御部171は、タッチセンサ112に対してユーザが接触した位置に表示されている操作対象項目に対応する処理機能に対し、ボタン押下を示す情報を送信する。
【0055】
切替ボタン制御部172は、メニュー内の操作対象項目の1つである切替ボタンに対応付けられた処理機能である。切替ボタン制御部172は、切替ボタンに対するボタン押下を示す情報をメニュー制御部171から取得すると、ボタン押下イベントを切替操作判断部173fに送信する。ボタン押下イベントは、例えば切替操作判断部173fを起動する関数の実行命令である。また切替ボタン制御部172は、切替ボタンが押下状態から解放されると、ボタン解放イベントを切替操作判断部173fに送信する。
【0056】
入出力ドライバ173は、入力信号の解析、および画像出力を行う。また入出力ドライバ173は、操作対象を他のVMへ切り替える要求を、切替制御部162へ送信する。そのために入出力ドライバ173は、タッチセンサドライバ173a、入力解析部173b、画像制御部173c、LCDドライバ173d、フレームバッファ173e、および切替操作判断部173fを有する。
【0057】
タッチセンサドライバ173aは、タッチセンサ112からの信号を受信する。タッチセンサドライバ173aは、受信した信号を入力解析部173bに渡す。入力解析部173bは、タッチセンサ112から入力された信号を解析して、タッチセンサ112へのユーザの接触状況を判断する。例えば、ユーザがタッチセンサ112に新たに接触したのか、接触状態が終了(リリース)したのかが判断される。入力解析部173bは、判断結果をメニュー制御部171に送信する。例えば入力解析部173bは、接触された位置の座標やリリースされた位置の座標を、メニュー制御部171に送信する。
【0058】
画像制御部173cは、LCD装置111に表示する画像データを生成する。例えば画像制御部173cは、メニュー制御部171からメニューの情報を取得し、画像データを生成する。画像制御部173cは、生成した画像データをLCDドライバ173dに渡す。
【0059】
LCDドライバ173dは、画像制御部173cから渡された画像データをLCD装置111に表示可能なビットマップ形式の画像に変換し、フレームバッファ173eに格納する。
【0060】
フレームバッファ173eは、ビットマップの画像を記憶する。例えば、メモリ102内の記憶領域の一部がフレームバッファ173eとして使用される。
切替操作判断部173fは、切替ボタン制御部172から出力されたボタン押下イベントに応じて、VMの切替判断を行う。例えば切替操作判断部173fは、ボタン押下イベントが入力されると、切替モードを「On」にする。切替モードとは、ゲストOSの動作モードである。操作対象のVMの切り替え制御中であれば切替モードは「On」であり、操作対象のVMの切替制御中でなければ切替モードは「Off」である。切替操作判断部173fは、例えば切替ボタン制御部172からボタン解放イベントが入力されると、切替モードを「Off」に設定する。切替モードが「On」(切り替え制御中)に設定されている間、タッチセンサ112に入力される操作情報が、LCD装置111に表示するVMを変更させるための情報として扱われる。切替操作判断部173fは、切替モードを「On」したときに、例えば切替制御部162に、VMの仮切替要求を送信する。また切替操作判断部173fは、切替モードを「Off」したときに、例えば切替制御部162に、VMの切替確定要求を送信する。なお仮切替要求は、例えば表示対象のVMの切替を要求するコマンドである。また切替確定要求は、例えば操作対象のVMを、現在表示対象のVMに切り替えることを要求するコマンドである。
【0061】
VM180は、OSの機能を実現する要素として、メニュー制御部181、切替ボタン制御部182、および入出力ドライバ183を有する。また入出力ドライバ183は、タッチセンサドライバ183a、入力解析部183b、画像制御部183c、LCDドライバ183d、フレームバッファ183e、および切替操作判断部183fを有する。VM180内の各要素の機能は、VM170内の同名の要素の機能と同じである。
【0062】
なお、図6に示す各要素間を結ぶ線は、主な通信経路を示すものであり、図示した通信経路以外の通信経路も設定可能である。
以上のような機能の携帯端末装置100により、複数のOSがVMによって実行されると共に、タッチセンサへのユーザからの操作入力によって、操作対象となるVMの切り替えが行われる。
【0063】
図6に示すように切替操作判断部173f,183fを、VMごとにOSのデバイスドライバとして設けた場合、例えば切替操作判断部173f,183fの機能が、各OSのアプリケーションソフトウェアによって実現できる。そして、切り替え操作開始を示すイベントを発生させる切替ボタン制御部172,182がメニュー画面上のソフトアイコン(切替ボタン)に対応付けられていることで、ソフトアイコン押下によって、切り替え操作開始を示すイベントが発生する。
【0064】
例えばVM170内の切替ボタン制御部172で発生した切り替え操作開始を示すイベントは、切替操作判断部173fで受信される。切り替え操作開始を示すイベントを受信した切替操作判断部173fは、VM仮切替要求を切替制御部162に送る。切替制御部162は、予め設定された切り替え順序情報から、次に表示対象とするVMを選択する。
【0065】
例えばVM180が表示対象として選択された場合、VM180で実行されているOSのフレームバッファのアドレスが、VM対応LCDドライバ161を介してLCD装置111に設定される。その結果、LCD装置111に表示される画像は、VM180がOSを実行することで生成した画像に切り替えられる。その後、切替ボタン押下の状態が解放(リリース)状態になることによって、切替確定要求が発生する。切替確定要求は、切替操作判断部173fで受信される。切替確定要求を受信した切替操作判断部173fにより、現在の表示対象のVM180を切り替え先として確定するためのVM切替確定要求が、切替制御部162に送られる。すると切替制御部162により、タッチセンサ112からの位置情報の送信先が、現在の表示対象のVM180に切り替えられる。
【0066】
図7は、第2の実施の形態におけるVM切り替え操作の一例を示す図である。図7には、VM170からVM180へ、操作対象、および表示対象を切り替える場合の例を示している。第1の状態は、表示対象の切替前の状態である。第2の状態は、表示対象切替後の状態である。
【0067】
VM170では「OS#1」のOS170aが実行されている。そのOS170aのメニュー画面20には、ソフトアイコンとして、切替ボタン21と複数の機能ボタン22〜26が表示されている。
【0068】
切替ボタン21は、切替ボタン制御部172に対応するボタンである。機能ボタン22〜26は、OS170aに実装されたアプリケーションソフトウェアなどの各種機能に対応するボタンである。
【0069】
メニュー画面20に含まれる切替ボタン21が押下されると、VMの切り替えが行われる。例えばユーザが指41で切替ボタン21を押下すると、表示対象のVMが切り替えられる。図5に示したVM切替テーブル162aでは、「VM#1」の次候補VMは「VM#2」である。そこでVMIDが「VM#1」のVM170のメニュー画面20中の切替ボタン21が押下されると、表示対象のVMがVM180に切り替えられる。
【0070】
表示対象のVMが切り替えられると、携帯端末装置100には、VM180で実行されているOS180aのメニュー画面30が表示される。OS180aのメニュー画面30には、切替ボタン31と複数の機能ボタン32〜36が表示されている。なお、ユーザが指41でタッチセンサ付き表示装置110に接触している間は、表示対象はVM180に切り替わっているが、操作対象はVM170のままとなっている。ここで、ユーザが指41を携帯端末装置100のタッチセンサ付き表示装置110から離す(リリースする)と、操作対象のVMが、VM170からVM180に切り替えられる。
【0071】
すなわち切替ボタン21の押下操作で、携帯端末装置100に表示するVMの画面が変更され、切替ボタン21のリリースによってVMの切替が確定される。切替の確定によって、タッチセンサからの入力経路も表示しているVMに切り替えられる。
【0072】
次に、VM切替処理の手順を詳細に説明する。
図8は、第2の実施の形態のVM切替処理の手順を示すシーケンス図である。以下、図8に示す処理をステップ番号に沿って説明する。
【0073】
[ステップS11]ユーザ40が、タッチセンサ112の切替ボタン21に対応する部分を押下する。
[ステップS12]タッチセンサ112は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ151に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0074】
[ステップS13]VM対応タッチセンサドライバ151は、接触があったことを示す情報を受け取ると、操作対象ポインタ162bを参照し、現在において操作対象となっているVMを判断する。図8の例では、VM170が操作対象であるものとする。そしてVM対応タッチセンサドライバ151は、操作対象のVM170のタッチセンサドライバ173aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0075】
[ステップS14]タッチセンサドライバ173aは、接触があったことを示す情報を受け取ると、入力解析部173bに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0076】
[ステップS15]入力解析部173bは、接触があったことを示す情報を取得すると、取得した情報を解析する。例えば、直前まで接触がなかった位置に新たに接触があったのであれば、入力解析部173bは、接触が開始されたと判断する。この場合、入力解析部173bは、接触開始を示す情報をメニュー制御部171に送信する。接触開始を示す情報には、接触が開始された位置の座標が含まれる。
【0077】
[ステップS16]メニュー制御部171は、接触開始を示す情報を取得すると、接触が開始された位置に表示されているオブジェクトを判断する。接触が開始された位置に、処理機能が対応付けられたオブジェクト(例えばボタン)が表示されている場合、メニュー制御部171は、そのオブジェクトに対応する機能を実行する。図8の例では、接触が開始された位置に、切替ボタン21が表示されているものとする。この場合、メニュー制御部171は、切替ボタン制御部172に対してボタン押下を示す情報を送信する。ボタン押下を示す情報には、接触された位置を示す座標が含まれる。
【0078】
[ステップS17]切替ボタン制御部172は、ボタン押下を示す情報を取得すると、ボタン押下イベントを、切替操作判断部173fに送信する。
[ステップS18]切替操作判断部173fは、ボタン押下イベントを取得すると、切替モードを「On」に変更する。そして切替操作判断部173fは、次候補へのVM仮切替要求を、切替制御部162に送信する。
【0079】
[ステップS19]切替制御部162は、VM切替テーブル162aと操作対象ポインタ162bとを参照し、次候補のVMを特定する。すなわち切替制御部162は、操作対象ポインタ162bで指し示されているVMの次候補VMとして設定されているVMIDを取得する。そして切替制御部162は、表示切替要求をVM対応LCDドライバ161に送信する。表示切替要求には、次候補のVMのVMIDが含まれる。
【0080】
[ステップS20]VM対応LCDドライバ161は、表示切替要求に応じて、表示対象のフレームバッファを選択する。例えばVM対応LCDドライバ161は、各VM170,180のVMIDそれぞれに対応付けて、それぞれで動作しているOS170a,180aのフレームバッファのアドレスが設定されている。VM対応LCDドライバ161は、表示切替要求に含まれるVMIDで示されたVMで動作しているOSのフレームバッファのアドレスを選択する。図8の例では、VM170で動作しているOSのフレームバッファのアドレスが選択される。
【0081】
なお現段階では、表示対象の切り替えは未確定であり、切り替えがキャンセルされる可能性が残されている。そこでVM対応LCDドライバ161は、例えば、表示対象のVMの切り替え前のフレームバッファのアドレスをメモリに保持しておく。VM対応LCDドライバ161は、切り替えがキャンセルされた場合には、保持しておいた表示対象のVMの切り替え前のフレームバッファのアドレスをLCD装置111に指定することで、表示対象のVMを元に戻すことができる。
【0082】
[ステップS21]VM対応LCDドライバ161は、表示バッファ指定をLCD装置111に送信する。表示バッファ指定には、ステップS20で選択したフレームバッファのアドレスによって、LCD装置111で表示する画像の格納場所が指定されている。するとLCD装置111は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0083】
このようにして、表示対象のVMが切り替えられ、次候補のVMで実行されているOSの画面がLCD装置111に表示される。
[ステップS22]ユーザ40は、表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置110から、指等の接触部を離す。すなわち、切替ボタンの解放(リリース)が行われる。
【0084】
[ステップS23]タッチセンサ112は、切替ボタンが解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ151に送信する。
[ステップS24]VM対応タッチセンサドライバ151は、接触状態が解放されたことを示す情報を受け取ると、操作対象ポインタ162bを参照し、現在において操作対象となっているVMを判断する。図8の例では、VM170が操作対象であるものとする。そしてVM対応タッチセンサドライバ151は、操作対象のVM170のタッチセンサドライバ173aに対して、接触状態が解放されたことを示す情報を送信する。
【0085】
[ステップS25]タッチセンサドライバ173aは、接触状態が解放されたことを示す情報を受け取ると、入力解析部173bに対して、接触状態が解放されたことを示す情報を送信する。
【0086】
[ステップS26]入力解析部173bは、接触状態が解放されたことを示す情報を取得すると、取得した情報を解析する。例えば、接触されていた位置の移動を経ずに接触状態が解放されたのであれば、入力解析部173bは、接触終了と判断する。この場合、入力解析部173bは、接触終了を示す情報をメニュー制御部171に送信する。
【0087】
なお、接触されていた位置が移動された後に接触状態が解放された場合、例えば入力解析部173bは、ボタン表示位置の変更操作が行われたものと解釈し、変更後の位置をメニュー制御部171に送信する。
【0088】
[ステップS27]メニュー制御部171は、接触終了を示す情報を取得すると、接触状態が終了したオブジェクトに対して、ボタン解放を示す情報を送信する。図8の例では、切替ボタン制御部172に対してボタン解放を示す情報が送信される。
【0089】
[ステップS28]切替ボタン制御部172は、ボタン解放を示す情報を取得すると、ボタン解放イベントを、切替操作判断部173fに送信する。
[ステップS29]切替操作判断部173fは、ボタン解放イベントを取得すると、切替モードを「Off」に変更する。そして切替操作判断部173fは、次候補への切替の確定を示すVM切替確定要求を、切替制御部162に送信する。
【0090】
[ステップS30]切替制御部162は、VM切替確定要求を取得すると、表示切替の確定を示す表示切替要求を、VM対応LCDドライバ161に送信する。VM対応LCDドライバ161では、ステップS20で選択したフレームバッファを、表示バッファとして確定する。
【0091】
[ステップS31]切替制御部162は、VM対応LCDドライバ161から、表示切替の確定結果を取得する。例えば切替制御部162は、VM対応LCDドライバ161に対して、現在の表示対象のフレームバッファに対応するVMIDを要求する。切替制御部162は、VM対応LCDドライバ161から応答されたVMIDが、切替先として確定したVMのVMIDと一致することを確認する。
【0092】
[ステップS32]切替制御部162は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ151に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0093】
[ステップS33]VM対応タッチセンサドライバ151は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ151は、以後のタッチセンサ112からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0094】
このようにして、タッチセンサ112へのユーザからの操作入力に応じたVMの切替が行われる。以下、切替操作判断部173fと切替制御部162との処理について、詳細に説明する。
【0095】
図9は、第2の実施の形態のVM切替判断処理の手順を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS41]切替操作判断部173fは、切替ボタン制御部172からのイベントを取得する。
【0096】
[ステップS42]切替操作判断部173fは、切替モードが「On」か否かを判断する。なお切替モードの初期状態は「Off」である。切替操作判断部173fは、切替モードが「On」であれば処理をステップS46に進める。切替操作判断部173fは、切替モードが「Off」であれば処理をステップS43に進める。
【0097】
[ステップS43]切替操作判断部173fは、切替モードが「Off」の場合、取得したイベントがボタン押下イベントか否かを判断する。切替操作判断部173fは、ボタン押下イベントであれば処理をステップS44に進める。切替操作判断部173fは、ボタン押下イベントでなければ処理を終了する。
【0098】
[ステップS44]切替操作判断部173fは、切替モードを「On」にする。
[ステップS45]切替操作判断部173fは、VM仮切替要求を切替制御部162に送信する。その後、処理が終了する。
【0099】
[ステップS46]切替操作判断部173fは、切替モードが「On」の場合、取得したイベントがボタン解放イベントか否かを判断する。切替操作判断部173fは、ボタン解放イベントであれば処理をステップS47に進める。切替操作判断部173fは、ボタン解放イベントでなければ処理を終了する。
【0100】
[ステップS47]切替操作判断部173fは、切替モードを「Off」にする。
[ステップS48]切替操作判断部173fは、VM切替確定要求を、切替制御部162に送信する。その後、処理が終了する。
【0101】
このようにして、切替ボタン制御部172から取得したイベントに応じた処理が行われる。例えば、ボタン押下イベントを受信した場合、切り替えモードの初期状態のままであり、「Off」状態であると判断される。さらに、ボタン押下イベントか否かの判定においてYESと判断され、切替モードが「On」に変更される。そして、切替制御部162に対して、VM仮切替要求が送信される。
【0102】
他方、ボタン解放イベントを受信した場合、その時の切替モードは「On」状態なので、ボタン解放イベントか否かが判断する。切替モードは「On」の状態で発行されるイベントのうち、ボタン解放イベント以外のイベントとしては、例えば横移動のイベントがある。ボタン解放イベントであれば、切替モードが「Off」に設定される。そして、切替制御部162に、VM切替確定要求が送信される。
【0103】
このようにして、切り替えソフトボタンからのボタン押下イベントとボタン解放イベントに応じて、切り替え操作開始を示すVM仮切替要求や切替確定要求が出される。
次に、切替制御部162による切替制御処理を詳細に説明する。
【0104】
図10は、第2の実施の形態の切替制御処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS51]切替制御部162は、他のVMからのメッセージを受信する。
【0105】
[ステップS52]切替制御部162は、受信したメッセージが操作対象のVMからのメッセージか否かを判断する。切替制御部162は、操作対象のVMからのメッセージであれば、処理をステップS53に進める。切替制御部162は、操作対象のVM以外のVMからのメッセージであれば、切替制御処理を終了する。
【0106】
[ステップS53]切替制御部162は、受信したメッセージの内容が、VM仮切替要求か否かを判断する。切替制御部162は、VM仮切替要求であれば処理をステップS54に進める。切替制御部162は、VM仮切替要求でなければ処理をステップS57に進める。
【0107】
[ステップS54]切替制御部162は、VM仮切替要求を受信した場合、現在表示対象のVMの次候補VMを取得する。具体的には、切替制御部162は、VM切替テーブル162aの中から、表示対象ポインタ162cで指し示されている操作VMを特定する。そして、切替制御部162は、特定した操作VMに対応付けられた次候補VMのVMIDを取得する。
【0108】
[ステップS55]切替制御部162は、次候補VMへの画面切替指示を行う。具体的には、切替制御部162は、表示対象ポインタ162cで指し示された位置のVMのVMIDを指定した表示切替要求を、VM対応LCDドライバ161に送信する。
【0109】
[ステップS56]切替制御部162は、表示対象のVMを更新する。例えば、切替制御部162は、ステップS54で取得した次候補VMを操作VMとするVM切替テーブル162a内のレコードの位置を、表示対象ポインタ162cに設定する。その後、処理が終了する。
【0110】
[ステップS57]切替制御部162は、取得したメッセージの内容がVM切替要求でない場合、VM切替確定要求か否かを判断する。切替制御部162は、VM切替確定要求であれば、処理をステップS58に進める。また切替制御部162は、VM切替確定要求でなければ、処理を終了する。
【0111】
[ステップS58]切替制御部162は、VM切替確定要求を取得した場合、表示対象のVMを、操作対象のVMとする。具体的には、切替制御部162は、表示対象ポインタ162cに設定されている情報を、操作対象ポインタ162bに設定する。これにより、操作対象ポインタ162bと表示対象ポインタ162cとは、VM切替テーブル162a内の同じレコードを指し示すこととなる。
【0112】
[ステップS59]切替制御部162は、表示切替確定指示を行う。具体的には、切替制御部162は、VM対応LCDドライバ161に対して、表示切替確定を示す表示切替要求を送信する。その後、切替制御部162は、VM対応LCDドライバ161から表示切替の確定結果を取得し、正しく切り替えられたことを確認する。
【0113】
[ステップS60]切替制御部162は、操作対象VMの切替指示を行う。具体的には、切替制御部162は、VM対応タッチセンサドライバ151に対して、切替先のVMのVMIDを指定した操作切替要求を送信する。切替先のVMのVMIDは、操作対象ポインタ162bで指し示されている位置に設定されているVMIDである。その後、処理が終了する。
【0114】
図11は、仮切替要求の通信例を示す図である。VM170の切替操作判断部173fは、切替要求送信先173−1を保持している。切替要求送信先173−1は、仮切替要求の送信先となるチャネルの識別番号(チャネル番号)である。切替要求送信先173−1のチャネル番号は、例えばVM170内のOS170aの起動時に、VM間通信設定部142により通知される。図11の例では、切替要求送信先173−1として「channel#1」が設定されている。
【0115】
ハイパーバイザ130は、VM間の通信に用いるチャネルに対応するリングバッファ131を有している。図11に示すリングバッファ131は、チャネル番号「channel#1」のチャネルに対応付けられており、VM170からドライバVM160への情報の送信に使用される。リングバッファ131は、VM170の共有メモリ174内のアドレスを示すインデックスを格納する単位記憶領域が複数設けられている。またリングバッファ131には、送信側カレントポインタと受信側カレントポインタとが設定されている。
【0116】
送信側カレントポインタは、情報を送信するVM170が次にインデックスを書き込む単位記憶領域の位置を示す情報である。送信側カレントポインタは、単位記憶領域にインデックスが書き込まれるごとに、指し示す単位記憶領域が1つずつずらされる。リングバッファ131の最後尾の単位記憶領域にインデックスが書き込まれた場合、送信側カレントポインタが指し示す位置は、リングバッファ131の先頭の単位記憶領域の位置に変更される。
【0117】
受信側カレントポインタは、情報を受信するドライバVM160が、次にインデックスを読み出す単位記憶領域の位置を示すポインタである。受信側カレントポインタは、単位記憶領域からインデックスが読み出されるごとに、指し示す単位記憶領域が1つずつずらされる。リングバッファ131の最後尾の単位記憶領域からインデックスが読み出された場合、送信側カレントポインタが指し示す位置は、リングバッファ131の先頭の単位記憶領域の位置に変更される。
【0118】
切替操作判断部173fは、仮切替要求をドライバVM160に送信する場合、仮切替要求を共有メモリ174に格納する。なお仮切替要求は、例えばVMの仮切替を要求するコマンドである。次に切替操作判断部173fは、切替要求送信先173−1から、ドライバVM160への情報の送信に使用するチャネルのチャネル番号を取得する。次に切替操作判断部173fは、取得したチャネル番号に対応するリングバッファ131における送信側カレントポインタで示される単位記憶領域に、仮切替要求を格納した共有メモリ174内の位置を示すインデックスを格納する。するとハイパーバイザ130により、送信側カレントポインタが示す単位記憶領域の位置が、次の単位記憶領域の位置にずらされる。
【0119】
さらに切替操作判断部173fは、切替要求送信先173−1で示されるチャネル番号を指定して、情報送信イベントの発生を示すハイパーバイザコールをハイパーバイザ130に対して出力する。するとハイパーバイザ130は、指定されたチャネルの受信側であるドライバVM160に対して、チャネル番号を指定して、受信情報の発生を示すシグナルを出力する。ドライバVM160の切替制御部162は、シグナルを受け取ることで受信情報があることを認識し、リングバッファ131の受信側カレントポインタで示される単位記憶領域からインデックスを読み出す。するとハイパーバイザ130により、受信側カレントポインタが示す単位記憶領域の位置が、次の単位記憶領域の位置にずらされる。
【0120】
リングバッファ131からインデックスを読み出した切替制御部162は、VM170の共有メモリ174内のインデックスで示される位置から、仮切替要求を取得する。
このようにして、VM170からドライバVM160へ、仮切替要求が送信される。なお、図11では仮切替要求の送信処理として説明したが、切替確定要求も同様の処理によって送信することができる。
【0121】
次に、VM対応LCDドライバ161による画面切替処理について詳細に説明する。
図12は、LCDの表示切替処理の一例を示す図である。メモリ102の記憶領域には、ハイパーバイザ用領域102a、VM#1用領域102b、VM#2用領域102cが設けられている。VM#1用領域102bには、VMIDが「VM#1」であるVM170のフレームバッファ領域102dが含まれている。フレームバッファ領域102dの開始アドレスは「add#1」である。VM#2用領域102cには、VMIDが「VM#2」であるVM180のフレームバッファ領域102eが含まれている。フレームバッファ領域102eの開始アドレスは「add#2」である。
【0122】
VM対応LCDドライバ161は、フレームバッファアドレスリスト161aを有している。フレームバッファアドレスリスト161aには、各VMに対応付けて、VMのフレームバッファ領域の開始アドレスが設定されている。
【0123】
LCD装置111は、DMA(Direct Memory Access)制御部111a、フレームバッファ111b、表示制御部111c、および液晶画面111dを有している。DMA制御部111aは、取得元開始アドレス111eを内部のメモリに保持している。取得元開始アドレス111eは、画像データの取得元となるフレームバッファの開始アドレスである。DMA制御部111aは、メモリ102内の取得元開始アドレス111eに示されたアドレスから開始されるフレームバッファ領域内の画像データを所定間隔(例えば1秒間に60回)で定期的に、フレームバッファ111bにDMA転送する。フレームバッファ111bは、画面に表示する画像データを記憶するメモリである。表示制御部111cは、フレームバッファ111bに格納された画像データに基づいて、液晶画面111dに画像を表示させる回路である。液晶画面111dは、液晶を用いた表示装置である。
【0124】
ここで、ドライバVM160内の切替制御部162が、VMID「VM#2」に更新する場合を想定する。この場合、切替制御部162により、表示対象ポインタ162c(図5参照)の指し示す位置が、VM切替テーブル162a内の「VM#2」の位置に変更される。すると、切替制御部162からVM対応LCDドライバ161へ、表示対象ポインタ162cが指し示す位置のVMID「VM#2」が出力される。
【0125】
VM対応LCDドライバ161は、VMID「VM#2」を受信すると、フレームバッファアドレスリスト161aを参照し、VMID「VM#2」に対応するアドレス「add#2」を取得する。そしてVM対応LCDドライバ161は、取得したアドレス「add#2」を、LCD装置111に送信する。
【0126】
LCD装置111のDMA制御部111aは、受信したアドレス「add#2」を取得元開始アドレス111eとして記憶する。そしてDMA制御部111aは、アドレス「add#2」から開始されるフレームバッファ領域102e内の画像データを、定期的にフレームバッファ111bにDMA転送する。フレームバッファ111bに書き込まれた画像データの内容は、表示制御部111cにより液晶画面111dに表示される。
【0127】
このようにして、表示画面が切り替えられる。
次に、タッチセンサからの入力の送信先切替処理について詳細に説明する。
図13は、送信先切替処理の一例を示す図である。VM対応タッチセンサドライバ151は、操作VM情報151aとチャネルリスト151bとを記憶している。操作VM情報151aは、現在の操作対象となっているVMのVMIDである。チャネルリスト151bには、OSを実行するVMごとに、VMへの入力情報の送信に使用するチャネルのチャネル番号が設定されている。なお、各VMに対応するチャネルのチャネル番号は、OSを実行するVMが起動された際に、VM間通信設定部142によって通知される。
【0128】
またVM対応タッチセンサドライバ151は、VM間通信に使用する共有メモリ151cを有している。
VM対応タッチセンサドライバ151は、ドライバVM160内の切替制御部162からVM間通信によりVMID「VM#2」を取得する。なお、切替制御部162からVM対応タッチセンサドライバ151へのVM間通信の方法は、図11に示した仮切替要求の通信方法と同様である。VM対応タッチセンサドライバ151は、切替制御部162からVMID「VM#2」を受け取ると、そのVMIDを操作VM情報151aとして記憶する。
【0129】
その後、タッチセンサ112から、例えば接触した位置の座標が入力される。するとVM対応タッチセンサドライバ151は、入力された座標を共有メモリ151cに格納する。次にVM対応タッチセンサドライバ151は、チャネルリスト151bから、操作VM情報151aで示されるVMID「VM#2」に対応するチャネルID「channel#12」を取得する。さらにVM対応タッチセンサドライバ151は、取得したチャネルID「channel#12」に対応する、ハイパーバイザ130内のリングバッファに、座標を格納した共有メモリ151c内の位置を示すインデックスを格納する。そしてVM対応タッチセンサドライバ151は、チャネルID「channel#12」への送信情報があることを示すハイパーバイザコールを、ハイパーバイザ130に出力する。VM対応タッチセンサドライバ151がこのような動作を行うことで、図11に示した仮切替要求のVM間通信と同様のVM間通信により、タッチセンサ112からの入力情報が、現在の操作対象のVMに送信される。
【0130】
以上のようにして、タッチセンサ付き表示装置110への操作によりVMの切り替えが可能となり、携帯端末装置100の小型化が促進されている。しかも、フォアグラウンドで動作しているVMを全画面で表示している状態からVMの切り替えが可能であり、表示画面を有効に利用できる。
【0131】
さらに、VMの切り替え操作の検出やVM切り替え制御をVM上で実行するため、物理ボタン押下のように、ハイパーバイザ130で入出力経路の切り替え機能を持たなくてもVMの切り替えが可能となる。また、切替モードを管理し、切り替えが確定するまでは仮切り替えとして表示対象のVMのみを切り替えるため、ユーザは、入力経路を切り替える前に表示されたVMの画像を参照して、切り替え先のVMが適切かどうかを判断することができる。
【0132】
〔第3の実施の形態〕
次に、第3の実施の形態について説明する。第3の実施の形態は、LCD装置111に表示された切替ボタン押下後の指の横移動の操作により、表示対象VMを更新するものである。なお第3の実施の形態における携帯端末装置の機能構成は、図4、図6に示した第2の実施の形態の構成と同様である。ただし、第3の実施の形態は、ドライバVM160内にフレームバッファが設けられている。またVM対応LCDドライバ161が、各VM170,180のLCDドライバ173d,183dから画像を取得した画像の合成画像を格納する。以下、図4、図6に示した各要素を用いて、第3の実施の形態について説明する。
【0133】
図14は、第3の実施の形態におけるVM切り替え操作の一例を示す図である。図14には、VM170からVM180へ、操作対象、および表示対象を切り替える場合の例を示している。第1の状態は、表示対象の切替前の状態である。第2の状態は、表示対象切替中の状態である。第3の状態は、表示対象切替後の状態である。
【0134】
ユーザが指41で切替ボタン31を押下し、指41をタッチセンサ付き表示装置110に接触させたまま横移動させる(第1の状態)。すると、携帯端末装置100は、移動速度に応じた量だけ、表示対象のVMで動作しているOS(OS#1)の画像を横にスクロールさせる(第2の状態)。図14の例では、移動方向と反対方向に画像がスクロールしている。この際、表示対象のVMで動作しているOS(OS#1)の画像がスクロールした分だけ、次候補となるVMで動作しているOS(OS#2)の画像が表示される。そして、ユーザが指41をタッチセンサ付き表示装置110から離すと、そのとき画面の半分以上で表示されているVMのOSが画面全体に表示される(第3の状態)。そして画面全体に表示されたOSを実行しているVMが操作対象となる。
【0135】
このようにスクロールさせながら画面を徐々に切り替えることで、切替ボタン31を離すまでの間に、切替先のVMが適切かどうかを判断できる。
なお図14の例では、指41をタッチセンサ付き表示装置110に接触させた状態で、指41を右に移動させた場合、正の方向の横移動と判断される。正の方向への横移動であれば、表示対象のVMが次候補VMに切り替えられる。他方、指41をタッチセンサ付き表示装置110に接触させた状態で、指41を左に移動させた場合、負の方向の横移動と判断される。負の方向への横移動であれば、表示対象のVMが、前の順番のVMに切り替えられる。
【0136】
ソフトアイコンである切替ボタン21を使用している場合、切替モードが「On」であるのは、切替ボタン21を押下した状態にある場合である。切替モードが「On」の状態で、指を横移動させることで、指の移動速度が算出され、その移動速度から画面をスクロールするための移動量が求められる。そして、2つのOSの画像が結合され、タッチセンサ付き表示装置110に表示される画面が、算出された移動量分だけ横にスクロールされる。
【0137】
なお図14に示す第2の状態のような画面は、フレームバッファ内の画像を合成することで生成される。このとき、操作対象ポインタ162b(図5参照)で示されたVMで実行されているOSの画像が左側に表示され、表示対象ポインタ162c(図5参照)で示されたVMで実行されているOSの画像が右側に表示されている。すなわち図14に示す第2の状態では、操作対象ポインタ162bで示されたVMと表示対象ポインタ162cで示されたVMとの両方が表示対象となっている。
【0138】
図15は、画像合成例を示す図である。例えば表示対象をVM170からVM180に切り替える場合、フレームバッファ173e内の画像と、フレームバッファ183e内の画像とが合成される。例えばVM対応LCDドライバ161が各OSのフレームバッファから合成対象画像を取得する。この際、VM対応LCDドライバ161は、表示対象のVMで実行されているOSのフレームバッファ173e内の画像のうち、左端から、スクロールによる移動量分の距離離れた位置までの矩形の領域を除外した残りの領域の画像を、合成対象画像とする。またVM対応LCDドライバ161は、次候補のVMで実行されているOSのフレームバッファ183e内の画像のうち、左端から、画面の横幅からスクロールによる移動量分の距離だけ離れた位置までの矩形の領域の画像を、合成対象画像とする。そしてVM対応LCDドライバ161は、表示対象のVMの合成対象画像を左側に、次候補のVMの合成対象画像を右側に配置した合成画像を、フレームバッファ161bに格納する。VM対応LCDドライバ161が、LCD装置111に対してフレームバッファ161bのアドレスを指定して画面表示を行わせることで、合成された画像が表示される。
【0139】
なお、LCD装置111内部で画像の合成機能を備えている場合、VM対応LCDドライバ161がフレームバッファ161bを有していなくてもよい。その場合、例えばVM対応LCDドライバ161は、合成画像に含まれる合成対象画像が格納されている各フレームバッファのアドレスと、各フレームバッファから読み出す画像の領域、およびその画像の表示位置をLCD装置111に送信する。
【0140】
以下、第3の実施の形態におけるVM切替処理を詳細に説明する。
図16は、第3の実施の形態のVM切替処理の前半を示すシーケンス図である。以下、図16に示す処理をステップ番号に沿って説明する。なお、ステップS71〜S78の処理は、図8に示すステップS11〜S18の処理と同じである。
【0141】
[ステップS79]切替制御部162は、表示対象のVMの次候補VMを取得し、表示対象のVMと、そのVMの次候補VMとの表示画面の合成指示をVM対応LCDドライバ161に送信する。表示画面の合成指示には、次候補のVMのVMIDが含まれる。
【0142】
[ステップS80]VM対応LCDドライバ161は、表示対象のVMと、そのVMの次候補VMとのそれぞれのOSのフレームバッファ内の画像を結合した合成画像を生成する。
【0143】
なお、切替ボタン押下直後においては、移動量は「0」であり、表示対象のVMで実行されているOSの画像全体が、合成対象画像となる。
[ステップS81]VM対応LCDドライバ161は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置111に送信する。
【0144】
[ステップS82]ユーザ40が切替ボタン31を押下したまま指41を横に移動させる。
[ステップS83]タッチセンサ112は、ユーザ40の指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ151に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。なお、タッチセンサ112による接触位置の検知は、所定のサンプリング周期で繰り返し行われる。
【0145】
[ステップS84]VM対応タッチセンサドライバ151は、接触があったことを示す情報を受け取ると、操作対象ポインタ162bを参照し、現在において操作対象となっているVMを判断する。そしてVM対応タッチセンサドライバ151は、操作対象のVM170のタッチセンサドライバ173aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0146】
[ステップS85]タッチセンサドライバ173aは、接触があったことを示す情報を受け取ると、入力解析部173bに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0147】
[ステップS86]入力解析部173bは、接触があったことを示す情報を取得すると、座標リストを更新する。具体的には入力解析部173bは、横移動によって取得した座標を、座標の取得時刻に対応付けて座標リストに登録する。タッチセンサ112が所定のサンプリング周期で接触された位置の座標を取得するため、座標リストには、ユーザ40が指41を横移動している間、継続して座標が蓄積されていく。
【0148】
[ステップS87]切替ボタン制御部172は、入力解析部173bが有する座標リストを取得する。
[ステップS88]切替ボタン制御部172は、ボタン移動イベントを切替操作判断部173fに対して送信する。ボタン移動イベントには、座標リストが含まれる。
【0149】
[ステップS89]切替操作判断部173fは、ボタン移動イベントを取得すると、切替ボタン31の移動開始時からの移動速度を計算する。そして切替操作判断部173fは、移動速度を指定したVM仮切替要求を切替制御部162に送信する。
【0150】
[ステップS90]切替制御部162は、移動速度に基づいて、移動量を計算する。
[ステップS91]切替制御部162は、移動量を指定したスクロール指示をVM対応LCDドライバ161に送信する。
【0151】
[ステップS92]VM対応LCDドライバ161は、指定された移動量に応じて、表示対象のVMで実行されているOSのフレームバッファ内の合成対象画像と、次候補のVMで実行されているOSのフレームバッファ内の合成対象画像とを決定する。そして、VM対応LCDドライバ161は、決定した合成対象画像を結合した合成画像を生成する。
【0152】
[ステップS93]VM対応LCDドライバ161は、合成画像が格納されているフレームバッファのアドレスをLCD装置111に指定する。これにより、スクロールさせた画面が表示される。
【0153】
図17は、入力解析部で生成される座標リストの一例を示す図である。座標リスト60には、座標に対応付けて、座標の取得時刻が設定されている。座標は、例えばタッチセンサ112の横方向をx軸(右方向が正)、縦軸をy軸(下方向が正)とし、左上の角を原点とした座標系での接触位置の座標である。このような座標と時刻との組が、所定のサンプリング周期で座標リスト60に追加される。
【0154】
このような座標リストを参照して、移動速度を計算できる。例えば、同じ座標が続いている間は、接触させた指41を動かしていないため、移動速度の計算から除外する。例えば切替操作判断部173fは、座標の変化があった時点の最初の座標から最新の座標までの座標間の距離を計算する。図17の例では、時刻「t12」に取得した座標「x2,y2」が、座標の変化があった時点の最初の座標である。第3の実施の形態では、画面を横にスクロールさせるため、例えばy軸の値の差分を距離とする。さらに切替操作判断部173fは、座標の変化があった時点の最初の座標から最新の座標までの経過時間を計算する。例えば切替操作判断部173fは、最新の座標の取得時刻から、座標の変化があった最初の座標の取得時刻を減算し、経過時間とする。そして切替操作判断部173fは、距離を経過時間で除算した結果を、移動速度とする。
【0155】
移動速度が求まると、切替制御部162によってスクロールの移動量が計算される。移動量は、移動速度から下記のように求められる。
横移動の増加量=移動粒度(固定値)×移動速度 ・・・(1)
移動量=前回の移動量+横移動の増加量 ・・・(2)
ここで移動粒度は、画面を横スクロールさせる際の最小の移動量であり、予め設定された固定値である。例えば、LCD装置111の画面の横サイズが3cmの場合、移動粒度を0.5cmとすると、移動速度が1の時に、画面の横移動の増加量が0.5cmとなる。また、前回の移動量が画面の横サイズを超えた場合は、式(2)の計算の前に以下の計算を行う。
前回の移動量=前回の移動量−横サイズ ・・・(3)
式(3)の「=」の記号は、右辺の値を左辺に代入することを示す代入演算子である。これにより移動量が、表示対象ポインタで指定される表示対象のVMと、そのVMの次候補のVMとのそれぞれのOSの表示バッファの関係に閉じることとなる。
【0156】
図18は、第3の実施の形態のVM切替処理の後半を示すシーケンス図である。以下、図18に示す処理をステップ番号に沿って説明する。なお、ステップS94〜S101の処理は、図8に示すステップS22〜S29の処理と同じである。
【0157】
[ステップS102]切替制御部162は、VM切替確定要求を取得すると、その時点で画面の半分以上で表示されているVMを判断する。切替制御部162は、画面の半分以上に表示されているVMを操作対象のVMとする。そして、切替制御部162は、操作対象のVMのVMIDを指定し、そのVMへの表示切替の確定を示す表示切替要求を、VM対応LCDドライバ161に送信する。
【0158】
[ステップS103]VM対応LCDドライバ161は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS104]VM対応LCDドライバ161は、表示バッファ指定をLCD装置111に送信する。表示バッファ指定には、ステップS103で選択したフレームバッファのアドレスによって、LCD装置111で表示する画像の格納場所が指定されている。するとLCD装置111は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0159】
[ステップS105]切替制御部162は、VM対応LCDドライバ161から、表示切替の確定結果を取得する。
[ステップS106]切替制御部162は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ151に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0160】
[ステップS107]VM対応タッチセンサドライバ151は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ151は、以後のタッチセンサ112からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0161】
このようにして、切替ボタン31を押下した状態での指の横移動によって、画面スクロールによって徐々に表示対象のVMを変更することができる。そして、切替ボタン31から指を離した時点で画面により多く表示されているVMが、操作対象のVMに決定される。
【0162】
以下、切替操作判断部173fと切替制御部162との処理を詳細に説明する。
図19は、第3の実施の形態のVM切替判断処理の手順を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
【0163】
[ステップS111]切替操作判断部173fは、切替ボタン制御部172からのイベントを取得する。
[ステップS112]切替操作判断部173fは、切替モードが「On」か否かを判断する。なお切替モードの初期状態は「Off」である。切替操作判断部173fは、切替モードが「On」であれば処理をステップS116に進める。切替操作判断部173fは、切替モードが「Off」であれば処理をステップS113に進める。
【0164】
[ステップS113]切替操作判断部173fは、切替モードが「Off」の場合、取得したイベントがボタン押下イベントか否かを判断する。切替操作判断部173fは、ボタン押下イベントであれば処理をステップS114に進める。切替操作判断部173fは、ボタン押下イベントでなければ処理を終了する。
【0165】
[ステップS114]切替操作判断部173fは、切替モードを「On」にする。
[ステップS115]切替操作判断部173fは、VM仮切替要求を切替制御部162に送信する。なお、ステップS117の後にステップS115を実行する場合、切替操作判断部173fは、移動量と移動速度を含むVM仮切替要求を送信する。その後、処理が終了する。
【0166】
[ステップS116]切替操作判断部173fは、切替モードが「On」の場合、取得したイベントが横移動イベントか否かを判断する。切替操作判断部173fは、横移動イベントであれば処理をステップS117に進める。切替操作判断部173fは、横移動イベントでなければ、処理をステップS118に進める。横移動イベントでない場合とは、ボタン解放イベントの場合である。
【0167】
[ステップS117]切替操作判断部173fは、横移動イベントであれば、座標リストに基づいて、切替ボタン31を押下した指41の移動速度を算出する。その後、処理がステップS115に進められる。
【0168】
[ステップS118]切替操作判断部173fは、ボタン解放イベントであれば、切替モードを「Off」にする。
[ステップS119]切替操作判断部173fは、VM切替確定要求を切替制御部162に送信する。その後、処理が終了する。
【0169】
このようにして、切り替えソフトボタンからのボタン押下イベント、横移動イベント、およびボタン解放イベントに応じて、切り替え操作開始を示すVM仮切替要求や切替確定要求が出される。
【0170】
次に、切替制御部162による切替制御処理を詳細に説明する。
図20は、第3の実施の形態の切替制御処理の手順を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
【0171】
[ステップS121]切替制御部162は、他のVMからのメッセージを受信する。
[ステップS122]切替制御部162は、受信したメッセージが操作対象のVMからのメッセージか否かを判断する。切替制御部162は、操作対象のVMからのメッセージであれば、処理をステップS123に進める。切替制御部162は、操作対象のVM以外のVMからのメッセージであれば、切替制御処理を終了する。
【0172】
[ステップS123]切替制御部162は、受信したメッセージの内容が、VM仮切替要求か否かを判断する。切替制御部162は、VM仮切替要求であれば処理をステップS124に進める。切替制御部162は、VM仮切替要求でなければ処理をステップS130に進める。
【0173】
[ステップS124]切替制御部162は、VM仮切替要求を受信した場合、受信したVM仮切替要求により移動量と移動速度との通知あるか否かを判断する。切替制御部162は、移動量と移動速度とが通知された場合、処理をステップS128に進める。切替制御部162は、移動量と移動速度とが通知されていない場合、処理をステップS125に進める。
【0174】
[ステップS125]切替制御部162は、移動量と移動速度とが通知されていなければ、現在表示対象のVMの次候補VMを取得する。
[ステップS126]切替制御部162は、次候補VMのVMIDを指定して、表示対象のVMと次候補VMとの画面合成指示をVM対応LCDドライバ161に送信する。
【0175】
[ステップS127]切替制御部162は、表示対象のVMを更新する。具体的には、切替制御部162は、ステップS125で取得した次候補VMを操作VMとするVM切替テーブル162a内のレコードの位置を、表示対象ポインタ162cに設定する。その後、処理が終了する。
【0176】
[ステップS128]切替制御部162は、移動量と移動速度とが通知されている場合、移動量を計算する。
[ステップS129]切替制御部162は、VM対応LCDドライバ161に対して、移動量を指定してスクロールを指示する。その後、処理が終了する。
【0177】
[ステップS130]切替制御部162は、メッセージがVM仮切替要求ではない場合、VM切替確定要求か否かを判断する。切替制御部162は、VM切替確定要求であれば、処理をステップS131に進める。切替制御部162は、VM切替確定要求でなければ処理を終了する。
【0178】
[ステップS131]切替制御部162は、画面の半分以上に表示されているVMを操作対象のVMに決定する。例えば切替制御部162は、前回の移動量の計算で算出した移動量が、LCD装置111の画面の横幅の半分未満であれば、スクロール前に表示対象だったVMを操作対象VMに決定する。また切替制御部162は、前回の移動量の計算で算出した移動量が、LCD装置111の画面の横幅の半分以上であれば、ステップS127で表示対象とされたVMを操作対象VMに決定する。
【0179】
[ステップS132]切替制御部162は、ステップS131で決定された操作対象のVMと、操作対象ポインタ162bで示される操作対象のVMとを比較し、操作対象のVMに変更があるか否かを判断する。切替制御部162は、操作対象のVMに変更がない場合、処理をステップS133に進める。切替制御部162は、操作対象のVMに変更がある場合、処理をステップS134に進める。
【0180】
[ステップS133]切替制御部162は、ステップS127で更新した表示対象のVMを、元のVMに戻す。すなわち切替制御部162は、表示対象ポインタ162cに、操作対象ポインタ162bと同じ値を設定する。その後、処理が終了する。
【0181】
[ステップS134]切替制御部162は、表示切替確定指示を行う。具体的には、切替制御部162は、VM対応LCDドライバ161に対して、表示切替確定を示す表示切替要求を送信する。このとき送信される表示切替確定要求には、表示対象ポインタ162cで示される表示対象のVMのVMIDが含まれる。その後、切替制御部162は、VM対応LCDドライバ161から表示切替の確定結果を取得し、正しく切り替えられたことを確認する。
【0182】
[ステップS135]切替制御部162は、操作対象VMの切替指示を行う。具体的には、切替制御部162は、VM対応タッチセンサドライバ151に対して、切替先のVMのVMIDを指定した操作切替要求を送信する。切替先のVMのVMIDは、操作対象ポインタ162bで示されているVMのVMIDである。その後、処理が終了する。
【0183】
このようにして、操作対象のVM上で実行されているOSの切替ボタンに対する、タッチセンサを用いた横移動操作によって、VMの切替が可能となる。
〔第4の実施の形態〕
次に第4の実施の形態について説明する。第4の実施の形態では、タッチセンサ付き表示装置の特定領域を、各OSに共通の検知領域として設定する。例えば、画面の上辺に沿った細長い領域を、検知領域とする。携帯端末装置は、検知領域への入力を検知することで、表示対象のVMおよび操作対象のVMを切り替える。
【0184】
図21は、第4の実施の形態の携帯端末装置の機能を示すブロック図である。なお図21に示すブロック図には、VMで実行するOSを起動後の状態を示している。
携帯端末装置200は、LCD装置211とタッチセンサ212とで構成されるタッチセンサ付き表示装置を有する。また携帯端末装置200は、図3に示した第1の実施の形態と同様のハードウェア構成で実現され、CPUにより、ハイパーバイザ230を実行する。ハイパーバイザ230は、ドライバVM250,260と、OSを実行する2つのVM270,280を生成している。
【0185】
ドライバVM250は、タッチセンサ212からの入力切替を行うVMである。ドライバVM250は、VM対応タッチセンサドライバ251を有する。VM対応タッチセンサドライバ251は、タッチセンサ212からの入力信号の出力先を切り替える。
【0186】
ドライバVM260は、LCD装置211への出力切替を行うVMである。また、ドライバVM260は、タッチセンサ212から入力された情報の送信先のVMの決定、およびLCD装置211で表示する画像情報の取得元となるVMの決定を行う。そのためにドライバVM260は、VM対応LCDドライバ261と切替制御部262とを有する。
【0187】
VM対応LCDドライバ261は、LCD装置211に対して、表示する画像データが格納されたフレームバッファの記憶領域を指示する。切替制御部262は、タッチセンサ212による操作対象とするVMの切り替え、およびLCD装置211への表示対象とするVMの切り替えを制御する。
【0188】
VM270は、OSの機能を実現する要素として、メニュー制御部271、および入出力ドライバ273を有する。入出力ドライバ273は、タッチセンサドライバ273a、入力解析部273b、画像制御部273c、LCDドライバ273d、フレームバッファ273e、切替操作判断部273f、および検知領域記憶部273gを有する。VM270内の切替操作判断部273f、および検知領域記憶部273g以外の各要素の機能は、図6に示したVM170内の同名の要素と同じである。
【0189】
切替操作判断部273fは、検知領域に対するユーザからの入力内容を検知し、VM仮切替要求やVM切替確定要求を、切替制御部262に送信する。検知領域記憶部273gは、LCD装置211の表示画面のうち、画面の切り替えに使用する領域(検知領域)を示す情報を記憶する。
【0190】
VM280は、OSの機能を実現する要素として、メニュー制御部281、および入出力ドライバ283を有する。入出力ドライバ283は、タッチセンサドライバ283a、入力解析部283b、画像制御部283c、LCDドライバ283d、フレームバッファ283e、切替操作判断部283f、および検知領域記憶部283gを有する。VM280内の各要素の機能は、VM270内の同名の要素と同じである。
【0191】
なお、図21に示す各要素間を結ぶ線は、主な通信経路を示すものであり、図示した通信経路以外の通信経路も設定可能である。
このように切替操作判断部273f,283fを、各OSの入出力ドライバ273,283内に設けた場合、タッチセンサ付き表示装置の画面の検知領域(例えば、画面の上辺と端末のフレーム境界)が設定される。設定された検知領域への入力を検知することでVMの切り替え処理が開始される。
【0192】
次に、検知領域記憶部273gのデータ構造について説明する。
図22は、検知領域記憶部のデータ構造の一例を示す図である。検知領域記憶部273gは、検知領域を定義する領域管理テーブル273hを有している。領域管理テーブル273hには、領域ID、上座標、および下座標の欄が設けられている。
【0193】
領域IDの欄には、検知領域ごとに、その検知領域の識別子(領域ID)が設定される。図22の例では、「領域A」と「領域B」とが、領域IDの欄に設定されている。上座標の欄には、対応する検知領域の左上の角の座標が設定される。下座標の欄には、対応する検知領域の右下の角の座標が設定される。
【0194】
図22の例では、「領域A」は、画面が縦の場合の検知領域が設定されている。例えばLCD装置211の画面の短辺の長さがaピクセル(aは、1以上の整数)、長辺の長さがbピクセル(bは、1以上の整数)とする。
【0195】
画面を縦にして携帯端末装置200を使用する場合、横サイズが「a」となる。第4の実施の形態では、上辺に沿った細長い領域を、検知領域とする。そのため上座標が(0,0)、下座標が(a,1)となる。他方、画面を横にして携帯端末装置200を使用する場合、横サイズが「b」となる。そのため上座標が(0,0)、下座標が(b,1)となる。
【0196】
図23は、第4の実施の形態におけるVM切り替え操作の一例を示す図である。図23には、VM270からVM280へ、操作対象、および表示対象を切り替える場合の例を示している。第1の状態は、表示対象の切替前の状態である。第2の状態は、表示対象切替中の状態である。第3の状態は、表示対象切替後の状態である。
【0197】
VM270で実行されているOSのメニュー画面70には、ソフトアイコンとして、複数の機能ボタン71〜76が表示されている。またメニュー画面70の上側の辺に沿って、検知領域42が定義されている。
【0198】
ユーザが指41で、タッチセンサ付き表示装置210に表示されている検知領域42内を押下し、指41をタッチセンサ付き表示装置210に接触させたまま横移動させる(第1の状態)。すると、携帯端末装置200では、移動速度に応じた量だけ、表示対象のVMで動作しているOSの画像を横にスクロールさせる(第2の状態)。図23の例では、移動方向と反対方向に画像がスクロールしている。この際、表示対象のVMで動作しているOSの画像がスクロールした分だけ、次候補となるVMで動作しているOSの画像が表示される。そして、ユーザが指41をタッチセンサ付き表示装置210から離すと、そのとき画面の半分以上で表示されているVMのOSが画面全体に表示される(第3の状態)。そして画面全体に表示されたOSを実行しているVMが操作対象となる。
【0199】
このようにして、検知領域42を押下した状態での指41の横移動により、画面を切り替えることができる。すなわち、タッチセンサ付き表示装置210の検知領域42を、VM切り替えの指示に使用している場合、切替モードが「On」(切り替え制御中)であるのは、検知領域に指41を接触させた状態である。指41を接触させた状態で、指を横移動させることで、OSのフロント画面だけが横スクロールするように表示される。
【0200】
以下、第4の実施の形態におけるVM切替処理を詳細に説明する。
図24は、第4の実施の形態のVM切替処理を示すシーケンス図である。以下、図24に示す処理をステップ番号に沿って説明する。
【0201】
[ステップS141]ユーザ40が、タッチセンサ212の検知領域42に対応する部分を押下する。
[ステップS142]タッチセンサ212は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ251に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0202】
[ステップS143]VM対応タッチセンサドライバ251は、接触があったことを示す情報を受け取ると、タッチセンサドライバ273aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0203】
[ステップS144]タッチセンサドライバ273aは、接触があったことを示す情報を受け取ると、切替操作判断部273fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0204】
[ステップS145]切替操作判断部273fは、接触があったことを示す情報を取得すると、座標リストを更新する。切替操作判断部273fが更新する座標リストのデータ構造は、図17に示した座標リスト60と同様である。
【0205】
[ステップS146]切替操作判断部273fは、切替モード判断を行う。具体的には切替操作判断部273fは、現在の切替モードが「On」か「Off」かを判断する。切替モードの初期状態は「Off」であり、図17の例ではステップS145において切替モードが「Off」であると判断される。
【0206】
[ステップS147]切替操作判断部273fは、切替モードを「On」に設定する。
[ステップS148]切替操作判断部273fは、VM仮切替要求を切替制御部262に送信する。
【0207】
[ステップS149]切替制御部262は、次候補のVMを特定する。そして切替制御部262は、表示対象のVMと、そのVMの次候補VMとの表示画面の合成指示をVM対応LCDドライバ261に送信する。
【0208】
[ステップS150]VM対応LCDドライバ261は、表示対象のVMと、そのVMの次候補VMとのそれぞれのOSのフレームバッファ内の画像を結合した合成画像を定義する。
【0209】
[ステップS151]VM対応LCDドライバ261は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置211に送信する。
[ステップS152]ユーザ40が検知領域42内を押下したまま指41を横に移動させる。
【0210】
[ステップS153]タッチセンサ212は、ユーザ40の指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ251に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0211】
[ステップS154]VM対応タッチセンサドライバ251は、接触があったことを示す情報を受け取ると、タッチセンサドライバ273aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0212】
[ステップS155]タッチセンサドライバ273aは、接触があったことを示す情報を受け取ると、切替操作判断部273fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0213】
[ステップS156]切替操作判断部273fは、接触があったことを示す情報を取得すると、座標リストを更新する。具体的には切替操作判断部273fは、横移動によって取得した座標を、座標の取得時刻に対応付けて座標リストに登録する。
【0214】
[ステップS157]切替操作判断部273fは、ユーザ40による接触位置の移動開始時からの移動速度を計算する。そして切替操作判断部273fは、移動速度を指定したVM仮切替要求を切替制御部262に送信する。なお、移動速度の計算方法は、第3の実施の形態と同様である。
【0215】
[ステップS158]切替制御部262は、移動速度に基づいて、移動量を計算する。
[ステップS159]切替制御部262は、移動量を指定したスクロール指示をVM対応LCDドライバ261に送信する。
【0216】
[ステップS160]VM対応LCDドライバ261は、指定された移動量に応じて、表示対象のVMで実行されているOSのフレームバッファ内の合成対象画像と、次候補のVMで実行されているOSのフレームバッファ内の合成対象画像とを決定する。そして、VM対応LCDドライバ261は、決定した合成対象画像を結合した合成画像を生成する。
【0217】
[ステップS161]VM対応LCDドライバ261は、合成画像が格納されている各フレームバッファのアドレスをLCD装置211に指定する。これにより、スクロールさせた画面が表示される。
【0218】
[ステップS162]ユーザ40は、画面の半分以上に表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置210から、指等の接触部を離す。すなわち、スクリーンの解放(リリース)が行われる。
【0219】
[ステップS163]タッチセンサ212は、接触されていた位置が解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ251に送信する。
【0220】
[ステップS164]VM対応タッチセンサドライバ251は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ273aに対して、接触状態が解放されたことを示す情報を送信する。
【0221】
[ステップS165]タッチセンサドライバ273aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部273fに対して、接触状態が解放されたことを示す情報を送信する。
【0222】
[ステップS166]切替操作判断部273fは、接触状態が解放されたことを示す情報を取得すると、切替モードを「Off」に変更する。
[ステップS167]切替操作判断部273fは、次候補への切替の確定を示すVM切替確定要求を、切替制御部262に送信する。
【0223】
[ステップS168]切替制御部262は、VM切替確定要求を取得すると、その時点で画面の半分以上で表示されているVMを判断する。切替制御部262は、画面の半分以上に表示されているVMを、操作対象のVMと判断する。そして、切替制御部262は、操作対象のVMのVMIDを指定し、そのVMへの表示切替の確定を示す表示切替要求を、VM対応LCDドライバ261に送信する。
【0224】
[ステップS169]VM対応LCDドライバ261は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS170]VM対応LCDドライバ261は、表示バッファ指定をLCD装置211に送信する。表示バッファ指定には、ステップS169で選択したフレームバッファのアドレスによって、LCD装置211で表示する画像の格納場所が指定されている。するとLCD装置211は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0225】
[ステップS171]切替制御部262は、VM対応LCDドライバ261から、表示切替の確定結果を取得する。
[ステップS172]切替制御部262は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ251に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0226】
[ステップS173]VM対応タッチセンサドライバ251は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ251は、以後のタッチセンサ212からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0227】
このようにして、OSを実行するVM270,280において、タッチセンサ212から入力された接触位置の座標が、検知領域42内かどうかを判断することができる。そして検知領域42内への接触であれば、切替モードを「On」にして、指41の横移動の速度に応じて画面をスクロールさせ、VMを切り替えることができる。
【0228】
しかも第4の実施の形態では、携帯端末装置200の持ち方(縦表示用に持つか、横表示用に持つか)に応じて、検知領域を変更することができる。すなわち切替操作判断部273fは、モーションセンサで検出される加速度から、重力の方向を判断する。そして切替操作判断部273fは、重力の方向が、画面の長辺と平行に近ければ、縦表示を行っていると判断する。また切替操作判断部273fは、重力の方向が、画面の短辺と平行に近ければ、横表示を行っていると判断する。切替操作判断部273fは、縦表示の場合、図22に示す「領域A」を、検知領域と判断する。また切替操作判断部273fは、横表示の場合、図22に示す「領域B」を、検知領域と判断する。
【0229】
なお検知領域は、ユーザが任意に切替操作判断部273f,283fに指定することもできる。また、切替操作判断部273f,283fが、各VM270,280で動作しているOSのLCDドライバ273d,283dから、現在の画面の表示方向を示す情報を取得するようにしてもよい。
【0230】
〔第5の実施の形態〕
次に第5の実施の形態について説明する。第5の実施の形態は、特別な切り替え用の領域を必要とせず、共通のジェスチャ操作で、フロント切り替えの操作を行うものである。第5の実施の形態では、仮想環境で動くOSで共通となるジェスチャ操作を予め設定する。例えば、2本指でタップを2回すると、切り替え用のジェスチャ操作であるというような内容を設定する。
【0231】
図25は、第5の実施の形態の携帯端末装置の機能を示すブロック図である。なお図25に示すブロック図には、VMで実行するOSを起動後の状態を示している。
携帯端末装置300は、LCD装置311とタッチセンサ312とで構成されるタッチセンサ付き表示装置を有する。また携帯端末装置300は、図3に示した第1の実施の形態と同様のハードウェア構成で実現され、CPUにより、ハイパーバイザ330を実行する。ハイパーバイザ330は、ドライバVM350,360と、OSを実行する2つのVM370,380を生成している。
【0232】
ドライバVM350は、タッチセンサ312からの入力切替を行うVMである。ドライバVM350は、VM対応タッチセンサドライバ351を有する。VM対応タッチセンサドライバ351は、タッチセンサ312からの入力信号の出力先を切り替える。
【0233】
ドライバVM360は、LCD装置311への出力切替を行うVMである。また、ドライバVM360は、タッチセンサ312から入力された情報の送信先のVMの決定、およびLCD装置311で表示する画像情報の取得元となるVMの決定を行う。そのためにドライバVM360は、VM対応LCDドライバ361と切替制御部362とを有する。
【0234】
VM対応LCDドライバ361は、LCD装置311に対して、表示する画像データが格納されたフレームバッファの記憶領域を指示する。切替制御部362は、タッチセンサ312による操作対象とするVMの切り替え、およびLCD装置311への表示対象とするVMの切り替えを制御する。
【0235】
VM370は、OSの機能を実現する要素として、メニュー制御部371、および入出力ドライバ373を有する。入出力ドライバ373は、タッチセンサドライバ373a、入力解析部373b、画像制御部373c、LCDドライバ373d、フレームバッファ373e、切替操作判断部373f、およびジェスチャ情報記憶部373gを有する。VM370内の切替操作判断部373f、およびジェスチャ情報記憶部373g以外の各要素の機能は、図6に示したVM170内の同名の要素と同じである。
【0236】
切替操作判断部373fは、タッチセンサ312に対して行われるユーザの操作から、VM切替指示のジェスチャを検知し、VM仮切替要求やVM切替確定要求を、切替制御部362に送信する。ジェスチャ情報記憶部373gは、VM切替指示のジェスチャであると認識する条件を記憶する。
【0237】
VM380は、OSの機能を実現する要素として、メニュー制御部381、および入出力ドライバ383を有する。入出力ドライバ383は、タッチセンサドライバ383a、入力解析部383b、画像制御部383c、LCDドライバ383d、フレームバッファ383e、切替操作判断部383f、およびジェスチャ情報記憶部383gを有する。VM380内の各要素の機能は、VM370内の同名の要素と同じである。
【0238】
なお、図25に示す各要素間を結ぶ線は、主な通信経路を示すものであり、図示した通信経路以外の通信経路も設定可能である。
第5の実施の形態では、タッチセンサ付き表示装置310への操作として特定のジェスチャ(例えば、2本指で画面をタップ)を示す情報が、予め設定される。切替操作判断部373fがそのジェスチャ入力を検知することで、切り替え操作が開始される。
【0239】
図26は、ジェスチャ情報記憶部のデータ構造の一例を示す図である。図26の例では、ジェスチャ情報記憶部373gには、接触箇所の数、連続接触回数、および接触間隔によって、VM切替を指定するジェスチャと認識する条件が定義されている。接触箇所の数は、同時に何箇所の接触が必要かを示している。連続接触回数は、連続して何回の接触が必要かを示している。接触間隔は、連続した接触であると判断するための時間間隔が設定されている。
【0240】
図26の例では、接触箇所の数が「2カ所」、連続接触回数が「2回」、接触間隔が「0.18秒〜0.9秒」である。この場合、ユーザは、指を2本そろえて、タッチセンサ312を連続して2回叩くように接触させることで、VM切替の指示を携帯端末装置300に入力することができる。
【0241】
図27は、第5の実施の形態におけるVM切り替え操作の一例を示す図である。図27には、VM370からVM380へ、操作対象、および表示対象を切り替える場合の例を示している。第1の状態は、表示対象の切替前の状態である。第2の状態は、表示対象切替後の状態である。
【0242】
ユーザが2本の指41a,41bで、タッチセンサ付き表示装置310の画面を2回連続で叩くジェスチャを行う(第1の状態)。すると携帯端末装置300では、VM切替指示であると認識し、現在表示されているOSを実行しているVMの次候補VMが、表示対象のVMおよび操作対象のVMに決定される。そして表示対象かつ操作対象に決定されたVMで実行されているOSの画像が、タッチセンサ付き表示装置310に表示される(第2の状態)。
【0243】
このようにして、簡単なジェスチャ動作により、画面上にVMの切り替えに使用するアイコンなどを表示せずに、VMの切り替えが可能となる。
以下、第5の実施の形態におけるVM切替処理を詳細に説明する。
【0244】
図28は、第5の実施の形態のVM切替処理を示すシーケンス図である。以下、図28に示す処理をステップ番号に沿って説明する。
[ステップS181]ユーザ40が2本の指で、タッチセンサ312の2箇所を同時に押下する。
【0245】
[ステップS182]タッチセンサ312は、押下された2箇所の接触を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ351に送信する。接触があったことを示す情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0246】
[ステップS183]VM対応タッチセンサドライバ351は、接触があったことを示す情報を受け取ると、タッチセンサドライバ373aに対して、接触があったことを示す情報を送信する。この情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0247】
[ステップS184]タッチセンサドライバ373aは、接触があったことを示す情報を受け取ると、切替操作判断部373fに対して、接触があったことを示す情報を送信する。この情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0248】
[ステップS185]切替操作判断部373fは、接触があったことを示す情報を取得すると、座標リストを更新する。切替操作判断部373fが更新する座標リストのデータ構造は、図17に示した座標リスト60と同様である。ただし、2箇所が同時に接触された場合、同一時刻で2つの点の座標が座標リスト60に登録される。
【0249】
[ステップS186]切替操作判断部373fは、ジェスチャ照合を開始する。例えば切替操作判断部373fは、ジェスチャ情報記憶部373gに登録されている接触箇所の数と、接触があったことを示す情報で示される座標の数が一致したことを確認し、ジェスチャ照合を開始する。
【0250】
[ステップS187]ユーザ40は、VM切替を指示するジェスチャを行う。すなわち、ユーザ40は、ステップS181におけるスクリーンの押下から連続して、2本の指でタッチセンサ312の2箇所を同時に押下する。
【0251】
その後のステップS188〜S191の処理は、ステップS182〜S185と同じである。
[ステップS192]切替操作判断部373fは、ジェスチャ照合を行う。例えば切替操作判断部373fは、ジェスチャ照合が開始されたときの2箇所の接触箇所における連続接触回数を数える。なお、切替操作判断部373fは、図26に示すジェスチャ情報記憶部373gを参照し、0.18〜0.9秒の間隔を置いて連続してタッチセンサ312に接触されたときに、連続接触があったと判断する。そして切替操作判断部373fは、連続して2回の接触があった場合、VM切替を指示するジェスチャが行われたと判断する。
【0252】
[ステップS193]切替操作判断部373fは、VM切替を指示するジェスチャが行われたと判断した場合、VM仮切替要求を切替制御部362に送信する。
[ステップS194]切替制御部362は、次候補のVMを特定する。そして切替制御部362は、表示切替要求をVM対応LCDドライバ361に送信する。表示切替要求には、次候補のVMのVMIDが含まれる。
【0253】
[ステップS195]VM対応LCDドライバ361は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS196]VM対応LCDドライバ361は、表示バッファ指定をLCD装置311に送信する。するとLCD装置311は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0254】
このようにして、表示対象のVMが切り替えられる。
[ステップS197]ユーザ40は、画面の半分以上に表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置310から、指等の接触部を離す。すなわち、スクリーンの解放(リリース)が行われる。
【0255】
[ステップS198]タッチセンサ312は、接触されていた位置が解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ351に送信する。
【0256】
[ステップS199]VM対応タッチセンサドライバ351は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ373aに対して、接触状態が解放されたことを示す情報を送信する。
【0257】
[ステップS200]タッチセンサドライバ373aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部373fに対して、接触状態が解放されたことを示す情報を送信する。
【0258】
[ステップS201]切替操作判断部373fは、接触状態が解放されたことを示す情報を取得すると、ジェスチャ照合を終了する。
[ステップS202]切替操作判断部373fは、次候補への切替の確定を示すVM切替確定要求を、切替制御部362に送信する。
【0259】
[ステップS203]切替制御部362は、VM切替確定要求を取得すると、表示切替の確定を示す表示切替要求を、VM対応LCDドライバ361に送信する。VM対応LCDドライバ361では、ステップS195で選択したフレームバッファを、表示バッファとして確定する。
【0260】
[ステップS204]切替制御部362は、VM対応LCDドライバ361から、表示切替の確定結果を取得する。
[ステップS205]切替制御部362は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ351に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0261】
[ステップS206]VM対応タッチセンサドライバ351は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ351は、以後のタッチセンサ312からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0262】
このようにして携帯端末装置300は、ユーザ40によるジェスチャ操作を検出し、切り替え操作開始要求であることを認識すると、表示対象のVMおよび操作対象のVMを切り替えることができる。
【0263】
〔第6の実施の形態〕
次に、第6の実施の形態について説明する。第5の実施の形態では、ジェスチャ操作で次画面に切り替えているが、第6の本実施の形態に係る携帯端末装置では、ジェスチャ操作で、VMを切り替えるモードに移行し、ソフトアイコンを画面にオーバレイの形で表示する。オーバレイ表示とは、1つの画像に別の画像を重ね合わせて表示することである。第6の実施の形態では、OSの画面の上に、ソフトアイコンの1つである切替ボタンが重ねて表示される。ユーザが、表示されたソフトアイコンを押下し、指を横移動させることで、第3の実施の形態に示したようなスクロールによる表示対象とするVMの切替操を可能とする。第6の実施の形態によれば、第2の実施の形態のように、各OSのメニュー画面に切り替え用のソフトアイコンを保持しなくてもよい。また第4の実施の形態のように、端末画面上に特別な領域を設定しなくてもよい。
【0264】
図29は、第6の実施の形態の携帯端末装置の機能を示すブロック図である。なお図29に示すブロック図には、VMにおいてOSを起動した後の状態を示している。
携帯端末装置400は、LCD装置411とタッチセンサ412とで構成されるタッチセンサ付き表示装置を有する。また携帯端末装置400は、図3に示した第1の実施の形態と同様のハードウェア構成で実現され、CPUにより、ハイパーバイザ430を実行する。ハイパーバイザ430は、ドライバVM450,460と、OSを実行する2つのVM470,480を生成している。
【0265】
ドライバVM450は、タッチセンサ412からの入力切替を行うVMである。ドライバVM450は、VM対応タッチセンサドライバ451を有する。VM対応タッチセンサドライバ451は、タッチセンサ412からの入力信号の出力先を切り替える。
【0266】
ドライバVM460は、LCD装置411への出力切替を行うVMである。また、ドライバVM460は、タッチセンサ412から入力された情報の送信先のVMの決定、およびLCD装置411で表示する画像情報の取得元となるVMの決定を行う。そのためにドライバVM460は、VM対応LCDドライバ461、および切替制御部462を有する。
【0267】
VM対応LCDドライバ461は、LCD装置411に対して、表示する画像データが格納されたフレームバッファの記憶領域を指示する。切替制御部462は、タッチセンサ412による操作対象とするVMの切り替え、およびLCD装置411への表示対象とするVMの切り替えを制御する。
【0268】
VM470は、OSの機能を実現する要素として、メニュー制御部471、および切替ボタン制御部472、および入出力ドライバ473を有する。切替ボタン制御部472は、ソフトボタンの1つである切替ボタンの表示、非表示などを制御する。
【0269】
入出力ドライバ473は、タッチセンサドライバ473a、入力解析部473b、画像制御部473c、LCDドライバ473d、フレームバッファ473e、切替操作判断部473f、およびジェスチャ情報記憶部473gを有する。VM470内の各要素の機能は、図6に示したVM170内の同名の要素と同じである。
【0270】
切替操作判断部473fは、タッチセンサ412に対して行われるユーザの操作から、切替ボタンの表示を指示するジェスチャを検知し、切替ボタン表示要求を、切替ボタン制御部472に送信する。ジェスチャ情報記憶部473gは、切替ボタン表示を指示するジェスチャであると認識する条件を記憶する。
【0271】
VM480は、OSの機能を実現する要素として、メニュー制御部481、切替ボタン制御部482、および入出力ドライバ483を有する。入出力ドライバ483は、タッチセンサドライバ483a、入力解析部483b、画像制御部483c、LCDドライバ483d、フレームバッファ483e、切替操作判断部483f、およびジェスチャ情報記憶部483gを有する。VM480内の各要素の機能は、VM470内の同名の要素と同じである。
【0272】
なお、図29に示す各要素間を結ぶ線は、主な通信経路を示すものであり、図示した通信経路以外の通信経路も設定可能である。
第6の実施の形態のジェスチャ情報記憶部473gのデータ構造は、図26に示した第5の実施の形態のジェスチャ情報記憶部373gと同様である。
【0273】
図30は、第6の実施の形態におけるVM切り替え操作の一例を示す第1の図である。第1の状態は、切替ボタン表示前の状態である。第2の状態は、切替ボタン表示後の状態である。
【0274】
ユーザが2本の指41a,41bで、タッチセンサ付き表示装置410の画面を2回連続で叩くジェスチャを行う(第1の状態)。すると携帯端末装置400では、切替ボタンの表示指示であると認識する。切替ボタン91が、例えばそして表示対象かつ操作対象に決定されたVMで実行されているOSの画像が、オーバレイの形で、タッチセンサ付き表示装置410に表示される(第2の状態)。
【0275】
図31は、第6の実施の形態におけるVM切り替え操作の一例を示す第2の図である。第3の状態は、切替ボタンを横移動時の状態である。第4の状態は、切替ボタンを解放後の状態である。
【0276】
ユーザが指41で切替ボタン91を押下し、指41をタッチセンサ付き表示装置410に接触させたまま横移動させる。すると、携帯端末装置400は、移動速度に応じた量だけ、表示対象のVMで動作しているOS(OS#1)の画像を横にスクロールさせる(第3の状態)。図31の例では、移動方向と反対方向に画像がスクロールしている。この際、表示対象のVMで動作しているOS(OS#1)の画像がスクロールした分だけ、次候補となるVMで動作しているOS(OS#2)の画像が表示される。そして、ユーザが指41をタッチセンサ付き表示装置410から離すと、切替ボタン91が所定のホームポジションに移動する(第4の状態)。なお、図31に示す第4の状態は、画面の横幅分の移動量だけスクロールさせた後に指41を離した結果、VM480で実行されているOSの画像が表示されている。
【0277】
図32は、第6の実施の形態におけるVM切り替え操作の一例を示す第3の図である。第5の状態は、切替ボタン押下時の状態である。第6の状態は、VM切替確定後の状態である。
【0278】
ユーザが指41で切替ボタン91を押下する(第5の状態)。そして、ユーザが指41をタッチセンサ付き表示装置410から離すと、そのとき表示対象となっているVMへの切替が確定し、切替ボタン91が画面から消える(第6の状態)。そして画面全体に表示されたOSを実行しているVMが操作対象となる。
【0279】
このように、タッチセンサ付き表示装置410へのVMの切り替えの操作として特定のジェスチャを使用する場合、切替モードが「On」(切り替え制御中)であるのは、特定のジェスチャにより表示された切替ボタン91が押下された後である。切替ボタン91を押下した状態で指を横移動させることで、LCD装置411の画面が横スクロールするように表示される。この場合、VM切替確定要求は、切替ボタン91を消去する操作で発生する。
【0280】
以下、第6の実施の形態におけるVM切替処理を詳細に説明する。
図33は、第6の実施の形態のVM切替処理の第1のシーケンス図である。以下、図33に示す処理をステップ番号に沿って説明する。なお、ステップS211〜S221の処理は、図28に示す第5の実施の形態のステップS181〜S191の処理と同じである。
【0281】
[ステップS222]切替操作判断部473fは、ジェスチャ照合を行う。例えば切替操作判断部473fは、ジェスチャ照合が開始されたときの2箇所の接触箇所における連続接触回数を数える。そして切替操作判断部473fは、連続して2回の接触があった場合、切替ボタンの表示を指示するジェスチャが行われたと判断する。
【0282】
[ステップS223]切替操作判断部473fは、切替ボタンの表示を指示するジェスチャが行われたと判断した場合、切替ボタン表示要求を切替ボタン制御部472に送信する。
【0283】
[ステップS224]切替ボタン制御部472は、切替ボタンの表示要求をメニュー制御部471に対して送信する。
[ステップS225]メニュー制御部471は、切替ボタンの画像データを指定して、画像制御部473cに対して切替ボタン表示要求を送信する。
【0284】
[ステップS226]画像制御部473cは、切替ボタンの画像を含む画像データへの更新要求をLCDドライバ473dに送信する。
[ステップS227]LCDドライバ473dは、切替ボタンの画像を含む画像データをフレームバッファに書き込む。フレームバッファ473eの画像データは、LCD装置411に転送され、画面に表示される。
【0285】
[ステップS228]ユーザ40は、タッチセンサ付き表示装置410から、指等の接触部を離す。すなわち、スクリーンの解放(リリース)が行われる。
[ステップS229]タッチセンサ412は、スクリーンの解放を検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451に送信する。
【0286】
[ステップS230]VM対応タッチセンサドライバ451は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触状態が解放されたことを示す情報を送信する。
【0287】
[ステップS231]タッチセンサドライバ473aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部473fに対して、接触状態が解放されたことを示す情報を送信する。
【0288】
[ステップS232]切替操作判断部473fは、ジェスチャ照合処理を終了する。
図34は、第6の実施の形態のVM切替処理の第2のシーケンス図である。以下、図34に示す処理をステップ番号に沿って説明する。
【0289】
[ステップS241]ユーザ40が、タッチセンサ412の切替ボタン91に対応する部分を押下する。
[ステップS242]タッチセンサ412は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0290】
[ステップS243]VM対応タッチセンサドライバ451は、接触があったことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0291】
[ステップS244]タッチセンサドライバ473aは、接触があったことを示す情報を受け取ると、切替操作判断部473fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0292】
[ステップS245]切替操作判断部473fは、接触があったことを示す情報を受け取ると、切替ボタン制御部472に対して、ボタン押下を示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0293】
[ステップS246]切替ボタン制御部472は、ボタン押下を示す情報を取得すると、ボタン押下イベントを、切替操作判断部473fに送信する。
[ステップS247]切替操作判断部473fは、ボタン押下イベントを取得すると、切替モードを「On」に変更する。そして切替操作判断部473fは、次候補へのVM仮切替要求を、切替制御部462に送信する。
【0294】
[ステップS248]切替制御部462は、表示対象のVMの次候補VMを取得し、表示対象のVMと、そのVMの次候補VMとの表示画面の合成指示をVM対応LCDドライバ461に送信する。表示画面の合成指示には、次候補のVMのVMIDが含まれる。
【0295】
[ステップS249]VM対応LCDドライバ461は、表示対象のVMと、そのVMの次候補VMとのそれぞれのOSのフレームバッファ内の画像を結合した合成画像を生成する。
【0296】
[ステップS250]VM対応LCDドライバ461は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置411に送信する。
[ステップS251]ユーザ40は、指41をタッチセンサ412から離さずに、横移動させる。
【0297】
[ステップS252]タッチセンサ412は、ユーザ40の指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0298】
[ステップS253]VM対応タッチセンサドライバ451は、接触があったことを示す情報を受け取ると、現在において操作対象となっているVMを判断する。そしてVM対応タッチセンサドライバ451は、タッチセンサドライバ473aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0299】
[ステップS254]タッチセンサドライバ473aは、切替操作判断部473fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0300】
[ステップS255]切替操作判断部473fは、接触があったことを示す情報を取得すると、座標リストを更新する。
[ステップS256]切替ボタン制御部472は、切替操作部43が有する座標リストを取得する。
【0301】
[ステップS257]切替ボタン制御部472は、座標リストに基づいて、切替ボタン91の移動開始時からの移動速度を計算する。そして切替ボタン制御部472は、移動速度を指定したVM仮切替要求を切替制御部462に送信する。
【0302】
[ステップS258]切替制御部462は、移動速度に基づいて、スクロールの移動量を計算する。
[ステップS259]切替制御部462は、移動量を指定したスクロール指示をVM対応LCDドライバ461に送信する。
【0303】
[ステップS260]VM対応LCDドライバ461は、指定された移動量に応じて、合成画像を生成する。
[ステップS261]VM対応LCDドライバ461は、合成画像が格納されているフレームバッファのアドレスをLCD装置411に指定する。これにより、スクロールさせた画面が表示される。
【0304】
図35は、第6の実施の形態のVM切替処理の第3のシーケンス図である。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS271]ユーザ40は、タッチセンサ付き表示装置410から指等の接触部を離す。
【0305】
[ステップS272]タッチセンサ412は、切替ボタン91が解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451に送信する。
【0306】
[ステップS273]VM対応タッチセンサドライバ451は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触状態が解放されたことを示す情報を送信する。
【0307】
[ステップS274]タッチセンサドライバ473aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部473fに対して、接触状態が解放されたことを示す情報を送信する。
【0308】
[ステップS275]切替操作判断部473fは、接触状態が解放されたことを示す情報を受け取ると、切替モードを「Off」に変更し、切替ボタン制御部472に対してボタン解放を示す情報を送信する。
【0309】
[ステップS276]切替ボタン制御部472は、ステップS256で取得した座標リストに基づいて、切替ボタン91が、最初の表示位置(ホーム座標)から移動しているか否かをチェックする。
【0310】
[ステップS277]切替ボタン制御部472は、切替ボタン91がホーム座標から移動している場合、ホーム座標を指定したボタン移動要求を切替制御部462に送信する。
[ステップS278]切替制御部462は、現在の切替ボタン91の位置からホーム座標までの移動量を計算する。そして切替制御部462は、VM対応LCDドライバ461に対して、移動量を指定したボタン移動要求を送信する。
【0311】
[ステップS279]VM対応LCDドライバ461は、切替ボタン91のアイコン画像を、現在の表示対象のVMで動作しているOSのフレームバッファ内の画像にオーバレイ表示した画像を生成する。このときの切替ボタン91のアイコン画像は、指定された移動量だけ移動させた位置に配置される。切替制御部462からはホーム座標までの移動量が指定されているため、結果的に、切替ボタン91のアイコン画像がホーム座標の位置に配置されることとなる。
【0312】
[ステップS280]VM対応LCDドライバ461は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置411に送信する。
図36は、第6の実施の形態のVM切替処理の第4のシーケンス図である。以下、図36に示す処理をステップ番号に沿って説明する。
【0313】
[ステップS291]ユーザ40が、タッチセンサ412の切替ボタン91に対応する部分を押下する。
[ステップS292]タッチセンサ412は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451に送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0314】
[ステップS293]VM対応タッチセンサドライバ451は、接触があったことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0315】
[ステップS294]タッチセンサドライバ473aは、接触があったことを示す情報を受け取ると、切替操作判断部473fに対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0316】
[ステップS295]切替操作判断部473fは、接触があったことを示す情報を受け取ると、切替ボタン制御部472に対してボタン押下を示す情報を送信する。ボタン押下を示す情報には、接触された位置を示す座標が含まれる。
【0317】
[ステップS296]切替ボタン制御部472は、ボタン押下を示す情報を取得すると、ボタン押下イベントを、切替操作判断部473fに送信する。切替操作判断部473fは、ボタン押下イベントを取得すると、切替モードを「On」に変更する。
【0318】
[ステップS297]ユーザ40は、表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置410から、指等の接触部を離す。すなわち、切替ボタンの解放(リリース)が行われる。
【0319】
[ステップS298]タッチセンサ412は、切替ボタンが解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451に送信する。
【0320】
[ステップS299]VM対応タッチセンサドライバ451は、接触状態が解放されたことを示す情報を受け取ると、タッチセンサドライバ473aに対して、接触状態が解放されたことを示す情報を送信する。
【0321】
[ステップS300]タッチセンサドライバ473aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部473fに対して、接触状態が解放されたことを示す情報を送信する。
【0322】
[ステップS301]切替操作判断部473fは、接触状態が解放されたことを示す情報を取得すると、切替モードを「Off」に変更する。そして切替操作判断部473fは、切替ボタン制御部472に対してボタン解放を示す情報を送信する。
【0323】
[ステップS302]切替ボタン制御部472は、ステップS256で取得した座標リストに基づいて、切替ボタン91が、最初の表示位置(ホーム座標)から移動しているか否かをチェックする。
【0324】
[ステップS303]切替ボタン制御部472は、切替ボタン91がホーム座標から移動していない場合、メニュー制御部471に対して切替ボタン非表示要求を送信する。
[ステップS304]メニュー制御部471は、画像制御部473cに対して、切替ボタン非表示要求を送信する。
【0325】
[ステップS305]画像制御部473cは、切替ボタンのアイコン画像を除外した画像を生成し、その画像への更新要求をLCDドライバ473dに送信する。
[ステップS306]LCDドライバ473dは、切替ボタンのアイコン画像を除外した画像をフレームバッファに書き込む。すると、フレームバッファ内の画像データがLCD装置411に転送され、切替ボタンを含まない画像が表示される。
【0326】
[ステップS307]切替操作判断部473fは、切替の確定を示すVM切替確定要求を、切替制御部462に送信する。
[ステップS308]切替制御部462は、VM切替確定要求を取得すると、その時点で画面の半分以上で表示されているVMを操作対象のVMとする。そして、切替制御部462は、操作対象のVMのVMIDを指定し、そのVMへの表示切替の確定を示す表示切替要求を、VM対応LCDドライバ461に送信する。
【0327】
[ステップS309]VM対応LCDドライバ461は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS310]VM対応LCDドライバ461は、表示バッファ指定をLCD装置411に送信する。するとLCD装置411は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0328】
[ステップS311]切替制御部462は、VM対応LCDドライバ461から、表示切替の確定結果を取得する。
[ステップS312]切替制御部462は、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ451に送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0329】
[ステップS313]VM対応タッチセンサドライバ451は、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ451は、以後のタッチセンサ412からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0330】
このようにして、第6の実施の形態に係る携帯端末装置400では、まず切替ボタン表示用のジェスチャ操作を認識して、切替ボタン91を画面に表示する。その後、携帯端末装置400は、ユーザ40による切替ボタン91の押下および横移動を検出して、画面をスクロールさせながら表示対処のVMを切り替える。切替ボタン91が解放されると、携帯端末装置400は、切替ボタン91をホームポジションに移動させる。そして、切替ボタン91を移動させずに、押下と解放が行われると、携帯端末装置400は、切替ボタン91を画面から消し、現在表示されているOSを実行しているVMに、タッチセンサ412からの入力経路を切り替える。
【0331】
これにより、通常使用時には、VM切り替え用のボタンや領域を設けずに済み、画面を有効利用できる。そして、VMを切り替える際には、画面のスクロールによるVM切り替えが可能となる。
【0332】
〔その他の実施の形態〕
第2〜第6の実施の形態では、VMに対する操作入力に使用する入力デバイスがタッチセンサのみである。そのため、入力デバイス用のドライバVMは、VM対応タッチセンサドライバを実行するVMだけである。しかし、携帯端末装置に他の入力デバイスを設けることもできる。例えば、物理的なキーを有するキーパッドや、ポインティングデバイスである。タッチセンサ以外にも入力デバイスがある場合、各入力デバイスに対応するドライバVMが生成され、各ドライバVMにおいて入力デバイスのドライバが実行される。このように入力デバイス用のドライバVMが多数ある場合には、例えば切替制御部に送信ドライバリストを持たせる。
【0333】
図37は、通知ドライバリストのデータ構造の一例を示す図である。通知ドライバリスト92には、VMID、ドライバ名、およびポート番号の欄が設けられている。VMIDの欄には、操作切替要求の送信相手とするドライバVMのVMIDが設定される。ドライバ名の欄には、送信相手のドライバVMで実行されているデバイスドライバの名称が設定される。ポート番号の欄には、送信相手のドライバVM内のデバイスドライバとの通信に使用する通信ポートの番号が設定される。
【0334】
このように、通知ドライバリスト92には、入力デバイス用のドライバVMで実行されているデバイスドライバのリストが登録されている。切替制御部は、操作対象のVMを切り替える場合、新たに決定した操作対象のVMのVMIDを、通知ドライバリスト92に登録されているすべてのデバイスドライバに送信する。これにより、すべての入力デバイスからの操作の対象となるVMを切り替えることができる。
【0335】
また、第4の実施の形態に示した切替操作判断部273f、283fと検知領域記憶部273g,283g(図21参照)とは、例えばドライバVM内に設けることもできる。
図38は、第4の実施の形態の変形例を示す図である。図38において、図21に示した要素と同じ機能の要素には、図21の要素と同じ符号を付し、説明を省略する。
【0336】
携帯端末装置200aのドライバVM250aは、VM対応タッチセンサドライバ251a、切替操作判断部252、および検知領域記憶部253を有する。その一方、VM270a,280aは、図21に示した切替操作判断部273f、283fと検知領域記憶部273g,283gを有していない。
【0337】
ドライバVM250aのVM対応タッチセンサドライバ251aは、図21に示したVM対応タッチセンサドライバ251が有する機能に加え、タッチセンサ212からの入力情報を切替操作判断部252に送信する機能を有する。切替操作判断部252は、図21に示した切替操作判断部273fと同じ機能を有する。検知領域記憶部253は、図21に示した検知領域記憶部273gと同じ機能を有する。
【0338】
第4の実施の形態の変形例の処理手順は、VM対応タッチセンサドライバ251aと切替操作判断部252との間で直接通信が行われることを除き、図24に示した第4の実施の形態の処理手順と同様である。ただし、図24に示したVM対応タッチセンサドライバ251は、図38に示すVM対応タッチセンサドライバ251aに置き換えられる。また図24に示した切替操作判断部273fは、図38に示す切替操作判断部252に置き換えられる。
【0339】
このように切替操作判断部252と検知領域記憶部253とをドライバVM250a内に設けることにより、VM270a,280aで実行されるOSに対して、VM切替用の機能を組み込まずにすむ。
【0340】
同様に、第5の実施の形態に示した切替操作判断部373f、383fとジェスチャ情報記憶部373g,383g(図25参照)とを、例えばドライバVM内に設けることもできる。
【0341】
図39は、第5の実施の形態の変形例を示す図である。図39において、図25に示した要素と同じ機能の要素には、図25の要素と同じ符号を付し、説明を省略する。
携帯端末装置300aのドライバVM350aは、VM対応タッチセンサドライバ351a、切替操作判断部352、およびジェスチャ情報記憶部353を有する。その一方、VM370a,380aは、図25に示した切替操作判断部373f、383fとジェスチャ情報記憶部373g,383gを有していない。
【0342】
ドライバVM350aのVM対応タッチセンサドライバ351aは、図25に示したVM対応タッチセンサドライバ351が有する機能に加え、タッチセンサ312からの入力情報を切替操作判断部352に送信する機能を有する。切替操作判断部352は、図25に示した切替操作判断部373fと同じ機能を有する。ジェスチャ情報記憶部353は、図25に示したジェスチャ情報記憶部373gと同じ機能を有する。
【0343】
第5の実施の形態の変形例の処理手順は、VM対応タッチセンサドライバ351aと切替操作判断部352との間で直接通信が行われることを除き、図28に示した第5の実施の形態の処理手順と同様である。ただし、図28に示したVM対応タッチセンサドライバ351は、図39に示すVM対応タッチセンサドライバ351aに置き換えられる。また図28に示した切替操作判断部373fは、図39に示す切替操作判断部352に置き換えられる。
【0344】
このように切替操作判断部352とジェスチャ情報記憶部353とをドライバVM350a内に設けることにより、ジェスチャによってVM切替を行う場合であっても、VM370a,380aで実行されるOSに対して、VM切替用の機能を組み込まずにすむ。
【0345】
同様に、第6の実施の形態に示した切替操作判断部473f、483f、ジェスチャ情報記憶部473g,483g、および切替ボタン制御部472,482(図29参照)を、例えばドライバVM内に設けることもできる。
【0346】
図40は、第6の実施の形態の変形例を示す図である。図40において、図29に示した要素と同じ機能の要素には、図29の要素と同じ符号を付し、説明を省略する。
携帯端末装置400aのドライバVM450aは、VM対応タッチセンサドライバ451a、切替操作判断部452、およびジェスチャ情報記憶部453を有する。ドライバVM460aは、VM対応LCDドライバ461、切替制御部462a、および切替ボタン制御部463を有する。その一方、VM470a,480aは、図29に示した切替操作判断部473f、483f、ジェスチャ情報記憶部473g,483g、および切替ボタン制御部472,482を有していない。
【0347】
ドライバVM450aのVM対応タッチセンサドライバ451aは、図29に示したVM対応タッチセンサドライバ451が有する機能に加え、タッチセンサ412からの入力情報を切替操作判断部452に送信する機能を有する。切替操作判断部452は、図29に示した切替操作判断部473fと同じ機能を有する。ジェスチャ情報記憶部453は、図29に示したジェスチャ情報記憶部473gと同じ機能を有する。
【0348】
ドライバVM460aの切替制御部462aは、図29に示した切替制御部462が有する機能に加え、切替ボタン制御部463からの入力情報を切替操作判断部452に送信する機能を有する。切替操作判断部452は、図29に示した切替操作判断部473fと同じ機能を有する。ジェスチャ情報記憶部453は、図29に示したジェスチャ情報記憶部473gと同じ機能を有する。
【0349】
以下、第6の実施の形態の変形例におけるVM切替処理を詳細に説明する。
図41は、第6の実施の形態の変形例におけるVM切替処理の第1のシーケンス図である。以下、図41に示す処理をステップ番号に沿って説明する。
【0350】
[ステップS411]ユーザ40が2本の指で、タッチセンサ412の2箇所を同時に押下する。
[ステップS412]タッチセンサ412は、押下された2箇所の接触を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451aに送信する。接触があったことを示す情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0351】
[ステップS413]VM対応タッチセンサドライバ451aは、接触があったことを示す情報を受け取ると、切替操作判断部452に対して、接触があったことを示す情報を送信する。この情報には、接触された2箇所それぞれの位置の座標が含まれる。
【0352】
[ステップS414]切替操作判断部452は、接触があったことを示す情報を取得すると、座標リストを更新する。切替操作判断部452が更新する座標リストのデータ構造は、図17に示した座標リスト60と同様である。ただし、2箇所が同時に接触された場合、同一時刻で2つの点の座標が座標リスト60に登録される。
【0353】
[ステップS415]切替操作判断部452は、ジェスチャ照合を開始する。例えば切替操作判断部452は、ジェスチャ情報記憶部453に登録されている接触箇所の数と、接触があったことを示す情報で示される座標の数が一致したことを確認し、ジェスチャ照合を開始する。
【0354】
[ステップS416]ユーザ40は、VM切替を指示するジェスチャを行う。すなわち、ユーザ40は、ステップS411におけるスクリーンの押下から連続して、2本の指でタッチセンサ412の2箇所を同時に押下する。
【0355】
その後のステップS417〜S419の処理は、ステップS412〜S414と同じである。
[ステップS420]切替操作判断部452は、ジェスチャ照合を行う。例えば切替操作判断部452は、ジェスチャ照合が開始されたときの2箇所の接触箇所における連続接触回数を数える。そして切替操作判断部452は、連続して2回の接触があった場合、切替ボタンの表示を指示するジェスチャが行われたと判断する。
【0356】
[ステップS421]切替操作判断部452は、切替ボタンの表示を指示するジェスチャが行われたと判断した場合、切替ボタン表示要求を切替ボタン制御部463に送信する。
【0357】
[ステップS422]切替ボタン制御部463は、切替ボタン表示要求を、切替制御部462aに送信する。
[ステップS423]切替制御部462aは、切替ボタン表示要求を、VM対応LCDドライバ461に送信する。
【0358】
[ステップS424]VM対応LCDドライバ461は、切替ボタン91のアイコン画像を、現在の表示対象のVMで動作しているOSのフレームバッファ内の画像にオーバレイ表示した画像を生成する。この際、切替ボタン91が、画面内の予め決められた位置(ホーム座標)に表示されるように、合成画像が生成される。
【0359】
[ステップS425]VM対応LCDドライバ461は、表示する画像が格納されたフレームバッファのアドレスを含む表示バッファ指定を、LCD装置411に送信する。
[ステップS426]ユーザ40は、タッチセンサ付き表示装置410から、指等の接触部を離す。すなわち、スクリーンの解放(リリース)が行われる。
【0360】
[ステップS427]タッチセンサ412は、スクリーンの解放を検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451aに送信する。
[ステップS428]VM対応タッチセンサドライバ451aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部452に対して、接触状態が解放されたことを示す情報を送信する。
【0361】
[ステップS429]切替操作判断部452は、ジェスチャ照合処理を終了する。
図42は、第6の実施の形態の変形例におけるVM切替処理の第2のシーケンス図である。なお図42のステップS431,S432,S434〜S441,S443〜S449の処理は、それぞれ図34に示すステップS241,S242,S245〜S252,S255〜S261の処理と同じである。図42の処理のうち、図34の処理と異なるのは、ステップS433,S442の処理である。以下、この2つのステップの処理について説明する。
【0362】
[ステップS433]VM対応タッチセンサドライバ451aは、接触があったことを示す情報を受け取ると、切替操作判断部452に対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0363】
[ステップS442]VM対応タッチセンサドライバ451aは、接触があったことを示す情報を受け取ると、現在において操作対象となっているVMを判断する。そしてVM対応タッチセンサドライバ451aは、切替操作判断部452に対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0364】
このように図42の処理では、VM対応タッチセンサドライバ451aから直接、切替操作判断部452に情報が通知される。
図43は、第6の実施の形態の変形例におけるVM切替処理の第3のシーケンス図である。なお図43のステップS451,S452,S454〜S459の処理は、それぞれ図35に示すステップS271,S272,S275〜S280の処理と同じである。図43の処理のうち、図35の処理と異なるのは、ステップS453の処理である。以下、このステップの処理について説明する。
【0365】
[ステップS453]VM対応タッチセンサドライバ451aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部452に対して、接触状態が解放されたことを示す情報を送信する。
【0366】
図44は、第6の実施の形態の変形例におけるVM切替処理の第4のシーケンス図である。以下、図44に示す処理をステップ番号に沿って説明する。
[ステップS471]ユーザ40が、タッチセンサ412の切替ボタン91に対応する部分を押下する。
【0367】
[ステップS472]タッチセンサ412は、ユーザ40の押下操作による指41の接触位置を検知し、接触があったことを示す情報を、VM対応タッチセンサドライバ451aに送信する。接触があったことを示す情報には、接触された位置の座標が含まれる。
【0368】
[ステップS473]VM対応タッチセンサドライバ451aは、接触があったことを示す情報を受け取ると、切替操作判断部452に対して、接触があったことを示す情報を送信する。この情報には、接触された位置の座標が含まれる。
【0369】
[ステップS474]切替操作判断部452は、接触があったことを示す情報を受け取ると、切替ボタン制御部463に対してボタン押下を示す情報を送信する。ボタン押下を示す情報には、接触された位置を示す座標が含まれる。
【0370】
[ステップS475]切替ボタン制御部463は、ボタン押下を示す情報を取得すると、ボタン押下イベントを、切替操作判断部452に送信する。切替操作判断部452は、ボタン押下イベントを取得すると、切替モードを「On」に変更する。
【0371】
[ステップS476]ユーザ40は、表示されたOSに操作対象を切り替えるのであれば、タッチセンサ付き表示装置410から、指等の接触部を離す。すなわち、切替ボタンの解放(リリース)が行われる。
【0372】
[ステップS477]タッチセンサ412は、切替ボタンが解放されたことを検知し、接触状態が解放されたことを示す情報をVM対応タッチセンサドライバ451aに送信する。
【0373】
[ステップS478]VM対応タッチセンサドライバ451aは、接触状態が解放されたことを示す情報を受け取ると、切替操作判断部452に対して、接触状態が解放されたことを示す情報を送信する。
【0374】
[ステップS479]切替操作判断部452は、接触状態が解放されたことを示す情報を取得すると、切替モードを「Off」に変更する。そして切替操作判断部452は、切替ボタン制御部463に対してボタン解放を示す情報を送信する。
【0375】
[ステップS480]切替ボタン制御部463は、ステップS443で取得した座標リストに基づいて、切替ボタン91が、最初の表示位置(ホーム座標)から移動しているか否かをチェックする。
【0376】
[ステップS481]切替ボタン制御部463は、切替ボタン91がホーム座標から移動していない場合、切替制御部462aに対して切替ボタン非表示要求を送信する。
[ステップS482]切替制御部462aは、VM対応LCDドライバ461に対して、切替ボタン非表示要求を送信する。
【0377】
[ステップS483]VM対応LCDドライバ461は、各OSのフレームバッファ内の画像を合成し、切替ボタン91のアイコン画像を除外した画像を生成する。
[ステップS484]VM対応LCDドライバ461は、合成画像が格納されているフレームバッファのアドレスをLCD装置411に指定する。
【0378】
[ステップS485]切替操作判断部452は、ステップS479の処理に加え、切替の確定を示すVM切替確定要求を、切替制御部462aに送信する。
[ステップS486]切替制御部462aは、VM切替確定要求を取得すると、その時点で画面の半分以上で表示されているVMを操作対象のVMとする。そして、切替制御部462aは、操作対象のVMのVMIDを指定し、そのVMへの表示切替の確定を示す表示切替要求を、VM対応LCDドライバ461に送信する。
【0379】
[ステップS487]VM対応LCDドライバ461は、表示切替要求に応じて、表示対象のフレームバッファを選択する。
[ステップS488]VM対応LCDドライバ461は、表示バッファ指定をLCD装置411に送信する。するとLCD装置411は、表示する画像の取得元を、表示バッファ指定によって指定されたフレームバッファに切り替える。
【0380】
[ステップS489]切替制御部462aは、VM対応LCDドライバ461から、表示切替の確定結果を取得する。
[ステップS490]切替制御部462aは、表示対象のVMの切替が確定すると、操作切替要求を、VM対応タッチセンサドライバ451aに送信する。操作切替要求には、切替先として確定したVMのVMIDが含まれる。
【0381】
[ステップS491]VM対応タッチセンサドライバ451aは、操作切替要求を取得すると、操作切替要求で指定されたVMIDに対応するVMに、操作対象を切り替える。すなわちVM対応タッチセンサドライバ451aは、以後のタッチセンサ412からの入力情報を、操作切替要求で指定されたVMIDに対応するVMに送信する。
【0382】
第4から第6の実施の形態の応用例で示したように、切替指示の入力を検出する機能を、OSが動作するVMとは別のドライバVMに設けることも可能である。
また上記の各実施の形態および応用例では携帯端末装置の例を示したが、各実施の形態のVM切替機能は、携帯端末装置以外のコンピュータにも実装可能である。
【0383】
さらに、上記の各実施の形態および応用例では、タッチセンサによる入力の例を示したが、他の入力装置からのOSに対する入力情報に基づいて、VM切替指示を検出することもできる。例えばマウスやタブレットなどのポインティングデバイスからの入力情報に基づいて、VM切替指示を検出できる。ポインティングデバイスからの入力情報は、画面上の座標に変換できるため、座標に変換後は、タッチセンサの入力情報と同様に処理することができる。
【0384】
さらに、上記の各実施の形態および応用例では、仮切替要求で表示対象を切り替え、切替確定要求で操作対象を切り替えているが、表示対象と操作対象との切り替えを、同じタイミングで行ってもよい。例えば、仮切替要求が出されたタイミングで、表示対象と操作対象との両方を切り替えてもよい。また切替確定要求が出されたタイミングで、表示対象と操作対象との両方を切り替えてもよい。
【0385】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、携帯端末装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0386】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0387】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0388】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
【0389】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0390】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
(付記1) 第1のオペレーティングシステムに基づく処理を実行する第1の処理部と、
第2のオペレーティングシステムに基づく処理を実行する第2の処理部と、
前記第1の処理部または前記第2の処理部のいずれか一方が設定された送信先の設定に応じて入力情報を送信する送信部と、
前記送信先の設定の切替要求を受信した場合に、前記送信先の設定を、設定された送信先以外の前記第1の処理部または前記第2の処理部に切り替える切替制御部と、を有し、
前記第1の処理部が、
前記送信部から受信した入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合に、前記切替制御部に切替要求を送信する、
ことを特徴とする情報処理装置。
【0391】
(付記2) 表示部と、
表示対象の画像を指定する表示対象情報を受信すると、前記第1の処理部で生成された画像、または前記第2の処理部で生成された画像のうち、該表示対象情報によって指定された画像を前記表示部に表示させる制御を行う表示制御部と、をさらに有し、
前記切替制御部は、切替要求を受信した場合、現在の表示されている画像とは別の画像を指定した表示対象情報を、前記表示制御部に送信することを特徴とする付記1記載の情報処理装置。
【0392】
(付記3) 前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内の場合に、切替要求を送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0393】
(付記4) 前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内であることを検出後、入力情報で示される操作対象の位置が時間経過と共に移動した場合に、切替要求送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0394】
(付記5) 前記検知領域は、表示対象の画像内のソフトボタンの表示領域であることを特徴とする付記3または4のいずれかに記載の情報処理装置。
(付記6) 前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内であることを検出後、入力情報で示される操作対象の位置が時間経過と共に該検知領域内を移動した場合に、切替要求を送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0395】
(付記7) 前記検知領域は、表示装置の画面の少なくとも1辺の縁に沿った領域であることを特徴とする付記6記載の情報処理装置。
(付記8) 複数の領域情報を記憶する記憶部をさらに有し、
前記第1の処理部は、生成した画像の向きに応じて前記記憶部から領域情報を選択し、選択した領域情報で示される領域を前記検知領域とすることを特徴とする付記4乃至7のいずれかに記載の情報処理装置。
【0396】
(付記9) 前記第1の処理部は、入力情報で示される操作対象の位置の移動速度を計算し、
前記切替制御部は、移動速度に応じて画面をスクロールさせる移動量を計算し、前記第1の処理部で生成された画像から前記第2の処理部で生成された画像への、該移動量分のスクロール指示を、前記表示制御部に送信し、
前記表示制御部は、スクロール指示を受信すると、該スクロール指示で示される移動量だけ、前記第1の処理部で生成された画像から前記第2の処理部で生成された画像へスクロールする画像を表示させることを特徴とする付記2記載の情報処理装置。
【0397】
(付記10) 位置情報で示される位置のパターンを記憶する記憶部をさらに有し、
前記第1の処理部は、入力情報で示される操作対象の位置の発生パターンが、前記記憶部に記憶されたパターンに合致する場合に、切替要求を送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0398】
(付記11) 入力情報で示される操作対象の位置のパターンを記憶する記憶部をさらに有し、
前記第1の処理部は、入力情報で示される操作対象の位置の発生パターンが、前記記憶部に記憶されたパターンに合致する場合に、検知領域を示す画像を表示させ、入力情報で示される操作対象の位置が、該検知領域内であることを検出後、タッチセンサが出力した位置情報で示される位置が時間経過と共に移動した場合に、切替要求を送信することを特徴とする付記1または2のいずれかに記載の情報処理装置。
【0399】
(付記12) 表示装置と、
前記表示装置の表示領域と少なくとも一部の領域が重複するセンサ領域内の接触された位置を示す位置情報を、前記送信部に対して出力するタッチセンサと、
をさらに有することを特徴とする付記1乃至11のいずれかに記載の情報処理装置。
【0400】
(付記13) 情報処理装置が、
第1のオペレーティングシステムに基づく第1の処理を実行すると共に、第2のオペレーティングシステムに基づく第2の処理を実行し、
前記第1の処理の処理過程で受け付けた入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合、前記第1の処理によって切替要求を出力し、
切替要求が出力された場合、以後の入力情報を、前記第2の処理で処理させる、
ことを特徴とする制御方法。
【0401】
(付記14) 情報処理装置に、
第1のオペレーティングシステムに基づく第1の処理を実行すると共に、第2のオペレーティングシステムに基づく第2の処理を実行し、
前記第1の処理の処理過程で受け付けた入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合、該第1の処理によって切替要求を出力し、
切替要求が出力された場合、以後の入力情報を、前記第2の処理で処理させる、
処理を実行させることを特徴とする制御プログラム。
【符号の説明】
【0402】
1 情報処理装置
1a 第1の処理部
1b 第2の処理部
1c 送信部
1d 表示制御部
1e 切替制御部
2 入力装置
3 表示装置
4 入力情報
5 切替要求
6,7 画像
8 アドレス
【特許請求の範囲】
【請求項1】
第1のオペレーティングシステムに基づく処理を実行する第1の処理部と、
第2のオペレーティングシステムに基づく処理を実行する第2の処理部と、
前記第1の処理部または前記第2の処理部のいずれか一方が設定された送信先の設定に応じて入力情報を送信する送信部と、
前記送信先の設定の切替要求を受信した場合に、前記送信先の設定を、設定された送信先以外の前記第1の処理部または前記第2の処理部に切り替える切替制御部と、を有し、
前記第1の処理部が、
前記送信部から受信した入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合に、前記切替制御部に切替要求を送信する、
ことを特徴とする情報処理装置。
【請求項2】
表示部と、
表示対象の画像を指定する表示対象情報を受信すると、前記第1の処理部で生成された画像、または前記第2の処理部で生成された画像のうち、該表示対象情報によって指定された画像を前記表示部に表示させる制御を行う表示制御部と、をさらに有し、
前記切替制御部は、切替要求を受信した場合、現在の表示されている画像とは別の画像を指定した表示対象情報を、前記表示制御部に送信することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内の場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項4】
前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内であることを検出後、入力情報で示される操作対象の位置が時間経過と共に移動した場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項5】
前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内であることを検出後、入力情報で示される操作対象の位置が時間経過と共に該検知領域内を移動した場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項6】
複数の領域情報を記憶する記憶部をさらに有し、
前記第1の処理部は、生成した画像の向きに応じて前記記憶部から領域情報を選択し、選択した領域情報で示される領域を前記検知領域とすることを特徴とする請求項4または5のいずれかに記載の情報処理装置。
【請求項7】
前記第1の処理部は、入力情報で示される操作対象の位置の移動速度を計算し、
前記切替制御部は、移動速度に応じて画面をスクロールさせる移動量を計算し、前記第1の処理部で生成された画像から前記第2の処理部で生成された画像への、該移動量分のスクロール指示を、前記表示制御部に送信し、
前記表示制御部は、スクロール指示を受信すると、該スクロール指示で示される移動量だけ、前記第1の処理部で生成された画像から前記第2の処理部で生成された画像へスクロールする画像を表示させることを特徴とする請求項2記載の情報処理装置。
【請求項8】
位置情報で示される位置のパターンを記憶する記憶部をさらに有し、
前記第1の処理部は、入力情報で示される操作対象の位置の発生パターンが、前記記憶部に記憶されたパターンに合致する場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項9】
入力情報で示される操作対象の位置のパターンを記憶する記憶部をさらに有し、
前記第1の処理部は、入力情報で示される操作対象の位置の発生パターンが、前記記憶部に記憶されたパターンに合致する場合に、検知領域を示す画像を表示させ、入力情報で示される操作対象の位置が、該検知領域内であることを検出後、タッチセンサが出力した位置情報で示される位置が時間経過と共に移動した場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項10】
情報処理装置が、
第1のオペレーティングシステムに基づく第1の処理を実行すると共に、第2のオペレーティングシステムに基づく第2の処理を実行し、
前記第1の処理の処理過程で受け付けた入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合、前記第1の処理によって切替要求を出力し、
切替要求が出力された場合、以後の入力情報を、前記第2の処理で処理させる、
ことを特徴とする制御方法。
【請求項11】
情報処理装置に、
第1のオペレーティングシステムに基づく第1の処理を実行すると共に、第2のオペレーティングシステムに基づく第2の処理を実行し、
前記第1の処理の処理過程で受け付けた入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合、該第1の処理によって切替要求を出力し、
切替要求が出力された場合、以後の入力情報を、前記第2の処理で処理させる、
処理を実行させることを特徴とする制御プログラム。
【請求項1】
第1のオペレーティングシステムに基づく処理を実行する第1の処理部と、
第2のオペレーティングシステムに基づく処理を実行する第2の処理部と、
前記第1の処理部または前記第2の処理部のいずれか一方が設定された送信先の設定に応じて入力情報を送信する送信部と、
前記送信先の設定の切替要求を受信した場合に、前記送信先の設定を、設定された送信先以外の前記第1の処理部または前記第2の処理部に切り替える切替制御部と、を有し、
前記第1の処理部が、
前記送信部から受信した入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合に、前記切替制御部に切替要求を送信する、
ことを特徴とする情報処理装置。
【請求項2】
表示部と、
表示対象の画像を指定する表示対象情報を受信すると、前記第1の処理部で生成された画像、または前記第2の処理部で生成された画像のうち、該表示対象情報によって指定された画像を前記表示部に表示させる制御を行う表示制御部と、をさらに有し、
前記切替制御部は、切替要求を受信した場合、現在の表示されている画像とは別の画像を指定した表示対象情報を、前記表示制御部に送信することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内の場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項4】
前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内であることを検出後、入力情報で示される操作対象の位置が時間経過と共に移動した場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項5】
前記第1の処理部は、入力情報で示される操作対象の位置が、予め定義された検知領域内であることを検出後、入力情報で示される操作対象の位置が時間経過と共に該検知領域内を移動した場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項6】
複数の領域情報を記憶する記憶部をさらに有し、
前記第1の処理部は、生成した画像の向きに応じて前記記憶部から領域情報を選択し、選択した領域情報で示される領域を前記検知領域とすることを特徴とする請求項4または5のいずれかに記載の情報処理装置。
【請求項7】
前記第1の処理部は、入力情報で示される操作対象の位置の移動速度を計算し、
前記切替制御部は、移動速度に応じて画面をスクロールさせる移動量を計算し、前記第1の処理部で生成された画像から前記第2の処理部で生成された画像への、該移動量分のスクロール指示を、前記表示制御部に送信し、
前記表示制御部は、スクロール指示を受信すると、該スクロール指示で示される移動量だけ、前記第1の処理部で生成された画像から前記第2の処理部で生成された画像へスクロールする画像を表示させることを特徴とする請求項2記載の情報処理装置。
【請求項8】
位置情報で示される位置のパターンを記憶する記憶部をさらに有し、
前記第1の処理部は、入力情報で示される操作対象の位置の発生パターンが、前記記憶部に記憶されたパターンに合致する場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項9】
入力情報で示される操作対象の位置のパターンを記憶する記憶部をさらに有し、
前記第1の処理部は、入力情報で示される操作対象の位置の発生パターンが、前記記憶部に記憶されたパターンに合致する場合に、検知領域を示す画像を表示させ、入力情報で示される操作対象の位置が、該検知領域内であることを検出後、タッチセンサが出力した位置情報で示される位置が時間経過と共に移動した場合に、切替要求を送信することを特徴とする請求項1または2のいずれかに記載の情報処理装置。
【請求項10】
情報処理装置が、
第1のオペレーティングシステムに基づく第1の処理を実行すると共に、第2のオペレーティングシステムに基づく第2の処理を実行し、
前記第1の処理の処理過程で受け付けた入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合、前記第1の処理によって切替要求を出力し、
切替要求が出力された場合、以後の入力情報を、前記第2の処理で処理させる、
ことを特徴とする制御方法。
【請求項11】
情報処理装置に、
第1のオペレーティングシステムに基づく第1の処理を実行すると共に、第2のオペレーティングシステムに基づく第2の処理を実行し、
前記第1の処理の処理過程で受け付けた入力情報が、前記第1のオペレーティングシステムで定義された切替条件に合致する場合、該第1の処理によって切替要求を出力し、
切替要求が出力された場合、以後の入力情報を、前記第2の処理で処理させる、
処理を実行させることを特徴とする制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図44】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図40】
【図41】
【図42】
【図43】
【図44】
【公開番号】特開2012−155600(P2012−155600A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−15197(P2011−15197)
【出願日】平成23年1月27日(2011.1.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願日】平成23年1月27日(2011.1.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]