This commit is contained in:
Marius Lindvall 2024-04-29 09:23:03 +00:00 committed by GitHub
commit d30381a562
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 28 additions and 28 deletions

View File

@ -91,7 +91,7 @@ void CloudStream::Precache() {
clear(); clear();
} }
TagLib::ByteVector CloudStream::readBlock(ulong length) { TagLib::ByteVector CloudStream::readBlock(size_t length) {
const uint start = cursor_; const uint start = cursor_;
const uint end = qMin(cursor_ + length - 1, length_ - 1); const uint end = qMin(cursor_ + length - 1, length_ - 1);
@ -144,11 +144,11 @@ void CloudStream::writeBlock(const TagLib::ByteVector&) {
qLog(Debug) << Q_FUNC_INFO << "not implemented"; qLog(Debug) << Q_FUNC_INFO << "not implemented";
} }
void CloudStream::insert(const TagLib::ByteVector&, ulong, ulong) { void CloudStream::insert(const TagLib::ByteVector&, TagLib::offset_t, size_t) {
qLog(Debug) << Q_FUNC_INFO << "not implemented"; qLog(Debug) << Q_FUNC_INFO << "not implemented";
} }
void CloudStream::removeBlock(ulong, ulong) { void CloudStream::removeBlock(TagLib::offset_t, size_t) {
qLog(Debug) << Q_FUNC_INFO << "not implemented"; qLog(Debug) << Q_FUNC_INFO << "not implemented";
} }
@ -159,7 +159,7 @@ bool CloudStream::readOnly() const {
bool CloudStream::isOpen() const { return true; } bool CloudStream::isOpen() const { return true; }
void CloudStream::seek(long offset, TagLib::IOStream::Position p) { void CloudStream::seek(TagLib::offset_t offset, TagLib::IOStream::Position p) {
switch (p) { switch (p) {
case TagLib::IOStream::Beginning: case TagLib::IOStream::Beginning:
cursor_ = offset; cursor_ = offset;
@ -178,11 +178,11 @@ void CloudStream::seek(long offset, TagLib::IOStream::Position p) {
void CloudStream::clear() { cursor_ = 0; } void CloudStream::clear() { cursor_ = 0; }
long CloudStream::tell() const { return cursor_; } TagLib::offset_t CloudStream::tell() const { return cursor_; }
long CloudStream::length() { return length_; } TagLib::offset_t CloudStream::length() { return length_; }
void CloudStream::truncate(long) { void CloudStream::truncate(TagLib::offset_t) {
qLog(Debug) << Q_FUNC_INFO << "not implemented"; qLog(Debug) << Q_FUNC_INFO << "not implemented";
} }

View File

@ -35,17 +35,17 @@ class CloudStream : public QObject, public TagLib::IOStream {
// Taglib::IOStream // Taglib::IOStream
virtual TagLib::FileName name() const; virtual TagLib::FileName name() const;
virtual TagLib::ByteVector readBlock(ulong length); virtual TagLib::ByteVector readBlock(size_t length);
virtual void writeBlock(const TagLib::ByteVector&); virtual void writeBlock(const TagLib::ByteVector&);
virtual void insert(const TagLib::ByteVector&, ulong, ulong); virtual void insert(const TagLib::ByteVector&, TagLib::offset_t, size_t);
virtual void removeBlock(ulong, ulong); virtual void removeBlock(TagLib::offset_t, size_t);
virtual bool readOnly() const; virtual bool readOnly() const;
virtual bool isOpen() const; virtual bool isOpen() const;
virtual void seek(long offset, TagLib::IOStream::Position p); virtual void seek(TagLib::offset_t offset, TagLib::IOStream::Position p);
virtual void clear(); virtual void clear();
virtual long tell() const; virtual TagLib::offset_t tell() const;
virtual long length(); virtual TagLib::offset_t length();
virtual void truncate(long); virtual void truncate(TagLib::offset_t);
google::sparsetable<char>::size_type cached_bytes() const { google::sparsetable<char>::size_type cached_bytes() const {
return cache_.num_nonempty(); return cache_.num_nonempty();

View File

@ -198,7 +198,7 @@ void TagReader::ReadFile(const QString& filename,
// Find album artists // Find album artists
TagLib::APE::ItemListMap::ConstIterator it = items.find("ALBUM ARTIST"); TagLib::APE::ItemListMap::ConstIterator it = items.find("ALBUM ARTIST");
if (it != items.end()) { if (it != items.end()) {
TagLib::StringList album_artists = it->second.toStringList(); TagLib::StringList album_artists = it->second.values();
if (!album_artists.isEmpty()) { if (!album_artists.isEmpty()) {
Decode(album_artists.front(), nullptr, song->mutable_albumartist()); Decode(album_artists.front(), nullptr, song->mutable_albumartist());
} }
@ -243,22 +243,22 @@ void TagReader::ReadFile(const QString& filename,
} }
if (items.contains("BPM")) { if (items.contains("BPM")) {
Decode(items["BPM"].toStringList().toString(", "), nullptr, Decode(items["BPM"].values().toString(", "), nullptr,
song->mutable_performer()); song->mutable_performer());
} }
if (items.contains("PERFORMER")) { if (items.contains("PERFORMER")) {
Decode(items["PERFORMER"].toStringList().toString(", "), nullptr, Decode(items["PERFORMER"].values().toString(", "), nullptr,
song->mutable_performer()); song->mutable_performer());
} }
if (items.contains("COMPOSER")) { if (items.contains("COMPOSER")) {
Decode(items["COMPOSER"].toStringList().toString(", "), nullptr, Decode(items["COMPOSER"].values().toString(", "), nullptr,
song->mutable_composer()); song->mutable_composer());
} }
if (items.contains("GROUPING")) { if (items.contains("GROUPING")) {
Decode(items["GROUPING"].toStringList().toString(" "), nullptr, Decode(items["GROUPING"].values().toString(" "), nullptr,
song->mutable_grouping()); song->mutable_grouping());
} }
@ -565,8 +565,8 @@ void TagReader::ReadFile(const QString& filename,
if (fileref->audioProperties()) { if (fileref->audioProperties()) {
song->set_bitrate(fileref->audioProperties()->bitrate()); song->set_bitrate(fileref->audioProperties()->bitrate());
song->set_samplerate(fileref->audioProperties()->sampleRate()); song->set_samplerate(fileref->audioProperties()->sampleRate());
song->set_length_nanosec(fileref->audioProperties()->length() * song->set_length_nanosec(fileref->audioProperties()->lengthInMilliseconds() *
kNsecPerSec); kNsecPerMsec);
} }
// Get the filetype if we can // Get the filetype if we can
@ -1376,9 +1376,9 @@ bool TagReader::ReadCloudFile(const QUrl& download_url, const QString& title,
std::unique_ptr<TagLib::File> tag; std::unique_ptr<TagLib::File> tag;
if (mime_type == "audio/mpeg" && if (mime_type == "audio/mpeg" &&
title.endsWith(".mp3", Qt::CaseInsensitive)) { title.endsWith(".mp3", Qt::CaseInsensitive)) {
tag.reset(new TagLib::MPEG::File(stream.get(), tag.reset(new TagLib::MPEG::File(stream.get(), true,
TagLib::ID3v2::FrameFactory::instance(), TagLib::AudioProperties::Accurate,
TagLib::AudioProperties::Accurate)); TagLib::ID3v2::FrameFactory::instance()));
} else if (mime_type == "audio/mp4" || } else if (mime_type == "audio/mp4" ||
(mime_type == "audio/mpeg" && (mime_type == "audio/mpeg" &&
title.endsWith(".m4a", Qt::CaseInsensitive))) { title.endsWith(".m4a", Qt::CaseInsensitive))) {
@ -1398,9 +1398,9 @@ bool TagReader::ReadCloudFile(const QUrl& download_url, const QString& title,
TagLib::AudioProperties::Accurate)); TagLib::AudioProperties::Accurate));
} else if (mime_type == "application/x-flac" || mime_type == "audio/flac" || } else if (mime_type == "application/x-flac" || mime_type == "audio/flac" ||
mime_type == "audio/x-flac") { mime_type == "audio/x-flac") {
tag.reset(new TagLib::FLAC::File(stream.get(), tag.reset(new TagLib::FLAC::File(stream.get(), true,
TagLib::ID3v2::FrameFactory::instance(), TagLib::AudioProperties::Accurate,
true, TagLib::AudioProperties::Accurate)); TagLib::ID3v2::FrameFactory::instance()));
} else if (mime_type == "audio/x-ms-wma") { } else if (mime_type == "audio/x-ms-wma") {
tag.reset(new TagLib::ASF::File(stream.get(), true, tag.reset(new TagLib::ASF::File(stream.get(), true,
TagLib::AudioProperties::Accurate)); TagLib::AudioProperties::Accurate));
@ -1431,7 +1431,7 @@ bool TagReader::ReadCloudFile(const QUrl& download_url, const QString& title,
song->set_type(cpb::tagreader::SongMetadata_Type_STREAM); song->set_type(cpb::tagreader::SongMetadata_Type_STREAM);
if (tag->audioProperties()) { if (tag->audioProperties()) {
song->set_length_nanosec(tag->audioProperties()->length() * kNsecPerSec); song->set_length_nanosec(tag->audioProperties()->lengthInMilliseconds() * kNsecPerMsec);
} }
return true; return true;
} }