Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: XLS Translator 4 : * Purpose: Implements OGRXLSDriver. 5 : * Author: Even Rouault, even dot rouault at spatialys.com 6 : * 7 : ****************************************************************************** 8 : * Copyright (c) 2011, Even Rouault <even dot rouault at spatialys.com> 9 : * 10 : * SPDX-License-Identifier: MIT 11 : ****************************************************************************/ 12 : 13 : #include "gdal_frmts.h" 14 : #include "gdalplugindriverproxy.h" 15 : 16 : #include "ogrsf_frmts.h" 17 : 18 : #include "ogrxlsdrivercore.h" 19 : 20 : /************************************************************************/ 21 : /* OGRXLSDriverIdentify() */ 22 : /************************************************************************/ 23 : 24 52983 : static int OGRXLSDriverIdentify(GDALOpenInfo *poOpenInfo) 25 : 26 : { 27 52983 : return poOpenInfo->IsExtensionEqualToCI("XLS"); 28 : } 29 : 30 : /************************************************************************/ 31 : /* OGRXLSDriverSetCommonMetadata() */ 32 : /************************************************************************/ 33 : 34 2105 : void OGRXLSDriverSetCommonMetadata(GDALDriver *poDriver) 35 : { 36 2105 : poDriver->SetDescription(DRIVER_NAME); 37 2105 : poDriver->SetMetadataItem(GDAL_DCAP_VECTOR, "YES"); 38 : 39 2105 : poDriver->SetMetadataItem(GDAL_DMD_LONGNAME, "MS Excel format"); 40 2105 : poDriver->SetMetadataItem(GDAL_DMD_EXTENSION, "xls"); 41 2105 : poDriver->SetMetadataItem(GDAL_DMD_HELPTOPIC, "drivers/vector/xls.html"); 42 2105 : poDriver->SetMetadataItem(GDAL_DCAP_NONSPATIAL, "YES"); 43 2105 : poDriver->SetMetadataItem(GDAL_DCAP_MULTIPLE_VECTOR_LAYERS, "YES"); 44 2105 : poDriver->SetMetadataItem(GDAL_DMD_SUPPORTED_SQL_DIALECTS, "OGRSQL SQLITE"); 45 : 46 2105 : poDriver->pfnIdentify = OGRXLSDriverIdentify; 47 2105 : poDriver->SetMetadataItem(GDAL_DCAP_OPEN, "YES"); 48 2105 : } 49 : 50 : /************************************************************************/ 51 : /* DeclareDeferredOGRXLSPlugin() */ 52 : /************************************************************************/ 53 : 54 : #ifdef PLUGIN_FILENAME 55 2033 : void DeclareDeferredOGRXLSPlugin() 56 : { 57 2033 : if (GDALGetDriverByName(DRIVER_NAME) != nullptr) 58 : { 59 283 : return; 60 : } 61 1750 : auto poDriver = new GDALPluginDriverProxy(PLUGIN_FILENAME); 62 : #ifdef PLUGIN_INSTALLATION_MESSAGE 63 : poDriver->SetMetadataItem(GDAL_DMD_PLUGIN_INSTALLATION_MESSAGE, 64 : PLUGIN_INSTALLATION_MESSAGE); 65 : #endif 66 1750 : OGRXLSDriverSetCommonMetadata(poDriver); 67 1750 : GetGDALDriverManager()->DeclareDeferredPluginDriver(poDriver); 68 : } 69 : #endif