uint32_t getRasterLayerFilterName(Layer* pLayer, uint32_t index, int enabled, char* pName, uint32_t nameSize) { RasterLayer* pRaster = dynamic_cast<RasterLayer*>(pLayer); if (pRaster == NULL || pName == NULL) { setLastError(SIMPLE_BAD_PARAMS); return 0; } std::vector<std::string> filters = (enabled != 0) ? pRaster->getEnabledFilterNames() : pRaster->getSupportedFilters(); if (index >= filters.size()) { setLastError(SIMPLE_BAD_PARAMS); return 0; } std::string name = filters[index]; if (nameSize == 0) { return name.size() + 1; } else if (name.size() > nameSize - 1) // extra char for the null { setLastError(SIMPLE_BUFFER_SIZE); return 0; } memcpy(pName, name.c_str(), name.size()); pName[name.size()] = '\0'; setLastError(SIMPLE_NO_ERROR); return name.size(); }
uint32_t getRasterLayerFilterCount(Layer* pLayer, int enabled) { RasterLayer* pRaster = dynamic_cast<RasterLayer*>(pLayer); if (pRaster == NULL) { setLastError(SIMPLE_BAD_PARAMS); return 0; } setLastError(SIMPLE_NO_ERROR); return (enabled != 0) ? pRaster->getEnabledFilterNames().size() : pRaster->getSupportedFilters().size(); }