#pragma once

#include <cstdint>
#include <string>
#include <vector>

#include "core/device_discovery.h"

namespace aptt {

DeviceAvailability WasapiAvailabilityFromStateMask(std::uint32_t state_mask);
std::string WasapiStateMaskLabel(std::uint32_t state_mask);
std::string WasapiDataFlowLabel(std::uint32_t data_flow);
std::string WasapiFormFactorLabel(std::uint32_t form_factor);

DeviceCapabilitySnapshot MakeWasapiEndpointSnapshot(
    std::string endpoint_id,
    std::string friendly_name,
    std::uint32_t state_mask,
    std::uint32_t data_flow,
    std::uint32_t form_factor,
    std::vector<std::string> default_roles);

DiscoverySnapshot EnumerateWasapiRenderEndpoints();

}  // namespace aptt
