Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright (c) 2007, Digital Signal Processing Laboratory, Università degli studi di Perugia (UPG), Italy
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  * 1. Redistributions of source code must retain the above copyright
  9.  *    notice, this list of conditions and the following disclaimer.
  10.  * 2. Redistributions in binary form must reproduce the above copyright
  11.  *    notice, this list of conditions and the following disclaimer in the
  12.  *    documentation and/or other materials provided with the distribution.
  13.  *
  14.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
  15.  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  18.  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  19.  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  20.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  21.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  22.  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  23.  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  24.  * POSSIBILITY OF SUCH DAMAGE.
  25.  */
  26. /////////////////////////////////////////////////////////////////////////////
  27. // Name:        imagmxf.h
  28. // Purpose:     wxImage MXF (Material eXchange Format) JPEG 2000 file format handler
  29. // Author:      G. Baruffa - based on imagjpeg.h, Vaclav Slavik
  30. // RCS-ID:      $Id: imagmj2.h,v 0.0 2007/11/19 17:00:00 VZ Exp $
  31. // Copyright:   (c) Giuseppe Baruffa
  32. // Licence:     wxWindows licence
  33. /////////////////////////////////////////////////////////////////////////////
  34.  
  35. #ifndef _WX_IMAGMXF_H_
  36. #define _WX_IMAGMXF_H_
  37.  
  38. #ifdef USE_MXF
  39.  
  40. #include "wx/defs.h"
  41. #include "wx/filename.h"
  42.  
  43. //-----------------------------------------------------------------------------
  44. // wxMXFHandler
  45. //-----------------------------------------------------------------------------
  46.  
  47. #if wxUSE_LIBOPENJPEG
  48.  
  49. #include "wx/image.h"
  50. #include "libopenjpeg/openjpeg.h"
  51.  
  52. #define wxBITMAP_TYPE_MXF       51
  53.  
  54. class WXDLLEXPORT wxMXFHandler: public wxImageHandler
  55. {
  56. public:
  57.     inline wxMXFHandler()
  58.     {
  59.         m_name = wxT("MXF JPEG 2000 file format");
  60.         m_extension = wxT("mxf");
  61.         m_type = wxBITMAP_TYPE_MXF;
  62.         m_mime = wxT("image/mxf");
  63.  
  64.                 m_reducefactor = 0;
  65.                 m_qualitylayers = 0;
  66.                 m_components = 0;
  67.                 m_filename = wxT("");
  68. #ifdef USE_JPWL
  69.                 m_enablejpwl = true;
  70.                 m_expcomps = JPWL_EXPECTED_COMPONENTS;
  71.                 m_maxtiles = JPWL_MAXIMUM_TILES;
  72. #endif // USE_JPWL
  73.     }
  74.  
  75.                 // decoding engine parameters
  76.                 int m_reducefactor, m_qualitylayers, m_components, m_framenum;
  77.                 wxFileName m_filename;
  78. #ifdef USE_JPWL
  79.                 bool m_enablejpwl;
  80.                 int m_expcomps, m_maxtiles;
  81. #endif // USE_JPWL
  82.  
  83. #if wxUSE_STREAMS
  84.     virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 );
  85.     virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true );
  86. protected:
  87.     virtual bool DoCanRead( wxInputStream& stream );
  88. #endif
  89.  
  90. private:
  91.     DECLARE_DYNAMIC_CLASS(wxMXFHandler)
  92. };
  93.  
  94. #endif // wxUSE_LIBOPENJPEG
  95.  
  96. #endif // USE_MXF
  97.  
  98. #endif // _WX_IMAGMXF_H_
  99.  
  100.