op25/op25/gr-op25/lib/imbe_decoder_factory.cc

30 lines
853 B
C++

#include "dummy_imbe_decoder.h"
#include "imbe_decoder.h"
#include "offline_imbe_decoder.h"
#include "software_imbe_decoder.h"
#include "vc55_imbe_decoder.h"
#include <cstdlib>
#include <cstring>
imbe_decoder_sptr
imbe_decoder::make()
{
imbe_decoder_sptr imbe;
const char *imbe_type = getenv("IMBE");
if(imbe_type) {
if(strcasecmp(imbe_type, "offline") == 0) {
imbe = imbe_decoder_sptr(new offline_imbe_decoder());
} else if(strcasecmp(imbe_type, "soft") == 0) {
imbe = imbe_decoder_sptr(new software_imbe_decoder());
} else if(strcasecmp(imbe_type, "vc55") == 0) {
imbe = imbe_decoder_sptr(new vc55_imbe_decoder());
} else {
imbe = imbe_decoder_sptr(new dummy_imbe_decoder());
}
} else {
imbe = imbe_decoder_sptr(new software_imbe_decoder());
}
return imbe;
}