00001
00002
00003
00004
00005
00006
00007
00008 #ifndef DRV_NDFileMagick_H
00009 #define DRV_NDFileMagick_H
00010
00011 #include "NDPluginFile.h"
00012 #include "Magick++.h"
00013 using namespace Magick;
00014 using namespace std;
00015
00016 #define NDFileMagickQualityString "MAGICK_QUALITY"
00017 #define NDFileMagickCompressTypeString "MAGICK_COMPRESS_TYPE"
00018 #define NDFileMagickBitDepthString "MAGICK_BIT_DEPTH"
00019
00020 class NDFileMagick : public NDPluginFile {
00021 public:
00022 NDFileMagick(const char *portName, int queueSize, int blockingCallbacks,
00023 const char *NDArrayPort, int NDArrayAddr,
00024 int priority, int stackSize);
00025
00026
00027 virtual asynStatus openFile(const char *fileName, NDFileOpenMode_t openMode, NDArray *pArray);
00028 virtual asynStatus readFile(NDArray **pArray);
00029 virtual asynStatus writeFile(NDArray *pArray);
00030 virtual asynStatus closeFile();
00031
00032 protected:
00033 int NDFileMagickQuality;
00034 #define FIRST_NDFILE_MAGICK_PARAM NDFileMagickQuality
00035 int NDFileMagickCompressType;
00036 int NDFileMagickBitDepth;
00037 #define LAST_NDFILE_MAGICK_PARAM NDFileMagickBitDepth
00038
00039 private:
00040 size_t sizeX;
00041 size_t sizeY;
00042 StorageType storageType;
00043 NDColorMode_t colorMode;
00044 ImageType imageType;
00045 string colorMap;
00046 Image image;
00047 char fileName[MAX_FILENAME_LEN];
00048 };
00049 #define NUM_NDFILE_MAGICK_PARAMS (&LAST_NDFILE_MAGICK_PARAM - &FIRST_NDFILE_MAGICK_PARAM + 1)
00050 #endif