diff options
Diffstat (limited to 'include/media/mediascanner.h')
-rw-r--r-- | include/media/mediascanner.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/include/media/mediascanner.h b/include/media/mediascanner.h index 5d0122d..fbef1db 100644 --- a/include/media/mediascanner.h +++ b/include/media/mediascanner.h @@ -23,6 +23,7 @@ namespace android { class MediaScannerClient; +class StringArray; class MediaScanner { @@ -35,6 +36,7 @@ public: status_t processFile(const char *path, const char *mimeType, MediaScannerClient& client); status_t processDirectory(const char *path, const char* extensions, MediaScannerClient& client, ExceptionCheck exceptionCheck, void* exceptionEnv); + void setLocale(const char* locale); // extracts album art as a block of data char* extractAlbumArt(int fd); @@ -45,16 +47,36 @@ private: status_t doProcessDirectory(char *path, int pathRemaining, const char* extensions, MediaScannerClient& client, ExceptionCheck exceptionCheck, void* exceptionEnv); void initializeForThread(); + + // current locale (like "ja_JP"), created/destroyed with strdup()/free() + char* mLocale; }; class MediaScannerClient { public: - virtual ~MediaScannerClient() {} + MediaScannerClient(); + virtual ~MediaScannerClient(); + void setLocale(const char* locale); + void beginFile(); + bool addStringTag(const char* name, const char* value); + void endFile(); + virtual bool scanFile(const char* path, long long lastModified, long long fileSize) = 0; virtual bool handleStringTag(const char* name, const char* value) = 0; virtual bool setMimeType(const char* mimeType) = 0; + +protected: + void convertValues(uint32_t encoding); + +protected: + // cached name and value strings, for native encoding support. + StringArray* mNames; + StringArray* mValues; + + // default encoding based on MediaScanner::mLocale string + uint32_t mLocaleEncoding; }; }; // namespace android |