| // This may look like C code, but it is really -*- C++ -*- |
| // |
| // Copyright Bob Friesenhahn, 2001, 2002 |
| // |
| // CoderInfo implementation |
| // |
| |
| #define MAGICKCORE_IMPLEMENTATION 1 |
| #define MAGICK_PLUSPLUS_IMPLEMENTATION 1 |
| |
| #include "Magick++/Include.h" |
| #include "Magick++/CoderInfo.h" |
| #include "Magick++/Exception.h" |
| |
| using namespace std; |
| |
| Magick::CoderInfo::CoderInfo(void) |
| : _name(), |
| _description(), |
| _mimeType(), |
| _isReadable(false), |
| _isWritable(false), |
| _isMultiFrame(false) |
| { |
| } |
| |
| Magick::CoderInfo::CoderInfo(const Magick::CoderInfo &coder_) |
| { |
| _name=coder_._name; |
| _description=coder_._description; |
| _mimeType=coder_._mimeType; |
| _isReadable=coder_._isReadable; |
| _isWritable=coder_._isWritable; |
| _isMultiFrame=coder_._isMultiFrame; |
| } |
| |
| Magick::CoderInfo::CoderInfo(const std::string &name_) |
| : _name(), |
| _description(), |
| _mimeType(), |
| _isReadable(false), |
| _isWritable(false), |
| _isMultiFrame(false) |
| { |
| ExceptionInfo |
| exceptionInfo; |
| |
| const Magick::MagickInfo |
| *magickInfo; |
| |
| GetExceptionInfo(&exceptionInfo); |
| magickInfo=GetMagickInfo(name_.c_str(),&exceptionInfo); |
| throwException(exceptionInfo); |
| (void) DestroyExceptionInfo(&exceptionInfo); |
| if (magickInfo == 0) |
| { |
| throwExceptionExplicit(OptionError,"Coder not found",name_.c_str()); |
| } |
| else |
| { |
| _name=string(magickInfo->name); |
| _description=string(magickInfo->description); |
| _mimeType=string(magickInfo->mime_type ? magickInfo->mime_type : ""); |
| _isReadable=((magickInfo->decoder == 0) ? false : true); |
| _isWritable=((magickInfo->encoder == 0) ? false : true); |
| _isMultiFrame=((magickInfo->adjoin == 0) ? false : true); |
| } |
| } |
| |
| Magick::CoderInfo::~CoderInfo(void) |
| { |
| } |
| |
| Magick::CoderInfo& Magick::CoderInfo::operator=(const CoderInfo &coder_) |
| { |
| // If not being set to ourself |
| if (this != &coder_) |
| { |
| _name=coder_._name; |
| _description=coder_._description; |
| _mimeType=coder_._mimeType; |
| _isReadable=coder_._isReadable; |
| _isWritable=coder_._isWritable; |
| _isMultiFrame=coder_._isMultiFrame; |
| } |
| return(*this); |
| } |
| |
| std::string Magick::CoderInfo::description(void) const |
| { |
| return(_description); |
| } |
| |
| bool Magick::CoderInfo::isReadable(void) const |
| { |
| return(_isReadable); |
| } |
| |
| bool Magick::CoderInfo::isWritable(void) const |
| { |
| return(_isWritable); |
| } |
| |
| bool Magick::CoderInfo::isMultiFrame(void) const |
| { |
| return(_isMultiFrame); |
| } |
| |
| std::string Magick::CoderInfo::mimeType(void) const |
| { |
| return(_mimeType); |
| } |
| |
| std::string Magick::CoderInfo::name(void) const |
| { |
| return(_name); |
| } |
| |
| bool Magick::CoderInfo::unregister(void) const |
| { |
| return(UnregisterMagickInfo(_name.c_str()) != MagickFalse); |
| } |