#include "binding.h" #include "signal_processing.h" #include static const char * BINDING_HW_STRING = "HW"; static const char * BINDING_SW_STRING = "SW"; static const char * UNKOWN_STRING = "UNKOWN_STRING"; void binding_from_value( uint32_t value, uint32_t * binding ) { for ( uint32_t i = 0; i < TASK_COUNT; ++i ) { binding[ i ] = value & 1; value >>= 1; } } int binding_get_channel_binding( const uint32_t * connections, const uint32_t * binding, uint32_t n, DataChannelBinding * channel_binding ) { if ( n >= CHANNEL_COUNT ) { printf( "ERROR in %s: %" PRIu32 " not a valid channel number\n", __func__, n ); return 1; } channel_binding->sink = binding[ n ]; channel_binding->source = binding[ connections[ n ] ]; return 0; } const char * binding_to_string( uint32_t binding ) { switch ( binding ) { case BINDING_SW: return BINDING_SW_STRING; case BINDING_HW: return BINDING_HW_STRING; } return UNKOWN_STRING; }