identifier.hpp file
Public API for calculating AccurateRip ids.
Namespaces
- namespace arcstk
- libarcstk main namespace
- namespace arcstk::v_1_0_0 inline
- API version 1.0.0.
- namespace arcstk::v_1_0_0::toc
- Functions assisting the management of TOCs.
Classes
- class arcstk::v_1_0_0::ARId
- AccurateRip-Identifier of a compact disc.
- struct arcstk::v_1_0_0::CDDA
- Constants related to the CDDA format.
- class arcstk::v_1_0_0::InvalidMetadataException
- Reports invalid metadata for building a TOC.
- class arcstk::v_1_0_0::NonstandardMetadataException
- Reports metadata violating the redbook standard.
- class arcstk::v_1_0_0::TOC
- Table of contents of a compact disc.
Typedefs
-
template<typename T>using IsFilenameContainer = std::enable_if_t<details::is_filename_container<T>::value>
- Defined iff T is a container whose value_type IsFilenameType.
-
template<typename T>using IsFilenameType = std::enable_if_t<details::is_filename_type<T>::value>
- Defined iff T is a filename type, i.e. std::string or std::wstring.
-
template<typename T>using IsLBAContainer = std::enable_if_t<details::is_lba_container<T>::value>
- Defined iff T is a container whose value_type IsLBAType.
-
template<typename T>using IsLBAType = std::enable_if_t<details::is_lba_type<T>::value>
- Defined iff T is a numerical integer type of at least 32 bit size.
- using lba_count_t = int32_t
- Type to represent amounts of LBA frames.
- using TrackNo = int
- Type to represent 1-based track numbers.
Functions
- auto get_filenames(const std::unique_ptr<TOC>& toc) -> std::vector<std::string>
- Extract filenames from TOC in order.
- auto get_filenames(const TOC& toc) -> std::vector<std::string>
- Extract filenames from TOC in order.
- auto get_offsets(const std::unique_ptr<TOC>& toc) -> std::vector<lba_count_t>
- Extract the offsets from a TOC to an iterable container.
- auto get_offsets(const TOC& toc) -> std::vector<lba_count_t>
- Extract the offsets from a TOC to an iterable container.
- auto get_parsed_lengths(const std::unique_ptr<TOC>& toc) -> std::vector<lba_count_t>
- Extract parsed lengths from TOC in order.
- auto get_parsed_lengths(const TOC& toc) -> std::vector<lba_count_t>
- Extract parsed lengths from TOC in order.
- auto make_arid(const std::unique_ptr<TOC>& toc) -> std::unique_ptr<ARId>
- Create an ARId from a complete() TOC.
- auto make_arid(const TOC& toc) -> std::unique_ptr<ARId>
- Create an ARId from a complete() TOC.
- auto make_arid(const TOC& toc, const lba_count_t leadout) -> std::unique_ptr<ARId>
- Create an ARId from a TOC and a specified leadout.
-
template<typename LBAContainer, typename = IsLBAContainer<LBAContainer>>auto make_arid(const TrackNo track_count, LBAContainer&& offsets, const lba_count_t leadout) -> std::unique_ptr<ARId>
- Create an ARId by track_count, offsets and leadout.
-
template<typename T, typename = IsLBAType<T>>auto make_arid(const TrackNo track_count, std::initializer_list<T> offsets, const lba_count_t leadout) -> std::unique_ptr<ARId>
- Create an ARId by track_count, offsets and leadout.
-
template<typename LBAContainer, typename = IsLBAContainer<LBAContainer>>auto make_arid(LBAContainer&& offsets, const lba_count_t leadout) -> std::unique_ptr<ARId>
- Create an ARId by offsets and leadout.
-
template<typename T, typename = IsLBAType<T>>auto make_arid(std::initializer_list<T> offsets, const lba_count_t leadout) -> std::unique_ptr<ARId>
- Create an ARId by offsets and leadout.
- auto make_empty_arid() -> std::unique_ptr<ARId> noexcept
- Create an empty() ARId.
-
template<typename LBAContainer, typename FilenameContainer = std::vector<std::string>, typename = IsLBAContainer<LBAContainer>, typename = IsFilenameContainer<FilenameContainer>>auto make_toc(const TrackNo track_count, LBAContainer&& offsets, const lba_count_t leadout, FilenameContainer&& files = {}) -> std::unique_ptr<TOC>
- Create a TOC by track count, offsets, leadout and optional filenames.
-
template<typename LBAContainer1, typename LBAContainer2, typename FilenameContainer = std::vector<std::string>, typename = IsLBAContainer<LBAContainer1>, typename = IsLBAContainer<LBAContainer2>, typename = IsFilenameContainer<FilenameContainer>>auto make_toc(const TrackNo track_count, LBAContainer1&& offsets, LBAContainer2&& lengths, FilenameContainer&& files = {}) -> std::unique_ptr<TOC>
- Create a TOC by track count, offsets, lengths and optional filenames.
-
template<typename LBAContainer, typename FilenameContainer = std::vector<std::string>, typename = IsLBAContainer<LBAContainer>, typename = IsFilenameContainer<FilenameContainer>>auto make_toc(LBAContainer&& offsets, const lba_count_t leadout, FilenameContainer&& files = {}) -> std::unique_ptr<TOC>
- Create a TOC by offsets, leadout and optional filenames.
-
template<typename LBAContainer1, typename LBAContainer2, typename FilenameContainer = std::vector<std::string>, typename = IsLBAContainer<LBAContainer1>, typename = IsLBAContainer<LBAContainer2>, typename = IsFilenameContainer<FilenameContainer>>auto make_toc(LBAContainer1&& offsets, LBAContainer2&& lengths, FilenameContainer&& files = {}) -> std::unique_ptr<TOC>
- Create a TOC by offsets, lengths and optional filenames.