1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 09:17:35 +00:00

Refactor: Replace usages of FixedArray with Array.

This commit is contained in:
asynts 2020-09-06 21:40:46 +02:00 committed by Andreas Kling
parent 76e37e8c96
commit 9c83d6ff46
8 changed files with 52 additions and 54 deletions

View file

@ -28,7 +28,6 @@
#pragma once
#include "Music.h"
#include <AK/FixedArray.h>
#include <AK/Noncopyable.h>
#include <AK/SinglyLinkedList.h>
#include <LibAudio/Buffer.h>

View file

@ -36,7 +36,7 @@ TrackManager::~TrackManager()
{
}
void TrackManager::fill_buffer(FixedArray<Sample>& buffer)
void TrackManager::fill_buffer(Span<Sample> buffer)
{
memset(buffer.data(), 0, buffer_size);
@ -51,8 +51,8 @@ void TrackManager::fill_buffer(FixedArray<Sample>& buffer)
}
}
memcpy(m_back_buffer_ptr->data(), buffer.data(), buffer_size);
swap(m_front_buffer_ptr, m_back_buffer_ptr);
memcpy(m_current_back_buffer.data(), buffer.data(), buffer_size);
swap(m_current_front_buffer, m_current_back_buffer);
}
void TrackManager::reset()
@ -60,8 +60,8 @@ void TrackManager::reset()
memset(m_front_buffer.data(), 0, buffer_size);
memset(m_back_buffer.data(), 0, buffer_size);
m_front_buffer_ptr = &m_front_buffer;
m_back_buffer_ptr = &m_back_buffer;
m_current_front_buffer = m_front_buffer.span();
m_current_back_buffer = m_back_buffer.span();
m_time = 0;

View file

@ -29,6 +29,7 @@
#include "Music.h"
#include "Track.h"
#include <AK/Array.h>
#include <AK/Noncopyable.h>
#include <AK/NonnullOwnPtr.h>
#include <AK/Vector.h>
@ -42,12 +43,12 @@ public:
~TrackManager();
Track& current_track() { return *m_tracks[m_current_track]; }
const FixedArray<Sample>& buffer() const { return *m_front_buffer_ptr; }
Span<const Sample> buffer() const { return m_current_front_buffer; }
int octave() const { return m_octave; }
int octave_base() const { return (m_octave - octave_min) * 12; }
int time() const { return m_time; }
void fill_buffer(FixedArray<Sample>& buffer);
void fill_buffer(Span<Sample>);
void reset();
void set_should_loop(bool b) { m_should_loop = b; }
void set_note_current_octave(int note, Switch);
@ -60,10 +61,10 @@ private:
Vector<NonnullOwnPtr<Track>> m_tracks;
size_t m_current_track { 0 };
FixedArray<Sample> m_front_buffer { sample_count };
FixedArray<Sample> m_back_buffer { sample_count };
FixedArray<Sample>* m_front_buffer_ptr { &m_front_buffer };
FixedArray<Sample>* m_back_buffer_ptr { &m_back_buffer };
Array<Sample, sample_count> m_front_buffer;
Array<Sample, sample_count> m_back_buffer;
Span<Sample> m_current_front_buffer { m_front_buffer.span() };
Span<Sample> m_current_back_buffer { m_back_buffer.span() };
int m_octave { 4 };

View file

@ -27,6 +27,7 @@
#include "MainWidget.h"
#include "TrackManager.h"
#include <AK/Array.h>
#include <LibAudio/ClientConnection.h>
#include <LibAudio/WavWriter.h>
#include <LibCore/EventLoop.h>
@ -69,7 +70,7 @@ int main(int argc, char** argv)
return 1;
}
FixedArray<Sample> buffer(sample_count);
Array<Sample, sample_count> buffer;
for (;;) {
track_manager.fill_buffer(buffer);
audio->write(reinterpret_cast<u8*>(buffer.data()), buffer_size);