pcm/Traits: add "SILENCE" attribute
This commit is contained in:
parent
7a098ca0ed
commit
df9a665994
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "Silence.hxx"
|
#include "Silence.hxx"
|
||||||
|
#include "Traits.hxx"
|
||||||
#include "SampleFormat.hxx"
|
#include "SampleFormat.hxx"
|
||||||
#include "util/WritableBuffer.hxx"
|
#include "util/WritableBuffer.hxx"
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ PcmSilence(WritableBuffer<void> dest, SampleFormat format)
|
|||||||
{
|
{
|
||||||
uint8_t pattern = 0;
|
uint8_t pattern = 0;
|
||||||
if (format == SampleFormat::DSD)
|
if (format == SampleFormat::DSD)
|
||||||
pattern = 0x69;
|
pattern = SampleTraits<SampleFormat::DSD>::SILENCE;
|
||||||
|
|
||||||
memset(dest.data, pattern, dest.size);
|
memset(dest.data, pattern, dest.size);
|
||||||
}
|
}
|
||||||
|
@ -85,6 +85,11 @@ struct SampleTraits<SampleFormat::S8> {
|
|||||||
* The maximum sample value.
|
* The maximum sample value.
|
||||||
*/
|
*/
|
||||||
static constexpr value_type MAX = (sum_type(1) << (BITS - 1)) - 1;
|
static constexpr value_type MAX = (sum_type(1) << (BITS - 1)) - 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A value which represents "silence".
|
||||||
|
*/
|
||||||
|
static constexpr value_type SILENCE = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@ -101,6 +106,7 @@ struct SampleTraits<SampleFormat::S16> {
|
|||||||
|
|
||||||
static constexpr value_type MIN = -(sum_type(1) << (BITS - 1));
|
static constexpr value_type MIN = -(sum_type(1) << (BITS - 1));
|
||||||
static constexpr value_type MAX = (sum_type(1) << (BITS - 1)) - 1;
|
static constexpr value_type MAX = (sum_type(1) << (BITS - 1)) - 1;
|
||||||
|
static constexpr value_type SILENCE = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@ -117,6 +123,7 @@ struct SampleTraits<SampleFormat::S32> {
|
|||||||
|
|
||||||
static constexpr value_type MIN = -(sum_type(1) << (BITS - 1));
|
static constexpr value_type MIN = -(sum_type(1) << (BITS - 1));
|
||||||
static constexpr value_type MAX = (sum_type(1) << (BITS - 1)) - 1;
|
static constexpr value_type MAX = (sum_type(1) << (BITS - 1)) - 1;
|
||||||
|
static constexpr value_type SILENCE = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@ -133,6 +140,7 @@ struct SampleTraits<SampleFormat::S24_P32> {
|
|||||||
|
|
||||||
static constexpr value_type MIN = -(sum_type(1) << (BITS - 1));
|
static constexpr value_type MIN = -(sum_type(1) << (BITS - 1));
|
||||||
static constexpr value_type MAX = (sum_type(1) << (BITS - 1)) - 1;
|
static constexpr value_type MAX = (sum_type(1) << (BITS - 1)) - 1;
|
||||||
|
static constexpr value_type SILENCE = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@ -148,6 +156,7 @@ struct SampleTraits<SampleFormat::FLOAT> {
|
|||||||
|
|
||||||
static constexpr value_type MIN = -1;
|
static constexpr value_type MIN = -1;
|
||||||
static constexpr value_type MAX = 1;
|
static constexpr value_type MAX = 1;
|
||||||
|
static constexpr value_type SILENCE = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
@ -157,6 +166,8 @@ struct SampleTraits<SampleFormat::DSD> {
|
|||||||
typedef const value_type *const_pointer_type;
|
typedef const value_type *const_pointer_type;
|
||||||
|
|
||||||
static constexpr size_t SAMPLE_SIZE = sizeof(value_type);
|
static constexpr size_t SAMPLE_SIZE = sizeof(value_type);
|
||||||
|
|
||||||
|
static constexpr value_type SILENCE = 0x69;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user