/*----------------------------------------------------------------- pix2jpg v0.01 External for Gem and Pure Data to convert an image to jpg and send it via Unix Domain Sockets (c) 2012-2013 Santi NoreƱa. libremediaserver@gmail.com GPL License. -----------------------------------------------------------------*/ #ifndef _INCLUDE__GEM_PIXES_pix2jpg_H_ #define _INCLUDE__GEM_PIXES_pix2jpg_H_ #include "Base/GemPixObj.h" #include "Base/GemBase.h" #include "Gem/Manager.h" #include "Gem/ImageIO.h" #include "Gem/Image.h" #include #include #include #include #include #include #include "m_pd.h" using namespace Magick; /*----------------------------------------------------------------- ------------------------------------------------------------------- CLASS pix2jpg Convert a image to jpgw and outputs in a Unix Domain Socket KEYWORDS pix DESCRIPTION "bang" - Process next image outlet : -----------------------------------------------------------------*/ class GEM_EXPORT pix2jpg : public GemPixObj { CPPEXTERN_HEADER(pix2jpg, GemPixObj); public: ////////// // Constructor pix2jpg(t_symbol *s); protected: ////////// // Destructor virtual ~pix2jpg(); ////////// // Do the rendering virtual void processImage(imageStruct&image); ////////// // Set the filename and filetype // virtual void fileMess(int argc, t_atom *argv); ////////// // The original pix_writer imageStruct *m_originalImage; ////////// // Manual writing bool m_banged; ////////// // Automatic writing bool m_automatic; ////////// // Layer to write int m_layer; t_outlet *outlet1; // outlet pointer struct sockaddr_un address; int socket_fd, nbytes; private: ////////// // static member functions static void startMessCallback(void *data); static void stopMessCallback(void *data); static void bangMessCallback(void *data); static void layerimageMessCallback(void *data, t_float f); void layernameMessCallback(void *data, t_symbol *s,int argc, t_atom *argv); }; #endif // for header file