summaryrefslogtreecommitdiff
path: root/src/tag
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2019-04-04 20:21:10 +0200
committerMax Kellermann <max@musicpd.org>2019-04-04 20:21:10 +0200
commit5256929b179bc44405f212d818cd4aa472daab3a (patch)
tree2b34260a840f6ddfb24bc8317a33f5e4594227a7 /src/tag
parent093bf5d859c3a0e5b82744719952d7dd178d4bbf (diff)
tag/Chromaprint: move to lib/chromaprint/Context.hxx
Diffstat (limited to 'src/tag')
-rw-r--r--src/tag/Chromaprint.hxx83
1 files changed, 0 insertions, 83 deletions
diff --git a/src/tag/Chromaprint.hxx b/src/tag/Chromaprint.hxx
deleted file mode 100644
index 65dea7e8b..000000000
--- a/src/tag/Chromaprint.hxx
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2018-2019 Max Kellermann <max.kellermann@gmail.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CHROMAPRINT_HXX
-#define CHROMAPRINT_HXX
-
-#include "util/ScopeExit.hxx"
-
-#include <chromaprint.h>
-
-#include <stdexcept>
-#include <string>
-
-namespace Chromaprint {
-
-class Context {
- ChromaprintContext *const ctx;
-
-public:
- Context() noexcept
- :ctx(chromaprint_new(CHROMAPRINT_ALGORITHM_DEFAULT)) {}
-
- ~Context() noexcept {
- chromaprint_free(ctx);
- }
-
- Context(const Context &) = delete;
- Context &operator=(const Context &) = delete;
-
- void Start(unsigned sample_rate, unsigned num_channels) {
- if (chromaprint_start(ctx, sample_rate, num_channels) != 1)
- throw std::runtime_error("chromaprint_start() failed");
- }
-
- void Feed(const int16_t *data, size_t size) {
- if (chromaprint_feed(ctx, data, size) != 1)
- throw std::runtime_error("chromaprint_feed() failed");
- }
-
- void Finish() {
- if (chromaprint_finish(ctx) != 1)
- throw std::runtime_error("chromaprint_finish() failed");
- }
-
- std::string GetFingerprint() const {
- char *fingerprint;
- if (chromaprint_get_fingerprint(ctx, &fingerprint) != 1)
- throw std::runtime_error("chromaprint_get_fingerprint() failed");
-
- AtScopeExit(fingerprint) { chromaprint_dealloc(fingerprint); };
- return fingerprint;
- }
-};
-
-} //namespace Chromaprint
-
-#endif