MusicChunk: split struct MusicChunkInfo from struct MusicChunk

This commit is contained in:
Max Kellermann 2017-12-30 17:47:08 +01:00
parent 1194998ce9
commit de0c3e717e
2 changed files with 19 additions and 13 deletions

View File

@ -24,12 +24,12 @@
#include <assert.h> #include <assert.h>
MusicChunk::MusicChunk() noexcept = default; MusicChunkInfo::MusicChunkInfo() noexcept = default;
MusicChunk::~MusicChunk() noexcept = default; MusicChunkInfo::~MusicChunkInfo() noexcept = default;
#ifndef NDEBUG #ifndef NDEBUG
bool bool
MusicChunk::CheckFormat(const AudioFormat other_format) const noexcept MusicChunkInfo::CheckFormat(const AudioFormat other_format) const noexcept
{ {
assert(other_format.IsValid()); assert(other_format.IsValid());

View File

@ -37,12 +37,12 @@ static constexpr size_t CHUNK_SIZE = 4096;
struct AudioFormat; struct AudioFormat;
struct Tag; struct Tag;
struct MusicChunk;
/** /**
* A chunk of music data. Its format is defined by the * Meta information for #MusicChunk.
* MusicPipe::Push() caller.
*/ */
struct MusicChunk { struct MusicChunkInfo {
/** the next chunk in a linked list */ /** the next chunk in a linked list */
MusicChunk *next; MusicChunk *next;
@ -94,18 +94,15 @@ struct MusicChunk {
*/ */
unsigned replay_gain_serial; unsigned replay_gain_serial;
/** the data (probably PCM) */
uint8_t data[CHUNK_SIZE];
#ifndef NDEBUG #ifndef NDEBUG
AudioFormat audio_format; AudioFormat audio_format;
#endif #endif
MusicChunk() noexcept; MusicChunkInfo() noexcept;
~MusicChunk() noexcept; ~MusicChunkInfo() noexcept;
MusicChunk(const MusicChunk &) = delete; MusicChunkInfo(const MusicChunkInfo &) = delete;
MusicChunk &operator=(const MusicChunk &) = delete; MusicChunkInfo &operator=(const MusicChunkInfo &) = delete;
bool IsEmpty() const { bool IsEmpty() const {
return length == 0 && tag == nullptr; return length == 0 && tag == nullptr;
@ -119,6 +116,15 @@ struct MusicChunk {
gcc_pure gcc_pure
bool CheckFormat(AudioFormat audio_format) const noexcept; bool CheckFormat(AudioFormat audio_format) const noexcept;
#endif #endif
};
/**
* A chunk of music data. Its format is defined by the
* MusicPipe::Push() caller.
*/
struct MusicChunk : MusicChunkInfo {
/** the data (probably PCM) */
uint8_t data[CHUNK_SIZE];
/** /**
* Prepares appending to the music chunk. Returns a buffer * Prepares appending to the music chunk. Returns a buffer