Truxton exif create

From truxwiki.com
Revision as of 11:48, 22 December 2020 by Sam (talk | contribs) (→‎Sample)
Jump to navigation Jump to search

This creates an Exchangeable image file format object. You can use this to add records to the [EXIF] table in the database.

Syntax

uint64_t truxton_exif_create( uint64_t truxton_handle );

Parameters

truxton_handle

The Truxton instance this event will belong. This handle comes from calling truxton_create().

Return value

A handle to an EXIF object.

Sample

 1 void add_exif(uint64_t truxton, uint64_t file_handle, uint8_t const * buffer, size_t buffer_size )
 2 {
 3    char id[ 40 ];
 4 
 5    EXIF_PARSER parser;
 6 
 7    parser.Initialize( buffer, buffer_size );
 8 
 9    EXIF_DATA data;
10 
11    if ( fill_exif_data( parser, data ) == 0 )
12    {
13       return;
14    }
15 
16    uint64_t exif_handle = truxton_create_exif(truxton);
17 
18    truxton_exif_set_gps_time( exif_handle, data.gps_time );
19    truxton_exif_set_gps_time_offset( exif_handle, data.offsets.gps_time );
20    truxton_exif_set_device_time( exif_handle, data.device_time );
21    truxton_exif_set_device_time_offset( exif_handle, data.offsets.device_time );
22    truxton_exif_set_latitude( exif_handle, data.latitude );
23    truxton_exif_set_latitude_offset( exif_handle, data.offsets.latitude );
24    truxton_exif_set_longitude( exif_handle, data.longitude );
25    truxton_exif_set_longitude_offset( exif_handle, data.offsets.longitude );
26    truxton_exif_set_altitude( exif_handle, data.altitude );
27    truxton_exif_set_altitude_offset( exif_handle, data.offsets.altitude );
28    truxton_exif_set_heading( exif_handle, data.heading);
29    truxton_exif_set_heading_offset( exif_handle, data.offsets.heading );
30    truxton_exif_set_focal_length( exif_handle, data.focal_length );
31    truxton_exif_set_focal_length_offset( exif_handle, data.offsets.focal_length );
32    truxton_exif_set_shutter_count( exif_handle, data.shutter_count );
33    truxton_exif_set_shutter_count_offset( exif_handle, data.offsets.shutter_count );
34    truxton_exif_set_thumbnail_offset( exif_handle, data.thumbnail_offset );
35    truxton_exif_set_thumbnail_offset_offset( exif_handle, data.offsets.thumbnail_offset );
36    truxton_exif_set_thumbnail_length( exif_handle, data.thumbnail_length );
37    truxton_exif_set_thumbnail_length_offset( exif_handle, data.offsets.thumbnail_length );
38    truxton_exif_set_make( exif_handle, data.make );
39    truxton_exif_set_make_offset( exif_handle, data.offsets.make );
40    truxton_exif_set_model( exif_handle, data.model );
41    truxton_exif_set_model_offset( exif_handle, data.offsets.model );
42    truxton_exif_set_body_serial_number( exif_handle, data.body_serial_number );
43    truxton_exif_set_body_serial_number_offset( exif_handle, data.offsets.body_serial_number );
44    truxton_exif_set_lens_serial_number( exif_handle, data.lens_serial_number );
45    truxton_exif_set_lens_serial_number_offset( exif_handle, data.offsets.lens_serial_number );
46 
47    truxton_file_get_id( file_handle, id, sizeof( id ) );
48    truxton_exif_set_file_id( exif_handle, id );
49 
50    truxton_file_get_media_id( file_handle, id, sizeof( id ) );
51    truxton_exif_set_media_id( exif_handle, id );
52 
53    truxton_exif_save( exif_handle );
54 
55    char id[ 65 ];
56 
57    truxton_exif_get_id( exif_handle, id, sizeof( id ) );
58 
59    printf( "EXIF ID is %s\n", id );
60 
61    truxton_exif_destroy(exif_handle);
62 }