2003-10-27 Lutz Mueller <lutz@users.sourceforge.net>
[platform/upstream/libexif.git] / test / test-mnote.c
1 #include <config.h>
2
3 #include <stdio.h>
4 #include <stdlib.h>
5
6 #include <libexif/exif-data.h>
7
8 int
9 main (int argc, char **argv)
10 {
11         ExifData *d;
12         ExifMnoteData *md;
13         unsigned int c, i;
14         char *v;
15
16         if (argc <= 1) {
17                 fprintf (stderr, "You need to supply a filename!\n");
18                 return 1;
19         }
20
21         fprintf (stdout, "Loading '%s'...\n", argv[1]);
22         d = exif_data_new_from_file (argv[1]);
23         if (!d) {
24                 fprintf (stderr, "Could not load data from '%s'!\n", argv[1]);
25                 return 1;
26         }
27         fprintf (stdout, "Loaded '%s'.\n", argv[1]);
28         fprintf (stdout, "Byte order: %s\n",
29                  exif_byte_order_get_name (exif_data_get_byte_order (d)));
30
31         fprintf (stdout, "Parsing maker note...\n");
32         md = exif_data_get_mnote_data (d);
33         if (!md) {
34                 fprintf (stderr, "Could not parse maker note!\n");
35                 exif_data_unref (d);
36                 return 1;
37         }
38
39         fprintf (stdout, "Increasing ref-count...\n");
40         exif_mnote_data_ref (md);
41
42         fprintf (stdout, "Decreasing ref-count...\n");
43         exif_mnote_data_unref (md);
44
45         fprintf (stdout, "Counting entries...\n");
46         c = exif_mnote_data_count (md);
47         for (i = 0; i < c; i++) {
48                 fprintf (stdout, "%s", exif_mnote_data_get_name (md, i));
49                 fprintf (stdout, "  Title: %s",
50                          exif_mnote_data_get_title (md, i));
51                 fprintf (stdout, "  Description: %s",
52                          exif_mnote_data_get_description (md, i));
53                 v = exif_mnote_data_get_value (md, i);
54                 if (v) {
55                         fprintf (stdout, "  Value: '%s'", v);
56                         free (v);
57                 }
58         }
59
60         exif_data_unref (d);
61
62         return 1;
63 }