PageRenderTime 82ms CodeModel.GetById 40ms app.highlight 3ms RepoModel.GetById 37ms app.codeStats 0ms

/thirdparty/liblastfm2/src/fingerprint/FingerprintableSource.h

http://github.com/tomahawk-player/tomahawk
C++ Header | 48 lines | 18 code | 8 blank | 22 comment | 0 complexity | 96d5969700f14b36b9bc243f8520967a 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
21#ifndef LASTFM_FINGERPRINTABLE_SOURCE_H
22#define LASTFM_FINGERPRINTABLE_SOURCE_H
23
24#include <lastfm/global.h>
25#include <QString>
26
27namespace lastfm
28{
29    class LASTFM_FINGERPRINT_DLLEXPORT FingerprintableSource
30    {
31    public:
32        /** do all initialisation here and throw if there is problems */
33        virtual void init( const QString& path ) = 0;
34
35        virtual void getInfo( int& lengthSecs, int& samplerate, int& bitrate, int& nchannels ) = 0;
36
37        /** put a chunk of PCM data in pBuffer, don't exceed size, return the
38          * number of bytes you put in the buffer */
39        virtual int updateBuffer( signed short* buffer, size_t bufferSize ) = 0;
40
41        virtual void skip( const int mSecs ) = 0;
42        virtual void skipSilence( double silenceThreshold = 0.0001 ) = 0;
43
44        virtual bool eof() const = 0;
45    };
46}
47
48#endif