SoapySDR  0.7.0-unknown
Vendor and platform neutral SDR interface library
ConverterRegistry.hpp
Go to the documentation of this file.
1 
12 #pragma once
13 #include <SoapySDR/Config.hpp>
14 #include <SoapySDR/Logger.hpp>
15 #include <SoapySDR/Formats.hpp>
16 #include <utility>
17 #include <vector>
18 #include <map>
19 #include <string>
20 
21 namespace SoapySDR
22 {
24  {
25  public:
31  typedef void (*ConverterFunction)(const void *, void *, const size_t, const double);
32 
37  GENERIC = 0, // usual C for-loops, shifts, multiplies, etc
38  VECTORIZED = 3, // vectorized operations such as SIMD
39  CUSTOM = 5 // custom user re-implementation, max priority
40  };
41 
45  typedef std::map<FunctionPriority, ConverterFunction> TargetFormatConverterPriority;
46 
50  typedef std::map<std::string, TargetFormatConverterPriority> TargetFormatConverters;
51 
55  typedef std::map<std::string, TargetFormatConverters> FormatConverters;
56 
65  ConverterRegistry(const std::string &sourceFormat, const std::string &targetFormat, const FunctionPriority &priority, ConverterFunction converter);
66 
74  static std::vector<std::string> listTargetFormats(const std::string &sourceFormat);
75 
83  static std::vector<std::string> listSourceFormats(const std::string &targetFormat);
84 
91  static std::vector<FunctionPriority> listPriorities(const std::string &sourceFormat, const std::string &targetFormat);
92 
100  static ConverterFunction getFunction(const std::string &sourceFormat, const std::string &targetFormat);
101  static ConverterFunction getFunction(const std::string &sourceFormat, const std::string &targetFormat, const FunctionPriority &priority);
102 
106  static std::vector<std::string> listAvailableSourceFormats(void);
107 
108  };
109 
110 }
std::map< std::string, TargetFormatConverters > FormatConverters
Definition: ConverterRegistry.hpp:55
Definition: ConverterRegistry.hpp:23
std::map< FunctionPriority, ConverterFunction > TargetFormatConverterPriority
Definition: ConverterRegistry.hpp:45
FunctionPriority
Definition: ConverterRegistry.hpp:36
Definition: ConverterPrimatives.hpp:14
#define SOAPY_SDR_API
Definition: Config.h:41
std::map< std::string, TargetFormatConverterPriority > TargetFormatConverters
Definition: ConverterRegistry.hpp:50