1 // ==========================================================
2 // fipMetadataFind class implementation
3 //
4 // Design and implementation by
5 // - Herv� Drolon (drolon@infonie.fr)
6 //
7 // This file is part of FreeImage 3
8 //
9 // COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY
10 // OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
11 // THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE
12 // OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
13 // CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT
14 // THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
15 // SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL
16 // PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER
17 // THIS DISCLAIMER.
18 //
19 // Use at your own risk!
20 // ==========================================================
21 
22 #include "FreeImagePlus.h"
23 
isValid() const24 BOOL fipMetadataFind::isValid() const {
25 	return (_mdhandle != NULL) ? TRUE : FALSE;
26 }
27 
fipMetadataFind()28 fipMetadataFind::fipMetadataFind() : _mdhandle(NULL) {
29 }
30 
~fipMetadataFind()31 fipMetadataFind::~fipMetadataFind() {
32 	FreeImage_FindCloseMetadata(_mdhandle);
33 }
34 
findFirstMetadata(FREE_IMAGE_MDMODEL model,fipImage & image,fipTag & tag)35 BOOL fipMetadataFind::findFirstMetadata(FREE_IMAGE_MDMODEL model, fipImage& image, fipTag& tag) {
36 	FITAG *firstTag = NULL;
37 	if(_mdhandle) FreeImage_FindCloseMetadata(_mdhandle);
38 	_mdhandle = FreeImage_FindFirstMetadata(model, image, &firstTag);
39 	if(_mdhandle) {
40 		tag = FreeImage_CloneTag(firstTag);
41 		return TRUE;
42 	}
43 	return FALSE;
44 }
45 
findNextMetadata(fipTag & tag)46 BOOL fipMetadataFind::findNextMetadata(fipTag& tag) {
47 	FITAG *nextTag = NULL;
48 	if( FreeImage_FindNextMetadata(_mdhandle, &nextTag) ) {
49 		tag = FreeImage_CloneTag(nextTag);
50 		return TRUE;
51 	}
52 	return FALSE;
53 }
54 
55