次に添付図面を参照して本発明による情報処理装置の一実施例を詳細に説明する。図1を参照すると、本発明による情報処理装置の実施例は、情報端末装置10に適用した場合であり、情報端末装置10は、メモリ14にスクリーンセーバ(ScS)の動作を制御するScS制御機能部34を備え、ScS制御機能部34は、コーデック調査機能部36でコーデックを調査し、コーデック一覧保持機能部38にこの調査結果をコーデックの一覧として格納し、コーデックローディング監視機能部40でプログラムが呼び出すライブラリおよびプログラムが開放したライブラリを監視し、監視したライブラリがコーデックの一覧に含まれるか否かを判断し、OS(Operation System)設定機能部42でコーデックローディング監視機能部40がコーデックの一覧に、監視したライブラリを含むか否かの判断に応じてスクリーンセーバの動作をオフに設定することにより、たとえば複数のソフトフォンを含む環境でも、ソフトフォン起動後の通話時に、スクリーンセーバ機能を動作させないように制御することができる。
本発明と直接関係のない部分について図示および説明を省略する。以下の説明で、信号はその現れる接続線の参照番号で指示する。
情報端末装置10は、図1に示すように、CPU(Central Processing Unit)12、メモリ14、ストレージ16、通信インタフェース部18および入出力装置20を含む。これらの構成要素それぞれは、システムバス22、信号線24、26、28、30および32を介して、互い接続されている。
CPU 12は、家電製品や工業機器のような情報処理装置の全体を制御する機能を有する。CPU 12は、主に、プログラムの実行を制御する。
メモリ14は、データを一時的に保持する機能を有する。メモリ14には、RAM(Random Access Memory)が用いられる。メモリ14には、図1に示すように、CPU 12がプログラムを実行するとき、プログラムがローディングされ、プログラムが取り扱うデータとして一時的に保持させている。
メモリ14は、OS起動にともないスクリーンセーバ(Screen-Saver)を制御するScS制御機能部34および図示しないが、ソフトフォン機能を含む。ScS制御機能部34は、調査機能、記憶機能、監視機能および設定機能として、それぞれ、コーデック調査機能部36、コーデック一覧保持機能部38、コーデックローディング監視機能部40、およびOS設定機能部42に対応している。これらの機能については後段でさらに詳述する。本実施例はライブラリとしてコーデックを一例に挙げている。
ソフトフォン機能は、通信に用いるVoIP(Voice over Internet Protocol)に対応する。ソフトフォン機能は、具体的に、電話帳機能、電話発着信機能、通話機能、通話したい相手の在席確認を提供するプレゼンス機能等の電話の機能を有する。
ストレージ16は、データを記憶する機能を有する。ストレージ14は、具体的に、RAM、ROM(Read Only Memory)、フラッシュメモリ、磁気テープ、CD-ROM(Compact Disc Read Only Memory)、HDD(Hard disk drive)およびSSD(Solid State Drive)などを用いるとよい。ストレージ16は、CPU 12の制御に基づき記憶するデータを入出力する。また、ストレージ16には、情報端末装置10のOSやアプリケーションソフトウェアといったプログラム、プログラムの設定情報およびプログラムの状態情報が記憶されている。
ここで、OSには、スクリーンセーバに対応するプログラムが含まれている。また、アプリケーションソフトウェアには、電話の機能を有するアプリケーションソフトウェアの一つとしてソフトフォンプログラムが含まれている。ソフトフォンプログラムは、ソフトフォン機能を提供し、処理するVoIP(Voice over Internet Protocol)に対応する。具体的なソフトフォン機能は、電話帳機能、電話発着信機能、通話機能、通話したい相手の在席確認を提供するプレゼンス機能等の電話の機能を有効にする。
さらに、ソフトフォン機能は、電気通信事業者が提供する有線加入電話や移動体加入電話に接続して電話できるものであればよい。この場合、加入電話に係わる信号を伝播する回線は、アナログ回線またはデジタル回線のいずれでもよく、ソフトフォン機能は接続する回線に応じて自律的に対応する。
通信インタフェース部18は、情報端末装置10に対して信号線44またはアンテナ46を介して、図示しないアナログ回線やデジタル回線のネットワークに接続する外部の装置と通信接続する機能を有する。通信インタフェース部10は、一般的なPCのNIC(Network Interface Card)や無線用カードのように、IPインタフェースを有し、CPU 12の制御に基づき外部のネットワークに接続して、通信する。
入出力装置20は、情報端末装置10の特徴的な情報処理、扱う情報の入力/出力機能を有する。入出力装置20には、一般的な入出力機能であるキーボード、タッチパネル、ポインティングデバイス、およびディスプレイがあり、内蔵または外部からシステムバス22を介して、CPU 12に接続されている。ポインティングデバイスには、マウス、十字キーまたはテンキーがある。これらは、CPU 12により入出力が制御される。本実施例において利用者は、これら入出力機能を利用してソフトフォン機能を操作する。
次に情報端末装置10におけるメモリ14内のScS制御機能部34について記述する。図1のコーデック調査機能部36は、OSに含まれているコーデック処理に関するライブラリを調べる機能を有する。そして、コーデック調査機能部36は、ライブラリ調査処理結果として、ライブラリ名の一覧データをストレージ16に与える。
ここで、ライブラリとは、他のプログラムから利用する関数を含み、関数のソースファイルがコンパイルされたオブジェクトの単体または集合の機能部である。すなわち、ライブラリは、あるプログラムがあるライブラリの関数によりある処理を実行可能にするものである。たとえばマイクロソフト社のWindows(登録商標)にはDLL(Dynamic Link Library)のライブラリが用いられている。DLLは、プログラムの実行中にダイナミックリンクによりライブラリをプログラムのメモリ空間に呼び出して、ライブラリを利用したり、呼び出したライブラリを開放して利用したりするものであることが知られている。
ある処理を実行するものがプログラムならば、ライブラリを呼び出すプログラムはプログラムであり、プログラムにより呼び出されるライブラリもプログラムであるといえる。しかしながら、たとえばWindows(登録商標)の場合、拡張子が“exe”などのエントリポイントを含むプログラムは独立して実行できる。また、この場合、拡張子が“dll”のようなライブラリは、別のプログラムから呼び出され実行されるものである。
具体的に、コーデック調査機能部36には、図2に示すように、ライブラリ調査処理を実行する機能として、一覧調査機能部48および50がある。したがって、コーデック調査機能部36は、一覧調査機能部48および50においてこれら2つのライブラリ調査処理が実行される。
一覧調査機能部48は、OSが保持するシステム管理プログラムを呼び出し、システム管理プログラムが管理する、コーデック処理に関するライブラリ一覧から識別情報として、たとえばライブラリ名、ライブラリファイル名、コンポーネント識別子などを取得し、ライブラリ名の一覧を生成する機能を有する。
この場合、コーデック調査機能部36は、システム管理プログラムを呼び出すルーチンを有している。このルーチンは、システム管理プログラムの呼出し、システム管理プログラムが管理するコーデック処理に関するライブラリ一覧の問合せ、および呼び出したシステム管理プログラムの開放といったような手続処理を含んでいる。
このような手続処理を含むことから、一覧調査機能部48は、システム管理プログラムを呼び出し、コーデック処理に関するライブラリ一覧を問い合わせ、ライブラリ一覧からライブラリ名を取得し、ライブラリ名の一覧を生成し、呼び出したシステム管理プログラムを開放する処理を実行することができる。
ここで、システム管理プログラムとは、OSがあらかじめに保持しているプログラムで、OSがインストールされた情報端末装置10におけるCPU情報、バッテリ残量、メモリ容量およびOSバージョンといったシステム概要情報を管理するものである。より詳細に記述すると、システム管理プログラムは、ハードウェアリソース、コンポーネントおよびソフトウェア環境を管理するものである。
ハードウェアリソースは、I/O(Input/Output)ポート、IRQ(Interrupt ReQuest)およびメモリアドレス等の情報を扱う。コンポーネントは、ハードウェアおよびソフトウェアの構成要素、ならびにコーデック等の情報を扱う。ソフトウェア環境は、システムドライバおよび読み込まれているモジュール等の情報を扱う。
一覧調査機能部48は、OSのシステム管理プログラムが管理する、コーデック処理に関するライブラリ一覧からライブラリ名を取得し、ライブラリ名の一覧を生成するから、ライブラリ調査処理結果として、情報端末装置10に含まれるコーデック処理に関するライブラリのうち、OSがコーデック処理に関するライブラリと認識しているライブラリ名を取得できる。これにより、後述するコーデックローディング監視機能部40の呼出し監視機能部52および54において、OSまたはシステム管理プログラムがコーデック処理に関するライブラリと認識しているライブラリを基に生成されたライブラリ名の一覧に照らし合わせることから、後述するOS設定機能部42は、OS設定処理を、OSまたはシステム管理プログラムがコーデック処理に関するライブラリと認識しているライブラリの呼出し時、またはライブラリの開放時だけの実施に限られる。
ここで、OSがコーデック処理に関するライブラリとの認識は、OSが認定、認証、承認および保証に対して正式に対応することを意味する。
図2の一覧調査機能部50は、OSが保持する管理情報を参照し、参照した管理情報に含まれるコーデック処理に関するライブラリ名、ライブラリファイル名、コンポーネント識別子等の識別情報を取得し、ライブラリ名の一覧を生成する機能を有する。
この場合、コーデック調査機能部36は、管理情報にアクセスするインタフェースを有する。また、コーデック調査機能部36は、管理情報を参照する際に用いるキーワードも有している。このキーワードはコーデック処理に関連する“G.711”や“H.264”や“コーデック”等といった文字である。
ここで、このキーワードは、EUC(Extended Unix Code)-JP(日本拡張ユニックスコード)やシフトJIS等のそれぞれの文字コードに対応する形式を有している。キーワードは、情報端末装置10のOSが対応する文字コードと同形式の文字コードにより管理情報を参照することができるようになっている。すなわち、コーデック調査機能部36は、情報端末装置10のOSがシフトJISの文字コードに対応するとき、シフトJISの文字コードの形式のキーワードを用いて管理情報を参照する。
このことから、一覧調査機能部50は、管理情報にアクセスし、キーワードを用いて管理情報を参照してコーデック処理に関するライブラリ名等を取得し、ライブラリ名一覧を生成する処理を実行することができる。
ここで、管理情報とは、OSが保持しているレジストリ、初期設定ファイルおよびシステム設定ファイル等であり、OS、プログラムの状態および設定情報を管理する情報である。たとえば、情報端末装置10に新たなプログラムがインストールされると、情報端末装置10には、新たなプログラムの起動に係わる管理情報が自動に設定される。このように設定することで、新たなプログラムは、自動に設定された管理情報を基に起動することができるようになる。たとえば、インストールされる新たなプログラムがコーデック処理を実行するプログラムの場合、管理情報には、コーデック処理を実行するために呼び出すライブラリが設定されている。この管理情報によって設定されるライブラリには、図示しないが、2通りある。
第1のライブラリはOSがコーデック処理に関するライブラリと認識しているライブラリであり、第2のライブラリはOSがコーデック処理に関するライブラリと認識していないライブラリである。第1のライブラリは、前述したように、システム管理プログラムで管理されている。また、第2のライブラリは、システム管理プログラムで管理されず、OS上でライブラリとすら認識されていないこともある。このような第2のライブラリは、メーカー独自のライブラリのようなものが挙げられる。
一覧調査機能部50は、OSが保持する管理情報に含まれるコーデック処理に関する情報をキーワードで絞り込みながら、ライブラリ名の一覧を参照している。これにより、一覧調査機能部50は、ライブラリ調査処理結果として、情報端末装置10に含まれるコーデック処理に関するライブラリのうち、OSがコーデック処理に関するライブラリと認識していないライブラリのライブラリ名も取得できる。
一覧調査機能部50を用いることで、後述するコーデックローディング監視機能部40の呼出し監視機能部52および54において、OSがコーデック処理に関するライブラリと認識していないライブラリを含めて生成されたライブラリ名の一覧に照らし合わせるから、後述するコーデックローディング監視機能部40は、OS設定機能部42においてOSがコーデック処理に関するライブラリと認識していないライブラリを呼出し時、またはライブラリの開放時も実施される。
ここで、OSがコーデック処理に関するライブラリと認識していないということは、OSが認定、認証、承認および保証に対して正式に対応しないことを意味する。
本実施例は、一覧調査機能部48を適用した場合について例示する。また、コーデック調査機能部36は、ライブラリの調査タイミングを、この機能の活性化時として記述するが、コーデック調査機能部36にあらかじめに調査間隔を設定することで、周期的にライブラリ調査するようにもできる。
具体的には、コーデック調査機能部36は、調査間隔が“10sec(秒)”に設定されている場合、10秒毎にライブラリを調査する。これにより、コーデック処理に関する新たなプログラムや新たなライブラリが情報端末装置10にインストールされても、コーデック調査機能部36が新たなライブラリに関する情報を含めてライブラリ名の一覧を生成し、この一覧を更新することができるようになる。
なお、コーデック調査機能部36は、活性化の後に時間計測を開始し、調査間隔と照らし合わせることで周期的にライブラリを調査している。
また、一覧調査機能部48および50の調査を切り換えて適用することもできる。この場合、コーデック調査機能部36は、一覧調査機能部48および50の切換間隔を設定しておくことで、周期的にライブラリの調査を切り換える。具体的に、コーデック調査機能部36は、“ライブラリ調査3回”と回数が設定されている場合、ライブラリの調査を3回実施すると、ライブラリ調査を一覧調査機能部48および50の間で切り換える。
なお、コーデック調査機能部36は、活性化後に時間計測を開始し、切換間隔と照らし合わせることで周期的にライブラリの調査を切り換えている。すなわち、コーデック調査機能部36で一覧調査機能部48を適用し、調査間隔“10sec”、調査回数“ライブラリ調査3回”と設定されている場合、コーデック調査機能部36は活性化後、10秒経過時、20秒経過時、30秒経過時の3回にて一覧調査機能部48を実行して、ライブラリ調査を一覧調査機能部50に切換える。この後、コーデック調査機能部36は、活性化後、40秒、50秒、60秒経過時にて一覧調査機能部50を実行して、ライブラリ調査を再び、一覧調査機能部48に切り換える。
このようにコーデック調査機能部36は、活性化してから60秒で、一覧調査機能部48によるライブラリの調査を3回、一覧調査機能部50による調査を3回、計6回のライブラリを調査する。
コーデック一覧保持機能部38は、コーデック調査機能部36から供給されたライブラリ名の一覧を保持する機能を有する。具体的に、コーデック一覧保持機能部38は、供給されたライブラリ名の一覧を保持するために用いる領域をメモリ14内に確保し、この領域にライブラリ名の一覧を記憶させて保持する。
コーデックローディング監視機能部40は、情報端末装置10内で実行されるプログラムが呼び出すライブラリを監視し、プログラムが使用するライブラリ名を取得し、コーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、使用するライブラリ名がコーデック名の一覧に含まれているか否かを判断する機能を有する。
コーデックローディング監視機能部40は、図3に示すように、ライブラリにおける呼出し監視機能部52および54、ならびに開放監視機能部56および58を含む。
図3の呼出し監視機能部52は、プログラムがライブラリを呼び出すことによりOSで処理するファンクションをフック機能部60によりフック処理し、プログラムが呼び出したライブラリのライブラリ名、ライブラリファイル名、コンポーネント識別子等を識別情報として取得し、取得したライブラリ名のような識別情報をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、取得したライブラリ名がライブラリ名の一覧に含まれているか否かを判断する機能を有する。
ここで、フックとは、プログラムが実行するルーチンを横取りする処理として知られている。フック処理は、フック機能部60で実行される。このフックを用いることで、たとえばOSなどのプログラムに適宜に機能の変更や追加が可能となる。したがって、呼出し監視機能部52は、フック処理として、プログラムがライブラリを呼び出すことによりOSで処理するファンクションを横取りし、プログラムが呼び出したライブラリのライブラリ名、ライブラリファイル名、コンポーネント識別子等を取得する。
この場合、コーデックローディング監視機能部40は、フック処理を実行するルーチンとしてフック機能部60を有している。コーデックローディング監視機能部40が活性化すると、OSに対してフック処理、すなわちフック機能部60をインストールする。フック処理は、プログラムが呼び出したライブラリのライブラリ名といった情報の取得、取得した情報の通知およびプログラムが呼び出したライブラリの呼び出し等の手続きである。
したがって、呼出し監視機能部52は、フック機能部60をOSにインストールし、プログラムがライブラリを呼び出すことによりOSでファンクションが処理されるときにフック機能部60を実行し、実行したフック機能部60によりプログラムが呼び出したライブラリのライブラリ名を取得する。そして、呼出し監視機能部52は、取得したライブラリ名をコーデックローディング監視機能部40に通知する。フック機能部60は、プログラムが呼び出したライブラリを呼び出して、ローディングする。この後、コーデックローディング監視機能部40は、通知されたライブラリ名をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、通知されたライブラリ名がライブラリ名の一覧に含まれているかを判断する。
このような一連の処理により、呼出し監視機能部52は、プログラムがライブラリを呼び出すことによりOSで処理するファンクションをフック機能部60でフック処理するから、情報端末装置10に含まれるコーデック処理に関するライブラリを呼び出す際、プログラムが呼び出すライブラリ名を自動に取得できる。
図3の呼出し監視機能部54は、OSが保持するシステム管理プログラムを呼び出し、システム管理プログラムが管理する、現在の情報端末装置10内で読み込まれているライブラリの一覧からライブラリ名、ライブラリファイル名、コンポーネント識別子等を識別情報として取得し、取得したライブラリ名をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、取得したライブラリ名がライブラリ名の一覧に含まれているか否かを判断する機能を有する。
この場合、コーデックローディング監視機能部40は、システム管理プログラムを呼び出すルーチンとして、コール機能部62を有する。このコール機能部62は、システム管理プログラムを呼び出し、システム管理プログラムが管理するコーデック処理に関するライブラリ一覧の問合せおよびシステム管理プログラムの開放等の手続きを実行するものである。
したがって、呼出し監視機能部54は、コール機能部62でシステム管理プログラムを呼び出し、現在の情報端末装置10内で読み込まれているライブラリの一覧を問い合わせてライブラリ名を取得し、取得したライブラリ名をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、取得したライブラリ名がライブラリ名の一覧に含まれているか否かを判断する。
呼出し監視機能部54は、OSのシステム管理プログラムが管理する、プログラムがライブラリの呼出しに成功し、現在の情報端末装置10内で読み込まれているモジュールの一覧から、情報端末装置10に含まれるコーデック処理に関するライブラリ名を取得できる。
なお、呼出し監視機能部54は、コーデックローディング監視機能部40にあらかじめに監視間隔を設定しておくことにより、ライブラリ呼出し監視におけるタイミングを周期的に実行させている。
また、コーデックローディング監視機能部40は、情報端末装置10内で実行されるプログラムが呼び出したライブラリの開放を監視し、プログラムが開放するライブラリ名を取得し、取得したライブラリ名がコーデックローディング監視機能部40の保持するコーデック名の一覧に照らし合わせ、取得したライブラリ名がライブラリ名の一覧に含まれているか否かを判断する。
図3の開放監視機能部56は、プログラムがライブラリを開放することによりOSで処理するファンクションをフック機能部60によりフック処理し、プログラムが開放したライブラリのライブラリ名、ライブラリファイル名およびコンポーネント識別子等を識別情報として取得し、取得したライブラリ名等をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、取得したライブラリ名がライブラリ名の一覧に含まれているか否かを判断し、ライブラリ開放を監視する機能を有する。
したがって、この監視処理におけるフック処理とは、プログラムがライブラリを開放することによりOSで処理するファンクションを横取りして、プログラムが開放したライブラリのライブラリ名、ライブラリファイル名およびコンポーネント識別子等を取得する。
この場合、コーデックローディング監視機能部40は、フック処理を実行するルーチンとしてフック機能部60を有している。フック機能部60は、フック処理を実行するルーチンである。コーデックローディング監視機能部40が活性化すると、OSに対しフック処理をインストールする。フック処理は、プログラムが開放したライブラリのライブラリ名といった情報の取得、取得した情報の通知、およびプログラムが開放したライブラリの開放等の手続きである。
したがって、開放監視機能部56は、フック機能部60をOSにインストールし、プログラムがライブラリを開放することによりOSでファンクションが処理されるときフック機能部60を実行し、実行したフック機能部60によりプログラムが開放したライブラリのライブラリ名を取得する。そして、開放監視機能部56は、取得したライブラリ名をコーデックローディング監視機能部40に通知する。フック機能部60は、プログラムが開放したライブラリを開放して、アンローディングする。この後、コーデックローディング監視機能部40は、通知されたライブラリ名をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、通知されたライブラリ名がライブラリ名の一覧に含まれているか否かを判断する。
このような一連の処理により、開放監視機能部56は、プログラムがライブラリを開放することによりOSで処理するファンクションをフック機能部60でフック処理するから、情報端末装置10に含まれるコーデック処理に関するライブラリを開放する際に、プログラムが開放するライブラリ名を自動に取得できる。
図3の開放監視機能部58は、OSが保持するシステム管理プログラムを呼び出し、システム管理プログラムが管理する、現在の情報端末装置10内で読み込まれているライブラリの一覧からライブラリ名、ライブラリファイル名およびコンポーネント識別子等を識別情報として取得し、取得したライブラリ名等をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、取得したライブラリ名がライブラリ名の一覧に含まれているか否かを判断し、ライブラリ開放を監視する機能を有する。
この場合、コーデックローディング監視機能部40は、システム管理プログラムを呼び出すルーチンをコール機能部62として有している。このコール機能部62は、システム管理プログラムの呼出し、システム管理プログラムが管理するコーデック処理に関するライブラリ一覧の問合せおよびシステム管理プログラムの開放等の手続きを実行するルーチンである。
したがって、開放監視機能部58は、システム管理プログラムを呼び出し、現在の情報端末装置10内で読み込まれているライブラリの一覧を問い合わせてライブラリ名を取得し、取得したライブラリ名をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、取得したライブラリ名がライブラリ名の一覧に含まれているかを判断する。
なお、開放監視機能部58は、コーデックローディング監視機能部40にあらかじめ監視間隔を設定しておくことにより、ライブラリ開放の監視におけるタイミングを周期的に実行させている。
ここで、コーデックローディング監視機能部40は、コーデック一覧保持機能部38がライブラリ名の一覧を保持することにより、ライブラリの呼出しに対する監視を開始し、ライブラリの呼出し監視処理において取得したライブラリ名がライブラリ名の一覧に含まれているか否かを判断する処理を開始する。
なお、本実施例では、ライブラリの呼出し監視において、呼出し監視機能部56を適用した場合を示す。
次にOS設定機能部42が、API(Application Programming Interface)/レジストリを設定し、コーデックローディング監視機能部40の判断結果を基にスクリーンセーバ機能におけるオン/オフ制御の関係について、簡単に、図4Aないし図4Eに示す。ライブラリ名の一覧64は、図4Aに示すように、“ライブラリ名A、BおよびC”を含むものと仮定している。
OS設定機能部42は、図4Bに示すように、呼出し監視機能部52の判断結果を基にスクリーンセーバ機能におけるオン/オフを判断し、オン/オフを制御する。OS設定機能部42の制御において、呼出し監視機能部52は、プログラムがライブラリを呼び出して監視する際に、フック処理が起動するように制御信号66をフック機能部60に供給して制御する。フック機能部60は、プログラムが呼び出したライブラリのライブラリ名、ライブラリファイル名、コンポーネント識別子等を取得する機能により、情報取得処理68を実行し、“ライブラリ名A”を取得し、取得した情報70、“ライブラリ名A”を呼出し監視機能部52に供給する。呼出し監視機能部52は、取得した“ライブラリ名A”とライブラリ名の一覧を照らし合わせる。呼出し監視機能部52は、この結果、“ライブラリ名A”がライブラリ名の一覧に含まれていると判断する。この判断結果を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオフに制御する。
同様に、呼出し監視機能部52は、フック機能部60で取得した“ライブラリ名Z”を受けて、ライブラリ名の一覧に照らし合わせる。この結果、呼出し監視機能部52は、“ライブラリ名Z”がライブラリ名の一覧に含まれていないと判断する。この判断を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオフに制御しない。
換言すると、OS設定機能部42は、呼出し監視機能部52で取得したライブラリ名がライブラリ名の一覧に含まれていると判断されたことで、コーデック処理に関するライブラリが呼び出されているとき、OSに対するスクリーンセーバ機能をオフに制御することを意味する。
また、OS設定機能部42は、図4Cに示すように、呼出し監視機能部54の判断結果を基にスクリーンセーバ機能オン/オフを判断し、制御する。OS設定機能部42の制御において、呼出し監視機能部54は、OSが保持するシステム管理プログラムを呼び出し、システム管理プログラムが管理するコール機能部62に制御信号72を供給する。コール機能部62は、現在の情報端末装置10内でコールおよび管理処理74を実行して読み込まれているライブラリ名“ライブラリ名A、Z”を情報として取得する。コール機能部62は、取得した情報76、“ライブラリ名A、Z”を呼出し監視機能部54に供給する。呼出し監視機能部54は、供給された情報76、“ライブラリ名A、Z”とライブラリ名の一覧を照らし合わせる。呼出し監視機能部54は、ライブラリ名の一覧に照らし合わせた結果、ライブラリ名の一覧に“ライブラリ名A”が含まれていると判断する。この判断結果を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオフに制御する。
同様に、呼出し監視機能部54は、コール機能部62で取得した“ライブラリ名X、Z”を受けて、ライブラリ名の一覧に照らし合わせる。この結果、呼出し監視機能部54は、“ライブラリ名X、Z”がライブラリ名の一覧に含まれていないと判断する。この判断結果を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオフに制御しない。
換言すると、OS設定機能部42は、ライブラリ呼出し監視機能部54で取得したライブラリ名がライブラリ名の一覧に含まれていると判断されたことで、コーデック処理に関するライブラリが呼び出されているとき、OSに対しスクリーンセーバ機能をオフに制御することを意味する。
OS設定機能部42は、図4D示すように、開放監視機能部56の判断結果を基にスクリーンセーバ機能オン/オフを判断し、制御する。OS設定機能部42の制御において、開放監視機能部56は、プログラムがライブラリを開放して監視する際に、フック処理が起動するように制御信号78をフック機能部60に供給して、制御する。フック機能部60は、定義のように、OSで処理するファンクションを横取りして、プログラムが開放したライブラリのライブラリ名等を取得する情報取得処理80を実行して、開放したライブラリから“ライブラリ名A”を取得する。フック機能部60は、取得した情報82、“ライブラリ名A”を開放監視機能部56に供給する。開放監視機能部56は、取得した情報82、“ライブラリ名A”とライブラリ名の一覧に照らし合わせる。開放監視機能部56は、この結果、“ライブラリ名A”がライブラリ名の一覧に含まれていると判断する。この判断結果を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオンに制御する。
同様に、開放監視機能部56は、フック機能部60で取得した“ライブラリ名Z”を受けて、ライブラリ名の一覧に照らし合わせる。この結果、開放監視機能部56は、“ライブラリ名Z”がライブラリ名の一覧に含まれていないと判断する。この判断を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオンに制御しない。
換言すると、OS設定機能部42は、開放監視機能部56において取得したライブラリ名がライブラリ名一覧に含まれていると判断されたことで、コーデック処理に関するライブラリが開放されたとき、OSに対しスクリーンセーバ機能をオンに制御することを意味する。
さらに、OS設定機能部42は、図4Eに示すように、開放監視機能部58の判断結果を基にスクリーンセーバ機能オン/オフを判断し、制御する。開放監視機能部58は、OSが保持するシステム管理プログラムを呼び出し、システム管理プログラムが管理するコール機能部62に制御信号84を供給する。コール機能部62は、現在の情報端末装置10内でコールおよび管理処理86を実行して読み込まれているライブラリ名“ライブラリ名A、Z”を取得する。コール機能部62は、取得した情報88、“ライブラリ名A、Z”を開放監視機能部58に供給する。開放監視機能部58は、取得した情報88、“ライブラリ名A、Z”とライブラリ名の一覧に照らし合わせる。開放監視機能部58は、ライブラリ名の一覧に照らし合わせた結果、ライブラリ名の一覧に“ライブラリ名A”が含まれていると判断する。この判断結果を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオンに制御しない。
同様に、開放監視機能部58は、コール機能部62で取得した“ライブラリ名X、Z”を受けて、ライブラリ名の一覧に照らし合わせる。この結果、開放監視機能部58は、“ライブラリ名X、Z”がライブラリ名の一覧に含まれていないと判断する。この判断結果を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオンに制御する。
換言すると、OS設定機能部42は、開放監視機能部58で取得したライブラリ名がライブラリ名の一覧に含まれていないと判断されたことで、コーデック処理に関するライブラリが開放されたとき、OSに対しスクリーンセーバ機能をオンに制御することを意味する。
OS設定機能部42は、コーデックローディング監視機能部40の判断を基にOSを設定する。本実施例におけるOS設定機能部42のOS設定は、OSに対しスクリーンセーバ機能のオン/オフを施すことである。
OS設定機能部42は、コーデックローディング監視機能部40のライブラリ呼出し監視機能部52および54、ならびにライブラリ開放監視機能部56および58のそれぞれに対応し、得られた判断を基にOSを設定する。
OS設定機能部42は、スクリーンセーバのオン/オフ制御処理において、図5に示すように、具体的にScS制御機能部90および92の2つを有し、それぞれ適用できる。
ScS制御機能部90は、OSがあらかじめスクリーンセーバのオン/オフを処理するAPI(Application Program Interface)をコールする機能を有する。この場合、OS設定機能部42は、スクリーンセーバのオン/オフ処理するAPIをコールするルーチンを含むAPIコール機能部94を有している。このAPIコール機能部94は、スクリーンセーバオン/オフ処理APIに対しオンまたはオフのメッセージを含めてコールする手続きを実行する機能である。
ScS制御機能部90は、スクリーンセーバのオン/オフ処理において、APIコール機能部94によりOSがあらかじめ有するスクリーンセーバのオン/オフを処理するAPIをコールして、瞬時に、スクリーンセーバのオン/オフを制御することができる。
また、ScS制御機能部92は、OSが保持する管理情報であるレジストリや初期設定ファイルやシステム設定ファイル等を参照し、スクリーンセーバのオン/オフに関する内容を更新する機能を有する。この場合、OS設定機能部42は、管理情報にアクセスするインタフェースを有し、管理情報を参照する際のキーワードを有するAPIコール/レジストリ機能部96を含む。このキーワードは、管理情報内でスクリーンセーバのオン/オフを規定するセクションを示す文字である。
ScS制御機能部92は、スクリーンセーバのオン/オフ処理において、OSの管理情報にアクセスし、恒久的にスクリーンセーバのオン/オフを制御することができる。
なお、本実施例では、ScS制御機能部64によるオン/オフ制御処理の場合について記述する。
次に情報端末装置10におけるScS制御について、図6の状態遷移を用いて記述する。利用者は情報端末装置10の図示しない電源ボタンを押圧操作する。この起動操作にともない、CPU 12の制御により、ストレージ16からOSをメモリ14にローディングして、OSを起動し、情報端末装置10の起動が完了する。この状態が起動状態100である。情報端末装置10は、OSの起動に応じて、ソフトフォンプログラムを自動に実行する。
コーデック調査機能部36、コーデック一覧保持機能部38、コーデックローディング監視機能部40およびOS設定機能部42のそれぞれは、プログラムとして情報端末装置10のメモリ14にあらかじめ、ローディングして記憶し、実行することで各機能が活性化して処理を開始する。情報端末装置10は、起動状態100から状態遷移102により起動後状態104に遷移する。
情報端末装置10は、この起動後、起動後状態104にて利用者はキーボードやマウスを操作し、ソフトフォンプログラムの実行により提供されるソフトフォンを操作できる。さらに、情報端末装置10は、情報端末装置10が含むその他のアプリケーションソフトウェアも適宜に実行し、利用が可能になる。
なお、上述した機能部36ないし42の機能ごとをそれぞれのプログラムとするか、それとも1つのプログラムに、上述した機能部36ないし42の機能を含めるかは適宜に選択できる。
情報端末装置10は、起動後状態104とScS機能オフ状態106の状態を取ることができる。
起動後状態104において、コーデック調査機能部36は、OSが含むコーデック処理に関するライブラリを調べて、ライブラリ名を取得し、ライブラリ名の一覧を作成する。コーデック調査機能部36は、この調査結果として、ライブラリ名の一覧をコーデック一覧保持機能部38に与える。コーデック一覧保持機能部38は、供給されたライブラリ名の一覧を保持する。
より詳細に記述すると、コーデック調査機能部36は、調査に適用する一覧調査機能部48においてOSが保持するシステム管理プログラムを呼び出し、コーデック処理に関するライブラリ一覧を問い合わせて、ライブラリの一覧から図4Aに示したライブラリ名A、ライブラリ名B、ライブラリ名Cを取得し、ライブラリ名の一覧を生成し、システム管理プログラムを開放している。生成したライブラリ名の一覧はコーデック一覧保持機能部38に供給される。
以降、コーデック調査機能部36は、自身に、たとえば“10sec”と設定された調査間隔に基づいて周期的にライブラリを調査する。この周期的な調査は、ルーチン108である。この調査に続けて、コーデック一覧保持機能部38は、コーデック調査機能部36から与えられたライブラリ名の一覧を保持する。
ここで、コーデックローディング監視機能部40は、コーデック一覧保持機能部38がライブラリ名の一覧を保持することで呼出し監視機能部52の呼出し監視を開始する。
このとき、コーデックローディング監視機能部40は、呼出し監視機能部52の呼出し監視を開始することによりフック機能部60をOSに対しインストールし、プログラムが呼び出したライブラリのライブラリ名を取得できるようにする。
具体例を記述する。ある時点で、利用者が情報端末装置10でテキストエディタプログラムを起動する。テキストエディタプログラムは、起動時にテキストエディットに関する機能を発揮する“ライブラリ名Z”のライブラリを呼び出す。OSではテキストエディタプログラムが“ライブラリ名Z”のライブラリを呼び出すファンクションが処理されるとき、フック機能部60でテキストエディタプログラムが呼び出したライブラリの“ライブラリ名Z”を取得する。情報端末装置10は、取得した“ライブラリ名Z”をコーデックローディング監視機能部40に通知し、テキストエディタプログラムが呼び出した“ライブラリ名Z”のライブラリを呼び出す。
このように監視して、情報端末装置10は、テキストエディタプログラムが呼び出すライブラリのライブラリ名を取得しつつ、テキストエディタプログラムが呼び出した“ライブラリ名Z”のライブラリを呼び出すから、テキストエディタプログラムは処理が継続される。
コーデックローディング監視機能部40は、フック機能部60から通知された“ライブラリ名Z”を、コーデック一覧保持機能部38が保持する、図4Aに示したライブラリ名の一覧に照らし合わせ、図4Bに示したように、ライブラリ名の一覧に含まれていないと判断する。
起動後状態104でOS設定機能部42は、該当するライブラリ名の入力なしという判断を基にOSに対しスクリーンセーバ機能をオフに制御しない。すなわち、スクリーンセーバ機能をオンに制御する。この制御は、前述した図4B、4Cおよび4Eの制御に対応している。また、該当する入力がない場合、スクリーンセーバ機能は、オフに制御する。
引き続き、情報端末装置10は、OS、コーデック調査機能部36、コーデック一覧保持機能部38、コーデックローディング監視機能部40およびOS設定機能部42のいずれかがシャットダウンされない場合、監視を繰り返す。
ただし、すでに、OSに対しフック機能部60はインストール済みであるから、フック機能部60は、インストールされず、OSでライブラリを呼び出すファンクションが処理されるときフック処理の実施からを繰り返されることになる。
あるとき、利用者が情報装置でソフトフォンを操作し、電話を発信する。このとき、ScS制御機能部90はオンに制御している。利用者が電話を発信操作すると、ソフトフォンは、通話を確立する処理を開始する。ソフトフォンプログラムは電話の発信先との間で呼制御信号を通信し、通話に適用する音声コーデックを決める。ソフトフォンプログラムは、音声コーデックが決まると、音声コーデック処理に関する“ライブラリ名A”のライブラリを呼び出す。
呼出しに際して、OSではソフトフォンプログラムが“ライブラリ名A”のライブラリを呼び出すファンクションが処理されるときフック機能部60によりフック処理が実施される。フック機能部60は、ソフトフォンプログラムが呼び出したライブラリの“ライブラリ名A”を取得し、取得した“ライブラリ名A”をコーデックローディング監視機能部40に通知し、ソフトフォンプログラムが呼び出した“ライブラリ名A”のライブラリを呼び出す。
このように監視して、ソフトフォンプログラムが呼び出すライブラリのライブラリ名を取得しつつ、ソフトフォンプログラムが呼び出した“ライブラリ名A”のライブラリを呼び出すから、ソフトフォンプログラムは処理が継続される。
すなわち、ソフトフォンプログラムは、電話発信先との間で、呼び出された音声コーデック処理に関する“ライブラリ名A”を利用し、音声を送受信して通話中になる。
コーデックローディング監視機能部40は、フック機能部60から通知された“ライブラリ名A”をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせる。情報端末装置10は、“ライブラリ名A”がライブラリ名の一覧に含まれていると判断する。
この判断を受けて、情報端末装置10は、状態遷移110を経て、ScS制御オフ状態106に移る。OS設定機能部42において、ScS制御機能部90は、ScS制御オフ状態106で、該当するライブラリ名が存在する“入力あり”という判断を基にOSに対しスクリーンセーバ機能をオフに制御する。
引き続き、上述したように、情報端末装置10は、OS、コーデック調査機能部36、コーデック一覧保持機能部38、コーデックローディング監視機能部40およびOS設定機能部42のいずれかがシャットダウンされない場合、ルーチン112としてこの監視を繰り返す。
また、コーデックローディング機能部40は、呼出し監視機能部52および54のいずれかにおいて取得したライブラリ名Aがライブラリ名の一覧に含まれていると判断すると、ルーチン112の処理として開放監視機能部56および58のいずれかにより開放監視を開始する。
この開放監視に際して、コーデックローディング機能部40は、プログラムがライブラリを開放することによりOSで処理するファンクションを横取りするフック機能部60をOSに対しインストールし、プログラムが開放したライブラリのライブラリ名を取得できるようにする。
利用者が通話中のソフトフォンプログラムで通話を終了(通話切断)する。ソフトフォンプログラムで通話を終了すると、ソフトフォンプログラムは通話を切断するための処理を開始する。ソフトフォンプログラムは、電話発信先との間で呼制御信号を通信し、通話を切断し、音声コーデック処理に関する“ライブラリ名A”のライブラリを開放する。
この開放時に、OSではソフトフォンプログラムが“ライブラリ名A”のライブラリを開放するファンクションが処理されるとき、フック機能部60が実行され、フック処理によりソフトフォンプログラムが開放したライブラリの“ライブラリ名A”を取得し、取得した“ライブラリ名A”をコーデックローディング機能部40に通知し、ソフトフォンプログラムが開放した“ライブラリ名A”のライブラリを開放する。
このように監視して、ソフトフォンプログラムが開放するライブラリのライブラリ名を取得しつつ、ソフトフォンプログラムが呼び出した“ライブラリ名A”のライブラリを開放するから、ソフトフォンプログラムは処理が継続される。
コーデックローディング機能部40は、フック機能部60から通知された“ライブラリ名A”をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、“ライブラリ名A”がライブラリ名の一覧に含まれていると判断する。これは、図4Dに対応している。
この判断結果を受けて、OS設定機能部42は、OSに対しスクリーンセーバ機能をオンに制御する。情報端末装置10は、ScS制御オフ状態106からスクリーンセーバ機能をオンに制御して、状態遷移114を経て、起動後状態104に移る。
引き続き、上述したように、情報端末装置10は、OS、コーデック調査機能部36、コーデック一覧保持機能部38、コーデックローディング監視機能部40およびOS設定機能部42のいずれかがシャットダウンされない場合、呼び出し監視のルーチン108としてこの監視を繰り返す。
ソフトフォンプログラムが音声処理する音声コーデックの呼出しまたは開放に基づいて自動にスクリーンセーバの起動をオン/オフできるようになる。
次に情報端末装置10における異なる動作手順について記述する。本実施例は、ソフトフォンプログラムが音声処理するコーデックの呼出しまたは開放に際して、所定のプログラムが実行されているか否かを判断した後に、自動にスクリーンセーバの起動をオン/オフする手順を記述する。本実施例の情報端末装置10は、図1の構成要素を含む。本実施例は、OS設定機能部42の処理だけが先の実施例と相違し、他の処理は先の実施例と同じである。
本実施例のOS設定機能部42は、所定のプログラムが実行されているか否かを判断する実行調査機能部116を有し、所定プログラムが実行中と判断した際にOS設定を実行する。
具体的には、所定プログラム実行調査処理とは、OS設定機能部42がOS上で実行されているプログラムを調査することである。また、本実施例のOS設定機能部42は、図7に示すように、ScS制御機能部90および92、APIコール機能部94、APIコール/レジストリ機能部96、ならびに実行調査機能部116を含む。実行調査機能部116は、調査する対象の所定プログラムの一覧を、あらかじめ保持する機能を有している。
ここで、所定プログラムの一覧とは、所定のプログラムを示すファイル名やプログラム名やプロセスID(IDentification)などである。ファイル名やプログラム名は、OSがプログラムを識別する識別子である。所定プログラムの一覧には、単に、ファイル名やプログラム名を示す場合と、ディレクトリ構造を含めた絶対パスまたは相対パスで示す場合が適用できる。また、プロセスIDは、OSが実行中のプログラムを識別する識別子である。
OS設定機能部42は、所定プログラムの一覧として、あらかじめ、“所定プログラムD、E、F”を保持しているとして記述する。また、本実施例の動作手順は、先の実施例との相違を明確化するため、図8のフローチャートを用いて記述する。
まず、コーデック調査機能部36でライブラリを調査する(ステップS10)。この調査では、ライブラリ名を取得し、取得したライブラリ名の一覧を生成する。生成したライブラリ名の一覧は、コーデック一覧保持機能部38に供給される。コーデック一覧保持機能部38では、供給されたライブラリ名の一覧を保持する(ステップS12)。
次に一覧の保持にともない、コーデックローディング監視機能部40における呼出し監視機能部52の動作を開始する(ステップS14)。呼出し監視機能部52は、フック機能部60で通知された“ライブラリ名A”を、コーデック一覧保持機能部38が保持するライブラリ名一覧に照らし合わせ、“ライブラリ名A”がライブラリ名一覧に含まれているか否かを判断する(ステップS16)。これは、図4Bの判断だけでなく、図4Cおよび図4Eの判断にも対応している。図4Cおよび図4Eの場合、コール機能部62による情報取得を基にした呼出し監視機能部54による判断、およびコール機能部62による情報取得を基にした開放監視機能部58による判断が行なわれる。
“ライブラリ名A”がライブラリ名一覧に含まれていると判断した場合(YES)、OS上で実行中のプログラム調査判断処理に進む(ステップS18へ)。また、“ライブラリ名A”がライブラリ名一覧に含まれていないと判断した場合(NO)、スクリーンセーバ制御をオンにする処理に進む(ステップS20へ)。これは、図4Dに対応している。すなわち、フック機能部60による情報取得を基にした呼出し監視機能部52による判断が行なわれる。
OS設定機能部42にてOS上で実行中のプログラムを調査し、所定プログラム一覧“所定プログラムD、EおよびF”に含まれるプログラムが実行中か否か判断する(ステップS18)。プログラムが実行中であると判断した場合(YES)、スクリーンセーバ制御をオフにする処理に進む(ステップS22へ)。また、プログラムが実行中にないと判断した場合(NO)、スクリーンセーバ制御をオンにする処理に進む(ステップS20へ)。
ScS制御機能部90では、プログラムの実行中に応じてオフに制御する(ステップS22)。したがって、スクリーンセーバは機能しない。また、プログラムが実行中にないとき、ScS制御機能部90では、プログラムの実行中に応じてオンに制御する(ステップS20)。この制御ではスクリーンセーバを機能させる。
ScS制御オン/オフ後、情報端末装置10の動作を継続するか否かを判断する(ステップS24)。OS、コーデック調査機能部36、コーデック一覧保持機能部38、コーデックローディング監視機能部40およびOS設定機能部42のいずれかがシャットダウンされないとき、継続と判断する場合(YES)、開放監視処理に進む(ステップS26へ)。継続しない場合(NO)、終了する。
次に開放監視機能部56の動作を開始し、先の実施例のように、たとえばソフトフォンでの通話切断処理を開始する。ソフトフォンプログラムは、電話発信先との間で呼制御信号を通信し、通話を切断し、音声コーデック処理に関する“ライブラリ名A”のライブラリを開放する(ステップS26)。ソフトフォンプログラムが開放するライブラリのライブラリ名を取得しつつ、ソフトフォンプログラムが呼び出した“ライブラリ名A”のライブラリを開放するから、ソフトフォンプログラムは処理が継続される。
次に取得した“ライブラリ名A”をコーデック一覧保持機能部38が保持するライブラリ名の一覧に照らし合わせ、取得した“ライブラリ名A”がライブラリ名の一覧に含まれているか否かを判断する(ステップS28)。“ライブラリ名A”がライブラリ名の一覧に含まれていると判断した場合(YES)、スクリーンセーバ制御をオンにする処理に進む(ステップS30へ)。また、“ライブラリ名A”がライブラリ名の一覧に含まれていないと判断した場合(NO)、OS上で実行中のプログラム調査判断処理に進む(ステップS32へ)。
OS設定機能部42にてOS上で実行中のプログラムを調査し、所定プログラム一覧“所定プログラムD、EおよびF”に含まれるプログラムが実行中か否か判断する(ステップS32)。プログラムが実行中であると判断した場合(YES)、スクリーンセーバ制御をオフにする処理に進む(ステップS34へ)。また、プログラムが実行中にないと判断した場合(NO)、スクリーンセーバ制御をオンにする処理に進む(ステップS30へ)。
ScS制御機能部90では、プログラムの実行中に応じてオフに制御する(ステップS34)。したがって、スクリーンセーバは機能しない。また、プログラムが実行中にないとき、ScS制御機能部90では、プログラムの実行中に応じてオンに制御する(ステップS30)。この制御ではスクリーンセーバを機能させる。
ScS制御オン/オフ後、情報端末装置10は、呼出し監視を実行する所定の時間経過したか否かを判断する(ステップS36)。たとえば設定した10秒が未だに経過していない場合(NO)、動作を継続判断処理に戻る(ステップS24へ)。また、設定した10秒が経過した場合(YES)、コーデック調査に戻る(ステップS10へ)。
ただし、コーデック調査に戻った場合、呼出し監視機能部52および54の再インストールが実行されないことは言うまでもない。このような手順を経てScS制御を繰り返す。
このように本実施例は、先の実施例に、OS設定機能部42にて所定のプログラム実行判断処理(ステップS18およびS32)を含むことで自動にスクリーンセーバの起動を有効にオン/オフ制御することができる。すなわち、ソフトフォン起動後の通話時にスクリーンセーバ機能を動作させないで動作させることができる。
本実施例の動作手順は、第1のライブラリに対するScS制御について記述したが、第1のライブラリにおいても、一覧調査機能部48および50、呼出し監視機能部52および54、開放監視機能部56および58、フック機能部60、コール機能部62、ScS制御機能部92、APIコール機能部94、ならびにAPIコール/機能部96を適用して、図6の状態遷移を実行させると、第2のライブラリに対するScS制御も動作させないで動作させることができる。さらに、実行調査機能部116を上述した構成要素に追加して適用し、図8の手順を実行すると、ライブラリの実行に応じてScS制御も動作させないで動作させることができる。
第1および第2のライブラリの両方に対応させる場合、これらの処理手順を、たとえば所定の時間間隔で切り換えて動作させるとよい。