/thirdparty/liblastfm2/src/fingerprint/FingerprintableSource.h
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