audio_core/lle: implement RecvData

This commit is contained in:
Weiyi Wang 2018-12-06 07:22:31 -05:00
parent 7f568a3c19
commit b609753fb6
2 changed files with 14 additions and 0 deletions

View file

@ -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;

View file

@ -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;