Skip to content

Commit

Permalink
basics: Change sampleFrame to use std::array
Browse files Browse the repository at this point in the history
... in order to make standard containers be able to store it.
  • Loading branch information
Reflexe authored and JohannesLorenz committed Jun 13, 2020
1 parent 8c7e63b commit 02a9842
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 15 deletions.
10 changes: 4 additions & 6 deletions include/lmms_basics.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@

#ifdef LMMS_HAVE_STDINT_H
#include <cstdint>
#include <array>
#endif


typedef int32_t bar_t;
typedef int32_t tick_t;
typedef uint8_t volume_t;
Expand Down Expand Up @@ -127,12 +127,10 @@ const ch_cnt_t SURROUND_CHANNELS =



typedef sample_t sampleFrame[DEFAULT_CHANNELS];
typedef sample_t surroundSampleFrame[SURROUND_CHANNELS];
typedef std::array<sample_t, DEFAULT_CHANNELS> sampleFrame;

typedef std::array<sample_t, SURROUND_CHANNELS> surroundSampleFrame;
#define ALIGN_SIZE 16
#if __GNUC__
typedef sample_t sampleFrameA[DEFAULT_CHANNELS] __attribute__((__aligned__(ALIGN_SIZE)));
#endif


#define STRINGIFY(s) STR(s)
Expand Down
4 changes: 2 additions & 2 deletions src/core/Effect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,8 @@ void Effect::resample( int _i, const sampleFrame * _src_buf,
}
m_srcData[_i].input_frames = _frames;
m_srcData[_i].output_frames = Engine::mixer()->framesPerPeriod();
m_srcData[_i].data_in = (float *) _src_buf[0];
m_srcData[_i].data_out = _dst_buf[0];
m_srcData[_i].data_in = (float *) _src_buf[0].data ();
m_srcData[_i].data_out = _dst_buf[0].data ();
m_srcData[_i].src_ratio = (double) _dst_sr / _src_sr;
m_srcData[_i].end_of_input = 0;
int error;
Expand Down
10 changes: 5 additions & 5 deletions src/core/SampleBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -694,8 +694,8 @@ bool SampleBuffer::play( sampleFrame * _ab, handleState * _state,
// Generate output
src_data.data_in =
getSampleFragment( play_frame, fragment_size, _loopmode, &tmp, &is_backwards,
loopStartFrame, loopEndFrame, endFrame )[0];
src_data.data_out = _ab[0];
loopStartFrame, loopEndFrame, endFrame )->data ();
src_data.data_out = _ab->data ();
src_data.input_frames = fragment_size;
src_data.output_frames = _frames;
src_data.src_ratio = 1.0 / freq_factor;
Expand Down Expand Up @@ -1197,9 +1197,9 @@ SampleBuffer * SampleBuffer::resample( const sample_rate_t _src_sr,
{
SRC_DATA src_data;
src_data.end_of_input = 1;
src_data.data_in = data[0];
src_data.data_out = dst_buf[0];
src_data.input_frames = frames;
src_data.data_in = data ()->data ();
src_data.data_out = dst_sb->m_origData.data ()->data ();
src_data.input_frames = frames ();
src_data.output_frames = dst_frames;
src_data.src_ratio = (double) _dst_sr / _src_sr;
if( ( error = src_process( state, &src_data ) ) )
Expand Down
4 changes: 2 additions & 2 deletions src/core/audio/AudioDevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,8 @@ void AudioDevice::resample( const surroundSampleFrame * _src,
}
m_srcData.input_frames = _frames;
m_srcData.output_frames = _frames;
m_srcData.data_in = (float *) _src[0];
m_srcData.data_out = _dst[0];
m_srcData.data_in = (float *) _src[0].data ();
m_srcData.data_out = _dst[0].data ();
m_srcData.src_ratio = (double) _dst_sr / _src_sr;
m_srcData.end_of_input = 0;
int error;
Expand Down

0 comments on commit 02a9842

Please sign in to comment.