Select Git revision
CAVEOverlayController.h
multiplexers.h 662 B
#pragma once
#include <eismultiplexer.h>
#include <vector>
#include <mutex>
#include <memory>
#include "log.h"
class Multiplexers
{
private:
static constexpr int CH_PER_DEVICE = 7;
struct Device
{
eismultiplexer device;
std::unique_ptr<std::mutex> mutex;
};
std::vector<Device> devices;
static channel_t chNumberToCh(int ch);
static std::string chToString(channel_t ch);
public:
Multiplexers(const std::vector<uint16_t> serials);
bool connectAll();
bool disconnectAll();
bool setCh(int ch, bool connected);
bool setChExlusive(int ch, bool connected);
size_t chCount();
std::vector<bool> getConnected();
bool log(Log::Level level);
};