MediaScannerClient.cpp revision 544ad2be674423238c47650d2c8588ba7dfc9ed2
1/* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17//#define LOG_NDEBUG 0 18#define LOG_TAG "MediaScannerClient" 19#include <utils/Log.h> 20 21#include <media/mediascanner.h> 22 23#include "CharacterEncodingDetector.h" 24#include "StringArray.h" 25 26namespace android { 27 28MediaScannerClient::MediaScannerClient() 29 : mEncodingDetector(NULL) 30{ 31} 32 33MediaScannerClient::~MediaScannerClient() 34{ 35 delete mEncodingDetector; 36} 37 38void MediaScannerClient::setLocale(const char* locale) 39{ 40 mLocale = locale; // not currently used 41} 42 43void MediaScannerClient::beginFile() 44{ 45 delete mEncodingDetector; 46 mEncodingDetector = new CharacterEncodingDetector(); 47} 48 49status_t MediaScannerClient::addStringTag(const char* name, const char* value) 50{ 51 mEncodingDetector->addTag(name, value); 52 return OK; 53} 54 55void MediaScannerClient::endFile() 56{ 57 mEncodingDetector->detectAndConvert(); 58 59 int size = mEncodingDetector->size(); 60 if (size) { 61 for (int i = 0; i < size; i++) { 62 const char *name; 63 const char *value; 64 mEncodingDetector->getTag(i, &name, &value); 65 handleStringTag(name, value); 66 } 67 } 68} 69 70} // namespace android 71