diff options
Diffstat (limited to 'src/plugins/Input/cdaudio/decoder_cdaudio.cpp')
| -rw-r--r-- | src/plugins/Input/cdaudio/decoder_cdaudio.cpp | 119 |
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; |
