以下、本発明の実施の形態について、図面に基づき詳細に説明する。
図1は、本発明の一実施形態に係る情報処理装置10の外観の一例を示す斜視図である。また、図2は、情報処理装置10の構成を示す構成ブロック図である。これらの図に示すように、情報処理装置10は、制御部11と、記憶部12と、画像処理部13と、表示装置14と、タッチセンサ15と、操作ボタン16と、通信部17と、を含んで構成される。
制御部11は、例えばCPU等であって、記憶部12に格納されているプログラムに従って、各種の情報処理を実行する。本実施形態において制御部11が実行する処理の具体例については、後述する。
記憶部12は、一時記憶部12aと不揮発性記憶部12bとを含んで構成され、制御部11によって実行されるプログラムや各種のデータを記憶する。具体的に、一時記憶部12aはRAM等のメモリ素子を含み、制御部11によって実行中のプログラムや当該プログラムが利用するデータ等を一時的に記憶するとともに、制御部11のワークメモリとしても機能する。不揮発性記憶部12bは、フラッシュメモリ等の不揮発性のメモリ素子、及び/又はハードディスクドライブ等を含んで構成され、一時記憶部12aに読み込まれるべきプログラムや各種のデータを記憶する。なお、一時記憶部12aに記憶されたデータは、情報処理装置10の電源を切断することによって消去されるが、不揮発性記憶部12bに記憶されたデータは、情報処理装置10の電源切断後も保存され、再利用可能になっている。
特に本実施形態では、情報処理装置10は、ゲームアプリケーション等のアプリケーションプログラムAPを実行対象としており、制御部11がアプリケーションプログラムAPを実行する際には、当該アプリケーションプログラムAPが不揮発性記憶部12bから一時記憶部12aに読み込まれる。
画像処理部13は、例えばGPUとフレームバッファメモリとを含んで構成され、制御部11が出力する描画指示に従って、表示装置14の画面Sに表示する画像を描画する。具体例として、画像処理部13は画面Sに対応したフレームバッファメモリを備え、GPUは、制御部11からの指示に従って、所定時間おきにこのフレームバッファメモリに対して画像を書き込む。そして、このフレームバッファメモリに書き込まれた画像が、所定のタイミングでビデオ信号に変換されて、表示装置14に出力される。
表示装置14は、画面Sを備え、画像処理部13によって描画された画像を画面Sに表示する。なお、表示装置14は、液晶表示パネルや有機EL表示パネル等、画像を表示する各種のデバイスであってよい。また、本実施形態では表示装置14が情報処理装置10の筐体内に設けられているが、表示装置14は情報処理装置10とは独立した装置であってもよい。
タッチセンサ15は、表示装置14の画面Sに対応する形状及び大きさの略矩形の検出面を備えており、この検出面上に物体が接触した場合に、当該物体の接触位置を検出する。タッチセンサ15の検出面は、画面Sと重なるように配置されている。そのため、タッチセンサ15は、画面Sに対してユーザが自分の指や手で持ったスタイラスなどの物体を接触させるなどの操作を行った場合に、このユーザの操作を検知できる。なお、以下では説明の便宜のために、タッチセンサ15はユーザの指を検出対象とし、ユーザは自分の指をタッチセンサ15に接触させて操作入力を行うこととする。また、タッチセンサ15は、必ずしも物体が検出面に接触した場合だけ物体の位置を検出するのではなく、検出面上の検出可能範囲内まで物体が近接した場合に、当該物体の検出面に対する位置を検出してもよい。タッチセンサ15は、例えば静電容量式や感圧式、光学式など、検出面上における物体の位置を検出可能なデバイスであれば、どのような方式のものであってもよい。
操作ボタン16は、タッチセンサ15とともに、ユーザが情報処理装置10に対する操作入力に用いる操作部材の一種である。ユーザは、操作ボタン16を押下することで、情報処理装置10に対する操作入力を行う。なお、図1では1個の操作ボタン16のみが示されているが、情報処理装置10は、複数の操作ボタンを備えてもよい。また、スイッチやアナログスティックなど、その他の操作部材を備えてもよい。
通信部17は、インターネットやLAN、無線LANなどの通信ネットワークを経由して他の通信装置との間で情報の送受信を行うためのインタフェースである。情報処理装置10は、通信部17を介して他の情報処理装置との間で情報の送受信を行う。
ここで、情報処理装置10が実行対象とするアプリケーションプログラムAPについて、説明する。なお、以下ではアプリケーションプログラムAPは、後述するメニュー画像Imが表示された状態でユーザが選択可能なプログラムであることとする。情報処理装置10は、これらのアプリケーションプログラムAP以外にも各種のプログラムを実行してもよい。
本実施形態では、アプリケーションプログラムAPは、2種類のいずれかに分類される。すなわち、フルモードでのみ動作するフルモードプログラムAP1と、フルモードとは異なるメニューモードでの動作が可能なライトプログラムAP2である。本実施形態に係る情報処理装置10は、フルモード及びメニューモードを少なくとも含む複数の動作モードのいずれかで動作する。フルモードは、画面Sの全体を一つのプログラム(フルモードプログラムAP1)が単独で占有して動作する動作モードであって、フルモードでの動作中にタッチセンサ15が検知したユーザの操作内容は、実行中のフルモードプログラムAP1に対する入力として扱われる。フルモードプログラムAP1はフルモードでのみ実行され、その処理結果を示すプログラム出力画像は、画面Sの全体に表示される。なお、フルモードプログラムAP1は、その実行時に画面Sの全体を占有するという性質上、同時に1つしか実行できず、他のフルモードプログラムAP1の処理を実行する場合やメニューモードに移行する場合には、現在実行中のフルモードプログラムAP1の処理については、終了又は一時的に中断させる必要がある。一方、メニューモードは、後述するメニュー画像表示制御部21がメニュー画像Im、又はプログラム関連画像Ipを画面Sの所定領域内に表示する動作モードであって、ライトプログラムAP2は、その処理結果を示すプログラム出力画像をプログラム関連画像Ipとして画面Sの一部の領域に表示する。また、メニューモードにおいては、複数のアプリケーションプログラムAPのそれぞれに関するプログラム関連画像Ipを切り替えて表示することができるため、ライトプログラムAP2は、複数個同時に実行させることができる。
以下、本実施形態に係る情報処理装置10が実現する機能について、説明する。図3は、情報処理装置10が実現する機能を示す機能ブロック図である。同図に示すように、情報処理装置10は、機能的に、操作受付部20と、メニュー画像表示制御部21と、プログラム実行部22と、プログラム更新部23と、を含んで構成される。これらの機能は、制御部11が記憶部12に格納されたプログラムを実行することで、実現される。このプログラムは、例えば光ディスク等のコンピュータ読み取り可能な各種の情報記憶媒体に格納されて情報処理装置10に提供されてよい。また、インターネット等の通信ネットワークを介して情報処理装置10に提供されてもよい。
操作受付部20は、タッチセンサ15や操作ボタン16に対するユーザの指示操作を受け付ける。特に本実施形態において、ユーザは、例えばタッチセンサ15の検出面上に自分の指を接触させたり、検出面上に指を接触させた状態で指をスライドさせたりすることで、情報処理装置10に対する操作入力を行う。以下では、ユーザが検出面上の一点に短い時間だけ指を接触させる動作をタップ操作という。タップ操作が行われた場合、操作受付部20は、タップ操作の位置(すなわち、ユーザが指を接触させた検出面内の位置)を出力する。また、ユーザが検出面上の一点に指を接触させ、その位置を始点として検出面上のいずれかの方向に直線的に指を動かしてから指を離す動作を、スライド操作という。スライド操作が行われた場合、情報処理装置10は、当該操作においてユーザが指を移動させた方向に応じて、各種の情報処理を行う。すなわち、スライド操作は、ユーザが情報処理装置10に対して方向を指示する操作である。後述するメニュー画像Imやプログラム関連画像Ipが表示された状態でスライド操作が行われた場合、操作受付部20は、その始点及び終点の位置から、ユーザが指示する方向を特定する。ここで特定される方向は、例えば、画面Sの上下左右の4方向のいずれかであってよい。後述する各機能部は、操作受付部20が受け付けたタップ操作やスライド操作の内容に応じて、各種の情報処理を実行する。
メニュー画像表示制御部21は、例えば情報処理装置10の起動時や、ユーザがメニュー表示を指示した時など、所定のタイミングで、メニュー画像Imを画面Sに表示する。このメニュー画像Imは、実行対象とするアプリケーションプログラムAPをユーザに選択させるために提示される画像であって、ユーザによる選択対象となる複数のメニュー項目画像Icを含む画像である。複数のメニュー項目画像Icのそれぞれは、複数のアプリケーションプログラムAPのいずれかに関連づけられている。各メニュー項目画像Icは、対応するアプリケーションプログラムAPを表すアイコン画像などであってよい。
図4は、メニュー画像Imが表示された画面Sの一例を示す図である。この図においては、それぞれアプリケーションプログラムAPに関連づけられた10個のメニュー項目画像Ic1〜Ic10が、メニュー画像Imに含まれている。また、この図4の例では、画面Sの上辺に沿って細長い矩形のステータスバー表示領域Asが設けられており、このステータスバー表示領域Asにステータスバーが表示されている。ステータスバー内には、例えば電池残量や通信状態などの情報処理装置10の状態を示す各種の情報や、現在時刻等が含まれてよい。さらに、画面S内のメニュー画像Imが表示される領域をプログラム表示領域Apという。図4の例では、プログラム表示領域Apは画面Sのステータスバー表示領域Asを除いた領域になっているが、ステータスバーを常時表示させる必要がない場合には、プログラム表示領域Apは画面Sの全体であってもよい。なお、前述したメニューモードは、メニュー画像表示制御部21がステータスバー表示領域Asにステータスバーを表示するとともに、プログラム表示領域Apにメニュー画像Im又は複数のアプリケーションプログラムAPのいずれかに関する画像(プログラム関連画像Ip)を表示している状態であるものとする。
メニュー画像Imが表示された状態において、ユーザは、いずれかのメニュー項目画像Icが表示された位置をタップすることで、メニューの選択操作を行う。すなわち、ユーザは、いずれかのメニュー項目画像Icを選択することによって、当該選択されたメニュー項目画像Icに関連づけられたアプリケーションプログラムAPに関するプログラム関連画像Ipの表示を指示する。ただし、本実施形態では、ユーザがメニュー項目画像Icを選択した際に、選択されたメニュー項目画像Icに対応するアプリケーションプログラムAPが直ちに起動されるとは限らない。具体的に、ユーザがフルモードプログラムAP1を選択した場合、メニュー画像表示制御部21は、当該選択されたフルモードプログラムAP1に対応するプログラム関連画像Ipをプログラム表示領域Apに表示させるだけで、その時点では当該フルモードプログラムAP1の起動は行わない。一方、ユーザがライトプログラムAP2を選択した場合、メニュー画像表示制御部21は、当該ライトプログラムAP2の起動をプログラム実行部22に指示し、当該ライトプログラムAP2が出力する画像を、当該ライトプログラムAP2に対応するプログラム関連画像Ipとしてプログラム表示領域Apに表示させる。
プログラム関連画像Ipは、対応するアプリケーションプログラムAPに関連する画像であって、画面Sのプログラム表示領域Apに表示される。なお、プログラム関連画像Ipは、アプリケーションプログラムAPごとに用意された固有の画像を含んでおり、アプリケーションプログラムAPごとに互いに異なる画像となる。具体的に、フルモードプログラムAP1に対応するプログラム関連画像Ipは、当該フルモードプログラムAP1の実行を開始させる実行指示操作の対象となる実行指示画像を含んでいる。本実施形態では、この実行指示画像は、起動ボタンを表す起動ボタン画像ILであることとする。なお、フルモードプログラムAP1に対応するプログラム関連画像Ipは、フルモードプログラムAP1が起動する前から表示されるため、当然ながらフルモードプログラムAP1自身によって描画される画像ではなく、これとは別のプログラム(ここではメニュー画像表示制御部21を実現するプログラム)によって描画される。
さらに、フルモードプログラムAP1に対応するプログラム関連画像Ipは、起動ボタン画像ILとともに、当該フルモードプログラムAP1に対して更新データUDを適用させる更新指示操作の対象となる更新指示画像Iuを含んでいる。この更新指示画像Iuは、複数のフルモードプログラムAP1に対応する複数のプログラム関連画像Ipにおいて、互いに同じ位置に配置されてもよい。また、複数のプログラム関連画像Ipにおいて互いに同じ画像であってもよい。
図5は、フルモードプログラムAP1に対応するプログラム関連画像Ipを表示する画面の一例を示す図である。この図の例では、プログラム関連画像Ipの中央に、対応するフルモードプログラムAP1の実行を開始させる指示操作の対象となる起動ボタン画像ILが配置されている。また、起動ボタン画像ILの上方には、対応するフルモードプログラムAP1に対する各種の指示操作の対象となるアイコン画像が並んで配置されており、その中の一つが更新指示画像Iuとなっている。さらに、起動ボタン画像ILの周囲には、当該フルモードプログラムAP1の提供元が用意した、当該プログラムに関連する各種の関連情報が表示されてよい。
一方、ライトプログラムAP2に対応するプログラム関連画像Ipは、当該ライトプログラムAP2の処理結果を示すプログラム出力画像そのものであってよい。この場合、ライトプログラムAP2に対応するプログラム関連画像Ipは、フルモードプログラムAP1の場合と異なり、ライトプログラムAP2自身によって描画されることになる。なお、ライトプログラムAP2に対応するプログラム関連画像Ipにも、当該ライトプログラムAP2に対して更新データUDを適用させる指示操作の対象となる更新指示画像Iuが含まれてもよい。
また、メニュー画像表示制御部21は、ユーザの指示に応じて、プログラム表示領域Apに表示する画像をメニュー画像Im及びプログラム関連画像Ipの間で切り替えることとする。さらにメニュー画像表示制御部21は、ユーザが過去に複数のメニュー項目画像Icを順に選択した結果表示された複数のプログラム関連画像Ipを、ユーザの指示に応じて切り替えて表示してもよい。これにより、メニュー画像表示制御部21は一度に1つのプログラム関連画像Ipを表示しないとしても、情報処理装置10がメニューモードで動作している間、ユーザはこれまでに表示された複数のプログラム関連画像Ipを任意に切り替えてプログラム表示領域Apに表示させることができる。
プログラム実行部22は、制御部11がアプリケーションプログラムAPを実行することにより実現される。本実施形態では、プログラム実行部22は、メニュー画像Imが表示された状態でユーザがライトプログラムAP2を選択する操作を行った場合や、フルモードプログラムAP1に対応するプログラム関連画像Ipが表示された状態でユーザが当該フルモードプログラムAP1の実行開始を指示する操作(ここでは起動ボタン画像ILをタップする操作)を行った場合に、ユーザによる操作の対象となったプログラムの実行を開始する。具体的に、プログラム実行部22は、実行対象となるアプリケーションプログラムAPの少なくとも一部を一時記憶部12a内に読み込んで、そのプログラムに記述された処理命令の実行を開始する。
特にプログラム実行部22がフルモードプログラムAP1を実行する場合、プログラム実行部22は情報処理装置10の動作モードをフルモードに切り替えて、フルモードでフルモードプログラムAP1を実行する。このとき、既に述べたように、フルモードプログラムAP1の処理結果を示すプログラム出力画像は、画面S全体に表示され、タッチセンサ15に対するユーザの操作入力は、全て実行中のフルモードプログラムAP1に対する入力として処理される。
また、本実施形態では、フルモードプログラムAP1の実行中にユーザが操作ボタン16を押下した場合、プログラム実行部22はフルモードプログラムAP1の処理の実行を中断して、情報処理装置10の動作モードをフルモードからメニューモードへと切り替える。これにより、メニュー画像表示制御部21は、当該フルモードプログラムAP1の起動前に表示されていたプログラム関連画像Ipをプログラム表示領域Apに再表示する。つまり、フルモードプログラムAP1に対応するプログラム関連画像Ipは、当該フルモードプログラムAP1の実行が開始される前の状態だけでなく、開始後にその実行が中断されている状態にも表示されることになる。しかしながら、フルモードプログラムAP1の実行時には情報処理装置10はフルモードで動作するので、いずれにせよこのプログラム関連画像IpはフルモードプログラムAP1が実行されていない状態で表示されることになる。
ここで、フルモードプログラムAP1の実行が中断されている状態(以下、実行中断状態という)について、説明する。この状態においては、フルモードプログラムAP1の実行が完全に終了された状態と異なり、当該フルモードプログラムAP1の実行中断時に一時記憶部12aに記憶されていたフルモードプログラムAP1に関するデータ(以下、中断時データという)の少なくとも一部が、消去されずに記憶部12内に保持される。具体的に、この中断時データは、一時記憶部12aに読み込まれた実行途中のフルモードプログラムAP1の内容や、その実行に伴って生成された一時データなどを含む。これらの一時保存データは、一時記憶部12aから消去されずに、一時記憶部12a内にそのまま維持されてもよい。あるいは、不揮発性記憶部12b内に一時的に待避されてもよい。さらに、この実行中断状態においては、この中断時データだけでなく、制御部11によるフルモードプログラムAP1の実行処理に伴って記録されたレジスタやプログラムカウンタの内容も一時記憶部12a又は不揮発性記憶部12bに待避されて保持されることとしてもよい。ユーザが実行中断状態にあるフルモードプログラムAP1の実行再開を指示した場合、プログラム実行部22は、一時記憶部12a又は不揮発性記憶部12b内に維持されている中断時データを用いて、フルモードプログラムAP1の処理を中断した状態から再開する。この実行再開の指示は、実行開始の指示と同様に起動ボタン画像ILに対して行われることとする。すなわち、ユーザは、実行中断状態にあるフルモードプログラムAP1の実行を再開させたい場合、プログラム表示領域Apに表示する画像を当該フルモードプログラムAP1に対応するプログラム関連画像Ipに切り替えて、起動ボタン画像ILをタップする操作を行う。プログラム実行部22は、フルモードプログラムAP1の実行が開始される前の状態で起動ボタン画像ILに対する指示操作がなされた場合には、当該フルモードプログラムAP1を起動し、実行中断状態で起動ボタン画像ILに対する指示操作がなされた場合には、当該フルモードプログラムAP1の実行を前回中断時の状態から再開する。
プログラム更新部23は、フルモードプログラムAP1に対応するプログラム関連画像Ipが表示された状態でユーザが当該フルモードプログラムAP1に対する更新データUDの適用を指示する操作(ここでは更新指示画像Iuをタップする操作)を行った場合に、更新データUDをアプリケーションプログラムAPに適用してアプリケーションプログラムAPを更新する。以下では、ユーザによる更新指示画像Iuに対する指示操作の対象となったアプリケーションプログラムAP(すなわち、ユーザが指示操作を行った更新指示画像Iuを含むプログラム関連画像Ipに対応するアプリケーションプログラムAP)を、更新対象プログラムという。本実施形態では、ユーザが更新指示画像Iuに対する指示操作を行った場合、まずプログラム更新部23は更新対象プログラムに対する更新データUDが存在するか否かを確認し、更新データUDが存在する場合には、その更新データUDを取得する。そして、取得した更新データUDを更新対象プログラムに適用して更新対象プログラムを更新する。
なお、プログラム更新部23は、更新指示画像Iuに対する指示操作を受け付けた場合、更新データUDの存在確認、更新データUDの取得、及び更新データUDの適用を順に連続して実行してもよい。あるいはユーザの指示に応じて更新データUDの存在確認、及び更新データUDの取得をいったん実行した後、ユーザがさらに改めて更新データUDの適用を指示する指示操作を行ったタイミングで、更新データUDを更新対象プログラムに適用してもよい。この場合、ユーザが更新データUDの存在確認、及び更新データUDの取得を指示する指示操作と、更新データUDの適用を指示する指示操作とは、同じ更新指示画像Iuに対して実行されてもよい。この例では、プログラム更新部23は、更新指示画像Iuに対するユーザの指示操作を受け付けた場合、まず更新データUDを取得済みか否か確認し、取得済みでない場合には更新データUDの存在確認を実行する一方、取得済みの場合には更新データUDの適用処理を開始する。さらにこの例では、ユーザの更新指示画像Iuに対する指示操作に応じて更新データUDを取得した後は、アプリケーションプログラムAPに対して未適用の取得済み更新データUDが記憶部12内に存在することを示すために、更新指示画像Iuを変化させてもよい。図6は、このような変化後の更新指示画像Iuの一例を示す図であって、図5に示すプログラム関連画像Ipが表示された状態において、ユーザの更新指示画像Iuに対する指示操作に応じて、プログラム更新部23が表示中のプログラム関連画像Ipに対応するアプリケーションプログラムAP用の更新データUDを取得した後の状態の表示例を示している。この図の例では、変化後の更新指示画像Iuは、変化前の更新指示画像Iuに対して小さなアイコン画像が付加された画像になっている。これにより、ユーザは情報処理装置10が更新データUDを未取得の状態なのか、あるいは未適用の更新データUDを取得済みの状態なのかを容易に把握できる。
次に、プログラム更新部23が更新データUDの有無を確認し、更新データUDを取得する処理の具体例について説明する。プログラム関連画像Ipが画面Sに表示されており、当該プログラム関連画像Ipに対応するアプリケーションプログラムAPの更新データUDが記憶部12に記憶されていない状態でユーザが更新指示画像Iuに対する指示操作を行った場合、プログラム更新部23は、通信ネットワーク経由で所定のサーバ(以下、更新データ提供サーバとおいう)に問い合わせを行って、当該アプリケーションプログラムAP(更新対象プログラム)に対する更新データUDが提供されているか否かを確認する。
ここで、更新データ提供サーバの接続先情報(IPアドレス等)は、予め記憶部12内に記憶されているものとする。なお、更新データ提供サーバは、複数種類のアプリケーションプログラムAPのために共通して用意されたサーバであってもよい。この場合、プログラム更新部23は、更新対象プログラムを識別する識別情報(例えばプログラムID)とともに更新データ提供サーバに対する問い合わせを送信し、更新データ提供サーバは、受け付けた識別情報により識別される更新対象プログラムについて、更新データUDの有無を確認し、確認結果を返信する。あるいは、更新データ提供サーバは、複数種類のアプリケーションプログラムAPのそれぞれについて独立に用意されてもよい。この場合には、プログラム更新部23は、更新対象プログラムのために用意された更新データ提供サーバの接続先情報を記憶部12から読み出して取得し、この接続先情報によって特定される更新データ提供サーバに対して更新データ有無の問い合わせを行う。この接続先情報は、例えばアプリケーションプログラムAP自身とともに情報処理装置10に対して提供されてもよい。
プログラム更新部23が更新データ提供サーバに対して行う問い合わせには、問い合わせの対象となる更新対象プログラムのバージョンを示すバージョン情報が含まれる。更新データ提供サーバは、問い合わせに含まれるバージョン情報を参照して、問い合わせを行った情報処理装置10内に存在する更新対象プログラムのバージョンが、自身が保持している最新の更新データUDを適用した後の更新対象プログラムのバージョンと同じか否かを判定し、同じでないと判定された場合に、更新データUDが存在する旨の応答を行う。更新データUDが存在するとの応答を更新データ提供サーバから受信した場合、プログラム更新部23は、更新データ提供サーバに保持されている更新データUDをダウンロードすることによって取得する。
次に、更新データUDの適用処理について説明する。プログラム更新部23は、更新データ提供サーバから取得した更新データUDが更新対象プログラムを構成する一部又は全部のファイルを置き換えるものである場合、不揮発性記憶部12bに記憶されているこれらのファイルを更新データUDで上書きすることによって、更新対象プログラムを更新する。あるいは、更新対象プログラムを上書きするのではなく、更新データUDを不揮発性記憶部12b内の所定の記憶場所に格納して、当該更新データUDがプログラム実行部22によって更新対象プログラムの一部に優先して読み込まれるようにしてもよい。また、更新データUDが更新対象プログラムの一部として新たに追加されるべきファイルである場合、この更新データUDを更新対象プログラムの一部として不揮発性記憶部12b内の所定の記憶場所に格納することによって、更新対象プログラムを更新する。なお、更新データUDが制御部11によって実行可能なオブジェクトコードではなくプログラム言語で記述されたソースコードとして提供される場合、プログラム更新部23は当該更新データUDに対してコンパイル等の処理を実行したうえで更新データUDを更新対象プログラムに適用してもよい。また、更新データUDが更新前データと更新後データとの差分を表す差分ファイルの場合、その内容に従って更新対象プログラムを構成するファイルの内容を修正することによって、更新対象プログラムの更新を行ってもよい。
ここで、上述したように、フルモードプログラムAP1に対応するプログラム関連画像Ipは、当該フルモードプログラムAP1の起動前だけでなく、当該フルモードプログラムAP1の実行が中断されている状態でも画面Sに表示される。そのため、フルモードプログラムAP1の実行が中断されている状態でユーザが更新指示画像Iuをタップして当該フルモードプログラムAP1に対する更新データUDの適用を指示することもあり得る。このようにして、フルモードプログラムAP1がまだ実行中断状態にあるときにプログラム更新部23がフルモードプログラムAP1を更新してしまうと、中断されているフルモードプログラムAP1の処理を再開した際に不具合が生じてしまうおそれがある。
そこでプログラム更新部23は、更新データUDの適用を行おうとする際には、まず当該更新データUDにより更新対象となるフルモードプログラムAP1が実行中断状態にあるか否かを判定する。具体的に、プログラム更新部23は、更新データUDを更新データ提供サーバから取得し終えてそのまま更新データUDの適用を開始する場合、又はユーザの更新指示画像Iuに対する指示操作を受け付けて取得済みの更新データUDを適用しようとする場合に、このような判定を行う。そして、判定の結果、更新対象となるフルモードプログラムAP1が実行中断状態にあると判定した場合、ユーザに対して、当該フルモードプログラムAP1の実行を終了して更新データUDを適用してもよいかを確認するメッセージを出力する。図7は、このようなフルモードプログラムAP1の更新可否を確認するメッセージを画面Sに表示した場合の表示例を示している。このメッセージに対して、ユーザがフルモードプログラムAP1の終了を指示する操作を行った場合(図7の例では「はい」がタップされた場合)、プログラム更新部23は、実行中断状態のフルモードプログラムAP1の実行を終了させるなどしてその実行を再開できないようにしたうえで、更新データUDの適用を行う。具体的に、例えばプログラム更新部23は、記憶部12内に保持されている中断時データを消去してフルモードプログラムAP1の実行を終了させてもよい。あるいは、フルモードプログラムAP1の終了指示を受け付けた後は、実行中断状態にあるフルモードプログラムAP1に対する実行再開指示を受け付けないようにすることで、その実行再開を制限してもよい。逆に、ユーザがフルモードプログラムAP1を終了しない旨の指示を行った場合(図7の例では「いいえ」がタップされた場合)、プログラム更新部23は、フルモードプログラムAP1への更新データUDの適用を中止し、当該フルモードプログラムAP1の実行が中断されている状態を維持する。このような確認を行うことにより、情報処理装置10は、ユーザの意図に反して実行中断状態にあるフルモードプログラムAP1に更新データUDを適用してしまわないようにすることができる。
なお、プログラム更新部23は、更新対象プログラムが実行開始前の状態のフルモードプログラムAP1である場合には、図7のような確認メッセージは出力せずにそのまま更新データUDの適用を行えばよい。また、更新対象プログラムがライトプログラムAP2の場合には、当該ライトプログラムAP2が実行中か否かを判定し、実行中の場合には上述したフルモードプログラムAP1の場合と同様に図7に例示したような確認メッセージを出力し、そのメッセージに対するユーザの指示に応じて、実行中のライトプログラムAP2を終了させて更新データUDの適用を実行するか、又は更新データUDの適用を中止するかを決定してもよい。
ここで、更新指示画像Iuに対してユーザの指示操作がなされた場合に情報処理装置10のプログラム更新部23が実行する処理の流れの具体例について、図8A及び図8Bのフロー図を用いて説明する。
更新指示画像Iuに対する指示操作を受け付けると、まずプログラム更新部23は、当該指示の対象となったアプリケーションプログラムAP用の更新データUDを取得済みか否かを判定する(S1)。未取得の場合、プログラム更新部23は、更新データ提供サーバに対して、更新データの有無を問い合わせ(S2)、当該問い合わせに対応する更新データ提供サーバからの応答を受信する(S3)。S3で受信した応答により、新たな更新データUDが提供されていないと判断された場合(S4の判断が「N」の場合)には、プログラム更新部23は、記憶部12に記憶されているアプリケーションプログラムAPが最新バージョンである旨を表示して、処理を終了する。なお、このときプログラム更新部23は、リトライを行うか否かの問い合わせを行い、リトライの指示をユーザから受け付けた場合には再度更新データ提供サーバへの問い合わせを行ってもよい。
逆に、S3で受信した応答により、新たな更新データUDが提供されていると判断された場合(S4の判断が「Y」の場合)には、プログラム更新部23は、更新データUDを取得するか否か確認するメッセージを出力する(S5)。この確認メッセージに対してユーザが更新データUDの取得を行わない旨の応答を行った場合(S6の判断が「N」の場合)、プログラム更新部23は更新データの取得を中断して処理を終了する。逆にユーザが更新データUDの取得を指示する応答を行った場合(S6の判断が「Y」の場合)、プログラム更新部23は、当該更新データUDのダウンロードを開始する(S7)。なお、このダウンロードは、バックグラウンド処理として実行してもよい。こうすれば、プログラム更新部23が更新データ提供サーバから更新データUDをダウンロードしている間にも、メニュー画像表示制御部21によって画面Sに表示されるメニュー画像Imやプログラム関連画像Ipに対してユーザは各種の指示操作を行って、他のプログラムを実行させたりすることができる。さらにこの場合、プログラム更新部23は、ダウンロードの実行開始時や実行終了時に、そのことをポップアップ表示などによって画面S上に表示して、ユーザに通知してもよい。
S7で開始されたダウンロードが終了すると、プログラム更新部23は、ダウンロードした更新データUDを記憶部12に格納して、プログラム関連画像Ip内における更新指示画像Iuの表示を図6に例示するように変更する指示を行って、更新データUDの取得処理を完了する(S8)。
一方、S1の判定においてユーザの指示対象となったアプリケーションプログラムAP(更新対象プログラム)の更新データUDが取得済みであると判定した場合、プログラム更新部23は、更新対象プログラムが実行中断状態にあるかを判定する(S9)。S9で実行中断状態にあると判定された場合、プログラム更新部23は、図7に例示したような確認メッセージを画面Sに表示し、ユーザの応答を待つ(S10)。S10のメッセージに対してユーザが更新対象プログラムを終了させない旨を指示した場合(S11の判断が「N」の場合)、プログラム更新部23は更新データUDの適用を中止して処理を終了する。逆にユーザが更新対象プログラムの終了を指示した場合(S11の判断が「Y」の場合)、プログラム更新部23は実行中断状態にある更新対象プログラムの処理を終了させる(S12)。
S9で更新対象プログラムが実行中断状態にはない(すなわち、実行されていない)と判断された場合、及びS12で更新対象プログラムの処理を終了させた場合、プログラム更新部23は取得済みの更新データUDを更新対象プログラムに適用することによって更新対象プログラムを更新して(S13)、処理を終了する。
なお、プログラム更新部23は、更新データUDを更新対象プログラムに適用する前に、システムソフトウェア(オペレーティングシステム等)のバージョンを確認してもよい。この場合、プログラム更新部23は、更新データUD適用後のアプリケーションプログラムAPが要求するバージョンにシステムソフトウェアが更新されているか否かを確認して、システムソフトウェアが更新されていない場合には、システムソフトウェア用の更新データの取得、及び適用を行う。
また、以上の説明では、更新指示画像Iuに対してユーザが指示操作を行ったタイミングで更新データUDの取得や更新データUDの適用を行うこととしたが、これに限らず、本実施形態に係る情報処理装置10は、アプリケーションプログラムAPを起動しようとするタイミングでも更新データUDの有無の確認や取得済みの更新データUDの適用を実行してもよい。
以上説明した本実施形態に係る情報処理装置10によれば、フルモードプログラムAP1が実行されていない状態で当該フルモードプログラムAP1に関連するプログラム関連画像Ipを表示するので、フルモードプログラムAP1が実行されていない状態でユーザから更新データUD適用の指示を受け付けることができる。
なお、本発明の実施の形態に係る情報処理装置は、以上説明したものに限られない。例えば情報処理装置10は、画面Sに重ねて配置されるタッチセンサ15に代えて、又はこれに加えて、情報処理装置10の筐体の裏面側(画面Sが配置された面の裏側)にタッチセンサを備えてもよい。この場合、この裏面側のタッチセンサも、画面Sに対応した検出面を備えており、ユーザは当該タッチセンサ上に指などを接触させることで、画面Sに対するタップ操作やスライド操作を行うことができる。そのため、この裏面側のタッチセンサに対する操作入力によって、イベント情報のリストを画面Sに表示させたり、表示されたリストをスクロールさせたりしてもよい。
また、以上の説明ではユーザはタッチセンサ15に対するタップ操作によって起動ボタン画像ILや更新指示画像Iuを選択することとしたが、これに限らず、例えば画面S上に表示されたカーソルを方向指示キーなどにより移動させることによって起動ボタン画像ILや更新指示画像Iuを選択する操作を実行してもよい。また、情報処理装置10は、起動ボタン画像ILや更新指示画像Iuを選択する操作に代えて、又はこれに加えて、例えば所定の操作ボタンの押下など他の操作方法により、アプリケーションプログラムAPの実行を指示する操作や更新データUDの適用を指示する操作をユーザから受け付けてもよい。
また、以上の説明では、アプリケーションプログラムAPは不揮発性記憶部12bに記憶されていることとし、制御部11によって実行される際に不揮発性記憶部12bから一時記憶部12aに読み込まれることとしている。しかしながら、これに限らず、アプリケーションプログラムAPは光ディスク等の外部記憶媒体や通信ネットワーク経由で接続された他の通信装置内に記憶されており、実行時に一時記憶部12aに読み込まれることとしてもよい。この場合、更新データUDは外部記憶媒体に記憶されたアプリケーションプログラムAPの上書き更新に用いられてもよいし、アプリケーションプログラムAP本体とは別に不揮発性記憶部12bに記憶され、実行時にアプリケーションプログラムAP本体とともに一時記憶部12aに読み込まれてもよい。