Johannes Kutning 0d1b73e3e0 Initial commit
2023-10-31 07:47:27 +01:00

43 lines
1.0 KiB
C

#include "binding.h"
#include "signal_processing.h"
#include <stdio.h>
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;
}