~njh-aelius/maxosx/musicbrainz-tags

« back to all changes in this revision

Viewing changes to Frameworks/taglib/taglib/examples/tagreader_c.c

  • Committer: stephen_booth
  • Date: 2008-04-30 02:09:12 UTC
  • Revision ID: svn-v4:6b6cea13-1402-0410-9567-a7afb52bf336:trunk:1372
Update to latest taglib SVN

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
}