Initial commit

This commit is contained in:
Gericom
2025-11-22 17:21:45 +01:00
commit 5d6f67c612
517 changed files with 63025 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
#pragma once
#include "InputProvider.h"
#include "IInputSource.h"
/// @brief Input provider providing input from an \see IInputSource.
class SampledInputProvider : public InputProvider
{
public:
explicit SampledInputProvider(const IInputSource* inputSource)
: _inputSource(inputSource), _inputBufferReadPtr(0), _inputBufferWritePtr(0) { }
void Update() override;
/// @brief Samples the input source.
void Sample()
{
_inputBuffer[_inputBufferWritePtr] = _inputSource->Sample();
_inputBufferWritePtr = (_inputBufferWritePtr + 1) & 3;
}
void Reset() override
{
InputProvider::Reset();
_inputBufferReadPtr = 0;
_inputBufferWritePtr = 0;
}
private:
const IInputSource* _inputSource;
InputKey _inputBuffer[4];
u8 _inputBufferReadPtr;
u8 _inputBufferWritePtr;
};