home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / qt3_emx.zip / include / qasyncimageio.h < prev    next >
C/C++ Source or Header  |  2001-10-11  |  3KB  |  106 lines

  1. /****************************************************************************
  2. ** $Id:  qt/qasyncimageio.h   3.0.0   edited Jun 22 12:24 $
  3. **
  4. ** Definition of asynchronous image/movie loading classes
  5. **
  6. ** Created : 970617
  7. **
  8. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  9. **
  10. ** This file is part of the kernel module of the Qt GUI Toolkit.
  11. **
  12. ** This file may be distributed under the terms of the Q Public License
  13. ** as defined by Trolltech AS of Norway and appearing in the file
  14. ** LICENSE.QPL included in the packaging of this file.
  15. **
  16. ** This file may be distributed and/or modified under the terms of the
  17. ** GNU General Public License version 2 as published by the Free Software
  18. ** Foundation and appearing in the file LICENSE.GPL included in the
  19. ** packaging of this file.
  20. **
  21. ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
  22. ** licenses may use this file in accordance with the Qt Commercial License
  23. ** Agreement provided with the Software.
  24. **
  25. ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  26. ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  27. **
  28. ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
  29. **   information about Qt Commercial License Agreements.
  30. ** See http://www.trolltech.com/qpl/ for QPL licensing information.
  31. ** See http://www.trolltech.com/gpl/ for GPL licensing information.
  32. **
  33. ** Contact info@trolltech.com if any conditions of this licensing are
  34. ** not clear to you.
  35. **
  36. **********************************************************************/
  37.  
  38. #ifndef QASYNCIMAGEIO_H
  39. #define QASYNCIMAGEIO_H
  40.  
  41. #ifndef QT_H
  42. #include "qimage.h"
  43. #endif // QT_H
  44.  
  45. #ifndef QT_NO_ASYNC_IMAGE_IO
  46.  
  47.  
  48. class Q_EXPORT QImageConsumer {
  49. public:
  50.     virtual void end()=0;
  51.  
  52.     // Change transfer type 1.
  53.     virtual void changed( const QRect& ) = 0;
  54.     virtual void frameDone() = 0;
  55.  
  56.     // Change transfer type 2.
  57.     virtual void frameDone( const QPoint&, const QRect& ) = 0;
  58.  
  59.     virtual void setLooping( int ) = 0;
  60.     virtual void setFramePeriod( int ) = 0;
  61.     virtual void setSize( int, int ) = 0;
  62. };
  63.  
  64. class Q_EXPORT QImageFormat {
  65. public:
  66.     virtual ~QImageFormat();
  67.     virtual int decode( QImage& img, QImageConsumer* consumer,
  68.             const uchar* buffer, int length ) = 0;
  69. };
  70.  
  71. class Q_EXPORT QImageFormatType {
  72. public:
  73.     virtual ~QImageFormatType();
  74.     virtual QImageFormat* decoderFor( const uchar* buffer, int length ) = 0;
  75.     virtual const char* formatName() const = 0;
  76. protected:
  77.     QImageFormatType();
  78. };
  79.  
  80. class QImageDecoderPrivate;
  81. class Q_EXPORT QImageDecoder {
  82. public:
  83.     QImageDecoder( QImageConsumer* c );
  84.     ~QImageDecoder();
  85.  
  86.     const QImage& image() { return img; }
  87.     int decode( const uchar* buffer, int length );
  88.  
  89.     static const char* formatName( const uchar* buffer, int length );
  90.     static QImageFormatType* format( const char* name ); // direct use - no decode()
  91.  
  92.     static QStrList inputFormats();
  93.     static void registerDecoderFactory( QImageFormatType* );
  94.     static void unregisterDecoderFactory( QImageFormatType* );
  95.  
  96. private:
  97.     QImageFormat* actual_decoder;
  98.     QImageConsumer* consumer;
  99.     QImage img;
  100.     QImageDecoderPrivate *d;
  101. };
  102.  
  103. #endif // QT_NO_ASYNC_IMAGE_IO
  104.  
  105. #endif // QASYNCIMAGEIO_H
  106.