Newer
Older
#pragma once
#include <ftl/streams/feed.hpp>
#include <ftl/threads.hpp>
#include <condition_variable>
namespace voltu
{
namespace internal
{
class RoomImpl : public voltu::Room
{
public:
explicit RoomImpl(ftl::stream::Feed*);
bool waitNextFrame(int64_t, bool except) override;
voltu::FramePtr getFrame() override;
std::string getName() override;
bool active() override;
void addFrameSet(uint32_t fsid);
private:
ftl::stream::Feed* feed_;
std::unordered_set<uint32_t> fsids_;
ftl::stream::Feed::Filter* filter_=nullptr;
MUTEX mutex_;
std::condition_variable cv_;
int64_t last_seen_ = -1;
int64_t last_read_ = -1;
};
}
}