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 53185 : static int OGRXLSDriverIdentify(GDALOpenInfo *poOpenInfo) 25 : 26 : { 27 53185 : return poOpenInfo->IsExtensionEqualToCI("XLS"); 28 : } 29 : 30 : /************************************************************************/ 31 : /* OGRXLSDriverSetCommonMetadata() */ 32 : /************************************************************************/ 33 : 34 2113 : void OGRXLSDriverSetCommonMetadata(GDALDriver *poDriver) 35 : { 36 2113 : poDriver->SetDescription(DRIVER_NAME); 37 2113 : poDriver->SetMetadataItem(GDAL_DCAP_VECTOR, "YES"); 38 : 39 2113 : poDriver->SetMetadataItem(GDAL_DMD_LONGNAME, "MS Excel format"); 40 2113 : poDriver->SetMetadataItem(GDAL_DMD_EXTENSION, "xls"); 41 2113 : poDriver->SetMetadataItem(GDAL_DMD_HELPTOPIC, "drivers/vector/xls.html"); 42 2113 : poDriver->SetMetadataItem(GDAL_DCAP_NONSPATIAL, "YES"); 43 2113 : poDriver->SetMetadataItem(GDAL_DCAP_MULTIPLE_VECTOR_LAYERS, "YES"); 44 2113 : poDriver->SetMetadataItem(GDAL_DMD_SUPPORTED_SQL_DIALECTS, "OGRSQL SQLITE"); 45 : 46 2113 : poDriver->pfnIdentify = OGRXLSDriverIdentify; 47 2113 : poDriver->SetMetadataItem(GDAL_DCAP_OPEN, "YES"); 48 2113 : } 49 : 50 : /************************************************************************/ 51 : /* DeclareDeferredOGRXLSPlugin() */ 52 : /************************************************************************/ 53 : 54 : #ifdef PLUGIN_FILENAME 55 2040 : void DeclareDeferredOGRXLSPlugin() 56 : { 57 2040 : if (GDALGetDriverByName(DRIVER_NAME) != nullptr) 58 : { 59 283 : return; 60 : } 61 1757 : 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 1757 : OGRXLSDriverSetCommonMetadata(poDriver); 67 1757 : GetGDALDriverManager()->DeclareDeferredPluginDriver(poDriver); 68 : } 69 : #endif