void exif_entry_set_gps_altitude(ExifData * pEdata, ExifIfd eEifd, ExifTag eEtag, ExifRational r1) { ExifEntry *pE; ExifByteOrder eO; pE = exif_entry_new (); exif_content_add_entry (pEdata->ifd[eEifd], pE); exif_entry_gps_initialize(pE, eEtag); eO = exif_data_get_byte_order (pE->parent->parent); if (pE->data) { exif_set_rational (pE->data, eO, r1); } else { printf ("ERROR: unallocated e->data Tag %d\n", eEtag); } exif_entry_fix (pE); exif_entry_unref (pE); }
void exif_entry_set_byte(ExifData * pEdata, ExifIfd eEifd, ExifTag eEtag, ExifByte n) { ExifEntry *pE; unsigned char *pData; pE = exif_entry_new (); exif_content_add_entry (pEdata->ifd[eEifd], pE); exif_entry_initialize (pE, eEtag); pData = (unsigned char *) (pE->data); if (pData) { *pData = n; } else { printf ("ERROR: unallocated e->data Tag %d\n", eEtag); } exif_entry_fix (pE); exif_entry_unref (pE); }
void exif_entry_set_string (ExifData * pEdata, ExifIfd eEifd, ExifTag eEtag, const char *s) { ExifEntry *pE; pE = exif_entry_new (); exif_content_add_entry (pEdata->ifd[eEifd], pE); exif_entry_initialize (pE, eEtag); if (pE->data) free (pE->data); pE->components = strlen (s) + 1; pE->size = sizeof (char) * pE->components; pE->data = (unsigned char *) malloc (pE->size); if (!pE->data) { printf ("Cannot allocate %d bytes.\nTerminating.\n", (int) pE->size); exit (1); } strcpy ((char *) pE->data, (char *) s); exif_entry_fix (pE); exif_entry_unref (pE); }
void exif_entry_set_gps_version(ExifData * pEdata, ExifIfd eEifd, ExifTag eEtag, ExifByte r1, ExifByte r2, ExifByte r3, ExifByte r4) { ExifEntry *pE; ExifByteOrder eO; pE = exif_entry_new (); exif_content_add_entry (pEdata->ifd[eEifd], pE); exif_entry_gps_initialize(pE, eEtag); eO = exif_data_get_byte_order (pE->parent->parent); if (pE->data) { pE->data[0] = r1; pE->data[1] = r2; pE->data[2] = r3; pE->data[3] = r4; } else { printf ("ERROR: unallocated e->data Tag %d\n", eEtag); } exif_entry_fix (pE); exif_entry_unref (pE); }
void exif_entry_set_undefined (ExifData * pEdata, ExifIfd eEifd, ExifTag eEtag, exif_buffer * buf) { ExifEntry *pE; pE = exif_entry_new (); exif_content_add_entry (pEdata->ifd[eEifd], pE); exif_entry_initialize (pE, eEtag); if (buf != NULL) { if (pE->data) free (pE->data); pE->components = buf->size; pE->size = buf->size; pE->data = (unsigned char *) malloc (pE->size); if (!pE->data) { printf ("Cannot allocate %d bytes.\nTerminating.\n", (int) pE->size); exit (1); } memcpy ((void *) pE->data, (void *) buf->data, buf->size); } exif_entry_fix (pE); exif_entry_unref (pE); }
static void fix_func (ExifEntry *e, void *UNUSED(data)) { exif_entry_fix (e); }
static int Efix (lua_State *L) { /** entry:fix() */ ExifEntry *entry = checkentry(L); exif_entry_fix(entry); return 0; }
static void fix_func (ExifEntry *e, void *data) { exif_entry_fix (e); }