mirror of
https://github.com/RGBCube/serenity
synced 2025-05-18 01:35:07 +00:00

This can play anything that AWavLoader can load (so obviously only WAV files at the moment.) It works by having a timer that wakes up every 100ms and tries to send a sample buffer to the AudioServer. If our server-side queue is full then we wait until the next timer iteration and try again. We display the most recently enqueued sample buffer in a nice little widget that just plots the samples in green-on-black. :^)
19 lines
347 B
C++
19 lines
347 B
C++
#pragma once
|
|
|
|
#include <LibGUI/GFrame.h>
|
|
|
|
class ABuffer;
|
|
|
|
class SampleWidget final : public GFrame {
|
|
C_OBJECT(SampleWidget)
|
|
public:
|
|
explicit SampleWidget(GWidget* parent);
|
|
virtual ~SampleWidget() override;
|
|
|
|
void set_buffer(ABuffer*);
|
|
|
|
private:
|
|
virtual void paint_event(GPaintEvent&) override;
|
|
|
|
RefPtr<ABuffer> m_buffer;
|
|
};
|