~ubuntu-branches/ubuntu/utopic/ardour3/utopic

« back to all changes in this revision

Viewing changes to libs/taglib/taglib/flac/flacproperties.h

  • Committer: Package Import Robot
  • Author(s): Felipe Sateler
  • Date: 2013-09-21 19:05:02 UTC
  • Revision ID: package-import@ubuntu.com-20130921190502-8gsftrku6jnzhd7v
Tags: upstream-3.4~dfsg
ImportĀ upstreamĀ versionĀ 3.4~dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
    copyright            : (C) 2003 by Allan Sandfeld Jensen
 
3
    email                : kde@carewolf.org
 
4
 ***************************************************************************/
 
5
 
 
6
/***************************************************************************
 
7
 *   This library is free software; you can redistribute it and/or modify  *
 
8
 *   it under the terms of the GNU Lesser General Public License version   *
 
9
 *   2.1 as published by the Free Software Foundation.                     *
 
10
 *                                                                         *
 
11
 *   This library is distributed in the hope that it will be useful, but   *
 
12
 *   WITHOUT ANY WARRANTY; without even the implied warranty of            *
 
13
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
 
14
 *   Lesser General Public License for more details.                       *
 
15
 *                                                                         *
 
16
 *   You should have received a copy of the GNU Lesser General Public      *
 
17
 *   License along with this library; if not, write to the Free Software   *
 
18
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  *
 
19
 *   USA                                                                   *
 
20
 *                                                                         *
 
21
 *   Alternatively, this file is available under the Mozilla Public        *
 
22
 *   License Version 1.1.  You may obtain a copy of the License at         *
 
23
 *   http://www.mozilla.org/MPL/                                           *
 
24
 ***************************************************************************/
 
25
 
 
26
#ifndef TAGLIB_FLACPROPERTIES_H
 
27
#define TAGLIB_FLACPROPERTIES_H
 
28
 
 
29
#include "taglib_export.h"
 
30
#include "audioproperties.h"
 
31
 
 
32
namespace TagLib {
 
33
 
 
34
  namespace FLAC {
 
35
 
 
36
    class File;
 
37
 
 
38
    //! An implementation of audio property reading for FLAC
 
39
 
 
40
    /*!
 
41
     * This reads the data from an FLAC stream found in the AudioProperties
 
42
     * API.
 
43
     */
 
44
 
 
45
    class TAGLIB_EXPORT Properties : public AudioProperties
 
46
    {
 
47
    public:
 
48
      /*!
 
49
       * Create an instance of FLAC::Properties with the data read from the
 
50
       * ByteVector \a data.
 
51
       */
 
52
       // BIC: switch to const reference
 
53
      Properties(ByteVector data, long streamLength, ReadStyle style = Average);
 
54
 
 
55
      /*!
 
56
       * Create an instance of FLAC::Properties with the data read from the
 
57
       * FLAC::File \a file.
 
58
       */
 
59
       // BIC: remove
 
60
      Properties(File *file, ReadStyle style = Average);
 
61
 
 
62
      /*!
 
63
       * Destroys this FLAC::Properties instance.
 
64
       */
 
65
      virtual ~Properties();
 
66
 
 
67
      // Reimplementations.
 
68
 
 
69
      virtual int length() const;
 
70
      virtual int bitrate() const;
 
71
      virtual int sampleRate() const;
 
72
      virtual int channels() const;
 
73
 
 
74
      /*!
 
75
       * Returns the sample width as read from the FLAC identification
 
76
       * header.
 
77
       */
 
78
      int sampleWidth() const;
 
79
 
 
80
    private:
 
81
      Properties(const Properties &);
 
82
      Properties &operator=(const Properties &);
 
83
 
 
84
      void read();
 
85
 
 
86
      class PropertiesPrivate;
 
87
      PropertiesPrivate *d;
 
88
    };
 
89
  }
 
90
}
 
91
 
 
92
#endif