#pragma once #include "aja-enums.hpp" #include #include #include #include namespace aja { struct RoutingPreset { std::string name; ConnectionKind kind; NTV2Mode mode; RasterDefinition raster_def; HDMIWireFormat hdmi_wire_format; VPIDStandard vpid_standard; uint32_t num_channels; uint32_t num_framestores; uint32_t flags; std::string route_string; std::vector device_ids; bool is_rgb; bool verbatim; }; using RoutingPresets = std::vector; using RoutingPresetPair = std::pair; using RoutingPresetMap = std::map; class RoutingConfigurator { public: RoutingConfigurator(); void AddPreset(const std::string &name, const RoutingPreset &preset); bool PresetByName(const std::string &name, RoutingPreset &preset) const; RoutingPresetMap GetPresetTable() const; bool FindFirstPreset(ConnectionKind kind, NTV2DeviceID id, NTV2Mode mode, NTV2VideoFormat vf, NTV2PixelFormat pf, VPIDStandard standard, HDMIWireFormat hwf, RoutingPreset &preset); private: void build_preset_table(); RoutingPresetMap m_presets; }; } // namespace aja