(57)【要約】【課題】一時に１つの入力デバイスに関するイベントのみ処理可能なフレームワークが実装されている状況下で複数の入力デバイスによる複数のタッチ入力を同時に受け付け可能とした情報処理装置を提供する。【解決手段】実施形態によれば、情報処理装置は、第１の入力デバイス、第２の入力デバイスおよびデバイスドライバを具備する。デバイスドライバは、前記第１のデバイスによる指示と前記第２のデバイスによる指示とが並行して行われた場合、前記第１のデバイスで指示された１つの位置の位置情報と前記第２のデバイスで指示された１以上の位置の位置情報とを組み合わせ、前記第１のデバイスまたは前記第２のデバイスの一方に関するイベント情報として出力する。【選択図】図１
2014089592.tif 000002
【特許請求の範囲】
【請求項１】
入力エリア上の１つの位置を指示する第１の入力デバイスと、
前記入力エリア上の１以上の位置を指示する第２の入力デバイスと、
前記第１の入力デバイスで指示された１つの位置の位置情報または前記第２の入力デバイスで指示された１以上の位置の位置情報を出力するデバイスドライバと、
を具備し、
前記デバイスドライバは、前記第１のデバイスによる指示と前記第２のデバイスによる指示とが並行して行われた場合、前記第１のデバイスで指示された１つの位置の位置情報と前記第２のデバイスで指示された１以上の位置の位置情報とを組み合わせ、前記第１のデバイスまたは前記第２のデバイスの一方に関するイベント情報として出力する、
情報処理装置。
【請求項２】
前記第２の入力デバイスで指示された１以上の位置の位置情報には、それぞれを識別するための識別情報が付され、
前記第１の入力デバイスで指示された１つの位置の位置情報には、前記第１の入力デバイスによる指示であることを識別するための識別情報が付される、
請求項１に記載の情報処理装置。
【請求項３】
前記第１の入力デバイスによる指示であることを識別するための識別情報は、前記第２の入力デバイスで指示された１以上の位置の位置情報に付される識別情報が持ち得ない値が定義される請求項２に記載の情報処理装置。
【請求項４】
表示装置をさらに具備し、
前記入力エリアは、前記表示装置の表示エリアに重畳させて設けられる、
請求項１に記載の情報処理装置。
【請求項５】
前記第１の入力デバイスは、スタイラスペンである請求項１に記載の情報処理装置。
【請求項６】
前記第２の入力デバイスは、マルチタッチ対応のタッチパネルである請求項１に記載の情報処理装置。
【請求項７】
第１の入力デバイスと、
第２の入力デバイスと、
前記第１の入力デバイスに関するイベントと前記第２の入力デバイスに関するイベントとが同時に発生した場合、前記第１の入力デバイスに関するイベントと前記第２の入力デバイスに関するイベントとの２つのイベントを前記第２の入力デバイスに関するマルチイベントとして処理するデバイスドライバと、
を具備する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、タッチ入力が可能な情報処理装置に関する。
【背景技術】
【０００２】
近年、例えばタブレットなどと称されるディスプレイ上でのタッチ入力が可能な情報処理装置が広く普及している。タッチ入力用のデバイスには、大きく分けて、スタイラスなどと称されるペンの先から発生させた磁力を検知するタイプと、ペン先や指先の圧着により生じる圧力や静電容量等を検知するタイプとの２種類が存在する。また、最近では、このような２タイプの入力デバイスを搭載し、２種類のタッチ入力をサポートする情報処理装置も増えてきている。
【０００３】
例えば、ノートブックタイプのパーソナルコンピュータでは、マウスカーソルを移動させるためのデバイスとして、タッチパッドとスティック型のポインティングデバイスとの２つを搭載するものが存在する。このようなことから、複数の入力デバイスを制御するための仕組みが、これまでも種々提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２５０７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
タッチパネルは、ペン先や指先の圧着により生じる圧力や静電容量等を検知するタイプの入力デバイスである。タブレットに搭載されるタッチパネルの多くは、ピンチインやピンチアウトなどと称される２本の指を使ったタッチ操作を受け付けることのできるマルチタッチ対応である。つまり、マルチタッチ対応のタッチパネルによれば、同時にタッチされた２箇所の位置を検出することができる。
【０００６】
ここで、ペン先から磁力を発生させるスタイラスによるタッチ入力と、タッチパネル上でのタッチ入力が同時に行われた場合を考える。通常、異なる入力デバイスに関するイベントは別々のイベントとして扱われ、また、入力デバイスに関するイベントを処理するフレームワークは、一時に１つの入力デバイスに関するイベントしか処理できない。そのため、２つの入力デバイスに関するイベントが同時に発生した場合、一方についてのみ処理するか、両方とも処理を見送るかのいずれかであった。
【０００７】
つまり、単一の入力デバイス（例えばタッチパネル）による複数のタッチ入力は同時に受け付けられるが、複数の入力デバイス（例えばスタイラスとタッチパネル）による複数のタッチ入力は同時には受け付けられなかった。
【０００８】
本発明は、一時に１つの入力デバイスに関するイベントのみ処理可能なフレームワークが実装されている状況下で複数の入力デバイスによる複数のタッチ入力を同時に受け付け可能とした情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態によれば、情報処理装置は、第１の入力デバイスと、第２の入力デバイスと、デバイスドライバとを具備する。第１の入力デバイスは、入力エリア上の１つの位置を指示する。第２の入力デバイスは、前記入力エリア上の１以上の位置を指示する。デバイスドライバは、前記第１のデバイスによる指示と前記第２のデバイスによる指示とが並行して行われた場合、前記第１のデバイスで指示された１つの位置の位置情報と前記第２のデバイスで指示された１以上の位置の位置情報とを組み合わせ、前記第１のデバイスまたは前記第２のデバイスの一方に関するイベント情報として出力する。
【図面の簡単な説明】
【００１０】
【図１】実施形態の情報処理装置の概略的なシステム構成を示す図。
【図２】実施形態の情報処理装置が２つの入力デバイスによって取得する座標データの構成例を示す図。
【図３】実施形態の情報処理装置が２つの入力デバイスによる同時入力が行われた場合に取得する座標データの構成例を示す図。
【図４】実施形態の情報処理装置上で動作するＵＩアプリケーションが実行する情報処理の一例を示す図。
【図５】実施形態の情報処理装置の２つの入力デバイスによる同時入力が行われた場合における動作の流れを示す図。
【発明を実施するための形態】
【００１１】
以下、実施の形態について図面を参照して説明する。
【００１２】
図１は、本実施形態に係る情報処理装置の概略的なシステム構成を示す図である。本情報処理装置は、例えばタブレットとして実現されている。
【００１３】
図１に示すように、本情報処理装置は、ＣＰＵ１１、メモリ１２、ＩＯコントローラ１３、ビデオコントローラ１４、ＬＣＤ１５を具備する。また、本情報処理装置は、ペンデバイスコントローラ１６、タッチデバイスコントローラ１７、記憶装置１８、ペンデバイス１９、タッチデバイス２０を具備する。
【００１４】
ＣＰＵ１１は、本情報処理装置の全体的な動作制御を担うデバイスであり、記憶装置１８に記憶された各種プログラムをメモリ１２にロードして実行することによって、本情報処理装置を様々な手段として機能させる。各種プログラムの中には、図示の制御プログラム１０１と、当該制御プログラム１０１の配下で動作するデバイスドライバ１０２、フレームワーク１０３、ユーザインタフェース（ＵＩ）アプリケーション１０４等とが含まれている。これらについては後述する。
【００１５】
ＩＯコントローラ１３は、ＣＰＵ１１と本情報処理装置内の（ＣＰＵ１１以外の）各ユニットとを接続するブリッジとしての役割を担うデバイスである。ＩＯコントローラ１３は、メモリ１２および記憶装置１８に対するアクセスを制御する機能と、ビデオコントローラ１４、ペンデバイスコントローラ１６およびタッチデバイスコントローラ１７との通信を実行する機能とを有している。
【００１６】
メモリ１２は、本情報処理装置の主記憶となるストレージデバイスであり、一方、記憶装置１８は、外部記憶となるストレージデバイスである。また、ビデオコントローラ１４およびＬＣＤ１５は、本情報処理装置が提供するユーザインタフェースのアウトプット側を担うデバイスであり、一方、ペンデバイスコントローラ１６およびペンデバイス１９とタッチデバイスコントローラ１７およびタッチデバイス２０とは、インプット側を担うデバイスである。つまり、本情報処理装置は、ペンデバイス１９、タッチデバイス２０の２つの入力デバイスからの入力に基づき、当該入力に対応した情報処理を実行し、その結果をＬＣＤ１５に表示する。
【００１７】
前述のデバイスドライバ１０２は、ペンデバイス１９を制御するペンデバイスコントローラ１６またはタッチデバイス２０を制御するタッチデバイスコントローラ１７から座標データを取得するモジュールである。ペンデバイス１９によるタッチ入力が行われると、ペンデバイスコントローラ１６は、その位置を検出して自身のレジスタに座標データを格納すると共に、イベントの発生をＩＯコントローラ１３に通知する。この通知は、ＩＯコントローラ１３からＣＰＵ１１に伝達され、その結果、当該ＣＰＵ１１によって実行されるデバイスドライバ１０２に、ペンデバイス１９によるタッチ入力が行われたというイベントが通知される。この通知を受けたデバイスドライバ１０２は、ペンデバイスコントローラ１６のレジスタから座標データを読み出す。
【００１８】
同様に、タッチデバイス２０によるタッチ入力が行われると、タッチデバイスコントローラ１７は、その位置を検出して自身のレジスタに座標データを格納すると共に、イベントの発生をＩＯコントローラ１３に通知する。そして、この通知を契機として、デバイスドライバ１０２によるタッチデバイスコントローラ１７からの座標データの読み出しが実行される。また、このタッチデバイス２０は、いわゆるマルチタッチ対応であり、複数点の同時入力が可能である。
【００１９】
図２は、デバイスドライバ１０２によってペンデバイスコントローラ１６およびタッチデバイスコントローラ１７から読み出される座標データの構成例を示す図である。
【００２０】
図２中、（Ａ）は、ペンデバイス１９によるタッチ入力時にペンデバイスコントローラ１６を介してデバイスドライバ１０２が取得する座標データであり、（Ｂ）は、タッチデバイス２０によるタッチ入力時にタッチデバイスコントローラ１７を介してデバイスドライバ１０２が取得する座標データである。
【００２１】
図２の（Ａ）に示すように、ペンデバイス１９によるタッチ入力時、ペンデバイスコントローラ１６は、２次元の入力エリア上のＸ座標（Ｘ）、Ｙ座標（Ｙ）および圧力（Ｐ）の各値を含む座標データを生成する。また、本実施形態におけるペンデバイスコントローラ１６は、後述する（ペンデバイス１９によるタッチ入力に関するものであることを識別するための）ＩＤ番号を付与する。
【００２２】
一方、前述したように、タッチデバイス２０は、マルチタッチ対応であり、複数点の同時入力が可能であるために、図２の（Ｂ）に示すように、タッチデバイスコントローラ１７は、Ｘ座標（Ｘ）、Ｙ座標（Ｙ）および圧力（Ｐ）の各値のセットを複数（同時に行われたタッチ入力数）含む座標データを生成する。タッチデバイスコントローラ１７は、各セットにＩＤ番号（ＩＤ（ｎ））を付与する。例えばタッチデバイス２０上に圧着させた指をタッチデバイス２０上から離さずにタッチデバイス２０上で移動させると、この指によるタッチ入力に対して検出されるＸ座標（Ｘ）、Ｙ座標（Ｙ）および圧力（Ｐ）の各値のセットには、同一のＩＤ番号が付与され続ける。このＩＤ番号によって、２本の指の間隔を狭めるピンチイン、２本の指の間隔を広げるピンチアウトといったタッチ操作を認識することができる。前述のペンデバイスコントローラ１６が付与するＩＤ番号は、タッチデバイスコントローラ１７が付与するＩＤ番号と重複しない値が、ペンデバイス１９によるタッチ入力に関するものであることを識別するための値として定義される。
【００２３】
デバイスドライバ１０２は、ペンデバイスコントローラ１６またはタッチデバイスコントローラ１７から座標データを読み出すと、この座標データをペンデバイス１９に関するインプットイベント情報またはタッチデバイス２０に関するインプットイベント情報としてフレームワーク１０３に引き渡す。フレームワーク１０３は、例えばタッチデバイス２０に関するインプットイベント情報を受け取ると、イベント情報としてＵＩアプリケーション１０４に引き渡す。ＵＩアプリケーション１０４は、当該インプットイベント情報に含まれる座標データを使って、例えばジェスチャ認証処理（前述のピンチインやピンチアウト等を認識する処理）を実行し、例えばＬＣＤに表示中の画像を縮小・拡大するといった種々の処理を実行する。
【００２４】
フレームワーク１０３は、ペンデバイス１９に関するインプットイベント情報を受け取った場合、シングルタッチイベントとして、その座標データを含むイベント情報をＵＩアプリケーション１０４に引き渡す。また、タッチデバイス２０に関するインプットイベント情報を受け取った場合であって、Ｘ座標（Ｘ）、Ｙ座標（Ｙ）および圧力（Ｐ）の各値のセットが１セットのみが含まれている場合も、フレームワーク１０３は、シングルタッチイベントとして、その座標データを含むイベント情報をＵＩアプリケーション１０４に引き渡す。タッチデバイス２０に関するインプットイベント情報を受け取った場合であって、Ｘ座標（Ｘ）、Ｙ座標（Ｙ）および圧力（Ｐ）の各値のセットが複数セット含まれている場合、フレームワーク１０３は、マルチタッチイベントとして、その座標データを含むイベント情報をＵＩアプリケーション１０４に引き渡す。
【００２５】
ところで、フレームワーク１０３は、デバイスドライバ１０２からのインプットイベント情報の受け取りをシリアルに実行する。言い換えれば、フレームワーク１０３は、複数のインプットイベント情報をデバイスドライバ１０２からパラレルに受け取ることができない。即ち、ペンデバイス１９に関するインプットイベント情報とタッチデバイス２０に関するインプットイベント情報とを同時に受け取ることができない。これは、ペンデバイス１９によるタッチ入力とタッチデバイス２０によるタッチ入力との２つのイベントを同時には処理できないことを意味する。
【００２６】
そこで、本実施形態では、ペンデバイス１９によるタッチ入力と、タッチデバイス２０によるタッチ入力とが同時に行われた場合、デバイスドライバ１０２が、例えばペンデバイスコントローラ１６から読み取った座標データを、タッチデバイスコントローラ１７から読み取った座標データと組み合わせ、タッチデバイス２０に関するインプットイベント情報としてフレームワーク１０３に引き渡す。ペンデバイスコントローラ１６から読み取ったＸ座標（Ｘ）、Ｙ座標（Ｙ）および圧力（Ｐ）の各値のセットには、ペンデバイス１９によるタッチ入力に関するものであることを識別するためのＩＤ番号が付与されているので、タッチデバイスコントローラ１７から読み取ったＸ座標（Ｘ）、Ｙ座標（Ｙ）および圧力（Ｐ）の各値のセットと区別することが可能である。
【００２７】
また、逆に、タッチデバイスコントローラ１７から読み取った座標データを、ペンデバイスコントローラ１６から読み取った座標データと組み合わせ、ペンデバイス１９に関するインプットイベント情報としてフレームワーク１０３に引き渡してもよい。例えば、先にタッチデバイス２０によるタッチ入力が行われ、（タッチデバイス２０によるタッチ入力が継続している状態で）その後にペンデバイス１９によるタッチ入力が行われた場合には、前者のタッチデバイス２０に関するインプットイベント情報としてフレームワーク１０３に引き渡し、先にペンデバイス１９によるタッチ入力が行われ、（ペンデバイス１９によるタッチ入力が継続している状態で）その後にタッチデバイス２０によるタッチ入力が行われた場合には、後者のペンデバイス１９に関するインプットイベント情報としてフレームワーク１０３に引き渡す、等が考えられる。
【００２８】
図３は、ペンデバイス１９によるタッチ入力とタッチデバイス２０によるタッチ入力とが同時に行われた場合にデバイスドライバ１０２からタッチデバイス２０に関するインプットイベント情報としてフレームワーク１０３に出力される座標データの構成例を示す図である。
【００２９】
ここでは、入力エリア上のある１点に対してペンデバイス１９によるタッチ入力が行われ、かつ、これと同時に、入力エリア上の別の１点に対してタッチデバイス２０によるタッチ入力が行われた場合を想定する。
【００３０】
このような場合、デバイスドライバ１０２は、図３に示すような座標データをペンデバイス１９またはタッチデバイス２０に関するインプットイベント情報としてフレームワーク１０３に引き渡す。図３中、上段（ａ１）が、タッチデバイス２０に関する情報、下段（ａ２）が、ペンデバイス１９に関する情報である。
【００３１】
例えば、タッチデバイス２０およびタッチデバイスコントローラ１７が１０本の指による同時タッチ入力までを受け付けられるものとし、ＩＤ番号が「０〜９」の値を持ち得るとする。この場合、「０〜９」以外の値、即ち、タッチデバイス２０によるタッチ入力ではあり得ない値（例えば図示の「１１」）を、ペンデバイス１９によるタッチ入力に関するものであることを識別するためのＩＤ番号として定義する。
【００３２】
実際には、ペンデバイス１９によるタッチ入力と、タッチデバイス２０によるタッチ入力との２つの入力イベントが発生しているわけであるが、この２つの入力イベントが、ペンデバイス１９またはタッチデバイス２０に関するインプットイベント情報として１つに纏められ、デバイスドライバ１０２からフレームワーク１０３に１回で受け渡されることになる。図３に示すような座標データを含むイベント情報をマルチタッチイベントとしてフレームワーク１０３から受け取るＵＩアプリケーション１０４が、ＩＤ番号（１１）がペンデバイス１９によるタッチ入力に関するものであることを示していることを認識することで、例えば以下に示すような情報処理を行うことが可能となる。図４を参照して、ＵＩアプリケーション１０４が実行可能となる情報処理の一例を説明する。
【００３３】
ＵＩアプリケーション１０４は、ペンデバイス１９によるタッチ入力に応答してＬＣＤ１５にその筆跡を表示するプログラムであるとする。フレームワーク１０３からペンデバイス１９に関するイベント情報を受け取ると、ＵＩアプリケーション１０４は、そのイベント情報に含まれる座標データで示される位置に「黒」色で筆跡を表示する。つまり、ペンデバイス１９によるタッチ入力の筆跡は、基本的には、「黒」色でＬＣＤ１５に表示されることになる。
【００３４】
ここで、ユーザが、ペンデバイス１９による入力をしながら「赤」色を付すことを指示するためのオブジェクトｂ３上で指によるタッチ入力を行ったとする。この場合、前述したように、デバイスドライバ１０２において、ペンデバイスコントローラ１６から読み取った座標データとタッチデバイスコントローラ１７から読み取った座標データとが組み合わされ、例えばペンデバイス１９に関するインプットイベント情報としてフレームワーク１０３に引き渡される。従って、フレームワーク１０３からＵＩアプリケーション１０４へは、ペンデバイス１９に関するイベント情報（マルチタッチイベント）が引き渡されることになる。
【００３５】
このペンデバイス１９に関するイベント情報（マルチタッチイベント）をフレームワーク１０３から受け取ると、ＵＩアプリケーション１０４は、ＩＤ番号によって、イベント情報に含まれる座標データで示される座標の１つが、ペンデバイス１９によるタッチ入力に関するものであることを認識する。ＵＩアプリケーション１０４は、タッチデバイス２０によるタッチ入力に関する座標からオブジェクトｂ３が選択されたことを検知し、ペンデバイス１９によるタッチ入力の筆跡を途中から「赤」色で表示する。
【００３６】
つまり、このＵＩアプリケーション１０４が実行する情報処理によって、ユーザは、オブジェクトｂ１、オブジェクトｂ２、オブジェクトｂ３を指でタッチしながらペンデバイス１９で筆記することで、黒の他、緑、青、赤を用いることができる。
【００３７】
図５は、ペンデバイス１９およびタッチデバイス２０によるタッチ入力が同時に行われた場合における本情報処理装置の動作の流れを示す図である。
【００３８】
ペンデバイス１９によるタッチ入力（図５のＡ１ａ）とタッチデバイス２０によるタッチ入力（図５のＡ１ｂ）とが同時に行われた場合、デバイスドライバ１０２は、ペンデバイスコントローラ１６からの座標データの読み出し（図５のＡ２ａ）と、タッチデバイスコントローラ１７からの座標データの読み出し（図５のＡ２ｂ）とを実行する。
【００３９】
デバイスドライバ１０２は、ペンデバイスコントローラ１６から読み出した座標データとタッチデバイスコントローラ１７から読み出した座標データとを組み合わせ、ペンデバイス１９またはタッチデバイス２０に関するインプットイベント情報として出力する（図５のＡ３）。
【００４０】
フレームワーク１０３は、デバイスドライバ１０２からペンデバイス１９またはタッチデバイス２０に関するインプットイベント情報を受け取ると（図５のＢ１）、デバイスドライバ１０２から受け取った座標データを含むマルチタッチイベント情報をＵＩアプリケーション１０４に引き渡す（図５のＢ２）。
【００４１】
ＵＩアプリケーション１０４は、フレームワーク１０３からマルチタッチイベント情報を受け取ると（図５のＣ１）、マルチタッチイベント情報に含まれる座標データ内のＩＤ番号を参照して、各タッチ入力を識別しながら、例えばジェスチャ認識処理等を行った後（図５のＣ２）、各タッチ入力に応じた情報処理を実行する（図５のＣ３）。
【００４２】
以上のように、本実施形態の情報処理装置によれば、同時に発生した２つの入力デバイスに関するイベントが１つの入力デバイスのマルチイベントとして処理されるため、一時に１つの入力デバイスに関するイベントのみ処理可能なフレームワーク１０３の変更を行うことなく、また、ＵＩアプリケーション１０４のフレームワーク１０３とのインタフェース部分の変更を行うことなく、当該フレームワーク１０３が実装されている状況下で２つの入力デバイスに関するイベントを一時に対応することが可能となる。
【００４３】
なお、本実施形態の動作制御処理は、ソフトウェア（プログラム）によって実現することができるので、このソフトウェアを格納したコンピュータ読み取り可能な記憶媒体を通じてこのソフトウェアを通常のコンピュータにインストールして実行することにより、本実施形態と同様の効果を容易に実現することができる。
【００４４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４５】
１１…ＣＰＵ、１２…メモリ、１３…ＩＯコントローラ、１４…ビデオコントローラ、１５…ＬＣＤ、１６…ペンデバイスコントローラ、１７…タッチデバイスコントローラ、１８…記憶装置、１９…ペンデバイス、２０…タッチデバイス、１０１…制御プログラム、１０２…デバイスドライバ、１０３…フレームワーク、１０４…ユーザインタフェースアプリケーション。
【図１】
2014089592.tif 000003
【図２】
2014089592.tif 000004
【図３】
2014089592.tif 000005
【図４】
2014089592.tif 000006
【図５】
2014089592.tif 000007