// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/chromeos/gdata/drive_file_formats.h" #include "base/basictypes.h" namespace gdata { namespace { // Used to convert an extension to DriveFileFormat. struct DriveFileFormatMap { DriveFileFormat file_format; const FilePath::CharType* extension; }; const DriveFileFormatMap kDriveFileFormatMap[] = { { FILE_FORMAT_AAC, FILE_PATH_LITERAL(".AAC") }, { FILE_FORMAT_ASF, FILE_PATH_LITERAL(".ASF") }, { FILE_FORMAT_AVI, FILE_PATH_LITERAL(".AVI") }, { FILE_FORMAT_CSV, FILE_PATH_LITERAL(".CSV") }, { FILE_FORMAT_DOC, FILE_PATH_LITERAL(".DOC") }, { FILE_FORMAT_DOCX, FILE_PATH_LITERAL(".DOCX") }, { FILE_FORMAT_FLV, FILE_PATH_LITERAL(".FLV") }, { FILE_FORMAT_JPG, FILE_PATH_LITERAL(".JPG") }, { FILE_FORMAT_MJPG, FILE_PATH_LITERAL(".MJPG") }, { FILE_FORMAT_MOV, FILE_PATH_LITERAL(".MOV") }, { FILE_FORMAT_MP3, FILE_PATH_LITERAL(".MP3") }, { FILE_FORMAT_MP4, FILE_PATH_LITERAL(".MP4") }, { FILE_FORMAT_MPG, FILE_PATH_LITERAL(".MPG") }, { FILE_FORMAT_PDF, FILE_PATH_LITERAL(".PDF") }, { FILE_FORMAT_PPT, FILE_PATH_LITERAL(".PPT") }, { FILE_FORMAT_PPTX, FILE_PATH_LITERAL(".PPTX") }, { FILE_FORMAT_PSD, FILE_PATH_LITERAL(".PSD") }, { FILE_FORMAT_RAR, FILE_PATH_LITERAL(".RAR") }, { FILE_FORMAT_WMA, FILE_PATH_LITERAL(".WMA") }, { FILE_FORMAT_WMV, FILE_PATH_LITERAL(".WMV") }, { FILE_FORMAT_XLS, FILE_PATH_LITERAL(".XLS") }, { FILE_FORMAT_XLSX, FILE_PATH_LITERAL(".XLSX") }, { FILE_FORMAT_ZIP, FILE_PATH_LITERAL(".ZIP") }, }; // Subtract by 1, as FILE_FORMAT_OTHER is not included in kDriveFileFormatMap. COMPILE_ASSERT(arraysize(kDriveFileFormatMap) == FILE_FORMAT_MAX_VALUE - 1, kDriveFileFormatMap_DriveFileFormat_are_not_in_sync); } // namespace DriveFileFormat GetDriveFileFormat(const FilePath::StringType& extension) { for (size_t i = 0; i < arraysize(kDriveFileFormatMap); ++i) { if (FilePath::CompareEqualIgnoreCase(extension, kDriveFileFormatMap[i].extension)) { return kDriveFileFormatMap[i].file_format; } } return FILE_FORMAT_OTHER; } } // namespace gdata