mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-13 00:29:14 +00:00
35 lines
664 B
C++
35 lines
664 B
C++
|
//
|
||
|
// DeferredAudio.hpp
|
||
|
// Clock Signal
|
||
|
//
|
||
|
// Created by Thomas Harte on 01/06/2019.
|
||
|
// Copyright © 2019 Thomas Harte. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#ifndef DeferredAudio_h
|
||
|
#define DeferredAudio_h
|
||
|
|
||
|
#include "Audio.hpp"
|
||
|
#include "../../../Outputs/Speaker/Implementation/LowpassSpeaker.hpp"
|
||
|
|
||
|
namespace Apple {
|
||
|
namespace Macintosh {
|
||
|
|
||
|
struct DeferredAudio {
|
||
|
Concurrency::DeferringAsyncTaskQueue queue;
|
||
|
Audio audio;
|
||
|
Outputs::Speaker::LowpassSpeaker<Audio> speaker;
|
||
|
HalfCycles time_since_update;
|
||
|
|
||
|
DeferredAudio() : audio(queue), speaker(audio) {}
|
||
|
|
||
|
void flush() {
|
||
|
speaker.run_for(queue, time_since_update.flush_cycles());
|
||
|
}
|
||
|
};
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif /* DeferredAudio_h */
|