(57)【特許請求の範囲】
【請求項１】
外部装置と通信するための通信手段と、
生成された順に割り振られたＩＤを有するコンテンツデータファイルが記録された装置にアクセス可能な取得手段と、
前記外部装置の要求に応答して、前記外部装置に前記コンテンツデータファイルの情報を前記通信手段を通じて提供する制御手段と、を有し、
前記制御手段は、要求する情報の数が指定され前記要求する情報の順序が指定されていない、前記コンテンツデータファイルの情報の要求を前記外部装置から受信した場合、前記コンテンツデータファイルのうち、前記指定された数のコンテンツデータファイルについての情報を、前記ＩＤの順序に従わず、新しく生成されたコンテンツデータファイルの情報から順に並ぶ様に並び替えたリストを前記外部装置に送信し、その後、前記外部装置から受信した前記リストの順序に従ったコンテンツデータファイルの要求に応じて、コンテンツデータファイルを前記外部装置に送信することを特徴とする電子機器。
【請求項２】
前記コンテンツデータファイルの情報が、前記ＩＤと、エントリ情報とを含むことを特徴とする請求項１記載の電子機器。
【請求項３】
前記電子機器は、前記コンテンツデータファイルの情報を前記外部装置が要求することを可能にするアプリケーションプログラミングインターフェース（ＡＰＩ）を提供し、前記外部装置から受信した前記ＡＰＩのリクエストに応答して、前記リストを前記外部装置に送信することを特徴とする請求項１または請求項２に記載の電子機器。
【請求項４】
前記制御手段は、前記順序が指定されたコンテンツデータファイルの要求を受信した場合には、指定されている順序に従って前記コンテンツデータファイルの情報を並び替えたリストを前記外部装置に送信することを特徴とする請求項１から請求項３のいずれか１項に記載の電子機器。
【請求項５】
前記要求する情報の数は、前記コンテンツデータファイルの情報の要求に含まれる引数として指定されることを特徴とする請求項１から請求項４のいずれか１項に記載の電子機器。
【請求項６】
前記要求する情報の順序は、前記コンテンツデータファイルの情報の要求に含まれる引数として指定されることを特徴とする請求項１から請求項４のいずれか１項に記載の電子機器。
【請求項７】
前記外部装置から受信する前記コンテンツデータファイルの要求は、前記コンテンツデータファイルを１つずつ要求するものであることを特徴とする請求項１から請求項６のいずれか１項に記載の電子機器。
【請求項８】
前記電子機器は、デジタルカメラであることを特徴とする請求項１から請求項７のいずれか１項に記載の電子機器。
【請求項９】
前記電子機器は、携帯電話であることを特徴とする請求項１から請求項７のいずれか１項に記載の電子機器。
【請求項１０】
前記電子機器は、タブレット端末であることを特徴とする請求項１から請求項７のいずれか１項に記載の電子機器。
【請求項１１】
前記外部装置は、デジタルカメラであることを特徴とする請求項１から請求項１０のいずれか１項に記載の電子機器。
【請求項１２】
前記外部装置は、携帯電話であることを特徴とする請求項１から請求項１０のいずれか１項に記載の電子機器。
【請求項１３】
前記外部装置は、タブレット端末であることを特徴とする請求項１から請求項１０のいずれか１項に記載の電子機器。
【請求項１４】
外部装置と通信するための通信手段を有する電子機器の制御方法であって、
制御手段が、前記外部装置の要求に応答して、前記外部装置に、生成された順に割り振られたＩＤを有するコンテンツデータファイルの情報を前記通信手段を通じて提供する制御工程を有し、
前記制御工程において前記制御手段は、要求する情報の数が指定され前記要求する情報の順序が指定されていない、前記コンテンツデータファイルの情報の要求を前記外部装置から受信した場合、前記コンテンツデータファイルのうち、前記指定された数のコンテンツデータファイルについての情報を、前記ＩＤの順序に従わず、新しく生成されたコンテンツデータファイルの情報から順に並ぶ様に並び替えたリストを前記外部装置に送信し、その後、前記外部装置から受信した前記リストの順序に従ったコンテンツデータファイルの要求に応じて、コンテンツデータファイルを前記外部装置に送信することを特徴とする電子機器の制御方法。
【請求項１５】
コンピュータを、請求項１から請求項１３のいずれか１項に記載の電子機器が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器およびその制御方法に関し、特には電子機器間でコンテンツデータの情報を通信する技術に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、デジタルカメラ、ゲーム機、タブレット端末、携帯電話機など、多くの電子機器にカメラ機能および通信機能が搭載され、これら電子機器間でのデータ送受信が実現されている。
【０００３】
例えば、特許文献１には、デジタルカメラが有するコンテンツデータ（画像データ、音声データなど）の識別情報をデジタルカメラから取得し、取得した識別情報を用いて所望のコンテンツデータをデジタルカメラから取得する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2008-250820号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、ある電子機器（送信機器）が有する複数のコンテンツデータについて、別の電子機器（受信機器）がサムネイルとファイル名などの基本情報を一覧表示しようとした場合、受信機器は、
（１）コンテンツデータの識別情報を取得
（２）識別情報を用いて１つずつ基本情報を取得
（３）識別情報を用いて１つずつサムネイルを取得
（４）一覧表示
という手順を踏む必要があった。そのため、例えば１００のコンテンツデータについてこのような一覧表示を行う場合、（２）と（３）の手順を１００回繰り返す必要があった。
【０００６】
本発明はこのような従来技術の課題に鑑みなされたものであり、コンテンツデータの情報を効率的に提供もしくは取得可能な電子機器およびその制御方法の提供を目的とする。
【課題を解決するための手段】
【０００７】
上述の目的は、外部装置と通信するための通信手段と、生成された順に割り振られたＩＤを有するコンテンツデータファイルが記録された装置にアクセス可能な取得手段と、外部装置の要求に応答して、外部装置にコンテンツデータファイルの情報を通信手段を通じて提供する制御手段と、を有し、制御手段は、要求する情報の数が指定され要求する情報の順序が指定されていない、コンテンツデータファイルの情報の要求を外部装置から受信した場合、コンテンツデータファイルのうち、指定された数のコンテンツデータファイルについての情報を、ＩＤの順序に従わず、新しく生成されたコンテンツデータファイルの情報から順に並ぶ様に並び替えたリストを外部装置に送信し、その後、外部装置から受信したリストの順序に従ったコンテンツデータファイルの要求に応じて、コンテンツデータファイルを外部装置に送信することを特徴とする電子機器によって達成される。
【発明の効果】
【０００８】
このような構成により、本発明によれば、コンテンツデータの情報を効率的に提供もしくは取得可能な電子機器およびその制御方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る電子機器（送信機器）の一例であるデジタルカメラの機能構成例を示すブロック図
【図２】本発明の実施形態に係る電子機器（受信機器）の一例であるスマートデバイスの機能構成例を示すブロック図
【図３】本発明の実施形態に係る送信機器が提供するＡＰＩの例を示す図
【図４】本発明の第１の実施形態に係る送信機器と受信機器の相互動作の例を示すシーケンス図
【図５】本発明の実施形態に係る受信機器が表示するＧＵＩ画面の例を示す図
【図６】図４における送信機器の動作を説明するためのフローチャート
【図７】図４における受信機器の動作を説明するためのフローチャート
【図８】本発明の第２の実施形態に係る送信機器の動作を説明するためのフローチャート
【図９】本発明の第２の実施形態に係る受信機器の動作を説明するためのフローチャート
【発明を実施するための形態】
【００１０】
以下に、本発明の例示的な実施形態について、添付の図面を用いて詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
【００１１】
●（第１の実施形態）
＜デジタルカメラ１００の構成＞
図１（ａ）は、本発明の実施形態に係る電子機器（送信機器）の一例であるデジタルカメラ１００の構成例を示すブロック図である。本明細書においては、コンテンツデータおよびその情報を提供する機能を備える装置を送信機器、送信機器からコンテンツデータおよびその情報を取得する機能を備える装置を受信機器とする。従って、両方の機能を備える電子機器は受信機器としても送信機器としても動作可能である。
なお、送信機器として動作可能な電子機器はデジタルカメラに限らない。携帯型のメディアプレーヤや、パーソナルコンピュータ、タブレット端末、ゲーム機、携帯電話機など、コンテンツデータの保持機能と外部装置との通信機能を有する任意の電子機器が本発明の実施形態に係る送信機器となりうる。
【００１２】
制御部１０１は例えばＣＰＵやＭＰＵのようなプログラマブルプロセッサを有し、入力された信号や、後述のプログラムに従ってデジタルカメラ１００の各部を制御する。なお、制御部１０１の代わりに複数のハードウェアが処理を分担してデジタルカメラ１００の全体を制御してもよい。
【００１３】
撮像部１０２は、例えば、光学レンズユニットと、絞り機構・ズームレンズ・フォーカスレンズなどを駆動する駆動ユニットから構成される光学系と、光学レンズユニットを通じて入射した光を電気信号に変換する撮像素子とその駆動回路などで構成される。撮像素子には、ＣＭＯＳ(Complementary Metal Oxide Semiconductor)イメージセンサや、ＣＣＤ(Charge Coupled Device)が一般的に利用される。
【００１４】
撮像部１０２は、制御部１０１の制御により、光学レンズユニットで結像された被写体像を撮像素子により電気信号に変換し、ノイズ低減処理やＡ／Ｄ変換処理などを行ってデジタル画像データを出力する。制御部１０１は、デジタル画像データに対して予め定められた画像処理を適用し、記録形式に応じた付加情報を有する画像データファイルを生成して記録媒体１１０に記録する。本実施形態のデジタルカメラ１００において、画像データファイルは、ＤＣＦ(Design rule for Camera File system)規格に従って、メモリカードなどの記録媒体１１０に記録される。以下の説明において、デジタルカメラ１００が生成して記録媒体１１０に記録する静止画データファイル、音声データファイル、動画データファイルなどを総称してコンテンツデータファイルと呼ぶ。
【００１５】
不揮発性メモリ１０３は、例えば電気的に消去・記録可能であり、制御部１０１がデジタルカメラ１００を制御するために実行するプログラム、各種の設定、およびメニュー画面などのＧＵＩデータ等を格納する。外部装置がデジタルカメラ１００の動作を制御したり、デジタルカメラ１００からデータを取得したりすることを可能にするためのアプリケーションプログラミングインターフェース（ＡＰＩ）のプログラムも不揮発性メモリ１０３に格納されている。
【００１６】
作業用メモリ１０４は、例えば揮発性メモリであり、撮像部１０２で得られた画像データを一時的に保持するバッファや、表示部１０６の画像表示用メモリ、制御部１０１の作業領域等として使用される。
【００１７】
操作部１０５は、デジタルカメラ１００に対するユーザ指示を受け付けるためのスイッチ、ボタンなどの入力デバイス群である。操作部１０５は例えば、デジタルカメラ１００の電源のＯＮ／ＯＦＦを指示するための電源ボタンや、撮影準備動作や撮影動作の開始を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、通信部１１１を介して外部装置との通信を開始するための接続ボタンや、表示部１０６が有するタッチパネルも操作部１０５に含まれる。
【００１８】
なお、レリーズスイッチは、ＳＷ１およびＳＷ２を有する。レリーズスイッチが半押し状態となることにより、ＳＷ１がＯＮとなる。ＳＷ１のＯＮは撮影準備動作の開始指示であり、制御部１０１はＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理、ＥＦ（フラッシュプリ発光）処理等の撮影準備動作を開始する。また、レリーズスイッチが全押し状態となることにより、ＳＷ２がＯＮとなる。ＳＷ２のＯＮは撮影動作の開始指示であり、制御部１０１は撮影動作を開始する。
【００１９】
表示部１０６は、ライブビュー画像の表示、撮影済み画像の表示、デジタルカメラ１００の各種情報の表示、ユーザとの対話的な操作のためのＵＩ表示などに用いられる。なお、表示部１０６は必ずしもデジタルカメラ１００が備えなくてもよく、外部表示装置であってもよい。つまり、デジタルカメラ１００は表示部１０６の表示を制御する表示制御機能を少なくとも有していればよい。
【００２０】
記録媒体１１０は、例えば不揮発性の半導体記憶装置であり、コンテンツデータ（静止画データ、動画データ、音声データなど）が予め定められたファイルシステムに従って記録される。記録媒体１１０はメモリカードのようにデジタルカメラ１００に着脱可能な構成であってもよいし、デジタルカメラ１００に内蔵（固定）された構成であってもよい。また、記録媒体１１０は外部記憶装置であってもよい。すなわち、デジタルカメラ１００は少なくとも記録媒体１１０にアクセス可能であればよい。
【００２１】
通信部１１１は、外部装置との通信インターフェイスである。例えば、撮像部１０２で撮影した画像データを、通信部１１１を介して後述するスマートデバイス２００のような外部装置に送信することができる。なお、通信部１１１は有線通信インターフェイス、無線通信インターフェイスの少なくとも一方を備えることができる。本実施形態では、通信部１１１はＩＥＥＥ８０２．１１ｘの規格に従った、無線ＬＡＮインターフェイスを有し、制御部１０１は、通信部１１１を制御することで外部装置と無線通信を行う。
【００２２】
なお、通信部１１１が有する無線通信インターフェイスの規格は無線ＬＡＮに限定されるものではなく、例えば赤外線通信方式、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信方式、ＷｉｒｅｌｅｓｓＵＳＢ、任意の無線通信規格に準拠したものであってよい。通信部１１１が有線通信インターフェイスを有する場合も、ＵＳＢ、ＨＤＭＩ（登録商標）、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）など、任意の規格に準拠したインターフェイスを備えることができる。
【００２３】
近距離通信部１１２は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近距離通信部１１２は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することでＩＳＯ／ＩＥＣ  １８０９２の規格（いわゆるＮＦＣ：Near Field Communication）に従った近距離無線通信を実現する。また、通信部１１１で用いるような無線通信規格に準拠して近距離無線通信を実現する構成であってもよい。本実施形態において、近距離通信部１１２のアンテナは、図１（ｃ）に示すようにデジタルカメラ１００の側面に配される。
【００２４】
本実施形態において、後述するスマートデバイス２００とは、通信部１１１より通信を開始することにより接続される。また、本実施形態における通信部１１１は、インフラストラクチャモードにおけるアクセスポイントとして動作するＡＰモードと、インフラストラクチャモードにおけるクライアントとして動作するＣＬモードとを有している。
【００２５】
通信部１１１をＣＬモードで動作させることにより、本実施形態におけるデジタルカメラ１００は、インフラストラクチャモードにおけるＣＬ機器として動作することが可能である。デジタルカメラ１００がＣＬ機器として動作する場合、周辺のＡＰ機器に接続することで、ＡＰ機器が形成するネットワークに参加することが可能である。また、通信部１１１をＡＰモードで動作させることにより、本実施形態におけるデジタルカメラ１００は、ＡＰの一種ではあるが、より機能が限定された簡易的なＡＰ（以下、簡易ＡＰ）として動作することも可能である。デジタルカメラ１００が簡易ＡＰとして動作すると、デジタルカメラ１００は自身でネットワークを形成する。デジタルカメラ１００の周辺の装置は、デジタルカメラ１００をＡＰ機器と認識し、デジタルカメラ１００が形成したネットワークに参加することが可能となる。ＡＰモードおよびＣＬモードにおける動作は、不揮発性メモリ１０３に保持されたプログラムを制御部１０１が実行することで実現される。
【００２６】
なお、通信部１１１がＡＰモードで（簡易ＡＰとして）動作する場合、ＣＬ機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない。したがって、デジタルカメラ１００が形成するネットワークに参加している他のＣＬ機器からデータを受信しても、それをインターネットなどの外部ネットワークに転送することはできない。
【００２７】
次に、デジタルカメラ１００の外観について説明する。図１（ｂ）、図１（ｃ）はデジタルカメラ１００の外観例を示す斜視図である。レリーズスイッチ１０５ａや再生ボタン１０５ｂ、方向キー１０５ｃ、タッチパネル１０５ｄは、操作部１０５に含まれる操作部材である。また、上述の通り、近距離通信部１１２のアンテナは、デジタルカメラ１００の側面に配される。
【００２８】
＜スマートデバイス２００の内部構成＞
図２は、本発明の実施形態に係る電子機器（受信機器）の一例であるスマートデバイス２００の構成例を示すブロック図である。なお、スマートデバイスとはいわゆるスマートフォンやタブレットデバイスを意味する。
なお、受信機器として動作可能な電子機器はスマートデバイスに限らない。携帯型のメディアプレーヤや、パーソナルコンピュータ、ゲーム機など、送信機器との通信機能を有する任意の電子機器が本発明の実施形態に係る受信機器となりうる。
【００２９】
制御部２０１は、例えばＣＰＵやＭＰＵのようなプログラマブルプロセッサを有し、入力された信号や、後述のプログラムに従ってスマートデバイス２００の各部を制御する。なお、制御部２０１の代わりに複数のハードウェアが処理を分担してスマートデバイス２００の全体を制御してもよい。
【００３０】
撮像部２０２は、デジタルカメラ１００が有する撮像部１０２と同様の構成を有する（撮像素子の画素数などの細部は異なっていてもよい）。制御部２０１は、撮像部２０２の出力するデジタル画像データに対して予め定められた画像処理を適用し、記録形式に応じた付加情報を有する画像データファイルを生成して記録媒体２１０に記録する。
【００３１】
不揮発性メモリ２０３は、電気的に消去・記録可能であり、制御部２０１が実行する基本ソフトウェア（オペレーティングシステム（ＯＳ））や、ＯＳと協働して応用的な機能を実現するアプリケーションが格納されている。本実施形態では、デジタルカメラ１００と通信するためのアプリケーション（以下、通信アプリという）が不揮発性メモリ２０３に格納されている。
【００３２】
作業用メモリ２０４は、例えば揮発性メモリであり、撮像部２０２で得られた画像データを一時的に保持するバッファや、表示部２０６の画像表示用メモリ、制御部２０１の作業領域等として使用される。
【００３３】
操作部２０５は、スマートデバイス２００に対するユーザ指示を受け付けるためのスイッチ、ボタンなどの入力デバイス群である。操作部２０５は例えば、スマートデバイス２００の電源のＯＮ／ＯＦＦを指示するための電源ボタンや、表示部２０６が有するタッチパネルなどを含む。
【００３４】
表示部２０６は、ライブビュー画像の表示、撮影済み画像の表示、スマートデバイス２００の各種情報の表示、ユーザとの対話的な操作のためのＵＩ表示などに用いられる。なお、表示部２０６は必ずしもスマートデバイス２００が備えなくてもよく、外部表示装置であってもよい。つまり、スマートデバイス２００は表示部２０６の表示を制御する表示制御機能を少なくとも有していればよい。
【００３５】
記録媒体２１０は、スマートデバイス２００に着脱可能な構成であっても、内蔵（固定）された構成であってもよい。また、記録媒体２１０は外部記憶装置であってもよい。すなわち、スマートデバイス２００は少なくとも記録媒体２１０にアクセス可能であればよい。
【００３６】
通信部２１１は、外部装置との通信インターフェイスである。なお、通信部２１１は有線通信インターフェイス、無線通信インターフェイスの少なくとも一方を備えることができる。本実施形態では、通信部２１１はＩＥＥＥ８０２．１１ｘの規格に従った、無線ＬＡＮインターフェイスを有し、制御部２０１は、通信部２１１を制御することで外部装置と無線通信を行う。
【００３７】
なお、デジタルカメラ１００と通信する際には、通信部２１１とデジタルカメラ１００の通信部１１１とで直接通信してもよいし、アクセスポイントを介して通信してもよい。データ通信プロトコルとしては、例えばＨＴＴＰ(Hyper Text Transfer Protocol)やＰＴＰ／ＩＰ(Picture Transfer Protocol over Internet Protocol)を用いることができるが、これらに限定されない。
【００３８】
なお、通信部２１１が有する無線通信インターフェイスの規格は無線ＬＡＮに限定されるものではなく、例えば赤外線通信方式、Ｂｌｕｅｔｏｏｔｈ（登録商標）通信方式、ＷｉｒｅｌｅｓｓＵＳＢ、任意の無線通信規格に準拠したものであってよい。通信部２１１が有線通信インターフェイスを有する場合も、ＵＳＢ、ＨＤＭＩ（登録商標）、ＩＥＥＥ１３９４、Ｅｔｈｅｒｎｅｔ（登録商標）など、任意の規格に準拠したインターフェイスを備えることができる。
【００３９】
近距離通信部２１２は、デジタルカメラ１００の近距離通信部１１２と同様の構成を有し、ＮＦＣに従った近距離無線通信を実現する。また、通信部２１１で用いるような無線通信規格に準拠して近距離無線通信を実現する構成であってもよい。近距離通信部２１２は、外部装置からデータ読み出し要求を受けると、不揮発性メモリ２０３に格納されているデータに基づき、応答データを出力する。
【００４０】
公衆網通信部２１３は、公衆無線通信インターフェイスである。スマートデバイス２００は、公衆網通信部２１３を介して、他の機器と通信することができる。この際、制御部２０１はマイク２１４およびスピーカ２１５を介して音声信号の入力と出力を行うことで、通話を実現する。本実施形態では、公衆網通信部２１３はアンテナであり、制御部２０１は、アンテナを介して、公衆網に接続することができる。なお、通信部２１１および公衆網通信部２１３は、一つのアンテナで兼用することも可能である。
【００４１】
＜デジタルカメラを外部装置から制御するＡＰＩの構成＞
図３（ａ）は、外部装置からデジタルカメラ１００を制御するためのアプリケーションプログラミングインターフェース（ＡＰＩ）の例を示す図である。本実施形態のデジタルカメラ１００は、スマートデバイス２００などの外部装置から利用可能なＡＰＩを公開しているものとする。外部装置の設計者は、公開されたＡＰＩを用いてデジタルカメラ１００に要求を送信するよう実装することにより、デジタルカメラ１００の動作制御や、デジタルカメラ１００からのデバイス情報やコンテンツデータファイルの取得を実現できる。
【００４２】
デジタルカメラ１００の不揮発性メモリ１０３にはＡＰＩがプログラムとして予め保存されており、通信部１１１を介して外部装置との通信が確立すると、制御部１０１はＡＰＩを作業用メモリ１０４に展開し、外部装置からＡＰＩがリクエストされるのを待つ。制御部１０１が外部装置からＡＰＩがリクエストされたことを検知すると、リクエストされたＡＰＩの種類に応じて処理を実行し、その結果をレスポンスとして外部装置に返す。なお、ＡＰＩはデジタルカメラ１００が規定した通信プロトコル上で実行され、外部装置は規定された通信プロトコルを用いてデジタルカメラ１００と通信を行い、ＡＰＩをリクエストする。なお、本実施形態では、ＨＴＴＰを用いてＡＰＩのリクエストおよび応答が実行されることを想定して説明するが他の通信プロトコルを用いても実施可能である。なお、ＨＴＴＰは公知の通信プロトコルであるため、その詳細についての説明は割愛する。
【００４３】
ＨＴＴＰを用いたＡＰＩのリクエストは、外部装置がＨＴＴＰリクエストボディにＡＰＩ名と必要な引数をテキストで記述し、ＧＥＴメソッドもしくはＰＯＳＴメソッドを用いてデジタルカメラ１００に送信することで実現できる。また、リクエストされたＡＰＩの実施結果の返送は、制御部１０１がＨＴＴＰレスポンスボディに付加して外部装置に返送することで実現できる。
【００４４】
図３（ａ）に示すＡＰＩリスト３００は、デジタルカメラ１００が提供（公開）するＡＰＩの種類とその内容を示している。なお、図３（ａ）では便宜上４つのＡＰＩについて示しているが、公開ＡＰＩの数は４つに限定されない。
【００４５】
ＡＰＩ３０１（RequestProductInfo）は、デジタルカメラ１００の製品情報を外部装置が取得できるようにするためのＡＰＩである。このＡＰＩを引数なしでデジタルカメラ１００にリクエストすることにより、デジタルカメラ１００の製品名、製造者名、ファームウェアバージョン、シリアルナンバーがレスポンスとして取得できる。なお、製品名とは、デジタルカメラ１００の製品名、製造者名とはデジタルカメラ１００のメーカー名である。ファームウェアバージョンとは、不揮発性メモリ１０３に保存された、デジタルカメラ１００を制御するためのプログラムのバージョン番号である。シリアルナンバーとは、デジタルカメラ１００の個体識別が可能な一意の番号である。
【００４６】
ＡＰＩ３０２（RequestMemoryInfo）は、デジタルカメラ１００の保存領域の情報を外部装置が取得できるようにするためのＡＰＩである。このＡＰＩを引数なしでデジタルカメラ１００にリクエストすることにより、デジタルカメラ１００の保存領域ＩＤ、保存可能容量、空き容量、保存済みのコンテンツファイル数をレスポンスとして取得できる。複数のメモリカードが装着されている場合など、保存領域が複数存在する場合は、保存領域毎に上記の各項目が取得される。なお、保存領域ＩＤとは、デジタルカメラ１００で生成されるコンテンツデータファイルが保存可能な領域にそれぞれ割り振られた識別情報（ＩＤ(Identification)）であり、例えば、記録媒体１１０には保存領域ＩＤが割り振られる。保存可能容量とは、コンテンツファイルが保存できる保存領域に保存可能なサイズの上限である。空き容量とは、保存領域のうち、コンテンツデータファイルが保存されていない領域のサイズである。保存済みのコンテンツ数とは、保存領域に保存されているコンテンツデータファイルの総数である。
【００４７】
ＡＰＩ３０３(RequestContentInfo)は、デジタルカメラ１００の保存領域に保存されているコンテンツデータファイルのコンテンツＩＤと基本情報（エントリ情報）を外部装置が取得できるようにするＡＰＩである。外部装置は、ＡＰＩ３０２（RequestMemoryInfo）で取得した保存領域ＩＤ、コンテンツフォーマットの種類、取得要求数を引数に指定してこのＡＰＩをリクエストする。これにより、デジタルカメラ１００の保存領域に保存されているコンテンツデータファイルごとのコンテンツＩＤと、エントリ情報（ファイル名、ファイルサイズ、ファイル生成日時など）との両方がレスポンスとして取得できる。なお、コンテンツＩＤとは、コンテンツデータファイルを個々に識別するために割り振られた識別情報である。なお、本実施形態におけるＡＰＩには、作業用メモリ１０４のサイズに応じて、外部装置が情報を一度に取得できるコンテンツデータファイルの数に上限値（ここでは１００）が設定されている。よって、保存領域に保存されているコンテンツデータファイルの数がこのＡＰＩに設定された上限値を超える場合、制御部１０１はこのＡＰＩを繰り返しリクエストする必要がある。
【００４８】
ＡＰＩ３０４(RequestConent)は、デジタルカメラ１００の保存領域に保存されているコンテンツデータファイルを外部装置が取得できるようにするＡＰＩである。引数にコンテンツＩＤとコンテンツサイズを指定してこのＡＰＩをリクエストすることにより、外部装置はデジタルカメラ１００の保存領域から、指定したコンテンツデータファイルを取得できる。なお、引数に指定するコンテンツサイズは、コンテンツデータをオリジナルのサイズで取得するのか、もしくは縮小したサイズで取得するのかを指定可能である。デジタルカメラ１００の制御部１０１は指定されたサイズに従ったコンテンツデータファイルを生成し、外部装置へレスポンスとして返却する。本実施形態では、例えば静止画データをオリジナルのサイズで取得するのか、サムネイルサイズで取得するのかをコンテンツサイズで指定できる。
【００４９】
ＡＰＩ３０５(RequestContentDetailInfo)は、デジタルカメラ１００の保存領域に保存されているコンテンツデータの詳細情報を外部装置が取得できるようにするＡＰＩである。コンテンツＩＤを引数としてこのＡＰＩをリクエストすると、指定したコンテンツＩＤに対応するコンテンツデータの詳細情報がレスポンスとして取得できる。詳細情報の内容に特に制限は無いが、例えばコンテンツデータが静止画データの場合、Ｅｘｉｆ情報であってよい。
【００５０】
なお、ここで説明したＡＰＩはデジタルカメラ１００が公開するＡＰＩの一例であり、ここで説明した以外のＡＰＩが公開されたり、説明したＡＰＩの１つ以上が公開されなくてもよい。
【００５１】
＜スマートデバイスがデジタルカメラからコンテンツデータを取得するシーケンス＞
スマートデバイス２００がデジタルカメラ１００と接続して、デジタルカメラ１００の記録媒体１１０に保存されたコンテンツデータの一覧を表示部２０６に表示する際の動作を、図４のシーケンス図を参照して説明する。なお、本実施形態では、コンテンツデータが画像ファイルである場合を説明するが、音声ファイルなど、他の種類のファイルであっても同様に処理できる。
【００５２】
まず、Ｓ４０１において、デジタルカメラ１００とスマートデバイス２００は無線ローカルエリアネットワーク（ＬＡＮ）接続を確立し、通信システムを形成する。
ここでは、デジタルカメラ１００の通信部１１１をＡＰモードで動作させ、デジタルカメラ１００が形成するネットワークにスマートデバイス２００を参加させる方法で無線ＬＡＮ接続を確立するものとする。例えば、操作部１０５の接続ボタンが押下され、ＡＰモードでの動作が指定されると、デジタルカメラ１００の制御部１０１は、自身が形成するネットワークに外部装置が接続するために必要なＳＳＩＤ(Service Set Identifier)と暗号化キーを生成する。その後、制御部１０１は、ＳＳＩＤと暗号化キーを用いて通信部１１１をＡＰモードで動作させることにより無線ＬＡＮネットワークを生成し、接続に必要な情報を含んだビーコン信号の周期的なブロードキャストを開始する。なお、スマートデバイス２００からＳＳＩＤを直接入力させる場合には、ビーコン信号のブロードキャストは行わなくてもよい。なお、制御部１０１は生成したＳＳＩＤと暗号化キーを表示部１０６に表示し、スマートデバイス２００のユーザが無線ＬＡＮネットワークに参加できるようにする。
【００５３】
なお、ＳＳＩＤとは、ＩＥＥＥ８０２．１１シリーズの無線ＬＡＮにおけるアクセスポイントの識別子であり、混信を避けるために付けられる名前である。暗号化キーとは、ＳＳＩＤに不正アクセスされないよう無線ＬＡＮの暗号化を行うためのキーである。
【００５４】
次に、制御部１０１は、ＤＨＣＰ(Dynamic Host Configuration Protocol)サーバアプリケーションを実行し、デジタルカメラ１００が形成したネットワークに参加する外部装置に対してＩＰアドレスを割り振る準備をする。
【００５５】
一方、スマートデバイス２００の制御部２０１は、通信部２１１の無線ＬＡＮ機能が有効でなければ有効とし、通信部２１１を用いて通信可能範囲に存在するアクセスポイントを探索する。そして、見つかったアクセスポイントのＳＳＩＤの一覧を、表示部２０６に表示する。
【００５６】
制御部２０１は、表示部２０６に表示されたＳＳＩＤ一覧から操作部２０５を通じて選択指示が与えられると、選択されたＳＳＩＤに応じて暗号化キーの入力画面を表示部２０６に表示する。そして、制御部２０１は、選択されたＳＳＩＤと操作部２０５を通じて入力された暗号化キーを通信部２１１に通知し、選択されたＳＳＩＤへの接続を試みる。
【００５７】
従って、スマートデバイス２００のユーザは、まず、表示部２０６に一覧表示されたＳＳＩＤからデジタルカメラ１００の表示部１０６に表示されたＳＳＩＤを操作部２０５を用いて選択する。デジタルカメラ１００が形成している無線ＬＡＮネットワークは暗号化されているため、制御部２０１は暗号化キーの入力画面を表示部２０６に表示する。そして、ユーザは、暗号化キーの入力画面に、デジタルカメラ１００の表示部１０６に表示された暗号化キーを、操作部２０５を用いて入力する。
【００５８】
暗号化キーが正しく入力されれば、スマートデバイス２００がデジタルカメラ１００（簡易ＡＰ）に認証され、スマートデバイス２００からの接続要求に対してデジタルカメラ１００が接続許可を応答することで接続が完了する。スマートデバイス２００は、デジタルカメラ１００から割り当てられたＩＰアドレスを用いて、デジタルカメラ１００と通信することが可能になる。
【００５９】
なお、ここではデジタルカメラ１００が簡易ＡＰとして動作する例を説明したが、他のＡＰ（無線ルータなど）が構築するＬＡＮに、クライアントとして動作するデジタルカメラ１００とスマートデバイス２００がそれぞれ接続する形態であってもよい。
【００６０】
次に、Ｓ４０２において、デジタルカメラ１００とスマートデバイス２００が互いの存在や提供するサービスを認識するディスカバリ処理を行い、スマートデバイス２００が無線ＬＡＮを介してデジタルカメラ１００が提供するＡＰＩを使用する準備を行う。なお、ディスカバリ処理は、公知のプロトコルは、例えば、ＳＳＤＰ(Single Service Discovery Protocol)やMulticast DNSなどを用いて行うことができる。
【００６１】
ディスカバリ処理の一例を説明すると、制御部１０１は、自らが構築したネットワークに対してアドバタイズ通知を送信し、自身の存在をネットワークに接続している機器に通知する。スマートデバイス２００の制御部２０１は、このアドバタイズ通知を受信すると、デジタルカメラ１００から、機器情報(Device Description)を取得し、ＡＰＩサービスを提供しているか否か（ＡＰＩを公開しているか否か）を判定する。
【００６２】
制御部２０１は、例えば機器情報に含まれるサービスリストに記述されたＵＲＬにアクセスしてサービスの情報を取得し、デジタルカメラ１００がＡＰＩサービスを提供しているかどうかを判定することができる。また、ＡＰＩサービスが提供されている場合、公開されているＡＰＩの名称、機能、およびＡＰＩサービスのアクセス方法（例えばＵＲＬ）に関する情報を得ることができる。制御部２０１は、デジタルカメラ１００がＡＰＩサービスを提供していると判断した場合、公開されているＡＰＩを使用してデジタルカメラ１００から画像ファイルを取得するためのプログラムを、不揮発性メモリ２０３から作業用メモリ２０４に展開し、実行する。
【００６３】
次に、Ｓ４０３において、制御部２０１は、通信部２１１を介して、製品情報を取得するＡＰＩであるRequestProductInfo３０１のリクエストをデジタルカメラ１００に送信する。
【００６４】
Ｓ４０４で、デジタルカメラ１００の制御部１０１は、通信部１１１を介してRequestProductInfo３０１のリクエストを受信したことを検知する。制御部１０１は、リクエストされたＡＰＩに対応するプログラムを実行することにより、製品情報を収集してレスポンス用データセットに含め、通信部１１１を介してスマートデバイス２００に送信する。製品情報の例としては、デジタルカメラ１００の製品名、製造者名、ファームウェアバージョン、シリアルナンバーなどであり、例えば不揮発性メモリ１０３から取得することができる。スマートデバイス２００は、通信部２１１を通じてデジタルカメラ１００の製品情報を受信する。
【００６５】
Ｓ４０５において、制御部２０１は、通信部２１１を介してRequestMemoryInfo３０２をデジタルカメラ１００にリクエストする。
【００６６】
Ｓ４０６において、制御部１０１は、通信部１１１を介してRequestMemoryInfo３０２のリクエストを受信したことを検知する。制御部１０１は、リクエストされたＡＰＩに対応するプログラムを実行することにより、保存領域ＩＤ、保存可能容量、空き容量、保存済みコンテンツ数を、作業用メモリ１０４や記録媒体１１０より取得する。そして、制御部１０１はこれらの情報をレスポンス用データセットに成形して、通信部１１１を介してスマートデバイス２００に送信する。スマートデバイス２００は、通信部２１１を通じてデジタルカメラ１００の保存領域の情報を受信する。
【００６７】
RequestProductInfo３０１およびRequestMemoryInfo３０２のＡＰＩを用いてデジタルカメラ１００の情報を取得したら、Ｓ４０７において制御部２０１は、デジタルカメラ１００と連携した動作をユーザに指定させるメニュー画面を表示部２０６に表示する。図５に、メニュー画面５０１の例を示す。メニュー画面５０１には例として「カメラ内の画像を見る」５０２、「リモート撮影する」５０３、「カメラの設定をする」５０４という連携動作を指定するためのボタンが含まれている。これらの連係動作は例示であり、他の連係動作を指定するためのボタンが含まれていてもよい。
【００６８】
操作部２０５（特にはタッチパネル）を介して、ユーザからいずれかのボタンが選択されると、制御部２０１は選択されたボタンに対応する連係動作を実現するプログラムを実行する。ここでは、「カメラ内の画像を見る」５０２が選択された場合のシーケンスについて、引き続き図４を参照して説明する。なお、本実施形態では、デジタルカメラ１００の保存領域（記録媒体１１０）にはコンテンツデータファイルとして、静止画データファイルが１００枚分保存されているものとする。
【００６９】
Ｓ４０７で表示したメニュー画面５０１を通じて、デジタルカメラ１００との連係動作「カメラ内の画像を見る」の実行指示（コンテンツデータの一覧表示指示）がＳ４０８でなされたとする。この指示に応答して制御部２０１はＳ４０９において、通信部２１１を介して、保存領域ＩＤとコンテンツフォーマットの種類と取得要求枚数とを引数とするＡＰＩ、RequestContentInfo３０３をデジタルカメラ１００にリクエストする。ここでは、領域ＩＤには記録媒体１１０を示すＩＤ、コンテンツフォーマットの種類には画像の種類（静止画）、取得要求枚数には、保存済みコンテンツデータの総数である１００をそれぞれ指定する。これらの引数は、RequestMemoryInfo３０２で取得した情報に基づいて指定することができる。なお、取得要求枚数として、記録媒体１１０に保存された「すべて」という指定を行ってもよいし、表示部２０６に一度に表示する最大数を指定してもよい。
【００７０】
Ｓ４１０において制御部１０１は、通信部１１１を介してRequestContentInfo３０３のリクエストを受信したことを検知する。制御部１０１は、リクエストされたＡＰＩに対応するプログラムを実行することにより、ＡＰＩの引数として指定された保存領域に保存された、指定された種類のコンテンツデータファイルの情報を、指定された数だけ、記録媒体１１０より取得する。
【００７１】
コンテンツデータファイルの情報は対応するディレクトリエントリに記録されている。従って、RequestContentInfo３０３の実行時、制御部１０１は、指定された保存領域ＩＤに応じて、
・作業用メモリ１０４に一時保存されたコンテンツデータファイルの管理情報、
・記録媒体１１０に保存されたコンテンツデータファイルの管理情報を記録したファイル、
・記録媒体１１０のファイルシステムに応じた、コンテンツデータファイルのディレクトリエントリ、
のいずれかを参照し、コンテンツデータファイルについて、ＩＤと基本情報（ファイル名、ファイルサイズ、ファイルの生成日時など）を取得する。制御部１０１は、取得した情報を作業用メモリ１０４に一時保存する。
【００７２】
そして、制御部１０１は、取得要求枚数分（１００枚）のコンテンツデータ情報から情報リストを生成する。制御部１０１は情報リストを作業用メモリ１０４に保存し終えた後、ファイルの生成日時を参照し、ファイルの生成日時が新しい方から古い方へ降順になるよう、作業用メモリ１０４内でコンテンツデータ情報をソートする。
【００７３】
Ｓ４１１において制御部１０１は、作業用メモリ１０４に一時保存した、ソート済みのコンテンツデータ情報リストをレスポンス用データセットに含め、通信部１１１を介してスマートデバイス２００に送信する。このように、本実施形態においてコンテンツデータの送信装置は、取得要求数分のコンテンツデータ情報をまとめて応答する。例えば、コンテンツデータの送信プロトコルとして従来用いられているＰＴＰ(Picture Transfer Protocol)やImageLinkを用いた場合、コンテンツデータごとに情報を要求する必要がある。従って、コンテンツデータの数に等しい回数、要求の送信と応答の受信を繰り返さなければならない。
【００７４】
また、従来のプロトコルにおいて、コンテンツＩＤ（ＰＴＰではオブジェクトハンドル）は、コンテンツデータファイルが生成されるごとに割り当てられるため、基本的には古いコンテンツデータから順に割り当てられる。従って、新しく生成されたコンテンツデータから順に情報を取得したい場合、クライアント（要求装置）側で要求する順序を決定しなければならない。
【００７５】
これに対し、本実施形態では、要求装置からは取得要求数のみを指定してコンテンツデータの情報を１回要求するだけで、生成日時が新しいコンテンツデータファイルから順に、かつ取得要求数分の情報（ＩＤおよび基本情報）が取得できる。そのため、複数のコンテンツデータファイルの情報を取得するために必要な処理負荷および時間を大幅に削減することができる。
【００７６】
Ｓ４１２においてスマートデバイス２００の制御部２０１は、Ｓ４１１のレスポンスによって取得したコンテンツデータ情報リストを参照し、表示するコンテンツデータを特定する情報（ＩＤ）を取得する。そして、制御部２０１は、引数のＩＤに、表示対象のコンテンツデータファイルのＩＤを指定したコンテンツデータファイルの取得ＡＰＩ（RequestContent３０４）をリクエストする。本実施形態では、スマートデバイス２００の表示部２０６に、生成日時が新しい順にコンテンツデータのサムネイル一覧を表示するものとする。そのため、制御部２０１は、リクエストするＡＰＩの引数のコンテンツサイズに、サムネイル画像を取得するためのパラメータを指定する。
【００７７】
Ｓ４１３において、デジタルカメラ１００の制御部１０１は、通信部１１１を介してRequestContent３０４のリクエストを受信したことを検知する。制御部１０１は、リクエストされたＡＰＩに対応するプログラムを実行することにより、ＡＰＩの引数を参照し、ＩＤに対応したコンテンツデータファイルを記録媒体１１０より取得し、作業用メモリ１０４に保存する。ＡＰＩの引数に指定されたコンテンツサイズのコンテンツデータ（サムネイル画像）がコンテンツデータファイルに内包されている場合、制御部１０１はその部分のみを抽出して作業用メモリ１０４に保存する。一方、サムネイル画像がコンテンツデータファイルに含まれていない場合、制御部１０１はコンテンツデータを指定されたサイズに加工して作業用メモリ１０４に保存する。
【００７８】
そして制御部１０１は、指定されたＩＤに対応するコンテンツデータファイルの、指定されたサイズのコンテンツデータを、レスポンス用データセットに含め、通信部１１１を介してスマートデバイス２００に送信する。
【００７９】
スマートデバイス２００は、Ｓ４１２、Ｓ４１３の処理を、取得要求枚数に等しい回数（１００回）繰り返して、すべての表示用サムネイル画像を取得もしくは生成する。この時、制御部１０１は、コンテンツデータ情報リストに含まれる先頭のファイルエントリのＩＤから順番にRequestContent３０４をリクエストする。上述の通り、操作部１０５はコンテンツデータ情報を生成日時の新しいものから古いものにソートしている。そのため、スマートデバイス２００の制御部２０１は生成日時を考慮することなく、順番にサムネイル画像を要求すれば、生成日時が新しいコンテンツデータのサムネイルから順に表示することができる。
【００８０】
なお、本実施形態では、記録媒体１１０に保存されたすべての（静止画）コンテンツデータファイルのサムネイルを取得したが、スマートデバイス２００が表示部２０６に一度に表示できるサムネイルの数だけＳ４１２、Ｓ４１３の処理を繰り返してもよい。この場合、制御部２０１は、一覧表示画面がスクロールされるなど、表示されていないサムネイルが必要となった時点で必要なサムネイルを要求する。
【００８１】
Ｓ４１４において制御部２０１は、例えば図５（ｂ）に示すような一覧表示画面５０５に、取得したサムネイルを取得順に並べて表示する。前述したように、このサムネイル一覧は対応するコンテンツデータの生成日時が新しい順に表示されることになる。サムネイルのどれかが選択された場合、制御部２０１は対応するコンテンツデータのより大きなサイズを、RequestContent３０４のリクエストによって取得して表示部２０６に表示する。
このようにして、スマートデバイス２００は、デジタルカメラ１００と接続して、コンテンツファイルを取得することができる。
【００８２】
＜デジタルカメラ１００の動作＞
図６は、図４のシーケンスチャートにおけるデジタルカメラ１００の処理を取り出して示したフローチャートである。以下の説明において、図４の説明と重複する説明は省略する。
Ｓ６０１において、制御部１０１は、通信部１１１を通じてスマートデバイス２００の通信部２１１と通信し、無線ローカルエリアネットワーク（ＬＡＮ）接続を確立する。本処理はＳ４０１におけるデジタルカメラ１００の処理に対応する。
【００８３】
Ｓ６０２において制御部１０１は、ディスカバリ処理を行う。本処理は、Ｓ４０２におけるデジタルカメラ１００の処理に相当する。
Ｓ６０３において制御部１０１は、通信部１１１を介してＡＰＩのリクエストを受信したか否かを判定し、受信していれば処理をＳ６０４に進め、受信していなければＳ６０３の処理を繰り返す。
【００８４】
Ｓ６０４において制御部１０１は、RequestProductInfo３０１のリクエストを受信したか否かを判定し、受信していれば処理をＳ６０５に進め、受信していなければ処理をＳ６０８に進める。
Ｓ６０５において制御部１０１は、RequestProductInfo３０１の処理を実行する。本処理は、Ｓ４０４におけるデジタルカメラ１００の処理に相当する。
【００８５】
Ｓ６０６において制御部１０１は、ＡＰＩの実行により取得された情報・データを、スマートデバイス２００へレスポンスとして送信するための所定のデータ形式にしたのち、通信部１１１を通じてスマートデバイス２００に送信する。
【００８６】
Ｓ６０７において制御部１０１は、ＡＰＩサービスを終了する指示を受信したか否かを判定し、受信していればＡＰＩサービスを実行するためのプログラムを終了する。ＡＰＩサービスを終了する指示を受信していなければ、制御部１０１は処理をＳ６０３に戻して次のＡＰＩリクエストの受信を待機する。
【００８７】
Ｓ６０８において制御部１０１は、RequestMemoryInfo３０２のリクエストを受信したか否かを判定し、受信していれば処理をＳ６０９に進め、受信していなければ処理をＳ６１０に進める。
Ｓ６０９において制御部１０１は、RequestMemoryInfo３０２の処理を実行する。本処理は、Ｓ４０６におけるデジタルカメラ１００の処理に対応する。
【００８８】
Ｓ６１０において制御部１０１は、RequestContentInfo３０３のリクエストを受信したか否かを判定し、受信していれば処理をＳ６１１に進め、受信していなければ処理をＳ６１４に進める。
Ｓ６１１において制御部１０１は、RequestContentInfo３０３のリクエスト引数を確認する。Ｓ６１２において制御部１０１は、確認した引数に基づいてコンテンツデータの情報を取得する。
Ｓ６１３において制御部１０１は、取得したコンテンツデータ情報を、コンテンツデータの生成日時が新しい順に並べ替える。Ｓ６１１，Ｓ６１２，Ｓ６１３の処理は図４のＳ４１０におけるデジタルカメラ１００の処理に対応する。
【００８９】
Ｓ６１４において制御部１０１は、RequestContent３０４のリクエストを受信したか否かを判定し、受信していれば処理をＳ６１５に進め、受信していなければ処理をＳ６１７に進める。
Ｓ６１５において制御部１０１は、RequestContent３０４のリクエスト引数を確認する。Ｓ６１６において制御部１０１は、リクエスト引数に基づいてコンテンツデータファイルを記録媒体１１０から取得し、作業用メモリ１０４に展開する。また、制御部１０１は、必要に応じて、リクエスト引数で指定されたサイズにコンテンツデータを加工する。Ｓ６１５、Ｓ６１６の処理は図４のＳ４１３におけるデジタルカメラ１００の処理に対応する。
【００９０】
Ｓ６１７において制御部１０１は、RequestContentDetailInfo３０５のリクエストを受信したか否かを判定し、受信していれば処理をＳ６１８に進め、受信していなければ処理をＳ６２０に進める。
Ｓ６１８において制御部１０１は、RequestContentDetailInfo３０５のリクエスト引数を確認する。Ｓ６１９において制御部１０１は、リクエスト引数に基づいてコンテンツデータの詳細情報を例えばコンテンツデータファイルのヘッダから取得し、作業用メモリ１０４に展開する。
【００９１】
Ｓ６２０において制御部１０１は、デジタルカメラ１００がＡＰＩサービスとして用意していないＡＰＩをスマートデバイス２００がリクエストしたと判定し、エラーである旨をレスポンスとして通信部１１１を通じてスマートデバイス２００に送信する。
【００９２】
なお、本実施形態では、図３（ａ）で説明したＡＰＩ３０１〜３０５をＡＰＩサービスとして提供することを前提に説明したが、ＡＰＩサービスで提供するＡＰＩの種類はこれらに限定されない。例えば、図５（ａ）に示した「リモート撮影をする」および「カメラの設定をする」等の連係動作を実現するためのＡＰＩが提供されてもよい。新たなＡＰＩの提供はデジタルカメラ１００で実行するＡＰＩプログラムの追加により実現可能である。
【００９３】
＜スマートデバイス２００の動作＞
図７は、図４のシーケンスチャートにおけるスマートデバイス２００の処理を取り出して示したフローチャートである。以下の説明において、図４の説明と重複する説明は省略する。以下の動作は、制御部２０１がスマートデバイス２００にインストールされている、デジタルカメラ１００との連係動作用アプリケーション（通信アプリ）を実行することにより実現される。
【００９４】
Ｓ７０１において、制御部２０１は、通信部２１１を通じてデジタルカメラ１００の通信部１１１と通信し、無線ローカルエリアネットワーク（ＬＡＮ）接続を確立する。本処理はＳ４０１におけるスマートデバイス２００の処理に対応する。
【００９５】
Ｓ７０２において制御部２０１は、ディスカバリ処理を行う。本処理は、Ｓ４０２におけるスマートデバイス２００の処理に相当する。
Ｓ７０３において制御部２０１は、RequestProductInfo３０１のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ４０３におけるスマートデバイス２００の処理に対応する。
【００９６】
Ｓ７０４において制御部２０１は、リクエストしたＡＰＩのレスポンスの受信を待機する。図７（ｂ）に、レスポンス待機処理のフローチャートを示す。
Ｓ７２１にて制御部２０１は、ＡＰＩのレスポンスを受信したか否か判定し、受信していればＳ７２２に、受信していなければＳ７２３に、それぞれ処理を進める。
Ｓ７２２において制御部２０１は、受信したレスポンスを解析し、必要に応じて作業用メモリ２０４に保存し、その後のＡＰＩリクエストに用いる引数として参照したり、ＵＩ表示時の情報として利用したりする。なお、受信したレスポンスがエラーを示すものであれば、制御部２０１はＡＰＩの再リクエストを行うか、デジタルカメラ１００との連携動作のためのアプリケーションプログラムを終了する。
【００９７】
Ｓ７２３において制御部２０１は、予め設定されたタイムアップの時間が経過したか否かを判定する。本実施形態では、ＡＰＩリクエストの送信からレスポンスを受信するまでの待ち時間の上限がタイムアップ時間として予め設定され、デジタルカメラ１００のからレスポンスを受信する前にタイムアップ時間が経過すると、制御部２０１は処理をＳ７２４に進める。ＡＰＩリクエストからタイムアップ時間が経過していなければ、制御部２０１は処理をＳ７２１に戻す。
Ｓ７２４で制御部２０１は、表示部２０６にエラーメッセージを表示し、ＡＰＩリクエストが正常に実行されなかったことをユーザに報知する。この場合、エラーメッセージの表示画面からデジタルカメラ１００との連携動作の再試行をユーザが指定できるようにし、再試行指示があればＳ７０３に処理を戻してもよい。また、処理を中止する旨の指示があれば、図７の処理を終了してもよい。
【００９８】
次に、Ｓ７０５において制御部２０１は、RequestMemoryInfo３０２のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ４０５におけるスマートデバイス２００の処理に対応する。
Ｓ７０６において制御部２０１は、Ｓ７０４と同様に、リクエストしたＡＰＩのレスポンス受信を待機する。ここでの待機処理では、Ｓ７２４で再試行指示があった場合、Ｓ７０５から再試行する。
【００９９】
Ｓ７０７において制御部２０１は、表示部２０６にメニュー画面５０１を表示する。本処理はＳ４０７におけるスマートデバイス２００の処理に対応する。
Ｓ７０８において制御部２０１は、ユーザ操作によりコンテンツ一覧表示を指示されたか否かを判定する。本実施形態において制御部２０１はメニュー画面５０１の「カメラ内の画像を見る」ボタン５０２が選択されたか否かを判定し、選択された場合には処理をＳ７０９に進め、選択されていなければ選択されるまで待機する。
【０１００】
Ｓ７０９において制御部２０１は、RequestContentInfo３０３のリクエストをデジタルカメラ１００に送信する。本処理は、Ｓ４０９におけるスマートデバイス２００の処理に対応する。
Ｓ７１０において制御部２０１は、Ｓ７０４と同様に、リクエストしたＡＰＩのレスポンス受信を待機する。ここでの待機処理では、Ｓ７２４で再試行指示があった場合、Ｓ７０９から再試行する。
【０１０１】
Ｓ７１１において制御部２０１は、RequestContentInfo３０３を繰り返しリクエストする必要があるか否かを判定し、必要があると判定されれば処理をＳ７０９に戻し、必要があると判断されなければ処理をＳ７１２に進める。本実施形態においては、記録媒体１１０に保存されているコンテンツデータファイルの数が、１回のリクエストで取得可能な数の上限値（１００）以下であるため、全コンテンツデータの情報を取得する場合でもＡＰＩを繰り返しリクエストする必要はない。しかし、ＡＰＩの上限値を超える数のコンテンツデータについて情報を取得する必要がある場合には、ＡＰＩのリクエストを繰り返し行う必要がある。
【０１０２】
Ｓ７１２において制御部２０１は、RequestContent３０４をデジタルカメラ１００に送信する。本処理はＳ４１２におけるスマートデバイス２００の処理に対応する。
Ｓ７１３において制御部２０１は、Ｓ７０４と同様に、リクエストしたＡＰＩのレスポンス受信を待機する。ここでの待機処理では、Ｓ７２４で再試行指示があった場合、Ｓ７１２から再試行する。
【０１０３】
Ｓ７１４において制御部２０１は、RequestContent３０４を繰り返しリクエストする必要があるか否かを判定し、必要があると判定されれば処理をＳ７１２に戻し、必要があると判断されなければ処理をＳ７１５に進める。なお、本実施形態においては、記録媒体１１０に保存された全静止画データファイルのサムネイルを取得したため、RequestContent３０４を１００回繰り返しリクエストした。しかし、スマートデバイス２００の表示部２０６に一度に表示できる数だけサムネイルを取得する場合には、表示数に等しい回数リクエストを繰り返せばよい。このように、繰り返し回数は、スマートデバイス２００においてどのような表示制御を行うかに応じて決定する。
【０１０４】
Ｓ７１５において制御部２０１は、取得したサムネイルを用いて、図５（ｂ）に示したような一覧表示画面５０５を表示部２０６に表示する。本処理はＳ４１４におけるスマートデバイス２００の処理に対応する。
【０１０５】
以上説明したように本実施形態によれば、コンテンツデータを有する電子機器が、複数のコンテンツデータのＩＤおよび基本情報をまとめて取得可能なサービスを外部装置に提供するようにした。そのため、外部装置が複数のコンテンツデータの情報を取得するのに必要な要求回数を減らすことができる。また、複数のコンテンツデータの情報が要求された場合、コンテンツデータを有する電子機器は、生成日時が新しいコンテンツデータの情報から順に並び替えて送信するようにした。そのため、コンテンツデータの情報を取得する電子機器は、取得した情報の先頭から順にコンテンツデータを要求すれば、生成日時の新しい順にコンテンツデータを取得することができる。従って、コンテンツデータを取得する電子機器における処理を大幅に簡略化することができる。
【０１０６】
●（第２の実施形態）
次に、本発明の第２の実施形態について説明する。第１の実施形態では、複数のコンテンツデータの情報が要求された場合、デジタルカメラ１００は生成日時が新しいコンテンツデータの情報から順に並ぶようにコンテンツデータの情報リストを作成した。本実施形態では、並び替えの方法をＡＰＩリクエストの引数で指定可能にした点を特徴とする。デジタルカメラ１００およびスマートデバイス２００の構成については第１の実施形態と共通でよいため説明を省略する。
【０１０７】
図３（ｂ）は、外部装置からデジタルカメラ１００を制御するためのＡＰＩのうち、デジタルカメラ１００の保存領域に保存されているコンテンツＩＤとコンテンツデータファイルの基本情報を外部装置が取得できるようにするＡＰＩの例を示す図である。
【０１０８】
ＡＰＩ８０１(RequestContentInfo2)は、第１の実施形態における同様のＡＰＩ３０３(RequestContentInfo)と比較すると、引数にソート条件が追加されている点で異なる。本実施形態では、ソート条件として、コンテンツデータファイル番号順（先頭から昇順）、生成日時順（新しい方から古い方へ降順）が指定できるものとするが、デジタルカメラ１００が提供可能であればこれ以外の条件が指定できても構わない。他の引数、１度のリクエストで情報を取得可能なコンテンツデータの上限数、およびレスポンスで得られる情報の内容については第１の実施形態で説明したRequestContentInfo３０３と同様である。
【０１０９】
スマートデバイス２００がデジタルカメラ１００と接続して、デジタルカメラ１００の記録媒体１１０に保存されたコンテンツデータの一覧を表示部２０６に表示する際の動作は、基本的に図４のシーケンス図を参照して説明した通りである。ただし、RequestContentInfo３０３に代えてRequestContentInfo2 ８０１を用いることにより、Ｓ４０８，Ｓ４１０，およびＳ４１４での動作が一部異なる。
【０１１０】
すなわち、Ｓ４０８において制御部２０１がＡＰＩRequestContentInfo２ ８０１をデジタルカメラ１００にリクエストする際、保存領域ＩＤ、コンテンツフォーマットの種類、および取得要求枚数に加え、ソート条件を引数に指定する。ここでは、ソート条件としてコンテンツデータファイルのファイル番号順（先頭から昇順）を指定するものとするが、他の条件が指定されてもよい。また、ソート条件は予めスマートデバイス２００のアプリケーションで予め規定されたものであっても、ユーザが選択可能であってもよい。
【０１１１】
Ｓ４１０において制御部１０１は、通信部１１１を介してRequestContentInfo2 ８０１のリクエストを受信したことを検知する。制御部１０１は、リクエストされたＡＰＩに対応するプログラムを実行することにより、ＡＰＩの引数として指定された保存領域に保存された、指定された種類のコンテンツデータファイルの情報を、指定された数だけ、記録媒体１１０より取得する。
【０１１２】
そして、制御部１０１は、取得要求数のコンテンツデータ情報から情報リストを生成し、作業用メモリ１０４に保存する。そして、制御部１０１は、ＡＰＩの引数として指定されたソート条件（ここではファイル番号が昇順になるようにソート）に従って、作業用メモリ１０４内でコンテンツデータ情報をソートする。
【０１１３】
Ｓ４１４において制御部２０１は、例えば図５（ｂ）に示すような一覧表示画面５０５に、取得したサムネイルをファイル番号が先頭（最も小さい）のものから順に並べて表示する。例えば、サムネイルのどれかが選択された場合、制御部２０１は対応するコンテンツデータのより大きなサイズを、RequestContent３０４のリクエストによって取得して表示部２０６に表示する。
このようにして、スマートデバイス２００は、デジタルカメラ１００と接続して、コンテンツファイルを取得することができる。
【０１１４】
＜デジタルカメラ１００の動作＞
図８は、本実施形態におけるデジタルカメラ１００の処理を取り出して示したフローチャートであり、図６と同様の動作を行うステップについては同じ参照数字を付して説明を省略する。RequestContentInfo３０３の処理を行うＳ６１０〜Ｓ６１３の代わりに、RequestContentInfo2 ８０１の処理を行うＳ１０１０〜Ｓ１０１７を有する点で図６と異なるため、Ｓ１０１０〜Ｓ１０１７の処理について説明する。
【０１１５】
Ｓ１０１０において制御部１０１は、RequestContentInfo2 ８０１のリクエストを受信したか否かを判定し、受信していれば処理をＳ１０１１に進め、受信していなければ処理をＳ６１４に進める。Ｓ１０１１、Ｓ１０１２は、Ｓ６１１、Ｓ６１２と同様の処理するため説明は割愛する。
【０１１６】
Ｓ１０１３において制御部１０１は、RequestContentInfo2 ８０１の引数に指定されたソート条件が生成日時順であるか否かを判定し、生成日時順であれば処理をＳ１０１４へ進め、生成日時順でなければ処理をＳ１０１５へ進める。
Ｓ１０１４において制御部１０１は、取得したコンテンツデータ情報を、コンテンツデータの生成日時の新しいものから古いものの順（降順）に並べ替え、作業用メモリ１０４内に保存する。
【０１１７】
Ｓ１０１５において制御部１０１は、RequestContentInfo2 ８０１の引数に指定されたソート条件がコンテンツデータファイルのファイル番号順であるか否かを判定し、ファイル番号順であればＳ１０１６へ、そうでない場合はＳ１０１７へ、処理を進める。
Ｓ１０１６において、制御部１０１は、取得したコンテンツデータ情報を、コンテンツデータファイルのファイル番号の順（昇順）に並べ替え、作業用メモリ１０４内に保存する。
【０１１８】
Ｓ１０１７において制御部１０１は、取得したコンテンツデータ情報を、予め定められたソート条件に従って並べ替え、作業用メモリ１０４内に保存する。Ｓ１０１７が実行されるのは引数にソート条件が指定されていない場合であり、この場合はデジタルカメラ１００で予め定められたソート条件が用いられる。
【０１１９】
＜スマートデバイス２００の動作＞
図９は、本実施形態におけるスマートデバイス２００の処理を取り出して示したフローチャートであり、図７と同様の動作を行うステップについては同じ参照数字を付して説明を省略する。RequestContentInfo３０３のリクエストを行うＳ７０９の代わりに、RequestContentInfo2 ８０１のリクエストを行うＳ１１０９〜Ｓ１１１３を有する点で図７と異なるため、Ｓ１１０９〜Ｓ１１１３の処理について説明する。以下の動作も、制御部２０１が通信アプリを実行することにより実現される。
【０１２０】
Ｓ１１０９において制御部２０１は、通信アプリに設定されているソート条件が生成日時順であるか否かを判定し、生成日時順が設定されていればＳ１１１０へ、そうでなければＳ１１１１へ、処理を進める。
Ｓ１１１０において制御部２０１は、ソート条件に生成日時順を指定したRequestContentInfo２８０１のリクエストをデジタルカメラ１００に送信する。
【０１２１】
Ｓ１１１１において制御部２０１は、通信アプリに設定されているソート条件がファイル番号順であるか否かを判定し、ファイル番号順が設定されていればＳ１１１２へ、そうでなければＳ１１１３へ、処理を進める。
Ｓ１１１２において制御部２０１は、ソート条件にファイル番号順を指定したRequestContentInfo２８０１のリクエストをデジタルカメラ１００に送信する。
【０１２２】
Ｓ１１１３において制御部２０１は、ソート条件を指定せずにRequestContentInfo２８０１のリクエストをデジタルカメラ１００に送信する。
【０１２３】
以上説明したように本実施形態によれば、第１の実施形態と同様の構成に加え、外部装置が複数のコンテンツデータの情報を取得する際にソート条件を指定できるようにした。そのため、外部装置におけるコンテンツデータの情報の用途に応じて、適切な並びでコンテンツデータの情報を得ることができる。そのため、コンテンツデータの情報を取得する電子機器は、取得した情報の先頭から順にコンテンツデータを要求すれば、用途に適切な順序でコンテンツデータを取得することができる。本実施形態によれば、コンテンツデータを取得する電子機器における処理を大幅に簡略化することができるのに加え、外部装置でのさまざまな用途に適切な順序でコンテンツデータの情報を提供可能になる。
【０１２４】
●（第３の実施形態）
第２の実施形態では、スマートデバイス２００の通信アプリが、デジタルカメラ１００の提供するソート条件を予め知っていることを前提として、ＡＰＩの引数にソート条件を指定する構成を説明した。しかし、デジタルカメラ１００が提供するソート条件を取得するようにしてもよい。
【０１２５】
例えば、デジタルカメラ１００が機器情報(Device Description)の中で、提供するＡＰＩサービスの情報として、提供するソート条件の情報を提供してもよい。あるいは、提供するソート条件を外部装置が取得できるＡＰＩをデジタルカメラ１００が公開し、外部装置がコンテンツデータ情報を取得する前にこのＡＰＩをリクエストして指定可能なソート条件を取得可能にしてもよい。また、予めデバイスの種類やプログラムの種類とソート条件とを対応付けしておき、スマートデバイス２００が、RequestProductInfo３０１のリクエストを実行して取得したデバイス情報に基づいてソート条件を指定してもよい。
【０１２６】
（その他の実施形態）
上述の実施形態では、ソート条件としてコンテンツデータファイルの生成日時を例示した。しかし、撮影された静止画コンテンツや動画コンテンツのように、データファイルの生成日時とは別個に撮影日時がパラメータとして存在する場合、撮影日時をソート条件として指定可能であってもよい。
【０１２７】
また、上述の実施形態では、RequestContentInfo３０３をリクエストする際、取得要求数として取得数を引数に指定した。例えば、コンテンツデータファイルの基本情報をソート条件順の先頭から５０取得する場合は、取得要求数として５０を引数に指定していた。
このように、上述の実施形態では、各々のソート条件順の先頭から、指定された数のコンテンツデータファイルのコンテンツＩＤ及び基本情報を取得するＡＰＩの構成を説明したが、他の形態として、取得要求数を取得範囲で指定するＡＰＩであってもよい。
【０１２８】
例えば、RequestMemoryInfo３０２のレスポンスで取得する保存済みコンテンツ数が１００であり、指定したソート条件順の先頭から５１〜１００番目の５０のコンテンツデータファイルのコンテンツＩＤ及び基本情報を取得する場合を考える。この場合には、取得要求数として５１−１００という範囲を示す値をＡＰＩの引数に指定してもよい。
また他の形態として、ＡＰＩの引数に指定する取得要求数は、取得開始の起点となるコンテンツデータファイルの順番と、起点からの取得数の組み合わせで指定する形態であってもよい。例えば上述の例であれば、ＡＰＩの引数に、起点の順番を５１で指定し、取得数を５０で指定する形態であってもよい。
【０１２９】
上述の実施形態では、ソート条件順の先頭ではないコンテンツデータファイルのコンテンツＩＤ及び基本情報を取得する場合、デジタルカメラ１００に保存されているコンテンツ総数によってはRequestContentInfo３０３を複数回リクエストする必要がある。これに対し、取得開始の起点を指定可能な本実施形態では、１回のリクエストで取得することが可能である。
【０１３０】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１３１】
１００…デジタルカメラ、１０１…制御部、１０２…撮像部、１１１…通信部、２００…スマートデバイス、２０１…制御部、２１１…通信部
【図１】
0006504768.tif 000002
【図２】
0006504768.tif 000003
【図３】
0006504768.tif 000004
【図４】
0006504768.tif 000005
【図５】
0006504768.tif 000006
【図６】
0006504768.tif 000007
【図７】
0006504768.tif 000008
【図８】
0006504768.tif 000009
【図９】
0006504768.tif 000010