File: fingerprintcalculator.cpp

package info (click to toggle)
acoustid-fingerprinter 0.6-4
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 504 kB
  • ctags: 285
  • sloc: cpp: 1,626; ansic: 204; makefile: 3
file content (40 lines) | stat: -rw-r--r-- 852 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdlib.h>
#include "fingerprintcalculator.h"

QMutex FingerprintCalculator::m_mutex;

FingerprintCalculator::FingerprintCalculator()
{
    QMutexLocker locker(&m_mutex);
    m_context = chromaprint_new(CHROMAPRINT_ALGORITHM_DEFAULT);
}

FingerprintCalculator::~FingerprintCalculator()
{
    QMutexLocker locker(&m_mutex);
    chromaprint_free(m_context);
}

bool FingerprintCalculator::start(int sampleRate, int numChannels)
{
    return chromaprint_start(m_context, sampleRate, numChannels);
}

void FingerprintCalculator::feed(qint16 *data, int size)
{
    chromaprint_feed(m_context, data, size);
}

QString FingerprintCalculator::finish()
{
    char *fingerprint;

    chromaprint_finish(m_context);
    chromaprint_get_fingerprint(m_context, &fingerprint);

    QString result(fingerprint);
    free(fingerprint);

    return result;
}