| Index: chrome/browser/media_galleries/fileapi/media_path_filter.h
|
| ===================================================================
|
| --- chrome/browser/media_galleries/fileapi/media_path_filter.h (revision 247534)
|
| +++ chrome/browser/media_galleries/fileapi/media_path_filter.h (working copy)
|
| @@ -5,10 +5,13 @@
|
| #ifndef CHROME_BROWSER_MEDIA_GALLERIES_FILEAPI_MEDIA_PATH_FILTER_H_
|
| #define CHROME_BROWSER_MEDIA_GALLERIES_FILEAPI_MEDIA_PATH_FILTER_H_
|
|
|
| +#include <string>
|
| #include <vector>
|
|
|
| +#include "base/containers/hash_tables.h"
|
| #include "base/files/file_path.h"
|
| #include "base/sequence_checker.h"
|
| +#include "chrome/browser/media_galleries/media_scan_types.h"
|
|
|
| // This class holds the list of file path extensions that we should expose on
|
| // media filesystem.
|
| @@ -16,17 +19,32 @@
|
| public:
|
| MediaPathFilter();
|
| ~MediaPathFilter();
|
| +
|
| + // Returns true if |path| is a media file.
|
| bool Match(const base::FilePath& path);
|
|
|
| + // Returns the type of |path| or MEDIA_GALLERY_SCAN_FILE_TYPE_UNKNOWN if it
|
| + // is not a media file.
|
| + MediaGalleryScanFileType GetType(const base::FilePath& path);
|
| +
|
| private:
|
| typedef std::vector<base::FilePath::StringType> MediaFileExtensionList;
|
| + typedef base::hash_map<base::FilePath::StringType, MediaGalleryScanFileType>
|
| + MediaFileExtensionMap;
|
|
|
| void EnsureInitialized();
|
|
|
| + static void GetMediaExtensionList(const std::string& mime_type,
|
| + MediaFileExtensionList* extensions);
|
| +
|
| + void AddExtensionsToMediaFileExtensionMap(
|
| + const MediaFileExtensionList& extensions,
|
| + MediaGalleryScanFileType type);
|
| +
|
| // Checks |initialized_| is only accessed on one sequence.
|
| base::SequenceChecker sequence_checker_;
|
| bool initialized_;
|
| - MediaFileExtensionList media_file_extensions_;
|
| + MediaFileExtensionMap media_file_extensions_map_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MediaPathFilter);
|
| };
|
|
|