/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. This file is part of liblastfm.
  5. liblastfm is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9. liblastfm is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with liblastfm. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #ifndef LASTFM_FINGERPRINTABLE_SOURCE_H
  17. #define LASTFM_FINGERPRINTABLE_SOURCE_H
  18. #include <lastfm/global.h>
  19. #include <QString>
  20. namespace lastfm
  21. {
  22. class LASTFM_FINGERPRINT_DLLEXPORT FingerprintableSource
  23. {
  24. public:
  25. /** do all initialisation here and throw if there is problems */
  26. virtual void init( const QString& path ) = 0;
  27. virtual void getInfo( int& lengthSecs, int& samplerate, int& bitrate, int& nchannels ) = 0;
  28. /** put a chunk of PCM data in pBuffer, don't exceed size, return the
  29. * number of bytes you put in the buffer */
  30. virtual int updateBuffer( signed short* buffer, size_t bufferSize ) = 0;
  31. virtual void skip( const int mSecs ) = 0;
  32. virtual void skipSilence( double silenceThreshold = 0.0001 ) = 0;
  33. virtual bool eof() const = 0;
  34. };
  35. }
  36. #endif