(57)【特許請求の範囲】
【請求項１】
コンテンツの記録または再生に関する処理を行うための複数の第１のアプリケーションを実行することが可能な情報処理装置において、
第２のアプリケーションを実行することで、前記情報処理装置に設けられた、前記コンテンツの記録または再生に関する処理行うハードウェアを動作させる第１の制御手段と、
前記第１のアプリケーションの実行を制御する第２の制御手段と
を備え、
前記第２の制御手段は、
複数の前記第１のアプリケーションにおいて共通に定義された、前記第１のアプリケーションの実行により変化する前記コンテンツの記録または再生の状態の遷移を制御するとともに、前記第１のアプリケーションから、前記状態の遷移を指令するコマンドが発生された場合、前記コマンドにより前記状態の遷移が可能であるか否かを判断する状態遷移制御手段と、
前記コマンドが発生された場合、前記状態の遷移が可能であると判断されたときにのみ、前記コマンドを、前記第２のアプリケーションが認識可能な形式のコマンドに変換し、変換後のコマンドを前記第２のアプリケーションに出力する変換手段と
を備える
情報処理装置。
【請求項２】
前記変換手段は、前記第１のアプリケーションと前記第２のアプリケーションとのそれぞれが認識可能な命令の関係を示す情報を有する
請求項１に記載の情報処理装置。
【請求項３】
コンテンツの記録または再生に関する処理を行うための複数の第１のアプリケーションを実行することが可能な情報処理装置であり、
第２のアプリケーションを実行することで、前記情報処理装置に設けられた、前記コンテンツの記録または再生に関する処理行うハードウェアを動作させる第１の制御手段と、
前記第１のアプリケーションの実行を制御する第２の制御手段と
を備える前記情報処理装置の情報処理方法において、
前記第２の制御手段が、複数の前記第１のアプリケーションにおいて共通に定義された、前記第１のアプリケーションの実行により変化する前記コンテンツの記録または再生の状態の遷移を制御するとともに、前記第１のアプリケーションから、前記状態の遷移を指令するコマンドが発生された場合、前記コマンドにより前記状態の遷移が可能であるか否かを判断し、
前記第２の制御手段が、前記コマンドが発生された場合、前記状態の遷移が可能であると判断されたときにのみ、前記コマンドを、前記第２のアプリケーションが認識可能な形式のコマンドに変換し、変換後のコマンドを前記第２のアプリケーションに出力する
ステップを含む情報処理方法。
【請求項４】
コンテンツの記録または再生に関する処理を行うための複数の第１のアプリケーションを実行することが可能な情報処理装置であり、
第２のアプリケーションを実行することで、前記情報処理装置に設けられた、前記コンテンツの記録または再生に関する処理行うハードウェアを動作させる第１の制御手段と、
前記第１のアプリケーションの実行を制御する第２の制御手段と
を備える前記情報処理装置を制御するコンピュータに、
前記第２の制御手段に、複数の前記第１のアプリケーションにおいて共通に定義された、前記第１のアプリケーションの実行により変化する前記コンテンツの記録または再生の状態の遷移を制御させるとともに、前記第１のアプリケーションから、前記状態の遷移を指令するコマンドが発生された場合、前記コマンドにより前記状態の遷移が可能であるか否かを判断させ、
前記第２の制御手段に、前記コマンドが発生された場合、前記状態の遷移が可能であると判断されたときにのみ、前記コマンドを、前記第２のアプリケーションが認識可能な形式のコマンドに変換させ、変換後のコマンドを前記第２のアプリケーションに出力させる
ステップを含む処理を実行させるプログラム。
【請求項５】
請求項４に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法、記録媒体、並びに、プログラムに関し、特に、アプリケーションの移植性を向上することができるようにした、情報処理装置および情報処理方法、記録媒体、並びに、プログラムに関する。
【背景技術】
【０００２】
従来、異なるプラットホームへアプリケーションを移植する場合、移植元のアプリケーションのＧＵＩ（グラフィックユーザインタフェース）定義ファイルを移植先で利用することにより、アプリケーションを移植する場合に、同一メニューを作成することができるようにした技術がある。
【０００３】
【特許文献１】特開２００２−１４９４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、異なるプラットホームへアプリケーションを移植する場合、実際のアプリケーション、特にマルチメディアアプリケーションにおいては、ＧＵＩの移植のみでは、アプリケーションの移植ができたとは言い難い。
【０００５】
そこで、状態遷移の管理など、高いレイヤでアプリケーションの挙動を管理して、ＧＵＩだけでなく、アプリケーションの挙動も含めて、可搬性を向上することにより、異なるプラットホームに対するアプリケーションの移植性を高める必要がある。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、アプリケーションの移植性を向上することができるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の一側面の情報処理装置は、コンテンツの記録または再生に関する処理を行うための複数の第１のアプリケーションを実行することが可能な情報処理装置であって、第２のアプリケーションを実行することで、前記情報処理装置に設けられた、前記コンテンツの記録または再生に関する処理行うハードウェアを動作させる第１の制御手段と、前記第１のアプリケーションの実行を制御する第２の制御手段とを備え、前記第２の制御手段は、複数の前記第１のアプリケーションにおいて共通に定義された、前記第１のアプリケーションの実行により変化する前記コンテンツの記録または再生の状態の遷移を制御するとともに、前記第１のアプリケーションから、前記状態の遷移を指令するコマンドが発生された場合、前記コマンドにより前記状態の遷移が可能であるか否かを判断する状態遷移制御手段と、前記コマンドが発生された場合、前記状態の遷移が可能であると判断されたときにのみ、前記コマンドを、前記第２のアプリケーションが認識可能な形式のコマンドに変換し、変換後のコマンドを前記第２のアプリケーションに出力する変換手段とを備える。
【０００９】
前記変換手段には、前記第１のアプリケーションと前記第２のアプリケーションとのそれぞれが認識可能な命令の関係を示す情報を保有させることができる。
【００１０】
本発明の一側面の情報処理方法またはプログラムは、コンテンツの記録または再生に関する処理を行うための複数の第１のアプリケーションを実行することが可能な情報処理装置であり、第２のアプリケーションを実行することで、前記情報処理装置に設けられた、前記コンテンツの記録または再生に関する処理行うハードウェアを動作させる第１の制御手段と、前記第１のアプリケーションの実行を制御する第２の制御手段とを備える前記情報処理装置を制御する情報処理方法またはプログラムであって、前記第２の制御手段が、複数の前記第１のアプリケーションにおいて共通に定義された、前記第１のアプリケーションの実行により変化する前記コンテンツの記録または再生の状態の遷移を制御するとともに、前記第１のアプリケーションから、前記状態の遷移を指令するコマンドが発生された場合、前記コマンドにより前記状態の遷移が可能であるか否かを判断し、前記第２の制御手段が、前記コマンドが発生された場合、前記状態の遷移が可能であると判断されたときにのみ、前記コマンドを、前記第２のアプリケーションが認識可能な形式のコマンドに変換し、変換後のコマンドを前記第２のアプリケーションに出力するステップを含む。
【００１２】
本発明の一側面においては、複数の第１のアプリケーションにおいて共通に定義された、第１のアプリケーションの実行により変化するコンテンツの記録または再生の状態の遷移が制御され、第１のアプリケーションから、状態の遷移を指令するコマンドが発生された場合、コマンドにより状態の遷移が可能であるか否かが判断され、状態の遷移が可能であると判断されたときにのみ、コマンドが、第２のアプリケーションが認識可能な形式のコマンドに変換され、変換後のコマンドが第１のアプリケーションに出力される。
【発明の効果】
【００１３】
以上のように、本発明の一側面によれば、アプリケーションを実行することができ、特に、システムに依存しないアプリケーションの状態を定義して制御し、状態の遷移を指令するコマンドが発生された場合、システムが認識可能な形式にコマンドを変換するようにしたので、アプリケーションの移植性を向上することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図を参照して、本発明の実施の形態について説明する。
【００２０】
図１に示される、本発明を適用した情報処理装置１は、マイクロコンピュータにより構成されるシステム制御部１１に対して接続されるシステムバス１２に、各種放送受信部、画像出力表示部、音声出力部、操作入力部などの各処理部が接続されて構成されている。そして、システム制御部１１に対して、アプリケーション制御部６１が接続されており、アプリケーション制御部６１により、装置やシステムに依存しないアプリケーションプログラムの処理と、それらのアプリケーションに関するＧＵＩ表示が制御される。
【００２１】
システム制御部１１は、ＣＰＵ（Central Processing Unit）と、プログラムＲＯＭ（Read Only Memory）と、ワークエリアＲＡＭ（Random Access Memory）などを備え、プログラムＲＯＭに書き込まれたプログラムにしたがって、ワークエリアＲＡＭを用いながら、種々の制御処理を実行する。
【００２２】
放送受信部としては、地上アナログ放送受信部２１、地上デジタル放送受信部２２、ＢＳ放送受信部２３、および、ＣＳ放送受信部２４が設けられ、それぞれインターフェース（Ｉ／Ｆ）２５乃至２８を介して、システムバス１２に接続されている。放送受信部２１乃至２４のそれぞれは、図示しないアンテナで受信された対象とする放送信号から、リモートコマンダ３３を介して入力されたユーザの選局操作に応じた放送番組を選択し、選択された放送番組の画像データおよび音声データ、または、データ放送により受信したデータを、インターフェース（Ｉ／Ｆ）２５乃至２８を介して、システムバス１２に送出する。
【００２３】
地上アナログ放送受信部２１は、現行の地上アナログテレビ放送信号を選局受信して、画像信号（映像信号）および音声信号を、インターフェース２５を介して、システムバス１２に出力する。地上デジタル放送受信部２２は、デジタルテレビジョン放送、デジタル音声放送およびデータ放送に対応しており、ユーザの選局操作に対応して放送番組を選局受信してデコードし、画像信号（映像信号）および音声信号、ＥＰＧ（電子番組ガイド；Electronic Programming Guide）データ等のデータを、インターフェース２６を介して、システムバス１２に出力する。ＢＳ放送受信部２３は、ＢＳテレビジョン放送、ＢＳ音声放送およびデータ放送に対応して、ユーザの選局操作に対応して放送番組を選局受信してデコードし、画像信号（映像信号）および音声信号、ＥＰＧデータ等のデータを、インターフェース２７を介して、システムバス１２に出力する。ＣＳ放送受信部２４は、ＣＳテレビジョン放送、ＣＳ音声放送およびデータ放送に対応して、ユーザの選局操作に対応して放送番組を選局受信してデコードし、画像信号（映像信号）および音声信号、ＥＰＧデータ等のデータを、インターフェース２８を介して、システムバス１２に出力する。
【００２４】
また、画像出力表示部として、ＣＲＴ（Cathode Ray Tube；陰極線管）やＬＣＤ（Liquid Crystal Display；液晶ディスプレイ）などからなるモニターディスプレイ２９がディスプレイインターフェース３０を介して、システムバス１２に接続されている。また、音声出力部として、音声出力インターフェース３１を介してスピーカ３２が接続されている。また、操作入力部として、リモートコマンダ３３が設けられ、システムバス１２には、このリモートコマンダ３３からの操作信号を受信する操作信号受信部３４が接続されている。リモートコマンダ３３は、左右方向指示操作ボタンおよび上下方向指示操作ボタンと、「ホーム」ボタンと、「決定」ボタンとを備えるか、または、同様の操作入力ができるようになされていると好適である。すなわち、リモートコマンダ３３は、例えば、各種ボタン、十字型上下左右方向指示ボタン、または、ジョイスティックなどにより、モニターディスプレイ２９に表示される、後述するGUI（グラフィカル・ユーザ・インターフェース）画面上で、ユーザによるボタン操作により、選択指示などを行うことができるような入力デバイスを備えるものとする。
【００２５】
システムバス１２には、さらに、ドライブ３５、時計部３６、外部入出力インターフェース３７、通信インターフェース３８、メディア再生部３９、表示画像生成出力部４０、および、ＥＰＧデータ保持部４１が接続されている。
【００２６】
ドライブ３５は、これに挿入される、例えば、光ディスク、磁気ディスク、光磁気ディスク、または、半導体メモリなどのリムーバブルメディア５０からデータを読み取り、また、リムーバブルメディア５０にデータを書き込むためのものである。
【００２７】
時計部３６は、現在時刻の情報やカレンダー情報を提供する。また、時計部３６は、放送番組予約設定や、予約設定に対応した各種タイマー時間の計測にも用いられる。外部入出力インターフェース３７は、映像入出力端子、音声入出力端子、ＵＳＢ（Universal Serial Bus）端子などの外部入出力端子３７−１乃至３７−ｎを備え、各入出力端子とシステムバス１２との間の信号のやり取りを行う。通信インターフェース３８は、通信回線に接続されており、データ放送番組が双方向放送であるときに、応答信号を所定の宛先に送信したり、ネットワークを通じたサーバ装置にあるデータ放送コンテンツを取得したりするために用いられる。なお、通信インターフェース３８は、ウェブコンテンツなどのデータをインターネット経由で取り込んだり、インターネットを介して所定の情報を送出したりするようにすることもできる。
【００２８】
ＥＰＧデータ保持部４１は、放送受信部２１乃至２４のそれぞれから、インターフェース２５乃至２８およびシステムバス１２を介して供給される電子番組ガイドのデータ（ＥＰＧデータ）を、内蔵するメモリに保持する。ＥＰＧデータは、地上アナログ放送の場合には、テレビ放送信号の垂直ブランキング期間に重畳されてくるものを用い、デジタル放送の場合には、データ放送として送られてくるものを用いる。このＥＰＧデータには、各放送番組の放送局名、放送番組名、番組開始時刻、番組終了時刻、出演者、番組のジャンルなどのデータが含まれる。ＥＰＧデータ保持部４１に保持されるＥＰＧデータは、最新のデータとなるように更新される。
【００２９】
なお、ＥＰＧデータは、放送信号に重畳されて伝送されてくるものを用いるのではなく、例えば通信インターフェース３８を用いて、インターネットに接続されているＥＰＧデータ提供サーバにアクセスして、当該ＥＰＧデータ提供サーバから取得するようにすることもできる。
【００３０】
メディア再生部３９は、例えば、磁気テープ、光ディスク、光磁気ディスク、半導体メモリなどで構成されているメディア５１が装着可能なようになされており、装着されたメディア５１に記録されている、画像データ（動画像データまたは静止画像データ）や音楽データなどからなるコンテンツを再生する。メディア再生部３９は、再生したコンテンツを表示画像生成出力部４０に供給したり、また、再生したコンテンツがエンコードされている場合はデコード処理部４２に供給する。
【００３１】
デコード処理部４２は、供給された画像データや音声データをデコードし、表示画像生成出力部４０や音声出力インターフェース３１に供給する。
【００３２】
表示画像生成出力部４０は、システム制御部１１による制御を受けて、モニターディスプレイ２９に表示する画像を生成する。表示画像生成出力部４０は、放送受信部２１乃至２４により受信された画像データ、または、デコード処理部４２によりデコードされた画像データを、内蔵する出力バッファに格納し、合成の必要がない場合は、システムバス１２を介して、ディスプレイインターフェース３０に供給し、合成の必要がある場合は、合成処理部６４に供給する。
【００３３】
アプリケーション制御部６１は、システムに依存しないアプリケーションプログラムを実行し、それらのアプリケーションプログラムに関する表示処理を制御する。表示用データ格納部６２は、後述するＧＵＩを構成するアイコンのデータや、チャンネル表示用データ、その他のキャラクタデータ等の表示用のデータを格納する。アプリケーション制御部６１は、表示用データ格納部６２に格納されているアイコンのデータなどを呼び出して、ＧＵＩを表示のための文字や記号などに対応するデータ（後述するＧＵＩ部品）生成し、グラフィックインターフェース６３を介して、合成処理部６４に供給する。
【００３４】
また、合成処理部６４は、グラフィックインターフェース６３から、ＧＵＩ表示のための文字や記号などに対応するデータ（例えば、ＧＵＩ表示に用いられるさまざまなアイテムであり、いわゆる、ＧＵＩ部品とも称されるものなど）の供給を受け、オンスクリーンディスプレイ（ＯＳＤ）データとして、内蔵するオンスクリーンバッファに格納する。オンスクリーンディスプレイデータは、モニターディスプレイ２９の画面に表示する再生映像の画像に重畳して表示されるデータである。すなわち、ＧＵＩが表示されるとき、ＧＵＩは、再生画像にＯＳＤとして重畳されるので、ＧＵＩ表示の下に、再生映像の画像が透けて見えるような表示とされる。
【００３５】
そして、合成処理部６４は、出力バッファに格納したデータと、オンスクリーンバッファに格納したオンスクリーンディスプレイデータとを合成し、その合成データを、ディスプレイインターフェース３０を介してモニターディスプレイ２９に供給して表示させる。
【００３６】
図２は、図１のシステム制御部１１およびアプリケーション制御部６１が有する機能を示すモジュール構成図（ソフトウェアスタック）である。
【００３７】
システム制御部１１においては、システムバス１２に接続されている各部の動作を制御するためのアプリケーションが実行される。具体的には、システム制御部１１においては、システムバス１２に接続されている各部の動作を制御して、動画、音楽、静止画像などのコンテンツを再生する処理を実行する再生処理アプリケーション８１が実行される。このアプリケーションは、情報処理装置１のシステムに依存して動作するアプリケーションプログラムである。システム制御部１１により再生処理アプリケーション８１が実行されることにより、映像、音声、静止画などデータが、システム内のいずれかの記録部から読み出されたり、システム内のいずれかの処理部でデコードされたり、システム内のいずれかの記録領域から他の記録領域へコピーされたり移動されるなど、情報処理装置１のシステムに依存する各種処理が実行される。
【００３８】
これに対して、アプリケーション制御部６１は、機種やシステムに依存しないアプリケーション９１−１乃至アプリケーション９１−ｎの処理を制御する。アプリケーション制御部６１は、アプリケーション９１−１乃至アプリケーション９１−ｎを機種やシステムに異存しないで利用可能なようにするための機能として、状態定義モジュール９２、インターフェースモジュール９３、および、インターフェース（Ｉ／Ｆ）システム９４を備えている。
【００３９】
すなわち、アプリケーション制御部６１におけるソフトウェアスタックにおいては、最下層のシステムレイヤのインターフェース（Ｉ／Ｆ）システム９４と、最上層のアプリケーションレイヤのアプリケーション９１−１乃至アプリケーション９１−ｎとの間のミドルウェアレイヤにおいて、アプリケーションレイヤ側に状態定義モジュール９２が、システムレイヤ側にインターフェースモジュール９３が、それぞれ設けられている。
【００４０】
状態定義モジュール９２は、例えば、アプリケーション９１−１乃至アプリケーション９１−ｎによるＧＵＩ表示にかかわるコンポーネントや状態定義など、アプリケーション９１−１乃至アプリケーション９１−ｎにおいて機種やシステムに異存しない共通部分の実装を行うものであり、いわゆる、フレームワーク上の１モジュールであると考えられる。状態定義モジュール９２は、アプリケーション９１−１乃至アプリケーション９１−ｎとシステムとの間に発生するイベント、エラー等も含めたインターフェースを定義し、アプリケーション９１−１乃至アプリケーション９１−ｎからの要求を、インターフェースモジュール９３を介して、システムレイヤのインターフェースシステム９４に供給して、システム制御部１１（再生処理アプリケーション８１）に供給したり、インターフェースシステム９４、および、インターフェースモジュール９３を介して、再生処理アプリケーション８１からの要求や通知などの供給を受け、アプリケーション９１−１乃至アプリケーション９１−ｎに送出する。
【００４１】
また、状態定義モジュール９２は、図３または図４に示されるような、アプリケーション９１−１乃至アプリケーション９１−ｎに共通して定義されている状態遷移を管理する。
【００４２】
図３は、状態定義モジュール９２によりアプリケーション９１−１乃至アプリケーション９１−ｎに共通して定義されている、動画、映像、または、音楽などを、メディア再生部３９に装着されているメディア５１から読み出して再生する場合の状態遷移図である。図中、太線で囲まれているのが、状態定義モジュール９２によりアプリケーション９１−１乃至アプリケーション９１−ｎに共通して定義されているシステムの定常状態であり、細線で囲まれているのが、定常状態と定常状態との遷移中の状態を示す。
【００４３】
まず、アプリケーション９１−１乃至アプリケーション９１−ｎのうちのいずれかがアプリケーション制御部６１内部のメモリに展開されて起動され（Create()命令）、起動中状態１２１を経て、起動が終了した場合、アプリケーションは起動されたが、再生されるコンテンツはまだ選択されていない（１つもオープンされていない）状態１１１となる。
【００４４】
再生されるコンテンツが選択されていない状態１１１において、いずれかのコンテンツが選択されてファイルオープンされるためのオープン命令（Open()）が供給された場合、ファイルオープン処理が実行されて、オープン処理中の状態１２２を経て、Open処理完了が通知されて、停止中状態１１２となる。停止中状態１１２とは、再生開始位置がコンテンツの先頭位置となった状態で再生指令待ちまたは他の再生開始位置のシーク指令待ちの状態のことである。
【００４５】
停止中状態１１２において、再生命令（Play()）が供給された場合、再生開始処理が実行されて再生開始処理中状態１２３となり、Play処理完了が通知されて、再生中状態１１３に遷移される。
【００４６】
再生中状態１１３において、頭だしなどの命令（Seek()）が供給された場合、シーク中の状態１２４を経て、再生中状態１１３に戻る。また、再生中状態１１３において、倍速再生などの再生命令（引数の異なるPlay()）が供給された場合、速度変更中の状態１２５において速度設定が変更されて、再生中状態１１３に戻る。
【００４７】
再生中状態１１３において、一時停止命令（Pause（））の供給を受けた場合、一時停止処理中１２６の状態を経て、一時停止中１１４の状態となる。また、停止中状態１１２において、頭だしなどの命令（Seek()）が供給された場合も、シーク中の状態１２７を経て、一時停止中状態１１４となる。一時停止中状態１１４において再生開始命令を受けた場合、再生開始位置は、先頭位置とは異なる位置である。
【００４８】
一時停止状態１１４において、頭だしなどの命令（Seek()）が供給された場合、シーク中の状態１２８を経て、一時停止状態１１４に戻る。一時停止状態１１４において、停止命令（Stop()）を受けた場合、スタート位置へのシーク中の状態１２９を経て、停止中状態１１２に状態が遷移される。また、一時停止状態１１４において、再生命令（Play()）が供給された場合、再生開始処理が実行されて再生開始処理中状態１３０となり、Play処理完了が通知されて、再生中状態１１３に遷移される。
【００４９】
また、再生中状態１１３において、停止命令（Stop()）を受けた場合、停止処理中の状態１３１を経て、停止中状態１１２に状態が遷移される。
【００５０】
停止中状態１１２において、オープンされているコンテンツのファイルがクローズされるための命令（Close()）の供給を受けた場合、クローズ中の状態１３２を経て、コンテンツが選択されていない状態１１１に状態が遷移される。コンテンツが選択されていない状態１１１において、アプリケーションプログラム９１−ｎのうちの対応するものの終了（Destroy（））が指令された場合、終了処理中の状態１３３を経て、アプリケーションプログラムが終了される。
【００５１】
このようにして、状態定義モジュール９２により、アプリケーション９１−１乃至アプリケーション９１−ｎの状態が、システムによらず定義されている。この状態定義はシステムによらないが、実際のシステムの動作は、例えば、選択されるコンテンツが、メディア再生部３９に装着されたメディア５１から再生される場合と、ドライブ３５に装着されたリムーバブルメディア５０から再生される場合と、図示しない内部の記録媒体から再生される場合とでは異なる。しかしながら、状態定義モジュール９２によりシステムによらない状態遷移が定義されることにより、アプリケーション９１−１乃至アプリケーション９１−ｎは、システムによらない可搬性を有することが可能となる。
【００５２】
次に、図４は、状態定義モジュール９２によりアプリケーション９１−１乃至アプリケーション９１−ｎに共通して定義されている、圧縮符号化されている静止画などのコンテンツをデコード処理部４２においてデコードした後、再生その他の処理を施す場合の状態遷移図である。図４においても、図中、太線で囲まれているのが、状態定義モジュール９２によりアプリケーション９１−１乃至アプリケーション９１−ｎに共通して定義されている定常状態であり、細線で囲まれているのが、定常状態と定常状態との遷移中の状態を示す。
【００５３】
まず、アプリケーション９１−１乃至アプリケーション９１−ｎのうちのいずれかがアプリケーション制御部６１内部のメモリに展開されて起動され（Create()命令）、起動中の状態１６１を経て、起動が終了した場合、コンテンツがデコードされていない状態１５１となる。
【００５４】
コンテンツがデコードされていない状態１５１において、いずれかのコンテンツが選択され、デコードが指令（Decode()）された場合、状態は、デコード中の状態１５２に遷移される。デコード中の状態１５２において、Decode完了通知が供給された場合、状態は、定常状態１５３に遷移する。また、デコード中の状態１５２において、デコード処理の中止が指令（terminate()）された場合、状態は、処理中止中の状態１６２を経て、terminate完了通知を受け、コンテンツがデコードされていない状態１５１となる。
【００５５】
定常状態１５３において、いずれかのコンテンツが選択され、デコードが指令（Decode()）された場合、状態は、デコード中の状態１５２に遷移される。デコード中の状態１５２において、Decode完了通知が供給された場合、状態は、定常状態１５３に遷移する。
【００５６】
また、定常状態１５３において、いずれかのコンテンツが選択され、移動が指令（Move()）された場合、コンテンツの移動中の状態１６３を経て、Move完了通知を受け、状態は、定常状態１５３に遷移する。
【００５７】
また、定常状態１５３において、いずれかのコンテンツが選択され、コピーが指令（Copy()）された場合、コンテンツのコピー処理中１６４の状態を経て、Copy完了通知を受け、状態は、定常状態１５３に遷移する。
【００５８】
また、定常状態１５３において、いずれかのコンテンツが選択され、回転処理が指令（RotX,RotY,RotZ()）された場合、コンテンツの回転処理中の状態１６５を経て、RotX,RotY,RotZの対応するものの完了通知を受け、状態は、定常状態１５３に遷移する。
【００５９】
また、定常状態１５３において、いずれかのコンテンツが選択され、ズーム（拡大または縮小）が指令（Zoom()）された場合、コンテンツのズーム処理中（拡大処理中または縮小処理中）の状態１６６を経て、Zoom完了通知を受け、状態は、定常状態１５３に遷移する。
【００６０】
また、定常状態１５３において、例えば、コンテンツの一覧表示状態においてスクロールが指令された場合など、コンテンツの検索が指令（Seek()）された場合、コンテンツの表示中の状態１６７を経て、Seek完了通知を受け、状態は、定常状態１５３に遷移する。
【００６１】
そして、定常状態１５３において、アプリケーションプログラム９１−ｎのうちの対応するものの終了（Destroy（））が指令された場合、終了処理中の状態１６８を経て、アプリケーションプログラムが終了される。
【００６２】
このようにして、状態定義モジュール９２により、アプリケーション９１−１乃至アプリケーション９１−ｎの状態が、システムによらず定義されている。この状態定義はシステムによらないが、実際のシステムの動作は、例えば、デコード処理部４２が有するデコード機能によって異なる。しかしながら、状態定義モジュール９２によりシステムによらない状態遷移が定義されることにより、アプリケーション９１−１乃至アプリケーション９１−ｎは、システムによらない可搬性を有することが可能となる。
【００６３】
ここで、図３および図４において太線で囲まれて示される定常状態は、いずれも、アプリケーションプログラムが起動されるシステム（ハードウェア）、すなわち、ここでは、情報処理装置１における状態であり、具体的には、システム制御部１１において制御される再生処理アプリケーション８１の処理によりハンドリングされる、システムの状態である。
【００６４】
すなわち、アプリケーション９１−１乃至アプリケーション９１−ｎのうちのいずれかから、状態遷移が要求された場合、状態定義モジュール９２は、システムに対して、状態遷移の要求を伝え、システムの状態遷移が終了された場合、終了通知が、アプリケーション１−１乃至アプリケーション９１−ｎのうちの対応するものに通知される必要がある。
【００６５】
しかしながら、アプリケーション９１−１乃至アプリケーション９１−ｎと、システム（ここでは、再生処理アプリケーション８１）とにおいて、認識可能な関数（命令）や状態定義は異なるものであり、それぞれが認識している関数（命令）を送出しても、そのままでは、関数（命令）の供給を受けた相手は、要求や通知を認識することができない。
【００６６】
そこで、インターフェースモジュール９３は、状態定義モジュール９２により定義されるアプリケーションの状態定義と、実際のシステム（装置）における状態定義とのインターフェースを定義することにより、アプリケーションとプラットフォームとの差異を吸収する。すなわち、インターフェースモジュール９３は、機種やシステムに依存するものであり、インターフェースモジュール９３を機種やシステムに応じて設計することにより、これよりも上位のレイヤである状態定義モジュール９２およびアプリケーション９１−１乃至９１−ｎは、機種やシステムによらず、共通のものを用いることが可能となる。
【００６７】
すなわち、インターフェースモジュール９３は、アプリケーションが認識可能な命令と、システムが認識可能な命令との対応関係を把握している。インターフェースモジュール９３は、アプリケーションから状態の遷移命令が供給された場合、システムが認識可能な命令に変換した後、インターフェースシステム９４に供給して、再生処理アプリケーション８１に通知させる。また、インターフェースモジュール９３は、システムがユーザによる操作入力を受けた場合など、システムから状態の遷移要求を受けた場合、アプリケーションが認識可能な命令に変換した後、状態定義モジュール９２に供給する。
【００６８】
インターフェースモジュール９３は、アプリケーションが認識可能な状態定義および命令と、システムが認識可能な状態定義および命令との関係を、いかなる方法で把握していてもよいが、例えば、図５に示されるように、状態定義モジュール９２により定義されるアプリケーションの状態定義ごとに、それぞれが認識可能な命令(関数)の対応を示す対応表を登録するものとしてもよい。
【００６９】
図３において太線で囲まれて示される定常状態のうち、メディアがセットされていない状態において、アプリケーションが認識可能な命令は、Open()命令とDestroy()命令であり、インターフェースモジュール９３は、これらの命令に対応する、システムが認識可能な命令と、それらの命令による状態遷移をそれぞれ登録している。システムが認識可能な命令は、システム依存であるため、インターフェースモジュール９３が対応されるシステムによって異なる命令が登録されることは言うまでもない。なお、アプリケーションが認識可能な命令と、システムが認識可能な命令とは、それぞれ１対１で対応しているとは限らない。例えば、アプリケーションが認識可能な命令１命令に対して、システムが認識可能な命令が複数対応してもよいし、システムが認識可能な命令１命令に対して、アプリケーションが認識可能な命令が複数対応してもよい。
【００７０】
同様にして、図３において太線で囲まれて示される定常状態のうち、停止中状態において、アプリケーションが認識可能な命令は、Close()命令、Play（）命令、および、Seek()命令であり、インターフェースモジュール９３は、これらの命令に対応する、システムが認識可能な命令をそれぞれ登録している。また、図３において太線で囲まれて示される定常状態のうち、再生中状態において、アプリケーションが認識可能な命令は、Stop()命令、Play（）命令、Seek()命令、および、Pause（）命令であり、一時停止中状態において、アプリケーションが認識可能な命令は、Stop()命令、Play（）命令、および、Seek()命令であり、インターフェースモジュール９３は、これらの命令に対応する、システムが認識可能な命令をそれぞれ登録している。
【００７１】
すなわち、インターフェースモジュール９３は、図５に示される対応表に基づいて、状態定義モジュール９２とインターフェースシステム９４との間で授受される命令を、機種やシステムに依存しないアプリケーション９１と、システム固有の再生処理アプリケーション８１がそれぞれ認識可能なように変換することにより、アプリケーションレイヤとシステムレイヤ（およびそれに接続されるシステム）との仲介を行うことができる。
【００７２】
そして、インターフェース（Ｉ／Ｆ）システム９４は、システムレイヤに対応するものであり、システム制御部１１において実行されている再生処理アプリケーション８１（すなわち、システムの処理を制御するアプリケーション）との情報のインターフェースを行うものである。
【００７３】
さらに、システム制御部１１とアプリケーション制御部６１との間の通信は、ボトルネックとなり極力低減させる必要がある。状態定義モジュール９２が取り扱うのは、アプリケーションの状態遷移などであり、抽象度が高いレイヤであるため、状態遷移に応じて不要な命令の通信をフィルタリングすることが可能である。
【００７４】
具体的には、例えば、図３を用いて説明した状態遷移において、メディアがセットされていない状態では、操作対象となる動画、音楽コンテンツが指定されていないため、システム制御部１１で動作される再生処理アプリケーション８１は、Open()及びDestroy()の処理のみが可能で、コンテンツを再生させるPlay()などの要求を受けても、実行することができない。したがって、状態定義モジュール９２は、現在の状態においてシステム制御部１１で動作される再生処理アプリケーション８１が実行することができない命令は、システム制御部１１に伝達せずにフィルタリングし、アプリケーション９１にエラーを通知する。
【００７５】
また、図２を用いて説明したミドルウェアレイヤを実装することにより、状態定義モジュール９２のフレームワークに基づいて設計されているアプリケーション９１−１乃至アプリケーション９１−ｎは、他のプラットフォームにおいても、そのまま利用可能である。すなわち、図６に示されるように、インターフェースモジュール９３を、システムに基づいて設計して、それぞれのシステムと状態定義モジュール９２との命令などの授受を仲介することができるようにすることにより、状態定義モジュール９２のフレームワークに基づいて設計されているアプリケーション９１−１乃至アプリケーション９１−ｎと、状態定義モジュール９２とは、機種やシステムにかかわらず、共通して実装させることが可能となる。
【００７６】
次に、図７のフローチャートを参照して、本発明を適用した状態定義モジュール９２およびインターフェースモジュール９３が実行する処理について説明する。
【００７７】
ステップＳ１において、状態定義モジュール９２は、アプリケーション９１−１乃至アプリケーション９１−ｎのうちのいずれかから、コマンドの入力を受けたか否かを判断する。ステップＳ１において、コマンドの入力を受けていないと判断された場合、コマンドの入力を受けたと判断されるまで、ステップＳ１の処理が繰り返される。
【００７８】
ステップＳ１において、コマンドの入力を受けたと判断された場合、ステップＳ２において、状態定義モジュール９２は、現在の状態から、状態の遷移が可能であるか否かを判断する。具体的には、例えば、図３を用いて説明した状態遷移において、現在、コンテンツが選択されていない状態であれば、一時停止命令や再生命令を受けて、状態を遷移することはできないが、いずれかのコンテンツが選択されてファイルオープンされるためのオープン命令（Open()）、または、アプリケーション９１の終了命令（Destroy（））とを受けて、状態を遷移することは可能である。
【００７９】
ステップＳ２において、状態の遷移が可能ではないと判断された場合、ステップＳ３において、状態定義モジュール９２は、対応するアプリケーション９１にエラーを通知し、処理が終了される。
【００８０】
ステップＳ２において、状態の遷移が可能であると判断された場合、ステップＳ４において、状態定義モジュール９２は、コマンドをインターフェースモジュール９３に供給する。インターフェースモジュール９３は、例えば、図５を用いて説明したコマンドの対応表などを用いて、供給されたコマンドを、再生処理アプリケーション８１が認識可能な形式の命令に変換する。
【００８１】
ステップＳ５において、インターフェースモジュール９３は、変換された命令をインターフェースシステム９４に供給して、再生処理アプリケーション８１への供給を制御する。インターフェースシステム９４は、再生処理アプリケーション８１が認識可能な形式の命令に変換されたコマンドを、再生処理アプリケーション８１に供給するので、再生処理アプリケーション８１は、供給された命令を基に処理を実行する。
【００８２】
ステップＳ６において、インターフェースモジュール９３は、インターフェースシステム９４を介して、再生処理アプリケーション８１から、状態遷移処理完了通知が供給されたか否かを判断する。ステップＳ６において、状態遷移処理完了通知が供給されていないと判断された場合、状態遷移処理完了通知が供給されたと判断されるまで、ステップＳ６の処理が繰り返される。
【００８３】
ステップＳ６において、状態遷移処理完了通知が供給されたと判断された場合、ステップＳ７において、インターフェースモジュール９３は、状態遷移処理完了通知を、状態定義モジュール９２が認識可能な関数に変換して、状態定義モジュール９２に供給する。状態定義モジュール９２は、遷移後の状態を認識し、アプリケーション９１−１乃至アプリケーション９１−ｎのうちの対応するものに通知して、処理が終了される。
【００８４】
このようにして、システムに拠らないアプリケーション９１−１乃至アプリケーション９１−ｎと、システムを制御する再生処理アプリケーション８１との命令や通知の授受がなされるので、システムに拠らずアプリケーションプログラムを設計することができる。すなわち、アプリケーションプログラムの移植性を確保することができる。
【００８５】
このように、状態定義モジュール９２により定義される状態遷移に基づいて設計されるアプリケーションプログラムはシステムに依存しないので、状態定義モジュール９２とシステムを仲介するインターフェースモジュール９３を設けることにより、アプリケーションを更新する際に、システムを考慮する必要がなくなるため、アプリケーションの更新が容易となり、また、換言すれば、状態定義モジュール９２により定義される状態遷移に基づいて設計されるアプリケーションプログラムを利用可能なハードウェア、および、ハードウェアを隠蔽しているＡＰＩ（Application Program Interface)の自由度が増す。
【００８６】
さらに、状態定義モジュール９２により状態を定義し、状態遷移が不可能な命令を授受しないようにすることにより、アプリケーション制御部６１とシステム制御部１１の間で、無駄な通信を低減させることができる。
【００８７】
このように、本発明を適用することにより、システムを制御するアプリケーションプログラムと連動して動作する、動画、静止画、音楽等を扱うマルチメディアアプリケーションプログラムにおいて、装置のハードウェアの特性とアプリケーションの仕様との差異をミドルウェアレイヤ（ここでは、状態定義モジュール９２およびインターフェースモジュール９３）で吸収することができるので、アプリケーションの移植性が向上する。
【００８８】
また、このミドルウェア（ここでは、状態定義モジュール９２およびインターフェースモジュール９３）においては、汎用的なマルチメディアアプリケーションのインターフェースとエラーコードやイベントを定義するとともに、従来アプリケーションが定義していたアプリケーションの状態遷移の管理を行っている。このミドルウェアの抽象化レイヤに合わせてアプリケーションを設計することにより、アプリケーションの移植性は向上し、ハードウェアの自由度も向上する。
【００８９】
さらに、このミドルウェア（ここでは、状態定義モジュール９２およびインターフェースモジュール９３）においては、アプリケーションの挙動に関して、高いレイヤで状態を管理しているため、アプリケーションとハードウェア間での命令や通知などの授受のフィルタリングを行い、無駄な通信を削減することができる。
【００９０】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【００９１】
この記録媒体は、図１に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク（ＭＤ(Mini-Disk)（商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア５０などにより構成される。
【００９２】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００９３】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００９４】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【００９５】
【図１】本発明を適用した情報処理装置の構成を示すブロック図である。
【図２】本発明を適用した情報処理装置のソフトウェアスタックについて説明する図である。
【図３】状態遷移について説明する図である。
【図４】状態遷移について説明する図である。
【図５】アプリケーションの状態定義と、アプリケーションおよびシステムがそれぞれ認識可能な命令(関数)の対応を示す対応表について説明する図である。
【図６】アプリケーションの可搬性について説明する図である。
【図７】本発明を適用した処理について説明するためのフローチャートである。
【符号の説明】
【００９６】
１  情報処理装置，  １１  システム制御部，  ２９  モニターディスプレイ，  ４０  表示画像生成出力部，  ４２  デコード処理部，  ６１  アプリケーション制御部，  ６２  表示用データ格納部，  ６４  合成処理部，  ８１  再生処理アプリケーション，  ９１  アプリケーション，  ９２  状態定義モジュール，  ９３  インターフェースモジュール，  ９４  インターフェースシステム
【図１】
0004591279.tif 000002
【図２】
0004591279.tif 000003
【図３】
0004591279.tif 000004
【図４】
0004591279.tif 000005
【図５】
0004591279.tif 000006
【図６】
0004591279.tif 000007
【図７】
0004591279.tif 000008