summaryrefslogtreecommitdiff
path: root/src/tangara
diff options
context:
space:
mode:
authorayumi <ayumi@noreply.codeberg.org>2025-07-22 09:27:29 +0200
committerayumi <ayumi@noreply.codeberg.org>2025-08-01 20:03:21 +0200
commit4887378ce74c27f837fe1939ad5917b221736fac (patch)
tree8a3b07dc014050c82443ef4b0e83e8de2ebbf24b /src/tangara
parentb68ac702817316e75270355e19231e04f484cb74 (diff)
downloadtangara-fw-4887378ce74c27f837fe1939ad5917b221736fac.tar.gz
Preliminary ALAC support
Diffstat (limited to 'src/tangara')
-rw-r--r--src/tangara/audio/fatfs_stream_factory.cpp2
-rw-r--r--src/tangara/database/tag_parser.cpp3
-rw-r--r--src/tangara/database/tag_parser.hpp6
-rw-r--r--src/tangara/database/track.hpp1
4 files changed, 9 insertions, 3 deletions
diff --git a/src/tangara/audio/fatfs_stream_factory.cpp b/src/tangara/audio/fatfs_stream_factory.cpp
index 9089735c..2385eb69 100644
--- a/src/tangara/audio/fatfs_stream_factory.cpp
+++ b/src/tangara/audio/fatfs_stream_factory.cpp
@@ -90,6 +90,8 @@ auto FatfsStreamFactory::ContainerToStreamType(database::Container enc)
return codecs::StreamType::kOpus;
case database::Container::kWavPack:
return codecs::StreamType::kWavPack;
+ case database::Container::kAlac:
+ return codecs::StreamType::kAlac;
case database::Container::kUnsupported:
default:
return {};
diff --git a/src/tangara/database/tag_parser.cpp b/src/tangara/database/tag_parser.cpp
index 0be6cb35..1b7b4b82 100644
--- a/src/tangara/database/tag_parser.cpp
+++ b/src/tangara/database/tag_parser.cpp
@@ -416,6 +416,9 @@ auto GenericTagParser::ReadAndParseTags(std::string_view p)
case Fwavpack:
out->encoding(Container::kWavPack);
break;
+ case Falac:
+ out->encoding(Container::kAlac);
+ break;
default:
out->encoding(Container::kUnsupported);
}
diff --git a/src/tangara/database/tag_parser.hpp b/src/tangara/database/tag_parser.hpp
index eb0f4c7c..fc86c10a 100644
--- a/src/tangara/database/tag_parser.hpp
+++ b/src/tangara/database/tag_parser.hpp
@@ -62,9 +62,9 @@ class GenericTagParser : public ITagParser {
// Supported file extensions for parsing tags, derived from the list of
// supported audio formats here:
// https://cooltech.zone/tangara/docs/music-library/
- static constexpr std::string supported_exts[] = {"flac", "mp3", "ogg",
- "ogx", "opus", "wav",
- "wv"};
+ static constexpr std::string supported_exts[] = {"flac", "m4a", "mp3",
+ "ogg", "ogx", "opus",
+ "wav", "wv"};
};
} // namespace database
diff --git a/src/tangara/database/track.hpp b/src/tangara/database/track.hpp
index d6039451..e215abb1 100644
--- a/src/tangara/database/track.hpp
+++ b/src/tangara/database/track.hpp
@@ -46,6 +46,7 @@ enum class Container {
kFlac = 4,
kOpus = 5,
kWavPack = 6,
+ kAlac = 7,
};
enum class MediaType {