Skip to content
Snippets Groups Projects
Select Git revision
  • 61aad441486b2440b464c54f6d3861ecb83cd2e4
  • 5.4 default protected
  • dev/5.4
  • dev/5.3_downgrade
  • dev/5.5
  • 5.3 protected
  • feature/present_barrier
7 results

CAVEOverlayController.h

Blame
  • 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);
    };