diff --git a/TODO b/TODO index 27e0d9fa..7d82264b 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,4 @@ +- we suffs on load as well for nip2's file-open dialog diff --git a/libvips/foreign/openslideload.c b/libvips/foreign/openslideload.c index 66ec0de5..2c62c8a5 100644 --- a/libvips/foreign/openslideload.c +++ b/libvips/foreign/openslideload.c @@ -123,6 +123,15 @@ vips_foreign_load_openslide_error_handler( const char *domain, vips_error( "openslide", "%s", message ); } + +static const char *vips_foreign_openslide_suffs[] = { + ".svs", /* Aperio */ + ".vms", ".vmu", ".ndpi", /* Hamamatsu */ + ".mrxs", /* MIRAX */ + ".tif", /* Trestle */ + NULL +}; + static void vips_foreign_load_openslide_class_init( VipsForeignLoadOpenslideClass *class ) { @@ -142,6 +151,7 @@ vips_foreign_load_openslide_class_init( VipsForeignLoadOpenslideClass *class ) * better handled by the vips tiff loader we are careful to say no. */ foreign_class->priority = 100; + foreign_class->suffs = vips_foreign_openslide_suffs; load_class->is_a = vips__openslide_isslide; load_class->get_flags = vips_foreign_load_openslide_get_flags; diff --git a/libvips/foreign/tiff.h b/libvips/foreign/tiff.h index ab307d30..e4f61401 100644 --- a/libvips/foreign/tiff.h +++ b/libvips/foreign/tiff.h @@ -34,6 +34,8 @@ extern "C" { #endif /*__cplusplus*/ +extern const char *vips__foreign_tiff_suffs[]; + void vips__thandler_error( const char *module, const char *fmt, va_list ap ); void vips__thandler_warning( const char *module, const char *fmt, va_list ap ); diff --git a/libvips/foreign/tiffload.c b/libvips/foreign/tiffload.c index 7f49ae85..094877fb 100644 --- a/libvips/foreign/tiffload.c +++ b/libvips/foreign/tiffload.c @@ -104,7 +104,7 @@ vips_foreign_load_tiff_load( VipsForeignLoad *load ) return( 0 ); } -static const char *tiff_suffs[] = { ".tif", ".tiff", NULL }; +const char *vips__foreign_tiff_suffs[] = { ".tif", ".tiff", NULL }; static void vips_foreign_load_tiff_class_init( VipsForeignLoadTiffClass *class ) @@ -120,7 +120,7 @@ vips_foreign_load_tiff_class_init( VipsForeignLoadTiffClass *class ) object_class->nickname = "tiffload"; object_class->description = _( "load tiff from file" ); - foreign_class->suffs = tiff_suffs; + foreign_class->suffs = vips__foreign_tiff_suffs; load_class->is_a = vips__istiff; load_class->get_flags = vips_foreign_load_tiff_get_flags; diff --git a/libvips/foreign/tiffsave.c b/libvips/foreign/tiffsave.c index c5602a3f..de44c16f 100644 --- a/libvips/foreign/tiffsave.c +++ b/libvips/foreign/tiffsave.c @@ -124,8 +124,6 @@ vips_foreign_save_tiff_build( VipsObject *object ) return( 0 ); } -static const char *tiff_suffs[] = { ".tif", ".tiff", NULL }; - /* Save a bit of typing. */ #define UC VIPS_FORMAT_UCHAR @@ -159,7 +157,7 @@ vips_foreign_save_tiff_class_init( VipsForeignSaveTiffClass *class ) object_class->description = _( "save image to tiff file" ); object_class->build = vips_foreign_save_tiff_build; - foreign_class->suffs = tiff_suffs; + foreign_class->suffs = vips__foreign_tiff_suffs; save_class->saveable = VIPS_SAVEABLE_ANY; save_class->format_table = bandfmt_tiff;