pcm/Traits: add typedef long_type

This commit is contained in:
Max Kellermann 2013-12-01 19:29:55 +01:00
parent 7661ad6653
commit 28ad79c97a

View File

@ -50,6 +50,13 @@ struct SampleTraits<SampleFormat::S8> {
*/
typedef const value_type *const_pointer_type;
/**
* A "long" type that is large and accurate enough for
* arithmetic without risking an (integer) overflow or
* (floating point) precision loss.
*/
typedef int long_type;
/**
* The size of one sample in bytes.
*/
@ -68,6 +75,8 @@ struct SampleTraits<SampleFormat::S16> {
typedef value_type *pointer_type;
typedef const value_type *const_pointer_type;
typedef int long_type;
static constexpr size_t SAMPLE_SIZE = sizeof(value_type);
static constexpr unsigned BITS = sizeof(value_type) * 8;
};
@ -78,6 +87,8 @@ struct SampleTraits<SampleFormat::S32> {
typedef value_type *pointer_type;
typedef const value_type *const_pointer_type;
typedef int64_t long_type;
static constexpr size_t SAMPLE_SIZE = sizeof(value_type);
static constexpr unsigned BITS = sizeof(value_type) * 8;
};
@ -88,6 +99,8 @@ struct SampleTraits<SampleFormat::S24_P32> {
typedef value_type *pointer_type;
typedef const value_type *const_pointer_type;
typedef int long_type;
static constexpr size_t SAMPLE_SIZE = sizeof(value_type);
static constexpr unsigned BITS = 24;
};