PageRenderTime 122ms CodeModel.GetById 60ms app.highlight 3ms RepoModel.GetById 57ms app.codeStats 1ms

/thirdparty/liblastfm2/src/fingerprint/contrib/VorbisSource.h

http://github.com/tomahawk-player/tomahawk
C++ Header | 47 lines | 23 code | 5 blank | 19 comment | 0 complexity | a99ec0ecd411fe6f0846c92685b55671 MD5 | raw file
 1/*
 2   Copyright 2009 Last.fm Ltd. 
 3   Copyright 2009 John Stamp <jstamp@users.sourceforge.net>
 4
 5   This file is part of liblastfm.
 6
 7   liblastfm is free software: you can redistribute it and/or modify
 8   it under the terms of the GNU General Public License as published by
 9   the Free Software Foundation, either version 3 of the License, or
10   (at your option) any later version.
11
12   liblastfm is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with liblastfm.  If not, see <http://www.gnu.org/licenses/>.
19*/
20#ifndef __VORBIS_SOURCE_H__
21#define __VORBIS_SOURCE_H__
22
23#include <FingerprintableSource.h>
24#include <vorbis/vorbisfile.h>
25
26
27class VorbisSource : public lastfm::FingerprintableSource
28{
29public:
30    VorbisSource();
31    ~VorbisSource();
32    virtual void getInfo(int& lengthSecs, int& samplerate, int& bitrate, int& nchannels);
33    virtual void init(const QString& fileName);
34    virtual int updateBuffer(signed short* pBuffer, size_t bufferSize);
35    virtual void skip(const int mSecs);
36    virtual void skipSilence(double silenceThreshold = 0.0001);
37    virtual bool eof() const { return m_eof; }
38
39private:
40    OggVorbis_File m_vf;
41    QString m_fileName;
42    int m_channels;
43    int m_samplerate;
44    bool m_eof;
45};
46
47#endif