aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/imgldr/ImgLoaderEnum.h
blob: e71f4c4de163acf7c5ae75a4381df29a0f1a309f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef __WASABI_IMGLOADERENUM_H
#define __WASABI_IMGLOADERENUM_H

#include <api/service/svc_enum.h>
#include <bfc/string/StringW.h>

class ImgLoaderEnum : public SvcEnumT<svc_imageLoader> {
public:
  ImgLoaderEnum(uint8_t *data, int datalen) : mem(datalen, data) { }
  ImgLoaderEnum(const wchar_t *filename) : fname(filename) { }

protected:
  virtual int testService(svc_imageLoader *svc) 
	{
    if (!fname.isempty() && !svc->isMine(fname)) return 0;
    return svc->testData(mem, mem.getSizeInBytes());
  }

private:
  StringW fname;
  MemBlock<uint8_t> mem;
};

#endif