audio_core/lle: implement RecvData
This commit is contained in:
parent
7f568a3c19
commit
b609753fb6
|
@ -9,8 +9,20 @@ namespace AudioCore {
|
||||||
|
|
||||||
struct DspLle::Impl final {
|
struct DspLle::Impl final {
|
||||||
Teakra::Teakra teakra;
|
Teakra::Teakra teakra;
|
||||||
|
|
||||||
|
static constexpr unsigned TeakraSlice = 20000;
|
||||||
|
void RunTeakraSlice() {
|
||||||
|
teakra.Run(TeakraSlice);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
u16 DspLle::RecvData(u32 register_number) {
|
||||||
|
while (!impl->teakra.RecvDataIsReady(register_number)) {
|
||||||
|
impl->RunTeakraSlice();
|
||||||
|
}
|
||||||
|
return impl->teakra.RecvData(static_cast<u8>(register_number));
|
||||||
|
}
|
||||||
|
|
||||||
DspLle::DspLle() : impl(std::make_unique<Impl>()) {}
|
DspLle::DspLle() : impl(std::make_unique<Impl>()) {}
|
||||||
DspLle::~DspLle() = default;
|
DspLle::~DspLle() = default;
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,8 @@ public:
|
||||||
DspLle();
|
DspLle();
|
||||||
~DspLle();
|
~DspLle();
|
||||||
|
|
||||||
|
u16 RecvData(u32 register_number) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct Impl;
|
struct Impl;
|
||||||
friend struct Impl;
|
friend struct Impl;
|
||||||
|
|
Reference in New Issue