blob: eecaa8045f3b6c4ff90765b463a23d38e9755f0e [file] [log] [blame]
// 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