MCPcopy Create free account
hub / github.com/bbc/audiowaveform / configure

Method configure

src/SndFileAudioFileReader.cpp:66–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64//------------------------------------------------------------------------------
65
66void SndFileAudioFileReader::configure(int channels, int sample_rate, const std::string& format)
67{
68 if (channels <= 0) {
69 throwError("Invalid number of input channels: must be greater than zero");
70 }
71
72 if (sample_rate <= 0) {
73 throwError("Invalid input sample rate: must be greater than zero");
74 }
75
76 info_.seekable = 0;
77 info_.frames = 0;
78 info_.sections = 0;
79
80 info_.channels = channels;
81 info_.format = SF_FORMAT_RAW;
82 info_.samplerate = sample_rate;
83
84 if (format == "s8") {
85 info_.format |= SF_FORMAT_PCM_S8;
86 }
87 else if (format == "u8") {
88 info_.format |= SF_FORMAT_PCM_U8;
89 }
90 else if (format == "s16le") {
91 info_.format |= SF_FORMAT_PCM_16;
92 info_.format |= SF_ENDIAN_LITTLE;
93 }
94 else if (format == "s16be") {
95 info_.format |= SF_FORMAT_PCM_16;
96 info_.format |= SF_ENDIAN_BIG;
97 }
98 else if (format == "s24le") {
99 info_.format |= SF_FORMAT_PCM_24;
100 info_.format |= SF_ENDIAN_LITTLE;
101 }
102 else if (format == "s24be") {
103 info_.format |= SF_FORMAT_PCM_24;
104 info_.format |= SF_ENDIAN_BIG;
105 }
106 else if (format == "s32le") {
107 info_.format |= SF_FORMAT_PCM_32;
108 info_.format |= SF_ENDIAN_LITTLE;
109 }
110 else if (format == "s32be") {
111 info_.format |= SF_FORMAT_PCM_32;
112 info_.format |= SF_ENDIAN_BIG;
113 }
114 else if (format == "f32le") {
115 info_.format |= SF_FORMAT_FLOAT;
116 info_.format |= SF_ENDIAN_LITTLE;
117 }
118 else if (format == "f32be") {
119 info_.format |= SF_FORMAT_FLOAT;
120 info_.format |= SF_ENDIAN_BIG;
121 }
122 else if (format == "f64le") {
123 info_.format |= SF_FORMAT_DOUBLE;

Callers 1

createAudioFileReaderFunction · 0.80

Calls 1

throwErrorFunction · 0.70

Tested by

no test coverage detected