(57)【要約】【課題】コンピュータ、組み込みコントローラにおける使用のためのファイルシステムを提供すること。【解決手段】異なるファイルシステムを有するおよび／またはファイルシステムを有さない、少なくとも２つのマルチメディアデバイスと、複数のマルチメディアデバイスのファイルに共通のファイルシステム表現を用いて、ファイルシステム指令を提示するように、および／または受信するように適合される１つ以上のアプリケーションと、少なくとも２つのマルチメディアデバイスおよび１つ以上のアプリケーションと通信するように適合されるメディアファイルシステムであって、メディアファイルシステムは、１つ以上のアプリケーションからのファイルシステム指令を受け取り、かつファイルシステム指令に対する応答を、共通のファイルシステム表現を用いて、１つ以上のアプリケーションに提供する、メディアファイルシステムと、を備える、マルチメディアシステム。【選択図】図１
2008052731.tif 000002
【特許請求の範囲】
【請求項１】
マルチメディアシステムであって、
異なるファイルシステムを有するおよび／またはファイルシステムを有さない、少なくとも２つのマルチメディアデバイスと、
該複数のマルチメディアデバイスのファイルに対して共通のファイルシステム表現を用いて、ファイルシステム指令を提示するように、および／またはファイルシステム応答を受信するように適合されている１つ以上のアプリケーションと、
該少なくとも２つのマルチメディアデバイスおよび該１つ以上のアプリケーションと通信するように適合されているメディアファイルシステムであって、該メディアファイルシステムは、該１つ以上のアプリケーションからの該ファイルシステム指令を受け取り、かつ該ファイルシステム指令に対する応答を、該共通のファイルシステム表現を用いて、該１つ以上のアプリケーションに提供する、メディアファイルシステムと
を備えている、マルチメディアシステム。
【請求項２】
前記共通のファイルシステム表現は、ＰＯＳＩＸ指令および応答を備えている、請求項１に記載のマルチメディアシステム。
【請求項３】
前記共通のファイルシステム表現は、ＵＮＩＸ（登録商標）指令および応答を備えている、請求項１に記載のマルチメディアシステム。
【請求項４】
前記１つ以上のアプリケーションの少なくとも１つは、ヒューマンマシンインタフェースモジュールを備えている、請求項１に記載のマルチメディアシステム。
【請求項５】
前記１つ以上のアプリケーションの少なくとも１つは、マルチメディアエンジンモジュールを備えている、請求項１に記載のマルチメディアシステム。
【請求項６】
前記メディアファイルシステムは、マルチメディアデバイスの発見および同期を円滑にするようにさらに適合されている、請求項１に記載のマルチメディアシステム。
【請求項７】
前記メディアファイルシステムは、ファイルシステムセマンティクスを扱うようにさらに適合されている、請求項１に記載のマルチメディアシステム。
【請求項８】
前記ファイルシステムセマンティクスは、パスネーム解決、ファイルアクセス、ディレクトリアクセス、シンボリックリンキング、ファイルアクセス許可およびブロックキャッシングからなるグループから選択されたセマンティクスを備えている、請求項７に記載のマルチメディアシステム。
【請求項９】
前記メディアファイルシステムは、前記少なくとも２つのマルチメディアデバイスを、該デバイスに対応する名前付きのディレクトリにマウントする、請求項１に記載のマルチメディアシステム。
【請求項１０】
前記メディアファイルシステムは、各デバイスに対する該名前付きのディレクトリを／ｆｓ／ｄｅｖ＿ｉｄとして指定し、ここで、ｄｅｖ＿ｉｄは、該デバイスのインスタンスを表現するサフィックスを用いてデバイスのタイプを示す、請求項９に記載のマルチメディアシステム。
【請求項１１】
前記少なくとも２つのマルチメディアデバイスの少なくとも１つのマルチメディアデバイスは、前記メディアファイルシステムに直接アクセス可能であるファイルシステムを含まない、請求項１に記載のマルチメディアシステム。
【請求項１２】
前記メディアファイルシステムは、前記少なくとも１つのマルチメディアデバイスに対してファイルシステム構造を生成するために、該少なくとも１つのマルチメディアデバイスのメニューアイテム選択を使用する、請求項１１に記載のマルチメディアシステム。
【請求項１３】
前記マルチメディアシステムは、前記少なくとも２つのマルチメディアデバイスに関連するファイルコンテンツ情報を編成するように配列されているデータベースをさらに備えている、請求項１に記載のマルチメディアシステム。
【請求項１４】
前記マルチメディアシステムは、前記少なくとも２つのマルチメディアデバイスに関連するプレイリスト表を編成するように配列されているデータベースをさらに備えている、請求項１に記載のマルチメディアシステム。
【請求項１５】
前記マルチメディアシステムは、該マルチメディアシステムのメディアストアを編成するように配列されているデータベースをさらに備えている、請求項１に記載のマルチメディアシステム。
【請求項１６】
前記マルチメディアシステムは、前記少なくとも２つのマルチメディアデバイスに対してスロットを編成するように配列されているデータベースをさらに備えている、請求項１に記載のマルチメディアシステム。
【請求項１７】
マルチメディアシステムであって、
異なるファイルシステムを有するおよび／またはファイルシステムを有さない、少なくとも２つのマルチメディアデバイスと、
ファイルシステム指令を提示するように、かつ該少なくとも２つのマルチメディアデバイスのファイルに対するファイルシステム応答を受信するように適合されている１つ以上のアプリケーションであって、該ファイルシステム指令および応答は、共通のファイルシステム表現を用いて、該１つ以上のアプリケーションに送信され、かつ該１つ以上のアプリケーションによって受信される、１つ以上のアプリケーションと、
該共通のファイルシステム表現を用いて、該１つ以上のアプリケーションと通信するように適合されている統一されたファイルシステムモジュールと、
該少なくとも２つのマルチメディアデバイスと通信し、かつ該統一されたファイルシステムモジュールから受信されたファイスシステム指令に応答する少なくとも２つのマルチメディアデバイスドライバと
を備えている、マルチメディアシステム。
【請求項１８】
前記共通のファイルシステム表現は、ＰＯＳＩＸ指令および応答を備えている、請求項１７に記載のマルチメディアシステム。
【請求項１９】
前記共通のファイルシステム表現は、ＵＮＩＸ（登録商標）指令および応答を備えている、請求項１７に記載のマルチメディアシステム。
【請求項２０】
前記１つ以上のアプリケーションの少なくとも１つは、ヒューマンマシンインタフェースモジュールを備えている、請求項１７に記載のマルチメディアシステム。
【請求項２１】
前記１つ以上のアプリケーションの少なくとも１つは、マルチメディアエンジンモジュールを備えている、請求項１７に記載のマルチメディアシステム。
【請求項２２】
前記統一されたファイルシステムモジュールは、ファイルシステムセマンティクスを扱うようにさらに適合されている、請求項１７に記載のマルチメディアシステム。
【請求項２３】
前記ファイルシステムセマンティクスは、パスネーム解決、ファイルアクセス、ディレクトリアクセス、シンボリックリンキング、ファイルアクセス許可およびブロックキャッシングからなるグループから選択されたセマンティクスを備えている、請求項２２に記載のマルチメディアシステム。
【請求項２４】
前記統一されたファイルシステムモジュールは、前記少なくとも２つのマルチメディアデバイスを、該デバイスに対応する名前付きのディレクトリにマウントする、請求項１７に記載のマルチメディアシステム。
【請求項２５】
前記統一されたファイルシステムモジュールは、各デバイスに対する該名前付きのディレクトリを／ｆｓ／ｄｅｖ＿ｉｄとして指定し、ｄｅｖ＿ｉｄは、該デバイスのインスタンス数を表現するサフィックスを用いてデバイスのタイプを示す、請求項２４に記載のマルチメディアシステム。
【請求項２６】
前記少なくとも２つのマルチメディアデバイスの少なくとも１つのマルチメディアデバイスは、前記統一されたファイルシステムモジュールに直接アクセス可能であるファイルシステムを含まない、請求項１７に記載のマルチメディアシステム。
【請求項２７】
前記統一されたファイルシステムモジュールは、該少なくとも１つのマルチメディアデバイスに対してファイルシステム構造を生成するために、該少なくとも１つのマルチメディアデバイスのメニューアイテム選択を使用する、請求項２６に記載のマルチメディアシステム。
【請求項２８】
前記マルチメディアシステムは、前記少なくとも２つのマルチメディアデバイスに関連するファイルコンテンツ情報を編成するように配列されているデータベースをさらに備えている、請求項１７に記載のマルチメディアシステム。
【請求項２９】
前記マルチメディアシステムは、前記少なくとも２つのマルチメディアデバイスに関連するプレイリスト表を編成するように配列されているデータベースをさらに備えている、請求項１７に記載のマルチメディアシステム。
【請求項３０】
前記マルチメディアシステムは、該マルチメディアシステムのメディアストアを編成するように配列されているデータベースをさらに備えている、請求項１７に記載のマルチメディアシステム。
【請求項３１】
前記マルチメディアシステムは、前記少なくとも２つのマルチメディアデバイスに対してスロットを編成するように配列されているデータベースをさらに備えている、請求項１７に記載のマルチメディアシステム。
【請求項３２】
マルチメディアシステムであって、
異なるファイルシステムを有するおよび／またはファイルシステムを有さない少なくとも２つのマルチメディアデバイスと通信するように適合されている少なくとも２つのデバイスドライバと、
該デバイスドライバ上に階層的に配置されている少なくとも２つのマルチメディアアプリケーションと、
該少なくとも２つのデバイスドライバおよび該少なくとも２つのマルチメディアアプリケーションと通信するファイルシステム抽象レイヤであって、該ファイルシステム抽象レイヤは、該少なくとも２つのマルチメディアアプリケーションとの共通ファイルシステムインタフェースを提供するように適合されている、ファイルシステム抽象レイヤと
を備えている、マルチメディアシステム。
【請求項３３】
前記共通ファイルシステムインタフェースは、ＰＯＳＩＸ指令および応答を備えている、請求項３２に記載のマルチメディアシステム。
【請求項３４】
前記共通ファイルシステムインタフェースは、ＵＮＩＸ（登録商標）指令および応答を備えている、請求項３２に記載のマルチメディアシステム。
【請求項３５】
前記少なくとも２つのマルチメディアアプリケーションの少なくとも１つは、ヒューマンマシンインタフェースを備えている、請求項３２に記載のマルチメディアシステム。
【請求項３６】
前記少なくとも２つのマルチメディアアプリケーションの少なくとも１つは、マルチメディアエンジンモジュールを備えている、請求項３２に記載のマルチメディアシステム。
【請求項３７】
前記ファイルシステム抽象レイヤは、前記少なくとも２つのマルチメディアデバイスを、該それぞれのデバイスに対応する名前付きのディレクトリにマウントする、請求項３２に記載のマルチメディアシステム。
【請求項３８】
前記ファイルシステム抽象レイヤは、それぞれのデバイスの各々に対する該名前付きのディレクトリを／ｆｓ／ｄｅｖ＿ｉｄとして指定し、ｄｅｖ＿ｉｄは、該それぞれのデバイスのインスタンス数を表現するサフィックスを用いてデバイスのタイプを示す、請求項３７に記載のマルチメディアシステム。
【請求項３９】
前記少なくとも２つのマルチメディアデバイスの少なくとも１つのマルチメディアデバイスが、前記ファイルシステム抽象レイヤに直接アクセス可能であるファイルシステムを含まない、請求項３２に記載のマルチメディアシステム。
【請求項４０】
前記ファイルシステム抽象レイヤは、前記少なくとも１つのマルチメディアデバイスに対するファイルシステム構造を生成するために該少なくとも１つのマルチメディアデバイスのメニューアイテム選択を使用する、請求項３９に記載のマルチメディアシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の背景）
（１．優先権主張）
本出願は、２００６年９月１日に出願された米国特許出願第６０／８４１，８０４号および２００６年８月２５日に出願された米国特許出願第６０／８４０，２４６号からの優先権の利益を主張し、これらの出願は共に参考として援用される。
【０００２】
（２．技術分野）
本発明は、コンピュータ、組み込みコントローラなどにおける使用のためのファイルシステムに関する。さらに、特に、本発明は、様々な異種のマルチメディアデバイスからのコンテンツを、１つ以上の高レベルアプリケーションによるアクセスのために統一されたファイルシステム表現で表現するファイルシステムに向けられる。
【背景技術】
【０００３】
（３．関連技術）
マルチメディアシステムは、マルチメディアコンテンツの再生のために複数のメディアプレーヤを使用し得る。このようなプレーヤは、エンコードされた音楽ファイルを再生するＳｅｃｕｒｅ  Ｄｉｇｉｔａｌ（ＳＤ）カードを用いる携帯電話と、エンコードされた音楽ファイルを格納し、かつ再生するためのＳｏｎｙ（登録商標）メモリスティック技術を用いるＳｏｎｙ（登録商標）ＰｌａｙＳｔａｔｉｏｎＰｏｒｔａｂｌｅ（登録商標）ユニットと、メディアファイル（ビデオメディアファイルを含む）を格納し、かつ再生するための内部ハードディスクドライブデバイスを使用するｉＰｏｄ（登録商標）と、他のメディアプレーヤ（汎用性シリアルバス（ＵＳＢ）フラッシュメモリを使用するものを含む）と、を含む。メディアファイルは、これらのデバイス上で、種々の異なるフォーマット（例えば、ＭＰＥＧレイヤ３（ＭＰ３）エンコード、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ａｕｄｉｏ（ＷＭＡ）エンコード、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ｖｉｄｅｏエンコード、ＲｅａｌＡｕｄｉｏエンコード、ＲｅａｌＶｉｄｅｏエンコード、ＤＶＤビデオ、ＣＤオーディオなど）を用いてエンコードされ得る。
【０００４】
このようなデバイスは、容易にアクセス可能な方法で編成されるファイルシステムを含まない。むしろ、これらのシステムは、しばしばデジタル著作権管理（ＤＲＭ）保護を有する、専用のフォーマットを使用し得、該保護は、一般的なパーソナルコンピュータまたは組み込みプロセッサを用いて、それらのデータコンテンツにアクセスすること、および該コンテンツを管理することを非常に困難にさせる。結果として、これらのデバイスおよびシステムと相互作用する多くのソフトウェアおよびハードウェアシステムが、それらの専用のデバイスフォーマットに適応するようにカスタムデザインされる必要がある。これらのマルチメディアシステムおよびデバイスは、それゆえ、今日の相互接続された世界（広大なパーソナルコンピュータデバイスの相互作用ネットワークが、ほぼ全ての家庭およびオフィス、ならびに素早く成長する自動車、無線パーソナルデジタルアシスタントおよび電話の部分に存在する）に対して容易に適合可能では無い。
【発明の開示】
【課題を解決するための手段】
【０００５】
（概要）
異なるファイルシステムを有するおよび／またはファイルシステムを有さない複数のマルチメディアデバイスと、１つ以上のアプリケーションと、該複数のマルチメディアデバイスおよび該１つ以上のアプリケーションと通信するように適合されているメディアファイルシステムとを備えているマルチメディアシステムが開示される。該１つ以上のアプリケーションは、共通のファイルシステム表現で、該複数のマルチメディアデバイスのファイルに対してファイルシステム指令を提示するように、かつ／またはファイルシステム応答を受信するように適合され得る。メディアファイルシステムは、該共通のファイルシステム表現を用い、該１つ以上のアプリケーションから該ファイルシステム指令を受け取り得、ファイルシステム指令に対する応答を該１つ以上のアプリケーションに提供し得る。
【０００６】
システムの一構造において、該共通のファイルシステムは、ＰＯＳＩＸ、ＵＮＩＸ（登録商標）などのインタフェースの形式であり得る。さらに１つ以上のアプリケーションは、ヒューマンマシンインタフェース（ＨＭＩ）モジュールおよび／またはマルチメディアエンジン（ＭＭＥ）モジュールを含み得る。
【０００７】
本発明の他のシステム、方法、特徴および利点は、以下の図面および詳細な記載の検討をすると、当業者に明らかであるか、または明らかになる。このような追加のシステム、方法、特徴および利点の全ては、本発明の範囲に含まれ、本発明の範囲内であり、かつ添付する特許請求の範囲によって保護されることが意図される。
【０００８】
本発明は、さらに以下の手段を提供する。
【０００９】
（項目１）  
マルチメディアシステムであって、
異なるファイルシステムを有するおよび／またはファイルシステムを有さない、少なくとも２つのマルチメディアデバイスと、
該複数のマルチメディアデバイスのファイルに対して共通のファイルシステム表現を用いて、ファイルシステム指令を提示するように、および／またはファイルシステム応答を受信するように適合されている１つ以上のアプリケーションと、
該少なくとも２つのマルチメディアデバイスおよび該１つ以上のアプリケーションと通信するように適合されているメディアファイルシステムであって、該メディアファイルシステムは、該１つ以上のアプリケーションからの該ファイルシステム指令を受け取り、かつ該ファイルシステム指令に対する応答を、該共通のファイルシステム表現を用いて、該１つ以上のアプリケーションに提供する、メディアファイルシステムと
を備えている、マルチメディアシステム。
【００１０】
（項目２）
上記共通のファイルシステム表現は、ＰＯＳＩＸ指令および応答を備えている、項目１に記載のマルチメディアシステム。
【００１１】
（項目３）
上記共通のファイルシステム表現は、ＵＮＩＸ（登録商標）指令および応答を備えている、項目１に記載のマルチメディアシステム。
【００１２】
（項目４）
上記１つ以上のアプリケーションの少なくとも１つは、ヒューマンマシンインタフェースモジュールを備えている、項目１に記載のマルチメディアシステム。
【００１３】
（項目５）
上記１つ以上のアプリケーションの少なくとも１つは、マルチメディアエンジンモジュールを備えている、項目１に記載のマルチメディアシステム。
【００１４】
（項目６）
上記メディアファイルシステムは、マルチメディアデバイスの発見および同期を円滑にするようにさらに適合されている、項目１に記載のマルチメディアシステム。
【００１５】
（項目７）
上記メディアファイルシステムは、ファイルシステムセマンティクスを扱うようにさらに適合されている、項目１に記載のマルチメディアシステム。
【００１６】
（項目８）
上記ファイルシステムセマンティクスは、パスネーム解決、ファイルアクセス、ディレクトリアクセス、シンボリックリンキング、ファイルアクセス許可およびブロックキャッシングからなるグループから選択されたセマンティクスを備えている、項目７に記載のマルチメディアシステム。
【００１７】
（項目９）
上記メディアファイルシステムは、上記少なくとも２つのマルチメディアデバイスを、該デバイスに対応する名前付きのディレクトリにマウントする、項目１に記載のマルチメディアシステム。
【００１８】
（項目１０）
上記メディアファイルシステムは、各デバイスに対する該名前付きのディレクトリを／ｆｓ／ｄｅｖ＿ｉｄとして指定し、ここで、ｄｅｖ＿ｉｄは、該デバイスのインスタンスを表現するサフィックスを用いてデバイスのタイプを示す、項目９に記載のマルチメディアシステム。
【００１９】
（項目１１）
上記少なくとも２つのマルチメディアデバイスの少なくとも１つのマルチメディアデバイスは、上記メディアファイルシステムに直接アクセス可能であるファイルシステムを含まない、項目１に記載のマルチメディアシステム。
【００２０】
（項目１２）
上記メディアファイルシステムは、上記少なくとも１つのマルチメディアデバイスに対してファイルシステム構造を生成するために、該少なくとも１つのマルチメディアデバイスのメニューアイテム選択を使用する、項目１１に記載のマルチメディアシステム。
【００２１】
（項目１３）
上記マルチメディアシステムは、上記少なくとも２つのマルチメディアデバイスに関連するファイルコンテンツ情報を編成するように配列されているデータベースをさらに備えている、項目１に記載のマルチメディアシステム。
【００２２】
（項目１４）
上記マルチメディアシステムは、上記少なくとも２つのマルチメディアデバイスに関連するプレイリスト表を編成するように配列されているデータベースをさらに備えている、項目１に記載のマルチメディアシステム。
【００２３】
（項目１５）
上記マルチメディアシステムは、該マルチメディアシステムのメディアストアを編成するように配列されているデータベースをさらに備えている、項目１に記載のマルチメディアシステム。
【００２４】
（項目１６）
上記マルチメディアシステムは、上記少なくとも２つのマルチメディアデバイスに対してスロットを編成するように配列されているデータベースをさらに備えている、項目１に記載のマルチメディアシステム。
【００２５】
（項目１７）
マルチメディアシステムであって、
異なるファイルシステムを有するおよび／またはファイルシステムを有さない、少なくとも２つのマルチメディアデバイスと、
ファイルシステム指令を提示するように、かつ該少なくとも２つのマルチメディアデバイスのファイルに対するファイルシステム応答を受信するように適合されている１つ以上のアプリケーションであって、該ファイルシステム指令および応答は、共通のファイルシステム表現を用いて、該１つ以上のアプリケーションに送信され、かつ該１つ以上のアプリケーションによって受信される、１つ以上のアプリケーションと、
該共通のファイルシステム表現を用いて、該１つ以上のアプリケーションと通信するように適合されている統一されたファイルシステムモジュールと、
該少なくとも２つのマルチメディアデバイスと通信し、かつ該統一されたファイルシステムモジュールから受信されたファイスシステム指令に応答する少なくとも２つのマルチメディアデバイスドライバと
を備えている、マルチメディアシステム。
【００２６】
（項目１８）
上記共通のファイルシステム表現は、ＰＯＳＩＸ指令および応答を備えている、項目１７に記載のマルチメディアシステム。
【００２７】
（項目１９）
上記共通のファイルシステム表現は、ＵＮＩＸ（登録商標）指令および応答を備えている、項目１７に記載のマルチメディアシステム。
【００２８】
（項目２０）
上記１つ以上のアプリケーションの少なくとも１つは、ヒューマンマシンインタフェースモジュールを備えている、項目１７に記載のマルチメディアシステム。
【００２９】
（項目２１）
上記１つ以上のアプリケーションの少なくとも１つは、マルチメディアエンジンモジュールを備えている、項目１７に記載のマルチメディアシステム。
【００３０】
（項目２２）
上記統一されたファイルシステムモジュールは、ファイルシステムセマンティクスを扱うようにさらに適合されている、項目１７に記載のマルチメディアシステム。
【００３１】
（項目２３）
上記ファイルシステムセマンティクスは、パスネーム解決、ファイルアクセス、ディレクトリアクセス、シンボリックリンキング、ファイルアクセス許可およびブロックキャッシングからなるグループから選択されたセマンティクスを備えている、項目２２に記載のマルチメディアシステム。
【００３２】
（項目２４）
上記統一されたファイルシステムモジュールは、上記少なくとも２つのマルチメディアデバイスを、該デバイスに対応する名前付きのディレクトリにマウントする、項目１７に記載のマルチメディアシステム。
【００３３】
（項目２５）
上記統一されたファイルシステムモジュールは、各デバイスに対する該名前付きのディレクトリを／ｆｓ／ｄｅｖ＿ｉｄとして指定し、ｄｅｖ＿ｉｄは、該デバイスのインスタンス数を表現するサフィックスを用いてデバイスのタイプを示す、項目２４に記載のマルチメディアシステム。
【００３４】
（項目２６）
上記少なくとも２つのマルチメディアデバイスの少なくとも１つのマルチメディアデバイスは、上記統一されたファイルシステムモジュールに直接アクセス可能であるファイルシステムを含まない、項目１７に記載のマルチメディアシステム。
【００３５】
（項目２７）
上記統一されたファイルシステムモジュールは、該少なくとも１つのマルチメディアデバイスに対してファイルシステム構造を生成するために、該少なくとも１つのマルチメディアデバイスのメニューアイテム選択を使用する、項目２６に記載のマルチメディアシステム。
【００３６】
（項目２８）
上記マルチメディアシステムは、上記少なくとも２つのマルチメディアデバイスに関連するファイルコンテンツ情報を編成するように配列されているデータベースをさらに備えている、項目１７に記載のマルチメディアシステム。
【００３７】
（項目２９）
上記マルチメディアシステムは、上記少なくとも２つのマルチメディアデバイスに関連するプレイリスト表を編成するように配列されているデータベースをさらに備えている、項目１７に記載のマルチメディアシステム。
【００３８】
（項目３０）
上記マルチメディアシステムは、該マルチメディアシステムのメディアストアを編成するように配列されているデータベースをさらに備えている、項目１７に記載のマルチメディアシステム。
【００３９】
（項目３１）
上記マルチメディアシステムは、上記少なくとも２つのマルチメディアデバイスに対してスロットを編成するように配列されているデータベースをさらに備えている、項目１７に記載のマルチメディアシステム。
【００４０】
（項目３２）
マルチメディアシステムであって、
異なるファイルシステムを有するおよび／またはファイルシステムを有さない少なくとも２つのマルチメディアデバイスと通信するように適合されている少なくとも２つのデバイスドライバと、
該デバイスドライバ上に階層的に配置されている少なくとも２つのマルチメディアアプリケーションと、
該少なくとも２つのデバイスドライバおよび該少なくとも２つのマルチメディアアプリケーションと通信するファイルシステム抽象レイヤであって、該ファイルシステム抽象レイヤは、該少なくとも２つのマルチメディアアプリケーションとの共通ファイルシステムインタフェースを提供するように適合されている、ファイルシステム抽象レイヤと
を備えている、マルチメディアシステム。
【００４１】
（項目３３）
上記共通ファイルシステムインタフェースは、ＰＯＳＩＸ指令および応答を備えている、項目３２に記載のマルチメディアシステム。
【００４２】
（項目３４）
上記共通ファイルシステムインタフェースは、ＵＮＩＸ（登録商標）指令および応答を備えている、項目３２に記載のマルチメディアシステム。
【００４３】
（項目３５）
上記少なくとも２つのマルチメディアアプリケーションの少なくとも１つは、ヒューマンマシンインタフェースを備えている、項目３２に記載のマルチメディアシステム。
【００４４】
（項目３６）
上記少なくとも２つのマルチメディアアプリケーションの少なくとも１つは、マルチメディアエンジンモジュールを備えている、項目３２に記載のマルチメディアシステム。
【００４５】
（項目３７）
上記ファイルシステム抽象レイヤは、上記少なくとも２つのマルチメディアデバイスを、該それぞれのデバイスに対応する名前付きのディレクトリにマウントする、項目３２に記載のマルチメディアシステム。
【００４６】
（項目３８）
上記ファイルシステム抽象レイヤは、それぞれのデバイスの各々に対する該名前付きのディレクトリを／ｆｓ／ｄｅｖ＿ｉｄとして指定し、ｄｅｖ＿ｉｄは、該それぞれのデバイスのインスタンス数を表現するサフィックスを用いてデバイスのタイプを示す、項目３７に記載のマルチメディアシステム。
【００４７】
（項目３９）
上記少なくとも２つのマルチメディアデバイスの少なくとも１つのマルチメディアデバイスが、上記ファイルシステム抽象レイヤに直接アクセス可能であるファイルシステムを含まない、項目３２に記載のマルチメディアシステム。
【００４８】
（項目４０）
上記ファイルシステム抽象レイヤは、上記少なくとも１つのマルチメディアデバイスに対するファイルシステム構造を生成するために該少なくとも１つのマルチメディアデバイスのメニューアイテム選択を使用する、項目３９に記載のマルチメディアシステム。
【００４９】
（摘要）
異なるファイルシステムを有するおよび／またはファイルシステムを有さない少なくとも２つのマルチメディアデバイスと、１つ以上のアプリケーションと、該少なくとも２つのマルチメディアデバイスおよび該１つ以上のアプリケーションと通信するように適合されているメディアファイルシステムとを備えているマルチメディアシステムが開示される。該１つ以上のアプリケーションは、共通のファイルシステム表現で、該少なくとも２つのマルチメディアデバイスのファイルに対して、ファイルシステム指令を提示するように、かつ／またはファイルシステム応答を受信するように適合されている。メディアファイルシステムは、該共通のファイルシステム表現を用い、該１つ以上のアプリケーションからファイルシステム指令を受け取り得、かつ該１つ以上のアプリケーションにファイルシステム応答を提供し得る。
【発明を実施するための最良の形態】
【００５０】
本発明は、以下の図面および記載を参照するとより良く理解され得る。図面のコンポーネントは、必ずしも、本発明の原理を図示する際に、必ずしも一定の比率で拡大縮小されておらず、代わりに強調されている。さらに、図面において、類似の参照番号は、異なる図全体を通して対応する部分を指定する。
【００５１】
（好ましい実施形態の詳細な記載）
図１は、複数のメディアデバイス上のメディアファイルの統一されたファイルシステム表現を含み得る例示的なマルチメディアシステム１００のブロック図である。示されるように、例示的なシステム１００は、マルチメディアエンジン（ＭＭＥ）モジュール１０５を含み得、該ＭＭＥモジュール１０５は、ヒューマンマシンインタフェース（ＨＭＩ）モジュール１１０と相互作用し、かつ複数の異なるマルチメディアデバイス１２０とＭＭＥモジュール１０５との間にインタフェースを提供するＩＯメディアモジュール１１５と相互作用する。ＨＭＩモジュール１１０は、再生されるコンテンツを識別するためおよび特定の再生動作を要求するためにユーザによって使用されるマルチモードのユーザ入力（例えば、音声、タッチボタンおよびタッチスクリーン）を含み得るインタフェースを提供し得る。これらのユーザの相互作用の結果としてＨＭＩモジュール１１０によって獲得された情報は、ＭＭＥモジュール１０５に送られる。ＭＭＥモジュール１０５は、要求されるファイル名、ファイルタイプ、ジャンル、アーティストなどから、例えば、データベース１３０に格納された統合されたメディアファイル情報からのメタデータを用いて、メディアファイル情報を取得する。データベース１３０は、ＭＭＥモジュール１０５によって、クライアントアプリケーション（例えば、ＨＭＩモジュール１１０）がアクセスするメディアファイルに対してメタデータを格納し、かつ引き出すために使用される。クライアントアプリケーションは、この情報を、メディアファイルをユーザに表示するために、または他の場合には所望される方法でメディアファイルの再生のための１つ以上の再生出力デバイス／ゾーン１２５上にアレンジするために使用し得る。データベース１３０は、複数のクライアントからの複数の接続を同時発生の方法でサポートし得る。データベース１３０の情報は、複数のファイル間で分割され得る。各データベースファイルは、より高いレベルのアプリケーションによるアクセスに影響しない設定変更可能な方法でＲＡＭ、フラッシュまたはハードデバイスに格納され得る。
【００５２】
ＨＭＩモジュール１１０は、種々の異なる機能をインプリメントするために使用され得る。該機能は、以下のものを含む。
１．デバイス１２０上のメディアファイルの再生およびコピーのためにＭＭＥ１０５に要求を送信すること。ユーザによって操作される場合には、ＭＭＥ１０５はＨＭＩモジュール１１０に割り当てられ、どちらのメディアが再生されるべきか、およびどの順序かを決定し得る。結果として生じる要求は、次いで、処理のためにＭＭＥ１０５に送信される。１つ以上の再生出力デバイス／ゾーン１２５への選択されたメディアの再生は、ＭＭＥモジュール１０５のメディア再生モジュール１６５の制御下に置かれ得る。
２．デバイス１２０のメディアファイルコンテンツをブラウズすること。ＭＭＥモジュール１０５は、データベース１３０にアクセスし、利用可能なメディアの一部または全てをＨＭＩモジュール１１０にさらし得る。ユーザ指令は、ＨＭＩモジュール１１０に入力され、選択されたメディアに関する情報をＨＭＩモジュール１１０に対して返すように、ＭＭＥモジュールに命令し得る。
３．インタフェースをブラウズするＭＭＥモジュール１０５をサポートすること。一部のデバイスは、クライアントアプリケーションが直接的にデバイスをブラウズすることを要求する。例えば、ＤＶＤビデオが再生される場合には、そのスクリーン上のナビゲーションメニューが現れる。ＨＭＩモジュール１１０は、ナビゲーション指令（例えば、上げる、下げる、左、右、再生など）を、ＭＭＥモジュール１０５を介してデバイスまで送信し、ＤＶＤメニューをナビゲートする。
４．ＭＭＥモジュール１０５から通知を受け取り、適宜応答すること。ＭＭＥモジュール１０５は、イベント通知をクライアントアプリケーションに提供する。通知を生成するイベントのいくつかの例は、「歌が変更された」、「新しいデバイスが挿入された」などである。ＨＭＩモジュール１１０は、例えば、このようなメッセージを受け取り、自らを適宜アップデートすることにより、ＭＭＥモジュール１０５およびメディアと同期したままであり得る。
【００５３】
ＭＭＥモジュール１０５は、デバイス発見、および例えば、同期モジュール１７０を用いた同期を扱うリソースマネージャとしてインプリメントされ得る。同期モジュール１７０は、データベース１３０の統合されたメディアファイル情報と、デバイス１２０のメディアコンテンツとを同期するために使用され得る。ＭＭＥモジュール１０５はまた、メディア再生モジュール１６５を用いて再生を管理する（再生、停止および検索指令）ために、高レベルＡＰＩを提供し得る。
【００５４】
ＭＭＥモジュール１０５は、広範囲の機能に責任を有し得る。該機能は、以下のものを含む。
１．メディアを再生すること。このようなメディア動作は、メディア再生モジュール１６５によって実行され得、検索、一時停止、停止、音量変更、バランスおよびフェードの調節などを含み得る。再生モジュール１６５は、メディアのタイプおよびどのようにメディアがクライアントアプリケーションレベル（例えば、ＨＭＩモジュール１１０）から再生されるかを抽出し得る。例えば、ＨＭＩモジュール１１０がＭＭＥモジュール１０５に指令し、ＤＶＤプレーヤのいくつかのメディアを再生する場合には、ＨＭＩモジュール１１０は、メディアがドライブ内のオーディオＣＤまたはＤＶＤに格納されるかどうかを知る必要は無い。大抵の場合には、再生は、ＭＭＥモジュール１０５のメディア再生モジュール１６５によって扱われる。しかしながら、ｉＰｏｄ（登録商標）プレーヤまたはＰｌａｙｓＦｏｒＳｕｒｅ（登録商標）のようなデバイスに対しては、ＭＭＥモジュール１０５が、デバイス自身に対し再生要求を送る。
２．デバイス１２０とデータベース１３０とを同期すること。ＭＭＥモジュール１０５の同期モジュール１７０は、それが検出する全てのメディアファイルおよびデバイスに対応するメタデータを用いてデータベース１３０をアップデートするために使用され得る。クライアントアプリケーションは、直接的に、または例えば、ＭＭＥモジュール１０５を介してのいずれかで、データベース１３０をブラウズすることにより、音楽をブラウズしたり、プレイリストの作成などをしたりし得る。メディアデバイス１２０がシステム１００に接続される場合には、ＭＭＥモジュール１０５はその存在を検出し、デバイス上の情報をデータベース１３０と同期させることを開始する。データベース１３０の情報が、システム１００に取り付けられたデバイスのタイプに依存しない複数の多様なデバイス１２０からのメタデータを単一のフォーマットに統合し得る。
３．デバイスにブラウズインタフェースを提供すること。ＭＭＥモジュール１０５がサポートし得るデバイスの大きなリストに起因して、ブラウズインタフェースは全てのデバイスに対して同一のブラウズ抽出レイヤに提供され得る。このことはクライアントアプリケーション（例えば、ＨＭＩモジュール１１０）が、それら自身を直接的にサポートする必要なしに、ＭＭＥ１０５によってサポートされる全てのデバイスをブラウズすることを可能にする。
【００５５】
多くの多様なマルチメディアデバイスが、図１に示されるシステム１００に取り付けられ得る。デバイス１２０は、１つ以上のＭＰ３プレーヤ１３５、１つ以上のＤＶＤプレーヤ１４０、１つ以上のｉＰｏｄ（登録商標）プレーヤ１４５、１つ以上のＰＳＰデバイス１５０、１つ以上のＵＳＢストレージデバイス１５５および／または１つ以上のメモリスティックデバイス１６０を含み得る。メディアデバイス１２０の少なくとも一部が、それら独特の専用のファイルシステムを含み得るが、他は従来のファイルシステム（例えば、ＰＯＳＩＸ、ＵＮＩＸ（登録商標）など）を用いてアクセスされ得る。ＩＯメディアモジュール１１５は、複数のデバイスドライバ１７５を含むことにより、各高レベルアプリケーションとメディアデバイス１２０との間のハードウェア相互作用を円滑にし得る。
【００５６】
高レベルアプリケーション（例えば、ＨＭＩモジュール１１０およびＭＭＥモジュール１０５）は、デバイス１２０上のファイルに直接アクセスすることを要求し得る。例えば、ＭＭＥモジュール１０５は、データベース１３０のメタデータを同期するために各デバイス上のファイルにアクセスし得る。メディアデバイス１２０のファイルシステムが、互いに非常に異なるので、ＭＭＥモジュール１０５ならびにデバイス１２０の全てにアクセスを試みる各高レベルアプリケーションは、高レベルアプリケーションと個別のデバイスとの間のインタフェースを提供する個別のモジュールを要求し得る。このようなアーキテクチャは、特に、広範囲のマルチメディアデバイスがシステム１００に取り付けられる場合には、非常に非効率的であり、インプリメントすることが困難であることを証明し得る。
【００５７】
取り付けられたメディアデバイスの各々に対して、高レベルモジュールの各々の特定のドライバのインプリメンテーションを要求することよりむしろ、システム１００は、統一されたファイルシステム１８０と協力して高レベルアプリケーションに対する表示のための共通ファイルシステムを示す、デバイスドライバ１７５を使用する。この目的を達成するために、高レベルモジュールは、ファイルシステム指令の単一のセット（例えば、ＰＯＳＩＸ、ＵＮＩＸ（登録商標）などに関連するもの）を用いて、デバイス１２０のメディアコンテンツにアクセスし得る。
【００５８】
図２は、ファイルシステム１８０および他のモジュール／コンポーネントとの関係をインプリメントする一方法を図示する。この例示的なインプリメンテーションにおいて、ファイルシステム１８０は、ファイルシステム指令を用いて、ユーザアプリケーション２０５（例えば、ＨＭＩモジュール１１０）とアクセス可能な高レベルインタフェースｉｏ−ｆｓ（例えば、ＰＯＳＩＸインタフェース）からなる。ファイルシステム１８０はまた、デバイスアクセスレイヤ２２５とインタフェースする多くの低レベルインタフェースモジュール／コンポーネントを含み得る。ファイルシステム１８０のモジュール／コンポーネントは、ＴＭＰＦＳモジュール２１０、ｄｅｖｆ−ｇｅｎｅｒｉｃモジュール２１５およびメディアファイルシステム２２０を含み得る。
【００５９】
メディアファイルシステム２２０は、メディアデバイス１２０のＰＯＳＩＸに類似するファイルシステムビューを表すｉｏ−ｆｓモジュールであり得る。ファイルシステムは、ファイルシステムセマンティクス（パスネーム解決、ファイルおよびディレクトリアクセス、シンボリックリンク、許可およびブロックキャッシングを含む）を扱う、ＱＮＸ（登録商標）Ｎｅｕｔｒｉｎｏ（登録商標）リソースマネージャとしてインプリメントされ得る。メディアファイルシステム２２０がアクセスし得るメディアデバイスは、ポータブル音楽デバイス（例えば、ネットワークに取り付けられたｉＰｏｄ（登録商標）プレーヤおよびＰｌａｙｓＦｏｒＳｕｒｅ（登録商標）デバイスならびにＵＰｎＰデバイス）を含む。
【００６０】
図２に示されるシステムにおいて、メディアファイルシステム２２０の高レベル部分は、デバイスアクセスレイヤ２２５とインタフェースし、デバイスアクセスレイヤ２２５は、メディアファイルシステム２２０から分離して、またはメディアファイルシステム２２０と組み合わされてインプリメントされ得る。デバイスアクセスレイヤ２２５は、次に、個別のメディアデバイスタイプにアクセスするように適合されている個別のドライバとインタフェースする。ここでシリアルポートドライバ２３０は、ｉＰｏｄ（登録商標）デバイス２３５とインタフェースするために使用され、ＵＳＢドライバ２４０は、ＰｌａｙｓＦｏｒＳｕｒｅ（登録商標）デバイス２４５とインタフェースするために使用され、ＴＣＰ／ＩＰドライバ２５０は、ユニバーサルプラグアンドプレイ（ＵＰｎＰ）デバイス２５５とインタフェースするために使用される。メディアファイルシステム２２０は、例えば、ファイルおよびディレクトリ動作に関連するＰＯＳＩＸ機能を用いて、デバイス２３５、２４５および２５５のコンテンツにアクセスすることを可能にする。
【００６１】
ＭＭＥ１０５は、メディアデバイス１２０を制御し、かつブラウズするために、メディアファイルシステム２２０を使用し得る。物理デバイスが、いくつかの方法でメディアファイルシステム２２０に（例えば、ＵＳＢ、シリアルポート、有線ネットワークまたは無線ネットワークを介して）取り付けられることが検出される場合には、デバイスを表すファイルシステムは、ファイルシステムの／ｆｓディレクトリの下に現れる。各デバイスのコンテンツは、例えば、／ｆｓ／ｄｅｖ＿ｉｄにマウントされたデバイスのルートディレクトリを用いてファイルシステムとして利用可能にされ、ここでｄｅｖ＿ｉｄは、デバイスのインスタンス数（ｉｎｓｔａｎｃｅ  ｎｕｍｂｅｒ）を示す数値サフィクスを用いてデバイスのタイプを示す名前である。発見された第１のデバイスは、例えば、０というインスタンス数を有し得る。例えば：
−第１のデバイスがｉＰｏｄ（登録商標）デバイスである場合には、メディアファイルシステム２２０は、／ｆｓ／ｉｐｏｄ０において、そのコンテンツをアクセス可能にし得る。
−第１のデバイスがＰＦＳ／ＭＴＰデバイスである場合には、メディアファイルシステム２２０は、／ｆｓ／ｐｆｓ０において、そのコンテンツをアクセス可能にし得る。
−第１のデバイスがＵＰｎＰデバイスである場合には、メディアファイルシステム２２０は、／ｆｓ／ｕｐｎｐ０において、そのコンテンツをアクセス可能にし得る。
【００６２】
デバイスアクセスレイヤ２２５は、デバイス情報ファイルを生成し、デバイス情報ファイルは、それが伝統的なファイルシステムのファイルであるようにアクセスされ得る。情報ファイルは、各デバイスに対するルートディレクトリに、．ＦＳ＿ｉｎｆｏ．／ｉｎｆｏ．ｘｍｌとして配置される。このデバイス情報ファイルは、ＸＭＬフォーマットされた情報ファイルの形式であり得、これは高レベルアプリケーションによって使用され、さらに人間が閲覧するために有用であり得る。
【００６３】
以下のセクションは、メディアファイルシステム２２０によってサポートされ得、かつユーザアプリケーションで使用され得るいくつかのファイル関連のＰＯＳＩＸ機能をリストする。例えば、以下：  
−  ｏｐｅｎｄｉｒ（）
−  ｒｅａｄｄｉｒ（）
−  ｃｌｏｓｅｄｉｒ（）
のディレクトリアクセス動作がサポートされ得る。
【００６４】
従って、以下：
−  ｏｐｅｎ（）
−  ｒｅａｄ（）
−  ｗｒｉｔｅ（）
−  ｌｓｅｅｋ（）
−  ｄｅｖｃｔｌ（）
−  ｃｌｏｓｅ（）
のファイルアクセス動作もまたサポートされ得る。
【００６５】
メディアファイルシステムモジュール２２０は、異種のメディアデバイス１２０を、例えば、ＰＯＳＩＸ順応ファイルシステムとして、ＭＭＥ１０５および他の高レベルアプリケーションに対して見えるようにする。さらに、メディアファイルシステムモジュール２２０は、メディアデバイス１２０の１つ以上に特有のいくつかの専用の拡張子を提供し得る。図２に示される例示的なメディアファイルシステムモジュール２２０は、ＰｌａｙｓＦｏｒＳｕｒｅ（登録商標）デバイスとの接続のためのＰＦＳモジュール２６０、およびＡｐｐｌｅ（登録商標）ｉＰｏｄ（登録商標）デバイスとの接続のためのｉＰｏｄ（登録商標）モジュール２６５を含む。ＰｌａｙｓＦｏｒＳｕｒｅ（登録商標）は、Ｍｅｄｉａ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ（ＭＴＰ）を用いるデバイスに対するＭｉｃｒｏｓｏｆｔメディア規格である。それはデジタル著作権管理（ＤＲＭ）をインプリメントする。
【００６６】
ＭＴＰをサポートするデバイスは、専用のオブジェクトを備えているメディアコンテンツ閲覧を提供する。これらのオブジェクトおよびそれらのプロパティは、オプションのデータ変換過程を有する指令および応答プロトコルを介して、アクセスされ得る。オブジェクトを扱う指令は、セッションと関連して実行され得る。セッションが開始されると、セッション内の各指令は、順次トランザクション識別子を有する。任意の特定のセッション内で、メディアコンテンツの各アイテムは、３２ビットの「オブジェクトハンドル」を割り当てられ、これはセッションの持続期間に対して一意的である。オブジェクトハンドルを与えられると、プロパティ（例えば、オブジェクトの名前、フォーマットおよびメタデータ）が取得され得る。各オブジェクトは親のオブジェクトを有し、親のオブジェクトは、階層的なファイル構造においてメディアを閲覧することを円滑にし得る。特定のオブジェクトタイプは、フォルダまたはディレクトリとして役立ち得、ここでこれらのオブジェクトタイプに含まれるオブジェクトは、同一の親のオブジェクトを共有し得る。
【００６７】
ＰＦＳデバイスにアクセスすることに関連する別々の処理３０５、３１０および３２５が、図３に示される。処理３０５は、ＭＭＥ１０５のインスタンスを含み、これはＰＦＳデバイス２４５からのメディアを、処理３１０と接続するように示されるｉｏ−ｆｓモジュール１８０を介してブラウズかつ再生するように接続するために使用され得る。ＰｌａｙｓＦｏｒＳｕｒｅ（登録商標）接続性は、３つのレイヤから構成され得る。
１．トップレイヤにおいて、ＰＦＳモジュール１６０は、デバイスのファイルシステムビューを、ＭＭＥ１０５によるさらなるアクセスのためにｉｏ−ｆｓ３０５に表すことに責任があり得る。ｉｏ−ｆｓ１８０が、ＰＦＳモジュール１６０を初期化する際には、ＰＦＳモジュール１６０は、それが呼び出し得る機能ポインタで満たされた構造をセットアップし得る。このようにして、ＰＦＳモジュール１６０は、ＰＯＳＩＸ指令をＭＴＰ要求へ「翻訳」し得、逆もまた同様である。
２．ＭＴＰレイヤ３１５は、ＭＴＰメッセージを扱うＭｉｃｒｏｓｏｆｔ供給のソフトウェアであり得る。
３．ＰＴＰレイヤ３２０は、Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＰＴＰ）メッセージを扱い得、ＵＳＢサービスのＳｔｉｌｌ  Ｉｍａｇｅクラスのインプリメンテーションを扱い得る。本来、プロトコルは、デジタルカメラと共に使用するために開発されたが、プロトコルは拡張され、ＰＦＳデバイスのマルチメディアコンテンツにアクセスするための基盤として使用され得る。ＰＴＰレイヤ３２０は、ＵＳＢドライバ２４０と直接的に通信し得、ＵＳＢドライバ２４０は、次に、ＰＦＳデバイス２４５と通信する。
【００６８】
ＰＦＳモジュール１６０は、どのメディアオブジェクトがＭｉｃｒｏｓｏｆｔのＷＭＤＲＭ技術を用いて暗号化されたかを識別するために使用され得る。該技術は、ＭＴＰ自身をＰｌａｙｓＦｏｒＳｕｒｅ（登録商標）デバイスに登録するために、ＤＲＭ拡張子をＭＴＰに対して使用し得る。この登録が定期的に再発生することにより、コンテンツ内のデジタル著作権が維持される。
【００６９】
ｉＰｏｄ（登録商標）モジュール２６５は、接続されたＡｐｐｌｅ（登録商標）ｉＰｏｄ（登録商標）デバイスのファイルシステムビューをＭＭＥ１０５または他の高レベルアプリケーションに提供する。ｉＰｏｄ（登録商標）デバイスは、その３０ピンＯｍｎｉコネクタを介して、ＵＳＢまたはＲＳ２３２シリアルＵＡＲＴ接続のいずれか、およびシステム１００まで接続し得る。デバイスがＲＳ２３２シリアルＵＡＲＴポートに接続されている場合には、ｉＰｏｄ（登録商標）モジュール２６５は、ハードウェアに対する通信マネージャと直接的に通信し得る。デバイスがＵＳＢポートに接続されている場合には、ｉＰｏｄ（登録商標）モジュール２６５は、ＵＳＢデバイス通信マネージャと直接的に通信し得、これはＵＳＢポート上にシリアル接続をシミュレートする。
【００７０】
ｉＰｏｄ（登録商標）モジュール２６５は、デバイスの内部データベースをクエリすることによって、接続されたｉＰｏｄ（登録商標）からディレクトリ構造を作成し得る。ｉＰｏｄ（登録商標）モジュール２６５のメニュー上の各アイテムは、データベースクエリである。例えば、アルバムを選択することは、データベースをアルバムについてクエリすることである。ｉＰｏｄのメニュー上の各アイテムは、親のメニューアイテムによって表されたクエリのサブクエリ（ｓｕｂ−ｑｕｅｒｙ）である。この編成原理を用いて、ｉＰｏｄ（登録商標）モジュール２６５は、ｉＰｏｄ（登録商標）メニュー構造に似ているファイルシステム構造を生成する。このことは、コマンドライン動作が、ｉＰｏｄ（登録商標）上で実行され得ることを意味する。例えば、ＰＯＳＩＸ指令「ｃｄ  Ｍｕｓｉｃ；ｌｓ」を行うことは、ｉＰｏｄ（登録商標）上でＭｕｓｉｃオプションをユーザ選択したことと同一の効果を有し得る。両方が、同一のアイテムの一覧表を生み出す。ｉＰｏｄ（登録商標）の第１の出現に対する例示的なディレクトリ構造が、図４に示され、例示的なディレクトリ構造は、フォルダ「音楽」を含み、ここでフォルダ「音楽」は、サブフォルダ「プレイリスト」、「アーティスト」、「アルバム」、「ジャンル」、「曲」、「作曲家」、「カセットブック」および「ポッドキャスト」を含む。この例において、各サブフォルダは、「曲」を含むさらなるサブフォルダにおいて終了する。
【００７１】
ｉＰｏｄ（登録商標）デバイスは、それらのデジタルコンテンツをエクスポートしない。結果として、ＭＭＥ１０５に接続されたｉＰｏｄ（登録商標）上の音楽ファイルは、ｉＰｏｄ（登録商標）自身によって再生され得るが、ＭＭＥ１０５は、再生、停止、一時停止などを開始するようにデバイスに制御指令を送信することに対する責任を有し得る。ｉＰｏｄ（登録商標）からのアナログオーディオ出力は増幅器に直接送られ得る。
【００７２】
ｉＰｏｄ（登録商標）に類似するいくつかのデバイスにおいて、高レベルアプリケーションと相互作用させるためにメディアファイルシステム２２０によって使用される共通のファイルシステム表現と互換性のない記号を用いる複製した曲名または曲があり得る。例えば、ＰＯＳＩＸにおいて、記号「／」は取っておかれるため、「／」は使用され得ない。互換性のない記号は、特定の記号に対応する２つの１６進数のディジットが続く「％」の記号ストリングに変換され得る。例えば、「／」は、「％２Ｆ」に変換され得、記号「％」は、「％２５」に変換され得る。「．」で始まる全てのファイルも変更され、例えば、「．ｆｉｌｅ」は、「％２Ｅｆｉｌｅ」になり得る。複製した曲名は、「〜」記号およびファイル名に追加されたインスタンス数を用いて表され得る。これらの動作は、メディアファイルシステム２２０が、将来的にマッチされ得るＰＯＳＩＸタイプファイルシステムの一意的な名前に戻ることを可能にする。ＨＭＩ１１０においてインプリメントされた表示プログラムは、名前をユーザに表示する前に、ファイルの終わりから数字が続く全ての「〜」を除去し、全ての％ｘｘを本来の記号に変換することによって、本来の名前を表示するために使用され得る。
【００７３】
ｔｍｐｆｓモジュール２１０は、共有メモリにファイルシステムインタフェースを提供するために使用され得る。それは、ＲＡＭが、そのトップ上で実行する完全なＰＯＳＩＸファイルシステムを有するストレージ媒体として使用されることを可能にする。ｔｍｐｆｓ２１０のファイルシステムマウントパスにおいてデータベース１３０を単にポイントすることによって、データベース１３０は、ＲＡＭのみにおいてアクセスされ得、フラッシュのようなより遅いデバイス上で実行する性能コストを避ける。同様に、ｄｅｖｆ−ｇｅｎｅｒｉｃモジュール１７５は、ＰＯＳＩＸベースのファイルシステムをフラッシュに類似するメディアデバイスに提供する。
【００７４】
デバイス制御コードは、メディアファイルシステム２２０を介してアクセスされる物理デバイス１２０を制御するために規定され得る。制御コードは、デバイスドライバにいくつかの行動を行うように命令する制御コードに分割され得、デバイスから情報またはメタデータを取得する制御コードに分割され得る。コードがデバイスアクセスレイヤによってサポートされない場合には、コードが無視され、かつコールが連続的にヌルデータを返すか、またはエラーコードが返され得る（ＥＮＯＴＴＹ  ――  不適切なＩ／Ｏ制御動作）かのどちらかである。
【００７５】
デバイス制御機能コードが、開いているファイルに適用される。以下の記載において、データ変換バッファは、特に断りがない限りは使用されない。データバッファがデータを受信するために使用される場合には、バッファに書き込まれたバイト数は、特定のバッファサイズを超え、バッファに書き込まれたバイト数は、有益な値として（ｄｅｖ＿ｉｎｆｏ＿ｐｔｒ引数に）返される。リターンデータがＵＴＦストリングである場合には、受信バッファが十分に大きくないので、ストリングが切断される必要がある場合でさえも、次いでヌルターミネート（ｎｕｌｌ−ｔｅｒｍｉｎａｔｅ）され得る。例えば、以下のコードにおいて、ａｓｓｅｒｔ（）は、曲名がバッファよりも大きい場合でさえも、真であるべきである：
【００７６】
【数１】
2008052731.tif 000003
【００７７】
【数２】
2008052731.tif 000004
いくつかの例示的なデバイス制御コードが以下に記載される。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＰＬＡＹ−この制御コードは、現在のファイル（曲、記録されたものまたはビデオ）を再生するようにデバイスに命令するために使用され得る。ｄｅｖｃｔｌ（）コールは、以下を返す。
−ＥＮＯＴＴＹ  再生がデバイスによってサポートされていない場合
−ＥＩＮＶＡＬ  ファイルがいくつかの理由で再生され得ない場合
ＤＣＭＤ＿ＭＥＤＩＡ＿ＰＡＵＳＥ−この制御コードは、現在のファイルの再生を一時停止するようにデバイスに命令するために使用され得る。ｄｅｖｃｔｌ（）コールは、ファイルが現在再生されていない場合にＥＩＮＶＡＬを返す。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＲＥＳＵＭＥ−この制御コードは、現在のファイルの再生を再開するようにデバイスに命令するために使用され得る。ｄｅｖｃｔｌ（）コールは、ファイルが現在一時停止されていない場合にＥＩＮＶＡＬを返す。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＮＥＸＴ＿ＴＲＡＣＫ−この制御コードは、デバイスのプレイリストまたはアルバムの次のファイル（トラック、曲または記録されたもの）にスキップするようにデバイスに命令するために使用され得る。ｄｅｖｃｔｌ（）コールは、オブジェクトが現在再生または一時停止されていない場合にＥＩＮＶＡＬを返す。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＰＲＥＶ＿ＴＲＡＣＫ−この制御コードは、デバイスのプレイリストまたはアルバムの前のファイルにスキップするようにデバイスに命令するために使用され得る。ｄｅｖｃｔｌ（）コールは、オブジェクトが現在再生または一時停止されていない場合にＥＩＮＶＡＬを返す。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＦＡＳＴＦＷＤ−この制御コードは、データバッファを介して（バッファサイズは、例えば、４バイトであり得る、ｓｉｚｅｏｆ（ｉｎｔ）であるべきである）、デバイスアクセスレイヤに対し整数値を変換するために使用され得る。整数値は通常の再生レートの倍数としてレートを示し、該レートでデバイスは早送りする。２という値は、通常の再生速度の２倍で先に進むことを明示する。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＦＡＳＴＲＷＤ−この制御コードは、データバッファを介して（バッファサイズは例えば、４バイトであり得る）、デバイスアクセスレイヤに対し３２ビットの整数値を変換するために使用され得る。値は、通常の再生レートの倍数としてデバイスが巻き戻しをするべきレートを示す。２という値は、通常の再生速度の２倍で後ろに進むことを明示する。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＰＬＡＹＢＡＣＫ＿ＩＮＦＯ−この制御コードは、現在再生している曲について情報を取得するように使用され得る。ｄｅｖｃｔｌ（）コールは、ファイル記述子によって識別されたファイルが現在は再生されていないまたは一時停止される場合に、ＥＩＮＶＡＬを返す。特定のバッファに書き込まれたデータは、少なくとも以下の要素を有するｍｅｄｉａ＿ｐｌａｙｂａｃｋ＿ｔ構造であり得る。以下の要素とは、次のようなものである。
ｕｉｎｔ３２＿ｔ  ｃｏｕｎｔ；再生リスト内の総トラック数
ｕｉｎｔ３２＿ｔｉｎｄｅｘ；現在の再生におけるトラックインデックス
Ｕｉｎｔ８＿ｔｓｔａｔｅ；以下から選択されたデバイスの再生状態
−ＰＬＡＹＢＡＣＫ＿ＳＴＡＴＥ＿ＳＴＯＰ
−ＰＬＡＹＢＡＣＫ＿ＳＴＡＴＥ＿ＰＬＡＹ
―ＰＬＡＹＢＡＣＫ＿ＳＴＡＴＥ＿ＰＡＵＳＥ
ｕｉｎｔ３２＿ｔｌｅｎｇｔｈ；トラックの長さ（例えば、秒単位で）
ｕｉｎｔ３２＿ｔｅｌａｐｓｅｄ；現在のトラックの経過時間
ｕｉｎｔ３２＿ｔｍｅｔａｆｌａｇｓ；ビットマスク
ＤＣＭＤ＿ＭＥＤＩＡ＿ＧＥＴ＿ＳＨＵＦＦＬＥ−このコードは、デバイスに対するシャッフル設定を取得する。データバッファは、１つのバイトを含み、これは以下のうちの１つであり得る。
−ＳＨＵＦＦＬＥ＿ＯＦＦ
−ＳＨＵＦＦＬＥ＿ＴＲＡＣＫＳ
−ＳＨＵＦＦＬＥ＿ＡＬＢＵＭＳ
ＤＣＭＤ＿ＭＥＤＩＡ＿ＳＥＴ＿ＳＨＵＦＦＬＥ−この制御コードは、デバイスに対するシャッフル設定を設定するために使用され得る。データバッファの最初のバイトは、シャッフル設定として解釈され得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＧＥＴ＿ＲＥＰＥＡＴ−この制御コードは、デバイスに対するリピート設定を取得するために使用され得る。データバッファは、１つのバイトを含み得、これは以下のうちの１つであり得る。
−ＲＥＰＥＡＴ＿ＯＦＦ
−ＲＥＰＥＡＴ＿ＯＮＥ＿ＴＲＡＣＫ
−ＲＥＰＥＡＴ＿ＡＬＬ＿ＴＲＡＣＫＳ
ＤＣＭＤ＿ＭＥＤＩＡ＿ＳＥＴ＿ＲＥＰＥＡＴ−この制御コードは、デバイスに対するリピート設定を設定するために使用され得る。データバッファの最初のバイトは、リピート設定であり、ＤＣＭＤ＿ＭＥＤＩＡ＿ＧＥＴ＿ＲＥＰＥＡＴ指令下でリストされた状態を使用し得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＳＯＮＧ−この制御コードは、ファイル記述子パラメータによって識別されたトラックの名前またはタイトルを取得するために使用され得る。ｄｅｖｃｔｌ（）モジュールは、ｎ＿ｂｙｔｅｓバイトのＵＴＦ−８記号ストリングを、データバッファにコピーし得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＡＬＢＵＭ−この制御コードは、ファイル記述子パラメータによって識別されたトラックに関連するアルバム名を取得するために使用され得る。ｄｅｖｃｔｌ（）モジュールは、ｎ＿ｂｙｔｅｓバイトのＵＴＦ−８記号ストリングを、データバッファにコピーし得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＡＲＴＩＳＴ−この制御コードは、ファイル記述子パラメータによって識別されたトラックを行ったアーティストの名前を取得するために使用され得る。ｄｅｖｃｔｌ（）モジュールは、ｎ＿ｂｙｔｅｓバイトのＵＴＦ−８記号ストリングを、データバッファにコピーし得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＧＥＮＲＥ−この制御コードは、トラックが属するジャンルの名前を取得するために使用され得る。ｄｅｖｃｔｌ（）モジュールは、ｎ＿ｂｙｔｅｓバイトのＵＴＦ−８記号ストリングを、データバッファにコピーし得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＣＯＭＰＯＳＥＲ−この制御コードは、ファイル記述子パラメータによって識別されたトラックの作曲者の名前を取得するために使用され得る。ｄｅｖｃｔｌ（）モジュールは、ｎ＿ｂｙｔｅｓバイトのＵＴＦ−８記号ストリングを、データバッファにコピーし得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＲＥＬＥＡＳＥ＿ＤＡＴＥ−この制御コードは、ファイル記述子パラメータによって識別されたトラックの発売年月日を取得するために使用され得る。データバッファは、それに書き込まれた４８バイトのデータ構造を有し得る。この構造は、曲の発売の年、月（１〜１２）および日（１〜３１）に対するフィールドを含み得る。デバイス依存のデータフォーマットのデータを表すＵＴＦ−８ストリングで満たされたテキストフィールドもあり得る。該構造は以下のフォーマットを有し得る：
【００７８】
【数３】
2008052731.tif 000005
ＤＣＭＤ＿ＭＥＤＩＡ＿ＴＲＡＣＫ＿ＮＵＭ−この制御コードは、曲に対する本来のトラック番号を取得するために使用され得る。トラック番号は、データバッファ内に整数値として返され得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＰＵＢＬＩＳＨＥＲ−この制御コードは、トラックの発行者の名前を取得するために使用され得る。ｄｅｖｃｔｌ（）は、ｎ＿ｂｙｔｅｓバイトのＵＴＦ−８記号ストリングを、データバッファにコピーし得る。
ＤＣＭＤ＿ＭＥＤＩＡ＿ＤＥＶＩＮＦＯ−この制御コードは、デバイス情報を、ＵＴＦ記号ストリングフォーマットで取得するために使用され得る。このストリングのコンテンツは、デバイス依存し得る。以下は、ＭＴＰデバイスからの例示的なデバイス情報ストリングである。
【００７９】
【数４】
2008052731.tif 000006
図５は、任意のメディアデバイスからファイルのリストを取得することに従って、メディアファイルシステム２２０に関連し得る多くの相互関係のある動作を示すフローチャートである。示されるように、高レベルアプリケーション（例えば、ＨＭＩモジュール１１０）は、ブロック５１０において、例えば、ＰＯＳＩＸ指令を用いて、指令を提示することにより、メディアデバイスからファイル／コンテンツのリストを取得する。メディアファイルシステム２２０は、この指令を識別し、対応するドライバを使用して、メディアデバイスからのデータおよび／またはメタデータにアクセスする。メディアデバイスからのデータおよび／またはメタデータは、ブロック５１５において、利用可能であり得、かつ有用であり得るファイル名、作成された年月日、変更された年月日、ファイルタイプ、ファイルサイズおよび他の属性を修整するために解析される。要求されない全てのデータまたはヘッダは、単に無視され得るか、または処分され得る。データコンテンツは、ブロック５２０において、次いで、データコンテンツがデバイスから受信されたフォーマットから、所望されるファイルシステム表現に変換され、ブロック５２５において要求するアプリケーションに報告される。ブロック５２５において提供されたファイルシステム表現は、要求するアプリケーションに、共通のファイルシステムまたは他の場合には従来のファイルシステム（例えば、ＰＯＳＩＸ）を用いてなされた類似の要求を模倣する方法で表すためのデータの配列に対応する。これを行う途中で、メディアファイルシステム２２０は、どこでファイルが取得されたかを識別し得、後の使用のためにファイルがアクセスされ得る方法を識別し得る。
【００８０】
曲のリストがメディアデバイスから取得される場合に、メディアファイルシステム２２０は、将来実際のファイルを見出すために使用され得る内部の３２ビットの数字を生成し得、かつ格納し得る。メディアデバイス上の各曲に対して、ユーザに一意的な名前を報告し得、一意的な名前を後に３２ビットの数字に変換し直すことが可能であり得る。この数字は、曲名を再び引き出すために使用され得るか、あるいはメディアデバイスに伝えることにより、曲を再生するため、またはメタデータを取得するためもしくはメディアデバイスがサポートする場合には未加工の曲データを取得するためにさえ使用され得る。例えば、ＰｌａｙＦｏｒＳｕｒｅ（登録商標）デバイス上で、全ての曲は、使用され得る３２ビットのオブジェクト識別を有し得る。ｉＰｏｄ（登録商標）デバイス上で、エントリを取得するために必要とされるメニューのトップからの下を押した回数が、識別の目的で使用され得る。
【００８１】
データベース１３０における記録は、システムの要求に依存する多くの異なる構造を有し得る。このようなデータベース記録に使用され得る一部のフィールドおよびそれらが対応する意味は、図６の表に示される。データベース１３０のプレイリスト表と関連して使用され得る例示的なフィールドは、図７に示される。
【００８２】
データベース１３０はまた、メディアストアテーブルを含み得る。メディアストアテーブル内の各メディアストアは、エンジンが見えるメディアを含む１つの物理デバイスを記載するために使用され得る。これはｉＰｏｄ（登録商標）デバイス、ハードドライブ、ＵＳＢスティック、ＤＶＤビデオディスクなどであり得る。メディアストアは、それらが挿入される際、および取り出される際に出入りし、このテーブルは、それが起こる場合に従って、ＭＭＥ１０５によってアップデートされる。ライブラリテーブル内の全てのエントリは、メディアが配置される１つのメディアストアに属し得る。メディアストアは、後にメディアストアに対するｍｓｉｄを達成するために使用され得る識別子によって一意的に識別され得、ｍｓｉｄは、他のテーブルとリンクする。図８は、メディアストアテーブルと接続して使用され得る例示的なフィールドを示す。
【００８３】
さらに、データベース１３０は、スロットテーブルを含み得る。スロットは、メディアストアが接続され、かつ取り外され得るファイルシステム位置を規定するために使用され得る。例えば、オーディオＣＤが、位置／ｆｓ／ｃｄ０のファイルシステム内に見出され得る。それがネットワークされたオーディオＣＤであったなら、該オーディオＣＤは、／ｎｅｔ／ｒｅｍｏｔｅ＿ｈｏｓｔ／ｆｓ／ｃｄ０において見出され得る。ＭＭＥ２０５は、無数のスロットをサポートするように設計され得る。図９は、スロットテーブルと接続して使用され得る例示的なフィールドを示す。
【００８４】
ファイルに対応するメタデータは、ファイルを含むメディア上で利用可能であり得る。しかしながら、外部ソースが、メタデータをファイルに追加することも可能である。ファイルに対するメタデータは、音楽タイプおよび音楽を生成したグループに関する情報を含み得る。様々な追加のタイプのメタデータを統合することも可能である。例えば、メタデータは、ファイルに格納されたコンテンツの質についての情報を含み得る。この質の情報は、ユーザに対して再生されるまたはコンテンツに関連する特定のライセンスもしくは他の制限を有するコンテンツの選択において使用され得る。
【００８５】
本発明の様々な実施形態が記載されたが、多くのさらなる実施形態およびインプリメンテーションが本発明の範囲内であることが当業者にとって明らかである。従って、本発明は添付される特許請求の範囲およびそれらの均等物に照らすことを除いて限定されるべきではない。
【図面の簡単な説明】
【００８６】
【図１】図１は、複数のメディアデバイス上のメディアファイルの統一されたファイルシステム表現を含み得る例示的なマルチメディアシステム１００のブロック図である。
【図２】図２は、図１に示されるファイルシステムおよび他のモジュール／コンポーネントとのその関係をインプリメントする一方法を図示する。
【図３】図３は、メディアファイルシステムがＰＦＳデバイスのコンテンツにアクセスし得る一方法を図示する。
【図４】図４は、図１のシステムにおけるｉＰｏｄ（登録商標）の第１の発生に対する例示的なディレクトリ構造を図示する。
【図５】図５は、任意のメディアデバイスからファイルのリストを取得することに従う図２のメディアファイルシステムと関連し得る多くの相互関係する動作を示すフローチャートである。
【図６】図６は、図１に示されるデータベースのメディアファイル記録に使用され得る例示的なフィールドを図示する表である。
【図７】図７は、図１に示されるデータベースのプレイリストファイル記録に使用され得る例示的なフィールドを図示する表である。
【図８】図８は、図１に示されるデータベースのメディアストアの表に使用され得る例示的なフィールドを図示する表である。
【図９】図９は、図１に示されるデータベースのスロットテーブルに使用され得る例示的なフィールドを図示する表である。
【符号の説明】
【００８７】
１００  システム
１０５  マルチメディアエンジンモジュール
１１０  ヒューマンマシンインタフェースモジュール
１１５  ＩＯメディアモジュール
１２０  デバイス
１２５  再生出力デバイス／ゾーン
１３０  データベース
１３５  ＭＰ３プレーヤ
１４０  ＤＶＤプレーヤ
１４５  ｉＰｏｄ（登録商標）プレーヤ
１５０  ＰＳＰ（登録商標）デバイス
１５５  ＵＳＢストレージデバイス
１６０  メモリスティックデバイス
１６５  メディア再生モジュール
１７０  同期モジュール
１７５  ドライバ
１８０  ファイルシステム
【図１】
2008052731.tif 000007
【図２】
2008052731.tif 000008
【図３】
2008052731.tif 000009
【図４】
2008052731.tif 000010
【図５】
2008052731.tif 000011
【図６】
2008052731.tif 000012
【図７】
2008052731.tif 000013
【図８】
2008052731.tif 000014
【図９】
2008052731.tif 000015