/*--------------------------------------------------------------------------- Project: ImageDb File: ImageIOSearch.h 写真の列挙検索を提供します。 ---------------------------------------------------------------------------*/ #ifndef IMAGE_IO_SEARCH_H_ #define IMAGE_IO_SEARCH_H_ #include #include "ImageIOTypes.h" namespace imgdb { namespace search { /*!---------------------------------------------------------------------- @brief 写真検索機能の初期化を行う @details 写真の列挙検索を利用する前に1度だけ呼び出す必要があります。
imgdb::Initialize()後に呼び出す必要があります。
本関数を呼び出すと Finalize() が呼ばれるまで 24KB 程のメモリ消費されます。 -----------------------------------------------------------------------*/ void Initialize(); /*!---------------------------------------------------------------------- @brief 写真検索機能を終了させる @details imgdb::Finalize()前に呼び出してください。 -----------------------------------------------------------------------*/ void Finalize(); /*!---------------------------------------------------------------------- @brief ImageDb に管理されている写真を検索する @details ImageDb に管理されている写真を検索し、その結果を内部に保存します。
検索した結果は GetTitleUniqueId() や GetPath() などにインデックスを指定 して取得できます。
検索結果は撮影日時をもとに昇順で並んでいます(インデックスが小さいと古 い写真、大きいと新しい写真)。
PC上でSDカードに直接写真を追加削除された場合などに、それらの写真を管理す るためには、CollectPicture()を呼び出す必要があります。
SDカードが存在しない、または認識できていない場合は、検索結果ゼロとして 正常終了します。
内部で保存されている検索結果は、以下のイベントや操作で無効になります。
無効な状態で Get〜() を呼び出すと、アサートの発生や間違った情報を返す場 合があるため、呼び出しは避けてください。
再度 SearchPicture() で検索しなおすことで有効な状態に戻ります。
・SDカードが差されたとき
・SDカードが抜かれたとき
・JpegSaver/MpSaverで写真を保存したとき
・DeletePicture()で写真を削除したとき
・CollectPicture()で管理ファイルを更新したとき
・HOMEメニューから戻ったとき(HOMEメニューカメラで撮影された可能性があるため) -----------------------------------------------------------------------*/ void SearchPicture(); /*!---------------------------------------------------------------------- @brief 検索結果の写真枚数を取得する @return 見つかった写真枚数 @details 1枚も写真が見つからなかった場合はゼロを返します。 -----------------------------------------------------------------------*/ int GetResultNum(); /*!---------------------------------------------------------------------- @brief タイトルユニークIDを取得する @param[in] nIndex 取得するデータのインデックス [0, GetResultNum()) @return タイトルユニークID -----------------------------------------------------------------------*/ u32 GetTitleUniqueId(int nIndex); /*!---------------------------------------------------------------------- @brief 写真のパスを取得する @param[out] pPath パスを格納するバッファ(ヌル不可) @param[in] nSize パスを格納するバッファのサイズ(文字数単位) @param[in] nIndex 取得するデータのインデックス [0, GetResultNum()) @details pPathとnSizeはc_nMaxPathSize以上のバッファを指定する必要があります。 バッファが不足している場合はアサートが発生します。 -----------------------------------------------------------------------*/ void GetPath(wchar_t* pPath, int nSize, int nIndex); /*!---------------------------------------------------------------------- @brief 写真の種類を取得する @param[in] nIndex 取得するデータのインデックス [0, GetResultNum()) @return 写真の種類 -----------------------------------------------------------------------*/ imgio::ImageKind GetImageKind(int nIndex); /*!---------------------------------------------------------------------- @brief 撮影日時情報を取得する @param[in] nIndex 取得するデータのインデックス [0, GetResultNum()) @return 撮影日時情報 -----------------------------------------------------------------------*/ nn::fnd::DateTime GetDateTime(int nIndex); } // end of namespace search } // end of namespace imgdb #endif // IMAGE_ENUMERATOR_H_