source: trunk/include/qasyncimageio.h@ 7

Last change on this file since 7 was 2, checked in by dmik, 20 years ago

Imported xplatform parts of the official release 3.3.1 from Trolltech

  • Property svn:keywords set to Id
File size: 3.2 KB
Line 
1/****************************************************************************
2** $Id: qasyncimageio.h 2 2005-11-16 15:49:26Z dmik $
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
48class Q_EXPORT QImageConsumer {
49public:
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
64class Q_EXPORT QImageFormat {
65public:
66 virtual ~QImageFormat();
67 virtual int decode( QImage& img, QImageConsumer* consumer,
68 const uchar* buffer, int length ) = 0;
69};
70
71class Q_EXPORT QImageFormatType {
72public:
73 virtual ~QImageFormatType();
74 virtual QImageFormat* decoderFor( const uchar* buffer, int length ) = 0;
75 virtual const char* formatName() const = 0;
76protected:
77 QImageFormatType();
78};
79
80class QImageDecoderPrivate;
81class Q_EXPORT QImageDecoder {
82public:
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
96private:
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
Note: See TracBrowser for help on using the repository browser.