X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fimageloader.cpp;h=55d2dfb1b8f8c3f4cab2ebd3c9bcd93a0a0e547e;hb=b99a9eb342d0f6ba5509c6d9f8ab0b0b5d5d2979;hp=0746f6fdef5c3bfe07ed486567622996a30033ea;hpb=30cab36b531f6efddca07c3fe9a6b1b81ca42bde;p=libs%2Fgui.git diff --git a/source/graphics/imageloader.cpp b/source/graphics/imageloader.cpp index 0746f6f..55d2dfb 100644 --- a/source/graphics/imageloader.cpp +++ b/source/graphics/imageloader.cpp @@ -1,4 +1,5 @@ #include "imageloader.h" +#include #include #include #include @@ -22,17 +23,12 @@ using namespace std; namespace Msp { namespace Graphics { -ImageLoader::ImageLoader(): - source(0), - state(INITIAL) -{ } - ImageLoader::~ImageLoader() { delete source; } -bool ImageLoader::detect_signature(const std::string &sig) +bool ImageLoader::detect_signature(const string &sig) { Registry ®istry = get_registry(); for(const RegisterBase *r: registry.loaders) @@ -62,7 +58,9 @@ ImageLoader *ImageLoader::open_io(IO::Seekable &io) if(registry.changed) { registry.changed = false; - registry.loaders.sort(signature_size_compare); + sort(registry.loaders, [](RegisterBase *r1, RegisterBase *r2){ + return r1->get_signature_size()get_signature_size(); + }); } if(registry.loaders.empty()) @@ -71,7 +69,7 @@ ImageLoader *ImageLoader::open_io(IO::Seekable &io) string signature(registry.loaders.back()->get_signature_size(), 0); unsigned sig_len = io.read(&signature[0], signature.size()); - ImageLoader *loader = 0; + ImageLoader *loader = nullptr; for(auto i=registry.loaders.begin(); (!loader && i!=registry.loaders.end()); ++i) if((*i)->detect(signature)) loader = (*i)->create(io); @@ -135,15 +133,6 @@ ImageLoader::Registry &ImageLoader::get_registry() return registry; } -bool ImageLoader::signature_size_compare(RegisterBase *r1, RegisterBase *r2) -{ - return r1->get_signature_size()get_signature_size(); -} - - -ImageLoader::Registry::Registry(): - changed(false) -{ } ImageLoader::Registry::~Registry() {