Add support for disk position in ID3v2.0
This commit is contained in:
parent
e87f788dce
commit
a065412d98
|
@ -173,8 +173,8 @@ set(META_APP_AUTHOR "Martchus")
|
|||
set(META_APP_URL "https://github.com/${META_APP_AUTHOR}/${META_PROJECT_NAME}")
|
||||
set(META_APP_DESCRIPTION "C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags")
|
||||
set(META_VERSION_MAJOR 7)
|
||||
set(META_VERSION_MINOR 0)
|
||||
set(META_VERSION_PATCH 4)
|
||||
set(META_VERSION_MINOR 1)
|
||||
set(META_VERSION_PATCH 0)
|
||||
set(META_PUBLIC_SHARED_LIB_DEPENDS c++utilities)
|
||||
set(META_PUBLIC_STATIC_LIB_DEPENDS c++utilities_static)
|
||||
set(META_PRIVATE_COMPILE_DEFINITIONS LEGACY_API)
|
||||
|
|
|
@ -231,7 +231,7 @@ void Id3v2Frame::parse(BinaryReader &reader, uint32 version, uint32 maximalSize,
|
|||
// frame contains text
|
||||
TagTextEncoding dataEncoding = parseTextEncodingByte(static_cast<byte>(*buffer.get()), diag); // the first byte stores the encoding
|
||||
if ((version >= 3 && (id() == Id3v2FrameIds::lTrackPosition || id() == Id3v2FrameIds::lDiskPosition))
|
||||
|| (version < 3 && id() == Id3v2FrameIds::sTrackPosition)) {
|
||||
|| (version < 3 && (id() == Id3v2FrameIds::sTrackPosition || id() == Id3v2FrameIds::sDiskPosition))) {
|
||||
// the track number or the disk number frame
|
||||
try {
|
||||
if (characterSize(dataEncoding) > 1) {
|
||||
|
@ -418,8 +418,7 @@ Id3v2FrameMaker::Id3v2FrameMaker(Id3v2Frame &frame, byte version, Diagnostics &d
|
|||
if (Id3v2FrameIds::isTextFrame(m_frameId)) {
|
||||
// make text frames
|
||||
if ((version >= 3 && (m_frameId == Id3v2FrameIds::lTrackPosition || m_frameId == Id3v2FrameIds::lDiskPosition))
|
||||
|| (version < 3 && m_frameId == Id3v2FrameIds::sTrackPosition)) {
|
||||
// track number or the disk number frame
|
||||
|| (version < 3 && (m_frameId == Id3v2FrameIds::sTrackPosition || m_frameId == Id3v2FrameIds::sDiskPosition))) {
|
||||
// make track number or disk number frame
|
||||
// -> convert the position to string
|
||||
const auto positionStr(value.toString(TagTextEncoding::Latin1));
|
||||
|
|
|
@ -39,6 +39,8 @@ uint32 convertToShortId(uint32 id)
|
|||
return sGenre;
|
||||
case lTrackPosition:
|
||||
return sTrackPosition;
|
||||
case lDiskPosition:
|
||||
return sDiskPosition;
|
||||
case lEncoder:
|
||||
return sEncoder;
|
||||
case lBpm:
|
||||
|
@ -89,6 +91,8 @@ uint32 convertToLongId(uint32 id)
|
|||
return lGenre;
|
||||
case sTrackPosition:
|
||||
return lTrackPosition;
|
||||
case sDiskPosition:
|
||||
return lDiskPosition;
|
||||
case sEncoder:
|
||||
return lEncoder;
|
||||
case sBpm:
|
||||
|
|
|
@ -42,6 +42,7 @@ enum KnownValue : uint32 {
|
|||
sTitle = 0x545432,
|
||||
sGenre = 0x54434f,
|
||||
sTrackPosition = 0x54524b,
|
||||
sDiskPosition = 0x545041,
|
||||
sEncoder = 0x54454e,
|
||||
sBpm = 0x544250,
|
||||
sCover = 0x504943,
|
||||
|
|
|
@ -90,7 +90,7 @@ Id3v2Tag::IdentifierType Id3v2Tag::internallyGetFieldId(KnownField field) const
|
|||
case KnownField::TrackPosition:
|
||||
return sTrackPosition;
|
||||
case KnownField::DiskPosition:
|
||||
return lDiskPosition;
|
||||
return sDiskPosition;
|
||||
case KnownField::Encoder:
|
||||
return sEncoder;
|
||||
case KnownField::Bpm:
|
||||
|
|
Loading…
Reference in New Issue