#pragma once #include #include std::ostream& operator<<(std::ostream& out, const pa_subscription_mask value) { return out << [value] { #define PROCESS_VAL(p) case(p): return #p; switch (value) { PROCESS_VAL(PA_SUBSCRIPTION_MASK_NULL); PROCESS_VAL(PA_SUBSCRIPTION_MASK_SINK); PROCESS_VAL(PA_SUBSCRIPTION_MASK_SOURCE); PROCESS_VAL(PA_SUBSCRIPTION_MASK_SINK_INPUT); PROCESS_VAL(PA_SUBSCRIPTION_MASK_SOURCE_OUTPUT); PROCESS_VAL(PA_SUBSCRIPTION_MASK_MODULE); PROCESS_VAL(PA_SUBSCRIPTION_MASK_CLIENT); PROCESS_VAL(PA_SUBSCRIPTION_MASK_SAMPLE_CACHE); PROCESS_VAL(PA_SUBSCRIPTION_MASK_SERVER); PROCESS_VAL(PA_SUBSCRIPTION_MASK_AUTOLOAD); PROCESS_VAL(PA_SUBSCRIPTION_MASK_CARD); PROCESS_VAL(PA_SUBSCRIPTION_MASK_ALL); default: return "Unkown Enum value"; } #undef PROCESS_VAL }(); } std::ostream& operator<<(std::ostream& out, const pa_subscription_event_type value) { return out << [value] { #define PROCESS_VAL(p) case(p): return #p; switch (value) { PROCESS_VAL(PA_SUBSCRIPTION_EVENT_SOURCE); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_SINK_INPUT); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_MODULE); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_CLIENT); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_SERVER); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_AUTOLOAD); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_CARD); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_FACILITY_MASK); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_CHANGE); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_REMOVE); PROCESS_VAL(PA_SUBSCRIPTION_EVENT_TYPE_MASK); case PA_SUBSCRIPTION_EVENT_NEW: return "PA_SUBSCRIPTION_EVENT_NEW|PA_SUBSCRIPTION_EVENT_SINK"; default: return "Unkown Enum value"; } #undef PROCESS_VAL }(); }