以下の実施の形態では、同一の部品には同一の参照番号を付してある。それらの名称及び機能も同一である。したがって、それらについての詳細な説明は繰返さない。
図1を参照して、本発明の実施の形態に係る画像表示システム100は、画像表示装置200、第1端末装置300、第2端末装置400、及び無線ルータ500を備えて構成される。画像表示装置200及び無線ルータ500は有線で通信ネットワーク(LAN及びインターネットを含む。以下、単にネットワークという)510に接続されている。画像表示装置200は、例えば、タッチ操作によって描画可能な大画面の電子黒板装置である。第1端末装置300及び第2端末装置400は携帯端末装置である。第1端末装置300及び第2端末装置400は、例えば10インチ程度の表示画面を有するタブレット装置、又は、タブレット装置よりもサイズの小さい(数インチ程度)表示画面を有するスマートフォン等である。
無線ルータ500は、TCP/IP等の所定の通信プロトコルにしたがって、無線通信可能な機器をネットワーク510に接続するための装置である。第1端末装置300及び第2端末装置400は、無線ルータ500を介してネットワーク510に接続可能である。図1には示していないが、画像表示システム100の周囲には、第1端末装置300及び第2端末装置400以外の無線通信可能な端末装置が存在している場合がある。
図2を参照して、画像表示装置200は、画像表示装置200全体を制御する制御部(以下、CPUという)202と、プログラム等を記憶するためのROM(Read Only Memory)204と、揮発性の記憶装置であるRAM(Random Access Memory)206と、記憶部208と、バス220とを備えている。ROM204には、画像表示装置200の動作を制御するのに必要なプログラム及びデータが記憶されている。記憶部208は、通電が遮断された場合にもデータを保持する不揮発性の記憶装置であり、例えば、ハードディスクドライブ、又はフラッシュメモリ等である。記憶部208は、所定のインターフェイス(USB等)を備えて着脱可能に構成されていてもよい。
CPU202、ROM204、RAM206、記憶部208はバス220に接続されている。各部間のデータ(制御情報を含む)交換は、バス220を介して行なわれる。CPU202は、バス220を介してROM204からプログラムをRAM206上に読出して、RAM206の一部を作業領域としてプログラムを実行する。即ち、CPU202は、ROM204に格納されているプログラムにしたがって画像表示装置200を構成する各部の制御を行ない、画像表示装置200の各機能を実現する。
RAM206は、画像を表示するためのビデオメモリとしての機能を備えている。即ち、RAM206の一部はVRAM(Video Random Access Memory)として使用される。以下、VRAMとして使用されるRAM206の領域を、VRAM領域という。なお、RAM206とは別にVRAMを備える構成であってもよい。
画像表示装置200はさらに、表示部210、表示制御部212、操作部214、タイマ216、及び通信IF部218を備えている。表示制御部212、操作部214、タイマ216、及び通信IF部218は、バス220に接続されている。ここでは、画像表示装置200は電子黒板装置であるとして説明する。
表示部210は、画像を表示するための表示パネル(液晶パネル等)である。表示制御部212は、表示部210を駆動するための駆動部を備え、RAM206のVRAM領域に記憶された画像データを所定のタイミングで読出し、表示部210に画像として表示するための信号を生成して、表示部210に出力する。表示される画像データは、CPU202が記憶部208から読出して、RAM206に伝送する。このようにして、VRAM領域に記憶されたデータは、画像として表示部210に表示される。
タイマ216は、CPU202からの要求を受けて、現在時刻を表す情報(以下、単に現在時刻ともいう)をCPU202に伝送する。
通信IF部218は、例えばNIC(Network Interface Card)であり、通信ケーブルでハブ(図示せず)等に接続され、これを介してネットワーク510に接続される。これによって、ネットワーク510に接続された端末装置(コンピュータ等)との間で画像データを送受信する。通信IF部218を介して外部から受信した画像データは、記憶部208に記録される。
操作部214は、ユーザによる画像表示装置200に対する指示等の入力を受付ける。電子黒板装置では、操作部214は、液晶パネル等で構成された表示部210の上に配置され、タッチされた位置を検出するためのLED等を有するタッチ検出装置、及び操作キー部(何れも図示せず)を備えている。画像表示装置200を操作するために、表示部210にはソフトウェアキー(以下ソフトキーともいう)が表示され、操作キー部にはハードウェアキー(以下ハードキーともいう)が配置される。CPU202は、これらのキーに対するユーザの操作を監視する。ユーザはこれらのキーにタッチして、画像表示装置200に対して、表示内容に対する処理の指示を入力することができる。表示部210に表示されたソフトキーの選択は、タッチ検出装置によってタッチされた位置を検出することによって行なわれる。
タッチ検出装置は、例えば公知の赤外線遮断検出方式のタッチパネルである。このタッチパネルは、長方形の書込面の隣接する2辺にそれぞれ一列に配置された発光ダイオード列(以下、LED列と記す)と、それぞれのLED列に対向させて一列に配置された2つのフォトダイオード列(以下、PD列と記す)とを備えている。LED列の各LEDから赤外線を発光し、この赤外線を対向するPD列の各PDが検出する。
ユーザがタッチペンでタッチパネル上の1点にタッチすると、タッチペンのペン先によって赤外線が遮断される。したがって、タッチされた位置座標を求めることができるタッチペンを使用せずに、指でタッチ検出装置にタッチしても、同様にタッチされた位置を検出することができる。
タッチされた位置の検出技術は公知であるので、これ以上の説明は繰返さない。また、タッチ検出装置には、赤外線遮断方式以外のタッチパネル(静電容量方式、表面弾性波方式、抵抗膜方式等)を用いてもよい。
画像表示装置200には、図3に示すような画面が表示される。表示部210の表示画面は、描画領域250と機能ボタン領域240とに区分されている。描画領域250は、ユーザがタッチ操作によって描画できる領域である。即ち、タッチされた点及びその移動軌跡のXY座標が、上記したようにタッチ検出装置によって検出され、CPU202に伝送される。CPU202は、受信した座標データに応じて、RAM206の対応するメモリアドレスに所定値を書込む。RAM206のVRAM領域上の画像データの画素値を変更してもよいが、ここでは、RAM206は、表示される画像データを記憶するVRAM領域とは別に、描画データを記憶する領域(以下、オーバレイ領域ともいう)を備えているとする。この場合、例えば、オーバレイ領域において描画されていないメモリアドレスのデータを“0”とすると、CPU202は、描画位置に対応するメモリアドレスに“1”を書込む。表示制御部212は、画像データ(VRAM領域上のデータ)と描画データ(オーバレイ領域のデータ)とをスーパーインポーズして表示部210に表示する。即ち、描画データがある点(例えばオーバレイ領域に“1”が記録されている画素)では描画データを表示(予め設定された色を表示)し、描画データがない点(例えばオーバレイ領域に“0”が記録されている画素)では画像データを表示する。図3においては、描画領域250に表示された画像の上に、タッチペン280によって描画された図形282が表示されている。
機能ボタン領域240には、各々特定の機能が割当てられた複数の機能ボタン(1点鎖線領域242参照)が表示される。各機能ボタンに割当てられる機能は、例えば、タッチ操作による描画機能、所定領域の描画を削除する消しゴム機能、記憶部208に保存されているファイル(画像データ)を開く機能、表示されている画像データを記憶部208に保存する機能、表示されている画像データを印刷する機能等である。各機能ボタンは、アイコンとして表示される。このように、各機能ボタンは、表示されている画像に対する画像処理の実行を指示するアイコンを含む。
描画領域250の下部には、ページ操作領域260が表示される。この領域には、ページ送りボタン262、ページ戻しボタン264、及びページ番号表示欄266が表示される。ページ送りボタン262は、タッチされると、表示されているページ(描画領域250に表示された画像)を右側に送り、次のページを表示するためのボタンである。ページ戻しボタン264は、タッチされると、表示されているページを左側に送り、前のページを表示するためのボタンである。ページ番号表示欄266には、表示対象の複数のページのうち、現在表示されているページの番号が表示される。ページ操作領域260は、位置が固定されており、スクロール中にも移動しない。例えば、ページ操作領域260を表示部210に表示するためのデータは、描画用のオーバレイ領域とは別のオーバレイ領域に記憶しておけばよい。
ユーザが、ページ送りボタン262をタッチすると、タッチされた位置の座標データがタッチ検出装置からCPU202に伝送され、CPU202は、受信した座標データが、ページ送りボタン262が表示された領域内の位置であると判定する。表示対象の一連の画像データは、予め全て記憶部208から読出されてRAM206に記憶されているとすると、表示制御部212は、RAM206上の現在表示されているページに対応する画像データと、次ページに対応する画像データとから、ページ送りの途中の画像データ(1ページ分の画像データ)を生成し、VRAM領域に上書きする。これによって、表示部210に、ページ送りされている途中の画像が表示される。
図4を参照して、第1端末装置300は、第1端末装置300全体を制御するCPU302と、メモリ304と、RAM306と、バス320とを備えている。メモリ304は、電気的に書換え可能な不揮発性の記憶装置であり、例えばフラッシュメモリ等である。メモリ304には、第1端末装置300の動作を制御するのに必要なプログラム及びデータが記憶されている。
CPU302、メモリ304、及びRAM306はバス320に接続されている。各部間のデータ(制御情報を含む)交換は、バス320を介して行なわれる。CPU302は、バス320を介してメモリ304からプログラムをRAM306上に読出して、RAM306の一部を作業領域としてプログラムを実行する。即ち、CPU302は、メモリ304に格納されているプログラムにしたがって第1端末装置300を構成する各部の制御を行ない、第1端末装置300の各機能を実現する。
RAM306は、画像を表示するためのビデオメモリとしての機能を備えている。即ち、RAM306の一部はVRAMとして使用される。なお、RAM306とは別にVRAMを備える構成であってもよい。
第1端末装置300はさらに、表示部310、表示制御部312、操作部314、無線IF部318、及び加速度センサ316を備えている。表示制御部312、操作部314、無線IF部318、及び加速度センサ316は、バス320に接続されている。ここでは、第1端末装置300はタブレット装置であるとして説明する。
表示部310は、画像を表示するための表示パネル(液晶パネル等)である。表示制御部312は、表示部310を駆動するための駆動部を備え、RAM306に記憶された画像データを所定のタイミングで読出し、表示部310に画像として表示するための信号を生成して、表示部310に出力する。表示される画像データは、CPU302がメモリ304から読出して、RAM306に伝送する。無線IF部318は、無線ルータ500との無線通信を行ない、第1端末装置300をネットワーク510に接続可能にする。
操作部314は、ユーザによる第1端末装置300に対する指示等の入力を受付ける。タブレット装置では、操作部314は、液晶パネル等で構成された表示部310の上に配置され、タッチされた位置を検出するためのタッチパネルと、操作キー部(何れも図示せず)とを備えている。第1端末装置300を操作するために、表示部310にはソフトキーが表示され、操作キー部にはハードキーが配置される。CPU302は、これらのキーに対するユーザの操作を監視する。ユーザはこれらのキーにタッチして、第1端末装置300に対して指示を入力することができる。表示パネルに表示されたソフトキーの選択は、タッチパネルによってタッチされた位置を検出することによって行なわれる。
タッチパネルは、例えば公知のシート状のタッチパネルである。タッチ位置の検出方法は公知であるので、ここでは説明を繰返さない。
第1端末装置300には、図5に示すような画面が表示される。表示部310の表示画面は、入力領域350と機能ボタン領域340とに区分されている。機能ボタン領域340には、各々特定の機能が割当てられた複数の機能ボタンが表示される。
入力領域350は、ユーザがタッチ位置を入力できる領域である。即ち、タッチされた点及びその移動軌跡のXY座標が、タッチパネルによって検出され、CPU302に伝送される。図5には、ユーザ(手の輪郭のみを示す)380が入力領域350にタッチしたまま移動させた指の軌跡が、点線で示されている。点382は、現在指がタッチしている点であり、その位置座標は(x1,y1)である。入力領域350の左上頂点が原点、右方向がX軸の正方向、下方向がY軸の正方向である。CPU302は、タッチパネルによって検出される位置座標を、その発生/消失のタイミングを考慮して解析することで、タップ(一瞬だけ軽く触れる操作)、ダブルタップ(タップを連続して2回繰返す操作)、及びフリック(タッチした状態で指を一方向にずらす又は弾く操作)等のジェスチャ操作を検出することもできる。入力領域350には、操作用アイコンを表示することもできる。図5に示された、3つのアイコン360〜364に関しては後述する。
加速度センサ316は、第1端末装置300に外力が加えられたことによって生じる加速度ベクトルを検出する。外力には重力も含まれる。加速度センサ316から出力されるデータは、CPU302によって解析され、例えば、第1端末装置300の姿勢(重力に対する向き)が決定される。
第2端末装置400は、第1端末装置300と同様の構成及び機能を有する端末装置であるので、重複説明を繰返さない。
以下に、図6〜図8を参照して、図1の画像表示システム100において、画像表示装置200の画面に表示されたカーソルの表示態様を制御するためのプログラムの制御構造に関して説明する。カーソルの表示態様の制御は、第1端末装置300又は第2端末装置400と画像表示装置200との間で所定のデータが送信受信されることにより実現される。
以下の説明では、画像表示装置200はプレゼンテーション又は会議等を行なう場所に設置された電子黒板装置であり、第1端末装置300及び第2端末装置400は、参加しているユーザが使用するタブレット装置であるとする。画像表示装置200のプログラムは、電源がオンされて、画像の表示及びネットワーク通信等の通常の機能が可能な状態になれば、自動的に実行される。第1端末装置300及び第2端末装置400では、ユーザの操作によって、プログラムが起動される。第1端末装置300及び第2端末装置400と画像表示装置200との通信は、例えばTCP/IP等の公知の通信プロトコルが採用され、第1端末装置300及び第2端末装置400には、画像表示装置200のIPアドレスが記憶されているとする。
ここでは、第1端末装置300がユーザによって操作され、機能ボタン342(図5参照)がタップされたとする。機能ボタン342がタップされると、図6に示した画像表示装置200にカーソルを表示させるアプリケーションプログラム(以下、アプリケーションともいう)が起動する。このとき、機能ボタン342は、選択状態であることを表す形態(例えば、輝度の反転表示)になる。
ステップ600において、CPU302は、接続を要求するデータ(以下、接続要求コマンドという)を、無線IF部318を介して、画像表示装置200に送信する。即ち、CPU302は、メモリ304から画像表示装置200のIPアドレスを読出し、読出したIPアドレス宛に、接続要求コマンドを含む所定のデータを送信する。送信されるデータには、送信元である第1端末装置300のIPアドレスも含まれる。
ステップ602において、CPU302は、接続を許可するデータ(以下、接続許可コードともいう)を受信したか否かを所定時間判定する。受信したと判定された場合、制御はステップ604に移行する。所定時間内に受信できなかった場合、制御はステップ600に戻る。後述するように、ステップ600で送信された接続要求コマンドが画像表示装置200に受信されると、画像表示装置200から接続許可コードを含む所定のデータが、送信元の第1端末装置300のIPアドレス宛に送信される。このデータには、端末装置IDが含まれている。画像表示装置200には、第1端末装置300及び第2端末装置400等、複数の端末装置が同時に接続可能であるので、端末装置IDは、複数の端末装置を識別するために、画像表示装置200が一意に割当てるIDである。
ステップ604において、CPU302は、ユーザにより何らかの操作がなされたか否かを判定する。操作されたと判定された場合、制御はステップ606に移行する。そうでなければ、ステップ604が繰返される。操作には、タッチパネルへの操作、即ち、入力領域350に対するタッチ操作及びドラッグ操作、表示されたアイコン(図5のアイコン360〜364等)のタップ操作が含まれるだけでなく、第1端末装置300全体に対する操作も含まれる。第1端末装置300全体に対する操作とは、例えば、第1端末装置300の姿勢を変化させる操作、第1端末装置300を揺する操作等である。CPU302は、第1端末装置300全体に対する操作を、加速度センサ316によって検出された加速度を用いて決定する。さらに、操作には、指示された操作を解除する操作(例えば、カーソルの特殊表示を解除する操作)も含まれる。
ステップ606において、CPU302は、実行中の本アプリケーションを終了する指示であるか否かを判定する。終了の指示は、選択状態である機能ボタン342がタップされることによって行なわれる。終了指示であれば、制御はステップ608に移行する。そうでなければ、制御はステップ612に移行する。
ステップ612において、CPU302は、操作に応じたコマンドを含むデータを、画像表示装置200に送信する。ここで送信されるデータは、例えば図9に示す構造のデータである。図9において、各データは、所定ビットのデータである。端末装置IDは、ステップ602で受信されたデータ(画像表示装置200が第1端末装置300に割当てたID)である。コマンドIDは、操作に対応して予め決定されているIDである。パラメータ数Mは、含まれているパラメータの総数であり、パラメータ1〜Mは、各パラメータの値を表す。
例えば、ユーザが入力領域350を指でタッチすると、表示を指示するコマンドIDと、パラメータとしてタッチされている点を表すX座標及びY座標とが送信される。ドラッグすると、ステップ604、ステップ606及びステップ612が繰返され、これらのデータが繰返し送信される。
アイコン360がタップされると、マウスの左クイックに対応するコマンドIDが送信される。アイコン362がタップされると、マウスの右クイックに対応するコマンドIDが送信される。アイコン364がタップされると、カーソルの点滅表示を指示するコマンドIDが送信される。なお、入力領域350にタッチしたまま所定の軌跡(例えば、チェックマーク等の図形)を描くようにタッチ位置を移動させたことが検出された場合に、カーソルの点滅表示を指示するコマンドIDが送信されてもよい。第1端末装置300の姿勢を変化させる操作、又は第1端末装置300を揺する操作がなされた場合に、カーソルの点滅表示を指示するコマンドIDが送信されてもよい。
ステップ608において、CPU302は、切断を要求するデータ(以下、切断要求コマンドともいう)を画像表示装置200に送信する。このとき、切断要求コマンドは、図9のデータ構造で送信される。即ち、端末装置IDも送信される。
ステップ610において、CPU302は、切断を許可するデータ(以下、切断許可コードともいう)を受信したか否かを所定時間判定する。受信したと判定された場合、本プログラムは終了する。所定時間内に受信できなかった場合、制御はステップ608に戻る。後述するように、ステップ610で送信された切断要求コマンドが画像表示装置200に受信されると、画像表示装置200から切断許可コードが、送信元の第1端末装置300のIPアドレス宛に送信される。
このように、ユーザが、アプリケーションを起動すると、第1端末装置300は、画像表示装置200に接続を要求し、接続が許可された後、ユーザが第1端末装置300を操作すると、操作に応じて、画像表示装置200に表示されたカーソルを移動させるためのデータ、又は、カーソルを点滅させるためのデータ等を、画像表示装置200に送信することができる。画像表示装置200は、受信したデータを処理することによって、以下に説明するように、カーソルの表示態様を変化させる。
図7を参照して、ステップ700において、CPU202は、タイマ216から現在時刻(時刻情報)を取得して、RAM206に開始時刻として記憶する。
ステップ702において、CPU202は、接続要求コマンドを受信したか否かを判定する。受信したと判定された場合、制御はステップ704に移行する。そうでなければ、制御はステップ710に移行する。
ステップ704において、CPU202は、受信したデータのうち送信元のIPアドレスをRAM206に記憶する。このとき、CPU202は、一意の端末装置IDを決定し、IPアドレスに対応させてRAM206に記憶する。
ステップ706において、CPU202は、カーソル情報を作成して、RAM206に記憶する。カーソル情報は、例えば図10に示すデータ構造で記憶される。図10において、カーソル数は、CPU202が管理しているカーソルの総数である。この「カーソル数」は、後述するように、表示部210に表示されているカーソルの総数と必ずしも同じではない。表示部210に表示されているカーソルの総数は、「カーソル総数」以下である。端末装置ID、カーソル状態、X座標、及びY座標は1組として、記憶されており、この組をカーソル情報という。端末装置IDは、ステップ704で一意に決定されたIDである。X座標及びY座標は、端末装置IDに対応するカーソルの現在の位置座標である。カーソル情報が新規に作成されるときには、X座標及びY座標は、所定の位置(例えば、原点又は描画領域の中央位置)を表す値に設定される。
カーソル状態は、さらに、表示フラグ、残時間Ti、カーソル種別を特定するデータ、及び、特殊表示フラグ等を含む。表示フラグは、対応するカーソルが表示部210に表示されるか否かを示す。例えば“1”であれば表示、“0”であれば非表示を表す。カーソル情報が新規に作成されるときには、表示フラグは“0”が設定される。残時間Tiは、後述するように、表示部210に表示されているカーソルを消去するまでの時間を表す。
カーソル種別は、表示部210に表示されるカーソルの形態(形及び色)を特定するためのデータである。画像表示装置200の記憶部には、複数種類のカーソルの画像データが記憶されており、それらの各画像データにカーソル種別が一意に割当てられている。CPU202は、決定した端末装置IDに対応するカーソル情報を新規に作成する場合、表示部210に同時に表示されるカーソルを、ユーザが容易に識別できるように、既に使用されているカーソル種別と異なるカーソル種別を割当てる。
特殊表示フラグは、カーソルを通常と異なる形態で表示されるか否かを表すデータである。“0”は通常表示を意味し、“1”は特殊表示を意味する。カーソル情報が新規に作成されるときには、特殊表示フラグは“0”が設定される。
図10のカーソル情報は、表示部210に表示する画面を生成するときに参照される。なお、上記したようにカーソル情報が新規に作成されたこの段階では、表示フラグは“0”であるので、表示部210には該当するカーソルは表示されない。
ステップ708において、CPU202は、接続要求コードを送信した端末装置に接続許可コードを含む所定のデータを送信する。送信されるデータには、ステップ704で決定された端末装置IDが含まれている。
ステップ710において、CPU202は、カーソル操作に関するコマンドIDを含むデータを受信したか否かを判定する。受信したと判定された場合、制御はステップ712に移行する。そうでなければ、制御はステップ718に移行する。カーソル操作に関するコマンドIDは、上記したように、接続を許可した端末装置(ステップ708で接続許可コードを送信した端末装置)から送信される、端末装置の操作に対応するコマンドIDである。ここで受信されたデータ(ステップ612において、端末装置から送信されたデータ)には、上記したように、端末装置IDが含まれている。
ステップ712において、CPU202は、ステップ710で受信したデータにしたがって、カーソル情報を更新する。画像表示装置200では、図10に示したように複数のカーソル情報を記憶している。更新すべきカーソル情報は、ステップ710で受信したデータに含まれる端末装置IDによって特定される。CPU202は、該当する表示フラグを“1”にセットし、受信したデータにX座標及びY座標が含まれていれば、それらの値を該当するカーソル情報のX座標及びY座標に書込む。また、受信したコマンドIDが、特殊表示を指示するIDであれば、特殊表示フラグを“1”にセットする。受信したコマンドIDが、特殊表示の解除を指示するIDであれば、特殊表示フラグを“0”にセットする。
ステップ714において、CPU202は、残時間Tiに、初期値として所定の値Tsを書込む。書込まれる初期値Tsは、例えば10秒である。
ステップ716において、CPU202は、カーソル情報(図10参照)を参照して、管理している全てのカーソルの表示を更新する。具体的には、CPU202は、RAM206のVRAM領域に、更新後の位置にカーソル画像を含む画像データを書込む。例えば、図3に示したように、第1端末装置300からの接続要求コマンドを受信したことによって、カーソル230が表示される。カーソル230の位置座標(x1,y1)は、第1端末装置300から受信したX座標及びY座標、即ち図5に示したタッチ位置の座標(x1,y1)に対応している。さらに、CPU202は、“1”に設定されている特殊表示フラグに対応するカーソル種別によって特定されるカーソルを、点滅表示させる。点滅表示するには、例えば、同じデザインで輝度が異なる2種類の、カーソル画像データを予め記憶しておき、それらの画像データを所定の時間間隔で交互に、VRAM領域の所定位置に書込めばよい。
ステップ718において、CPU202は、切断要求コマンドを含むデータを受信したか否かを判定する。切断要求コマンド及び端末装置IDを含むデータは、ステップ708でCPU202が接続許可コードを送信した端末装置から送信される(ステップ608参照)。受信したと判定された場合、制御はステップ720に移行する。そうでなければ、制御はステップ724に移行する。
ステップ720において、CPU202は、受信したデータに含まれる端末装置IDを含むカーソル情報をRAM206から削除し、カーソル表示を更新する。これによって、それまで表示されていたカーソルは表示部210から消去される。
ステップ722において、CPU202は、切断許可コードを、切断要求コマンドを送信した端末装置に送信する。
ステップ724において、CPU202は、所定時間が経過したか否かを判定する。具体的には、CPU202は、タイマ216から現在時刻を取得して、RAM206に記憶されている開始時刻(時刻情報)から、所定時間が経過したか否かを判定する。所定時間は、例えば1秒である。経過していると判定された場合、CPU202は、取得した現在時刻を、RAM206の開始時刻に上書きし、その後、制御はステップ726に移行する。そうでなければ、制御はステップ728に移行する。
ステップ726において、CPU202は、カーソル消去処理を実行する。カーソル消去処理は、所定の時間操作されていないカーソルを消去する処理である。但し、カーソル情報はRAM206に記憶されたままであり、表示されていないカーソルも、CPU202による管理の対象である。カーソル消去処理は、図8を参照して後述する。
ステップ728において、CPU202は、終了の指示を受けたか否かを判定する。終了の指示は、例えば、画像表示装置200の電源がOFFされることである。終了の指示を受けたと判定された場合、本プログラムは終了する。そうでなければ、制御はステップ702に移行する。
図8を参照して、カーソル消去処理のプログラムのステップ740において、CPU202は、管理中のカーソルの中から1つのカーソルを指定する。具体的には、CPU202は、RAM206に記憶されているカーソル情報に含まれる端末装置IDを指定する。
ステップ742において、CPU202は、ステップ740で指定したカーソルが表示状態であるか否かを判定する。具体的には、CPU202は、ステップ740で指定した端末装置IDに対応する表示フラグの値が“1”であるか否かを判定する。表示状態であると判定された場合、制御はステップ744に移行する。そうでなければ(非表示状態)、制御はステップ740に戻り、ステップ740において、重複しないようにカーソルが指定される。
ステップ744において、CPU202は、ステップ740で指定したカーソルの表示を維持する時間が“0”であるか否かを判定する。具体的には、CPU202は、ステップ740で指定した端末装置IDに対応する残時間Tiが“0”であるか否かを判定する。“0”であると判定された場合、制御はステップ746に移行する。そうでなければ、制御はステップ748に移行する。
ステップ746において、CPU202は、ステップ740で指定したカーソルを消去するように設定する。具体的には、CPU202は、ステップ740で指定した端末装置IDに対応する表示フラグに“0”を設定する。
ステップ748において、CPU202は、現在の残時間Tiから1を減算し、得られた値を新たな残時間Tiとして、RAM206に上書きする。
ステップ750において、CPU202は、管理対象である全てのカーソルに関して、処理を完了したか否かを判定する。全カーソルに関して完了したと判定された場合、制御は752に移行する。そうでなければ(未処理のカーソルが残っている)、制御はステップ740に戻り、ステップ740において、重複しないようにカーソルが指定される。
ステップ752において、CPU202は、ステップ716と同様に、カーソル情報(図10参照)を参照して、管理している全てのカーソルの表示を更新する。その後、制御はステップ728(図7参照)に戻る。
以上のように、終了の指示を受けるまでは、画像表示装置200において、ステップ700〜ステップ726及びステップ740〜ステップ752の処理が繰返される。これによって、画像表示装置200は、端末装置からの接続要求を受けた場合、表示部210に表示するカーソルを管理するためのカーソル情報を作成し、RAM206に記憶する(ステップ702〜ステップ708)。その後、画像表示装置200は、接続を許可した端末装置から受信したデータにしたがって、対応するカーソルの表示態様を変更する(ステップ710〜ステップ716)。
また、画像表示装置200は、周期的に(例えば、1秒経過する度に)、カーソルを操作するためのデータを一定時間(例えば10秒)受信していないカーソルを消去することができる(ステップ740〜ステップ752)。ユーザが端末装置を操作し、カーソルを操作するためのデータを受信した場合には、画像表示装置200は、対応するカーソルを再度表示することができる(ステップ712及びステップ714)。即ち、画像表示装置200は、ユーザが必要とするカーソルのみを表示することができ、不要なカーソルを一時的に消去することができる。したがって、操作されないカーソルがいつまでも画面に表示されて、カーソルに隠されて情報を読取ることができない状況が生じることを抑制することができる。
なお、画像表示装置200は、端末装置からの切断要求を受信した場合、対応するカーソル情報をRAM206から削除して管理対象から除外し、カーソルを消去する(ステップ718〜ステップ722)。
上記では、第1端末装置300が、画像表示装置200にカーソルを表示させて操作する場合を説明したが、第2端末装置400等の他の端末装置が、画像表示装置200に接続要求を出して、カーソルを表示することもできる。画像表示装置200は、画像表示装置200に接続要求コマンドを送信した端末装置に、重複しないように端末装置IDを割当てるので、複数のカーソルに関してそれぞれを独立に管理(表示、特殊表示、又は消去)することができる。例えば、図3には、第1端末装置300に対応するカーソル230以外にカーソル232が表示されている。カーソル232は、例えば第2端末装置400に対応するカーソルであり、カーソル230とは形状が異なる。
上記では、特殊表示がカーソルの点滅表示である場合を説明したが、これに限定されない。特殊表示が設定された場合、通常表示される色と異なる色でカーソルを表示する、又は、通常の形状と異なる形状のカーソルを表示してもよい。なお、このときアニメーションにより、色、形状、又は、色及び形状を短い周期で変化させて表示してもよい。
上記では、第1端末装置300に、図5に示したアイコン360〜364が表示される場合を説明したが、これに限定されない。例えば、図11に示すアイコン370〜376が表示されてもよい。アイコン370がタップされると、CPU302は、画像表示装置200に表示されているページを左側に送り、前のページを表示するように指示するデータ(該当するコマンドIDを含むデータ)を送信する。アイコン372がタップされると、CPU302は、画像表示装置200に表示されているページを右側に送り、次のページを表示するように指示するデータ(該当するコマンドIDを含むデータ)を送信する。アイコン374がタップされると、CPU302は、画像表示装置200に表示されているページを拡大表示するように指示するデータ(該当するコマンドIDを含むデータ)を送信する。アイコン376がタップされると、CPU302は、画像表示装置200に表示されているページを縮小表示するように指示するデータ(該当するコマンドIDを含むデータ)を送信する。第1端末装置300には、これら以外の操作を画像表示装置200に指示するためのアイコンが表示されてもよい。
カーソル情報は、上記の構造に限定されない。上記以外のデータを含むことも、上記のデータを含まないことも可能である。例えば、カーソル情報は、残時間Tiを含んでいれば、表示フラグを含んでいなくてもよい。その場合には、残時間Tiに表示フラグの役割をも持たせればよい。即ち、残時間が“0”以外の値のときに、カーソルを表示し、残時間が“0”であれば、表示しないようにすればよい。また、端末装置のIPアドレスを端末装置IDとして使用してもよい。また、ネットワーク510がイントラネットであれば、IPアドレスの全ビットデータを使用するのではなく、ホストアドレス(固定のネットワークアドレス以外の部分)を端末装置IDとして使用してもよい。
上記では、カーソル消去処理が、図8に示されたプログラムにより実現される場合を説明したが、これに限定されない。カーソル消去処理は、例えば図12に示すように、カーソルが操作されない時間の経過に応じてカーソルの属性(例えば、輝度又は色等)を変化させてもよい。ここでは、RAM206に記憶される各カーソル情報のカーソル状態(図10参照)には、所定のカーソル属性の値がさらに含まれており、CPU202は、そのカーソル属性の値を用いてカーソルを表示するとする。また、図7のステップ714で設定される残時間Tiの初期値Ts、即ちカーソルを消去するまでの時間Ts(例えば10秒)が複数(N)の期間に区分され、各期間に対応する所定のカーソル属性の値が、記憶部208に記憶されているとする。各期間の先頭時間(最小時間)をTj(ここで、j=1〜N)で表せば、各期間内の時間tは、Tj≦t<Tj+1で表される。なお、T1=0、TN+1=Tsである。
図12のフローチャートにおいて、図8のフローチャートと同じ参照番号を付したステップの処理は図8と同じであるので、重複説明を繰返さない。図12が図8と異なるのは、ステップ760〜ステップ768が追加されている点だけである。
残時間Tiを変更するステップ748に続き、ステップ760において、CPU202は、以降の繰返し処理のカウンタjに“1”を設定する。
ステップ762において、CPU202は、記憶部208からTj及びTj+1を読出し、残時間Tiが、Tj≦Ti<Tj+1を満たすか否か、即ち、残時間Tiが、先頭時間がTjである期間内の値であるか否かを判定する。Tj≦Ti<Tj+1が満たされると判定された場合、制御はステップ764に移行する。そうでなければ、制御はステップ766に移行する。
ステップ764において、CPU202は、Tj≦Ti<Tj+1に対応する値(例えばLj)を記憶部208から読出して、ステップ740で指定した端末装置IDに対応するカーソル属性(例えば輝度)に設定する。
ステップ766において、CPU202は、カウンタjが最大値N以上であるか否かを判定する。最大値以上であると判定された場合、制御はステップ750に移行する。そうでなければ、制御はステップ768に移行する。
ステップ768において、CPU202は、カウンタjに“1”を加算し、得られた値を新たなカウンタjとする。その後、制御は、ステップ762に戻る。
このように、所定回数(カーソルを消去するまでの経過時間Tsの区分数N)ステップ762〜ステップ768が繰返されることによって、残時間Tiに応じて、ステップ740で指定した端末装置IDに対応するカーソル属性が決定される。
例えば、カーソルの輝度Lを変化させる場合、記憶部208には、各先頭時間Tjに対応させて輝度Lj(j=1〜N)を記憶しておく。Ts=10(秒)であり、これが1秒間隔で10の期間に区分される場合、Tj(秒)とLjとを対にして、(1,L1)、(2,L2)、・・・、(10,L10)を記憶する。輝度L1〜L10を、L1<L2<・・・<L10になるように設定しておけば、残時間Tiが短くなるに伴って(約1秒経過する度に)、カーソルの輝度が小さく設定される。したがって、ステップ752でカーソル表示が更新されると、常時操作されているカーソル(残時間Tiが初期値Tsに近い値)は高い輝度で表示されるのに対して、操作されない時間が長いカーソルほど、低い輝度で表示される。そして、残時間が“0”になったカーソルは、表示部210から消去される。したがって、ユーザは、後どのくらいの時間でカーソルが消えるかを予想することができるので、必要であれば、端末装置を操作してカーソルが消えないようにすることができる。
カーソル属性は、輝度に限らず、色であってもよい。即ち、操作されない時間が長くなるにつれて、カーソルの色を変化させて表示してもよい。また、カーソル属性としてカーソルの大きさを用い、操作されない時間が長くなるにつれて、カーソルの大きさを徐々に小さく表示してもよい。
上記では、画像表示装置200は、端末装置から接続要求を受信した場合に、重複しないようにカーソル種別を割当てる場合を説明したが、これに限定されない。端末装置を操作するユーザに、カーソル種別を選択させてもよい。例えば、画像表示装置200において、図13に示すプログラムが実行され、第1端末装置300において、図14に示すプログラムが実行されてもよい。
図13のフローチャートにおいて、図7のフローチャートと同じ参照番号を付したステップの処理は図7と同じであるので、重複説明を繰返さない。図13が図7と異なるのは、ステップ706とステップ708との間に、ステップ780〜ステップ784が追加されている点だけである。また、図14のフローチャートにおいて、図6のフローチャートと同じ参照番号を付したステップの処理は図6と同じであるので、重複説明を繰返さない。図14が図6と異なるのは、ステップ600とステップ602との間に、ステップ620〜ステップ626が追加されている点だけである。
画像表示装置200では、カーソル情報を作成するステップ706に続いて、ステップ780おいて、CPU202は、カーソルに関するデータを送信する。例えば、CPU202は、複数の異なるカーソルの画像データ及びそれらの各々を特定するデータ(以下、カーソルIDという)を記憶しており、接続を要求する端末装置に、カーソルを重複しないように割当てるために、まだ割当てていない複数のカーソルの画像データ及びカーソルIDを、ステップ702で接続要求を受信した端末装置(第1端末装置300)に送信する。
ステップ782おいて、CPU202は、カーソルを指定するデータ、即ちカーソルIDを受信したか否かを判定する。受信したと判定された場合、制御はステップ784に移行する。そうでなければ、制御はステップ710に移行する。後述するように、送信した複数のカーソル画像データの中からユーザによって選択されたカーソルを特定するデータ(カーソルID)が返信される。
ステップ784おいて、CPU202は、受信したカーソルIDを、RAM206の所定領域に記憶する。その後、接続許可コードを送信するステップ708が実行される。
第1端末装置300においては、上記の処理に応じた処理が実行される。即ち、図14を参照して、接続要求コマンドを送信したステップ600に続いて、ステップ620において、CPU302は、カーソルの画像データ(ステップ780でCPU202が送信したデータ)を受信したか否かを所定時間判定する。受信したと判定された場合、制御はステップ622に移行する。所定時間内に受信できなかった場合、制御はステップ600に戻る。
ステップ622において、CPU302は、表示部310に受信した複数のカーソルの画像データと、カーソルの選択を促すメッセージ(例えば「使用したいカーソルをタッチして選択してください。」)を表示し、ユーザの選択を待受ける。
ステップ624において、CPU302は、カーソルが選択されたか否かを判定する。選択されたと判定された場合、制御はステップ626に移行する。そうでなければ、ステップ624が繰返される。
ステップ626において、CPU302は、ステップ624で選択されたと判定されたカーソルに対応するカーソルIDを、画像表示装置200に送信する。その後、画像表示装置200からの接続許可コードの受信を判定するステップ602が実行される。
以上により、ユーザは、重複することなく、希望するカーソルを選択することができる。
上記では、画像表示装置200が電子黒板装置である場合を説明したが、これに限定されない。画像表示装置200は、プロジェクタ装置、複数のディスプレイを配列して大画面を形成したマルチディスプレイ装置であってもよい。
上記では、第1端末装置300及び第2端末装置400が、無線ルータ500によってネットワーク510に接続される場合を説明したが、これに限定されない。図15に示すように、第1端末装置300及び第2端末装置400が有線でネットワーク510に接続されていてもよい。
以上、実施の形態を説明することにより本発明を説明したが、上記した実施の形態は例示であって、本発明は上記した実施の形態に限定されるものではなく、種々変更して実施することができる。