ReactOS 0.4.15-dev-7958-gcd0bb1a
tif_extension.c
Go to the documentation of this file.
1/*
2 * Copyright (c) 1988-1997 Sam Leffler
3 * Copyright (c) 1991-1997 Silicon Graphics, Inc.
4 *
5 * Permission to use, copy, modify, distribute, and sell this software and
6 * its documentation for any purpose is hereby granted without fee, provided
7 * that (i) the above copyright notices and this permission notice appear in
8 * all copies of the software and related documentation, and (ii) the names of
9 * Sam Leffler and Silicon Graphics may not be used in any advertising or
10 * publicity relating to the software without the specific, prior written
11 * permission of Sam Leffler and Silicon Graphics.
12 *
13 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
14 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
15 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
16 *
17 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
18 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
19 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
20 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
21 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
22 * OF THIS SOFTWARE.
23 */
24
25/*
26 * TIFF Library.
27 *
28 * Various routines support external extension of the tag set, and other
29 * application extension capabilities.
30 */
31
32#include <precomp.h>
33
35
36{
37 TIFFDirectory* td = &tif->tif_dir;
38
39 return td->td_customValueCount;
40}
41
42uint32 TIFFGetTagListEntry( TIFF *tif, int tag_index )
43
44{
45 TIFFDirectory* td = &tif->tif_dir;
46
47 if( tag_index < 0 || tag_index >= td->td_customValueCount )
48 return (uint32)(-1);
49 else
50 return td->td_customValues[tag_index].info->field_tag;
51}
52
53/*
54** This provides read/write access to the TIFFTagMethods within the TIFF
55** structure to application code without giving access to the private
56** TIFF structure.
57*/
59
60{
61 return &(tif->tif_tagmethods);
62}
63
64void *TIFFGetClientInfo( TIFF *tif, const char *name )
65
66{
68
69 while( psLink != NULL && strcmp(psLink->name,name) != 0 )
70 psLink = psLink->next;
71
72 if( psLink != NULL )
73 return psLink->data;
74 else
75 return NULL;
76}
77
78void TIFFSetClientInfo( TIFF *tif, void *data, const char *name )
79
80{
82
83 /*
84 ** Do we have an existing link with this name? If so, just
85 ** set it.
86 */
87 while( psLink != NULL && strcmp(psLink->name,name) != 0 )
88 psLink = psLink->next;
89
90 if( psLink != NULL )
91 {
92 psLink->data = data;
93 return;
94 }
95
96 /*
97 ** Create a new link.
98 */
99
101 assert (psLink != NULL);
102 psLink->next = tif->tif_clientinfo;
103 psLink->name = (char *) _TIFFmalloc((tmsize_t)(strlen(name)+1));
104 assert (psLink->name != NULL);
105 strcpy(psLink->name, name);
106 psLink->data = data;
107
108 tif->tif_clientinfo = psLink;
109}
110/*
111 * Local Variables:
112 * mode: c
113 * c-basic-offset: 8
114 * fill-column: 78
115 * End:
116 */
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
unsigned int uint32
Definition: types.h:32
#define NULL
Definition: types.h:112
#define assert(x)
Definition: debug.h:53
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
int td_customValueCount
Definition: tif_dir.h:121
TIFFTagValue * td_customValues
Definition: tif_dir.h:122
const TIFFField * info
Definition: tif_dir.h:36
uint32 field_tag
Definition: tif_dir.h:283
void * data
Definition: tiffiop.h:95
struct client_info * next
Definition: tiffiop.h:94
char * name
Definition: tiffiop.h:96
Definition: name.c:39
Definition: tiffiop.h:115
TIFFTagMethods tif_tagmethods
Definition: tiffiop.h:219
TIFFClientInfoLink * tif_clientinfo
Definition: tiffiop.h:220
TIFFDirectory tif_dir
Definition: tiffiop.h:151
int TIFFGetTagListCount(TIFF *tif)
Definition: tif_extension.c:34
TIFFTagMethods * TIFFAccessTagMethods(TIFF *tif)
Definition: tif_extension.c:58
uint32 TIFFGetTagListEntry(TIFF *tif, int tag_index)
Definition: tif_extension.c:42
void TIFFSetClientInfo(TIFF *tif, void *data, const char *name)
Definition: tif_extension.c:78
void * TIFFGetClientInfo(TIFF *tif, const char *name)
Definition: tif_extension.c:64
void * _TIFFmalloc(tmsize_t s)
Definition: tif_unix.c:309
TIFF_SSIZE_T tmsize_t
Definition: tiffio.h:65