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