merge Sakari's (sbergen) branch back into 3.0, removing libsndfile and adding taglib
[ardour.git] / libs / taglib / examples / tagreader_c.c
1 /* Copyright (C) 2003 Scott Wheeler <wheeler@kde.org>
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions
5  * are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  */
24
25 #include <stdio.h>
26 #include <tag_c.h>
27
28 #ifndef FALSE
29 #define FALSE 0
30 #endif
31
32 int main(int argc, char *argv[])
33 {
34   int i;
35   int seconds;
36   int minutes;
37   TagLib_File *file;
38   TagLib_Tag *tag;
39   const TagLib_AudioProperties *properties;
40
41   taglib_set_strings_unicode(FALSE);
42
43   for(i = 1; i < argc; i++) {
44     printf("******************** \"%s\" ********************\n", argv[i]);
45
46     file = taglib_file_new(argv[i]);
47
48     if(file == NULL)
49       break;
50
51     tag = taglib_file_tag(file);
52     properties = taglib_file_audioproperties(file);
53
54     printf("-- TAG --\n");
55     printf("title   - \"%s\"\n", taglib_tag_title(tag));
56     printf("artist  - \"%s\"\n", taglib_tag_artist(tag));
57     printf("album   - \"%s\"\n", taglib_tag_album(tag));
58     printf("year    - \"%i\"\n", taglib_tag_year(tag));
59     printf("comment - \"%s\"\n", taglib_tag_comment(tag));
60     printf("track   - \"%i\"\n", taglib_tag_track(tag));
61     printf("genre   - \"%s\"\n", taglib_tag_genre(tag));
62
63     seconds = taglib_audioproperties_length(properties) % 60;
64     minutes = (taglib_audioproperties_length(properties) - seconds) / 60;
65
66     printf("-- AUDIO --\n");
67     printf("bitrate     - %i\n", taglib_audioproperties_bitrate(properties));
68     printf("sample rate - %i\n", taglib_audioproperties_samplerate(properties));
69     printf("channels    - %i\n", taglib_audioproperties_channels(properties));
70     printf("length      - %i:%02i\n", minutes, seconds);
71
72     taglib_tag_free_strings();
73     taglib_file_free(file);
74   }
75
76   return 0;
77 }