[DEV] update new etk

This commit is contained in:
Edouard DUPIN 2018-04-05 21:45:26 +02:00
parent e1d4a8c7ea
commit 859417e4fe
3 changed files with 11 additions and 21 deletions

View File

@ -84,7 +84,7 @@ int32_t audio::blockEngine::Thread::start() {
return audio::blockEngine::ERR_FAIL; return audio::blockEngine::ERR_FAIL;
} }
m_state = audio::blockEngine::statusCreating; m_state = audio::blockEngine::statusCreating;
m_thread = std::make_shared<ethread::Thread>(audio::blockEngine::Thread::genericThreadCall, reinterpret_cast<void*>(this)); m_thread = ememory::makeShared<ethread::Thread>([&]() { threadCall();});
// no else ==> the thread is started corectly... (we think) // no else ==> the thread is started corectly... (we think)
return audio::blockEngine::ERR_NONE; return audio::blockEngine::ERR_NONE;
} }
@ -142,15 +142,6 @@ bool audio::blockEngine::Thread::stateStop() {
return false; return false;
} }
void audio::blockEngine::Thread::genericThreadCall(void* _data) {
audio::blockEngine::Thread * self = reinterpret_cast<audio::blockEngine::Thread*>(_data);
if (self != nullptr) {
self->threadCall();
} else {
ABE_ERROR("can not start th ethraead ...");
}
}
void audio::blockEngine::Thread::threadCall() { void audio::blockEngine::Thread::threadCall() {
bool autoKill = false; bool autoKill = false;
// Endless loop. // Endless loop.

View File

@ -7,6 +7,7 @@
#include <ethread/Thread.hpp> #include <ethread/Thread.hpp>
#include <ethread/Mutex.hpp> #include <ethread/Mutex.hpp>
#include <ememory/memory.hpp>
#include <etk/os/Fifo.hpp> #include <etk/os/Fifo.hpp>
#include <audio/blockEngine/core/audio.hpp> #include <audio/blockEngine/core/audio.hpp>
@ -24,10 +25,8 @@ namespace audio {
statusDie, //!< the thread is diing or dead statusDie, //!< the thread is diing or dead
}; };
class Thread { class Thread {
private:
static void genericThreadCall(void * data);
protected: protected:
std::shared_ptr<ethread::Thread> m_thread; ememory::SharedPtr<ethread::Thread> m_thread;
ethread::Mutex m_interfaceMutex; ethread::Mutex m_interfaceMutex;
int32_t m_flags; int32_t m_flags;
public: public:

View File

@ -65,14 +65,14 @@ int32_t audio::blockEngine::ReceiverRiver::algoInit() {
return audio::blockEngine::ERR_FAIL; return audio::blockEngine::ERR_FAIL;
} }
// set callback mode ... // set callback mode ...
m_interface->setOutputCallback(std::bind(&ReceiverRiver::onDataNeeded, m_interface->setOutputCallback([&](void* _data,
this, const audio::Time& _time,
std::placeholders::_1, size_t _nbChunk,
std::placeholders::_2, enum audio::format _format,
std::placeholders::_3, uint32_t _frequency,
std::placeholders::_4, const etk::Vector<audio::channel>& _map) {
std::placeholders::_5, onDataNeeded(_data, _time, _nbChunk, _format, _frequency, _map);
std::placeholders::_6)); });
m_interface->start(); m_interface->start();
return audio::blockEngine::ERR_NONE; return audio::blockEngine::ERR_NONE;
}; };