Skip to content

Commit 5db461d

Browse files
ReflexeJohannesLorenz
authored andcommitted
basics: Change sampleFrame to use std::array
... in order to make standard containers be able to store it.
1 parent 8c7e63b commit 5db461d

File tree

4 files changed

+13
-15
lines changed

4 files changed

+13
-15
lines changed

include/lmms_basics.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232

3333
#ifdef LMMS_HAVE_STDINT_H
3434
#include <cstdint>
35+
#include <array>
3536
#endif
3637

37-
3838
typedef int32_t bar_t;
3939
typedef int32_t tick_t;
4040
typedef uint8_t volume_t;
@@ -127,12 +127,10 @@ const ch_cnt_t SURROUND_CHANNELS =
127127

128128

129129

130-
typedef sample_t sampleFrame[DEFAULT_CHANNELS];
131-
typedef sample_t surroundSampleFrame[SURROUND_CHANNELS];
130+
typedef std::array<sample_t, DEFAULT_CHANNELS> sampleFrame;
131+
132+
typedef std::array<sample_t, SURROUND_CHANNELS> surroundSampleFrame;
132133
#define ALIGN_SIZE 16
133-
#if __GNUC__
134-
typedef sample_t sampleFrameA[DEFAULT_CHANNELS] __attribute__((__aligned__(ALIGN_SIZE)));
135-
#endif
136134

137135

138136
#define STRINGIFY(s) STR(s)

src/core/Effect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ void Effect::resample( int _i, const sampleFrame * _src_buf,
203203
}
204204
m_srcData[_i].input_frames = _frames;
205205
m_srcData[_i].output_frames = Engine::mixer()->framesPerPeriod();
206-
m_srcData[_i].data_in = (float *) _src_buf[0];
207-
m_srcData[_i].data_out = _dst_buf[0];
206+
m_srcData[_i].data_in = (float *) _src_buf[0].data ();
207+
m_srcData[_i].data_out = _dst_buf[0].data ();
208208
m_srcData[_i].src_ratio = (double) _dst_sr / _src_sr;
209209
m_srcData[_i].end_of_input = 0;
210210
int error;

src/core/SampleBuffer.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -694,8 +694,8 @@ bool SampleBuffer::play( sampleFrame * _ab, handleState * _state,
694694
// Generate output
695695
src_data.data_in =
696696
getSampleFragment( play_frame, fragment_size, _loopmode, &tmp, &is_backwards,
697-
loopStartFrame, loopEndFrame, endFrame )[0];
698-
src_data.data_out = _ab[0];
697+
loopStartFrame, loopEndFrame, endFrame )->data ();
698+
src_data.data_out = _ab->data ();
699699
src_data.input_frames = fragment_size;
700700
src_data.output_frames = _frames;
701701
src_data.src_ratio = 1.0 / freq_factor;
@@ -1197,9 +1197,9 @@ SampleBuffer * SampleBuffer::resample( const sample_rate_t _src_sr,
11971197
{
11981198
SRC_DATA src_data;
11991199
src_data.end_of_input = 1;
1200-
src_data.data_in = data[0];
1201-
src_data.data_out = dst_buf[0];
1202-
src_data.input_frames = frames;
1200+
src_data.data_in = data->data ();
1201+
src_data.data_out = dst_buf->data (); // @recording => !!!
1202+
src_data.input_frames = frames; // @recording => !!!
12031203
src_data.output_frames = dst_frames;
12041204
src_data.src_ratio = (double) _dst_sr / _src_sr;
12051205
if( ( error = src_process( state, &src_data ) ) )

src/core/audio/AudioDevice.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,8 @@ void AudioDevice::resample( const surroundSampleFrame * _src,
196196
}
197197
m_srcData.input_frames = _frames;
198198
m_srcData.output_frames = _frames;
199-
m_srcData.data_in = (float *) _src[0];
200-
m_srcData.data_out = _dst[0];
199+
m_srcData.data_in = (float *) _src[0].data ();
200+
m_srcData.data_out = _dst[0].data ();
201201
m_srcData.src_ratio = (double) _dst_sr / _src_sr;
202202
m_srcData.end_of_input = 0;
203203
int error;

0 commit comments

Comments
 (0)