aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/cdaudio/decoder_cdaudio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/cdaudio/decoder_cdaudio.cpp')
-rw-r--r--src/plugins/Input/cdaudio/decoder_cdaudio.cpp119
1 files changed, 1 insertions, 118 deletions
diff --git a/src/plugins/Input/cdaudio/decoder_cdaudio.cpp b/src/plugins/Input/cdaudio/decoder_cdaudio.cpp
index afc6b2995..34bd8ec03 100644
--- a/src/plugins/Input/cdaudio/decoder_cdaudio.cpp
+++ b/src/plugins/Input/cdaudio/decoder_cdaudio.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2009-2016 by Ilya Kotov *
+ * Copyright (C) 2009-2020 by Ilya Kotov *
* forkotov02@ya.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -33,7 +33,6 @@
#include <cdio/audio.h>
#include <cdio/cd_types.h>
#include <cdio/logging.h>
-#include <cddb/cddb.h>
#include <qmmp/buffer.h>
#include <qmmp/output.h>
#include <qmmp/qmmpsettings.h>
@@ -61,22 +60,6 @@ static void log_handler (cdio_log_level_t level, const char *message)
}
}
-static void cddb_log_handler(cddb_log_level_t level, const char *message)
-{
- QString str = QString::fromLocal8Bit(message).trimmed();
- switch (level)
- {
- case CDDB_LOG_DEBUG:
- qDebug("DecoderCDAudio: cddb message: %s (level=debug)", qPrintable(str));
- return;
- case CDDB_LOG_INFO:
- qDebug("DecoderCDAudio: cddb message: %s (level=info)", qPrintable(str));
- return;
- default:
- qWarning("DecoderCDAudio: cddb message: %s (level=error)", qPrintable(str));
- }
-}
-
// Decoder class
DecoderCDAudio::DecoderCDAudio(const QString &url) : Decoder()
@@ -176,7 +159,6 @@ QList<CDATrack> DecoderCDAudio::generateTrackList(const QString &device, TrackIn
cdio = nullptr;
return tracks;
}
- bool use_cddb = true;
//fill track list
for (int i = first_track_number; i <= last_track_number; ++i)
{
@@ -221,7 +203,6 @@ QList<CDATrack> DecoderCDAudio::generateTrackList(const QString &device, TrackIn
t.info.setValue(Qmmp::TITLE, QString::fromUtf8(cdtext_get_const(cdtext,CDTEXT_FIELD_TITLE,i)));
t.info.setValue(Qmmp::ARTIST, QString::fromUtf8(cdtext_get_const(cdtext,CDTEXT_FIELD_PERFORMER,i)));
t.info.setValue(Qmmp::GENRE, QString::fromUtf8(cdtext_get_const(cdtext,CDTEXT_FIELD_GENRE,i)));
- use_cddb = false;
}
#endif
else
@@ -230,104 +211,6 @@ QList<CDATrack> DecoderCDAudio::generateTrackList(const QString &device, TrackIn
}
qDebug("DecoderCDAudio: found %d audio tracks", tracks.size());
- use_cddb = use_cddb && settings.value("cdaudio/use_cddb", false).toBool();
- if(use_cddb)
- {
- qDebug("DecoderCDAudio: reading CDDB...");
- cddb_log_set_handler(cddb_log_handler);
- cddb_conn_t *cddb_conn = cddb_new ();
- cddb_disc_t *cddb_disc = NULL;
- cddb_track_t *cddb_track = NULL;
- lba_t lba;
- if (!cddb_conn)
- qWarning ("DecoderCDAudio: unable to create cddb connection");
- else
- {
- cddb_cache_disable (cddb_conn); //disable libcddb cache, use own cache implementation instead
- settings.beginGroup("cdaudio");
- cddb_set_server_name (cddb_conn, settings.value("cddb_server", "freedb.org").toByteArray().constData());
- cddb_set_server_port (cddb_conn, settings.value("cddb_port", 8880).toInt());
-
- if (settings.value("cddb_http", false).toBool())
- {
- cddb_http_enable (cddb_conn);
- cddb_set_http_path_query (cddb_conn, settings.value("cddb_path").toByteArray().constData());
- if (QmmpSettings::instance()->isProxyEnabled() && QmmpSettings::instance()->proxyType() == QmmpSettings::HTTP_PROXY)
- {
- QUrl proxy = QmmpSettings::instance()->proxy();
- cddb_http_proxy_enable (cddb_conn);
- cddb_set_http_proxy_server_name (cddb_conn, proxy.host().toLatin1().constData());
- cddb_set_http_proxy_server_port (cddb_conn, proxy.port());
- if(QmmpSettings::instance()->useProxyAuth())
- {
- cddb_set_http_proxy_username (cddb_conn, proxy.userName().toLatin1().constData());
- cddb_set_http_proxy_password (cddb_conn, proxy.password().toLatin1().constData());
- }
- }
- }
- settings.endGroup();
-
- cddb_disc = cddb_disc_new ();
- lba = cdio_get_track_lba (cdio, CDIO_CDROM_LEADOUT_TRACK);
- cddb_disc_set_length (cddb_disc, FRAMES_TO_SECONDS (lba));
-
- for (int i = first_track_number; i <= last_track_number; ++i)
- {
- cddb_track = cddb_track_new ();
- cddb_track_set_frame_offset (cddb_track, cdio_get_track_lba (cdio, i));
- cddb_disc_add_track (cddb_disc, cddb_track);
- }
-
- cddb_disc_calc_discid (cddb_disc);
- uint id = cddb_disc_get_discid (cddb_disc);
- qDebug ("DecoderCDAudio: disc id = %x", id);
-
-
- if(readFromCache(&tracks, id))
- qDebug("DecoderCDAudio: using local cddb cache");
- else
- {
- int matches = cddb_query (cddb_conn, cddb_disc);
- if(matches == -1)
- {
- qWarning ("DecoderCDAudio: unable to query the CDDB server, error: %s",
- cddb_error_str (cddb_errno(cddb_conn)));
- }
- else if(matches == 0)
- {
- qDebug ("DecoderCDAudio: no CDDB info found");
- }
- else if(cddb_read(cddb_conn, cddb_disc))
- {
- for (int i = first_track_number; i <= last_track_number; ++i)
- {
- cddb_track_t *cddb_track = cddb_disc_get_track (cddb_disc, i - 1);
- int t = i - first_track_number;
- tracks[t].info.setValue(Qmmp::ARTIST,
- QString::fromUtf8(cddb_track_get_artist(cddb_track)));
- tracks[t].info.setValue(Qmmp::TITLE,
- QString::fromUtf8(cddb_track_get_title(cddb_track)));
- tracks[t].info.setValue(Qmmp::GENRE,
- QString::fromUtf8(cddb_disc_get_genre(cddb_disc)));
- tracks[t].info.setValue(Qmmp::ALBUM,
- QString::fromUtf8(cddb_disc_get_title(cddb_disc)));
- }
- saveToCache(tracks, id);
- }
- else
- {
- qWarning ("DecoderCDAudio: unable to read the CDDB info: %s",
- cddb_error_str (cddb_errno(cddb_conn)));
- }
- }
- }
- if (cddb_disc)
- cddb_disc_destroy (cddb_disc);
-
- if (cddb_conn)
- cddb_destroy (cddb_conn);
- }
-
cdio_destroy(cdio);
cdio = nullptr;
m_track_cache = tracks;