Coverage Report

Created: 2025-11-24 06:57

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/dng_sdk/source/dng_preview.h
Line
Count
Source
1
/*****************************************************************************/
2
// Copyright 2007-2011 Adobe Systems Incorporated
3
// All Rights Reserved.
4
//
5
// NOTICE:  Adobe permits you to use, modify, and distribute this file in
6
// accordance with the terms of the Adobe license agreement accompanying it.
7
/*****************************************************************************/
8
9
/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_preview.h#1 $ */ 
10
/* $DateTime: 2012/05/30 13:28:51 $ */
11
/* $Change: 832332 $ */
12
/* $Author: tknoll $ */
13
14
/*****************************************************************************/
15
16
#ifndef __dng_preview__
17
#define __dng_preview__
18
19
/*****************************************************************************/
20
21
#include "dng_auto_ptr.h"
22
#include "dng_classes.h"
23
#include "dng_ifd.h"
24
#include "dng_opcode_list.h"
25
#include "dng_point.h"
26
#include "dng_sdk_limits.h"
27
28
/*****************************************************************************/
29
30
class dng_preview
31
  {
32
  
33
  public:
34
  
35
    dng_preview_info fInfo;
36
    
37
  protected:
38
  
39
    dng_preview ();
40
    
41
  public:
42
  
43
    virtual ~dng_preview ();
44
    
45
    virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const = 0;
46
    
47
    virtual void WriteData (dng_host &host,
48
                dng_image_writer &writer,
49
                dng_basic_tag_set &basic,
50
                dng_stream &stream) const = 0;
51
    
52
  };
53
    
54
/*****************************************************************************/
55
56
class dng_image_preview: public dng_preview
57
  {
58
  
59
  public:
60
  
61
    AutoPtr<dng_image> fImage;
62
    
63
  private:
64
    
65
    mutable dng_ifd fIFD;
66
    
67
  public:
68
  
69
    dng_image_preview ();
70
    
71
    virtual ~dng_image_preview ();
72
    
73
    virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const;
74
    
75
    virtual void WriteData (dng_host &host,
76
                dng_image_writer &writer,
77
                dng_basic_tag_set &basic,
78
                dng_stream &stream) const;
79
    
80
  private:
81
  
82
    // Hidden copy constructor and assignment operator.
83
    
84
    dng_image_preview (const dng_image_preview &preview);
85
    
86
    dng_image_preview & operator= (const dng_image_preview &preview);
87
           
88
  };
89
90
/*****************************************************************************/
91
92
class dng_jpeg_preview: public dng_preview
93
  {
94
  
95
  public:
96
  
97
    dng_point fPreviewSize;
98
    
99
    uint16 fPhotometricInterpretation;
100
    
101
    dng_point fYCbCrSubSampling;
102
    
103
    uint16 fYCbCrPositioning;
104
    
105
    AutoPtr<dng_memory_block> fCompressedData;
106
107
  public:
108
  
109
    dng_jpeg_preview ();
110
    
111
    virtual ~dng_jpeg_preview ();
112
    
113
    virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const;
114
    
115
    virtual void WriteData (dng_host &host,
116
                dng_image_writer &writer,
117
                dng_basic_tag_set &basic,
118
                dng_stream &stream) const;
119
    
120
    void SpoolAdobeThumbnail (dng_stream &stream) const;
121
    
122
  private:
123
  
124
    // Hidden copy constructor and assignment operator.
125
    
126
    dng_jpeg_preview (const dng_jpeg_preview &preview);
127
    
128
    dng_jpeg_preview & operator= (const dng_jpeg_preview &preview);
129
           
130
  };
131
132
/*****************************************************************************/
133
134
class dng_raw_preview: public dng_preview
135
  {
136
  
137
  public:
138
  
139
    AutoPtr<dng_image> fImage;
140
    
141
    AutoPtr<dng_memory_block> fOpcodeList2Data;
142
    
143
    int32 fCompressionQuality;
144
145
  private:
146
    
147
    mutable dng_ifd fIFD;
148
    
149
  public:
150
  
151
    dng_raw_preview ();
152
    
153
    virtual ~dng_raw_preview ();
154
    
155
    virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const;
156
    
157
    virtual void WriteData (dng_host &host,
158
                dng_image_writer &writer,
159
                dng_basic_tag_set &basic,
160
                dng_stream &stream) const;
161
    
162
  private:
163
  
164
    // Hidden copy constructor and assignment operator.
165
    
166
    dng_raw_preview (const dng_raw_preview &preview);
167
    
168
    dng_raw_preview & operator= (const dng_raw_preview &preview);
169
           
170
  };
171
172
/*****************************************************************************/
173
174
class dng_mask_preview: public dng_preview
175
  {
176
  
177
  public:
178
  
179
    AutoPtr<dng_image> fImage;
180
    
181
    int32 fCompressionQuality;
182
183
  private:
184
    
185
    mutable dng_ifd fIFD;
186
    
187
  public:
188
  
189
    dng_mask_preview ();
190
    
191
    virtual ~dng_mask_preview ();
192
    
193
    virtual dng_basic_tag_set * AddTagSet (dng_tiff_directory &directory) const;
194
    
195
    virtual void WriteData (dng_host &host,
196
                dng_image_writer &writer,
197
                dng_basic_tag_set &basic,
198
                dng_stream &stream) const;
199
    
200
  private:
201
  
202
    // Hidden copy constructor and assignment operator.
203
    
204
    dng_mask_preview (const dng_mask_preview &preview);
205
    
206
    dng_mask_preview & operator= (const dng_mask_preview &preview);
207
           
208
  };
209
210
/*****************************************************************************/
211
212
class dng_preview_list
213
  {
214
  
215
  private:
216
  
217
    uint32 fCount;
218
    
219
    AutoPtr<dng_preview> fPreview [kMaxDNGPreviews];
220
    
221
  public:
222
  
223
    dng_preview_list ();
224
    
225
    ~dng_preview_list ();
226
    
227
    uint32 Count () const
228
52.1k
      {
229
52.1k
      return fCount;
230
52.1k
      }
231
      
232
    const dng_preview & Preview (uint32 index) const
233
45.1k
      {
234
45.1k
      return *(fPreview [index]);
235
45.1k
      }
236
      
237
    void Append (AutoPtr<dng_preview> &preview);
238
  
239
  };
240
241
/*****************************************************************************/
242
243
#endif
244
  
245
/*****************************************************************************/