EHS/src/DataType.cpp

77 lines
1.4 KiB
C++

#include "ehs/DataType.h"
namespace ehs
{
DataType FromAudioBitDepth(const UInt_16 bitDepth)
{
switch (bitDepth / 8)
{
case 1:
return DataType::SINT_8;
case 2:
return DataType::SINT_16;
case 3:
return DataType::SINT_24;
case 4:
return DataType::SINT_32;
default:
return DataType::SINT_8;
}
}
UInt_8 ToByteDepth(const DataType type)
{
switch (type)
{
case DataType::LDOUBLE:
return 16;
case DataType::DOUBLE:
case DataType::SINT_64:
case DataType::UINT_64:
return 8;
case DataType::FLOAT:
case DataType::SINT_32:
case DataType::UINT_32:
return 4;
case DataType::SINT_24:
case DataType::UINT_24:
return 3;
case DataType::SINT_16:
case DataType::UINT_16:
return 2;
case DataType::SINT_8:
case DataType::UINT_8:
return 1;
default:
return 0;
}
}
UInt_8 ToBitDepth(const DataType type)
{
switch (type)
{
case DataType::LDOUBLE:
return 128;
case DataType::DOUBLE:
case DataType::SINT_64:
case DataType::UINT_64:
return 64;
case DataType::FLOAT:
case DataType::SINT_32:
case DataType::UINT_32:
return 32;
case DataType::SINT_24:
case DataType::UINT_24:
return 24;
case DataType::SINT_16:
case DataType::UINT_16:
return 16;
case DataType::SINT_8:
case DataType::UINT_8:
return 8;
default:
return 0;
}
}
}