diff options
Diffstat (limited to 'gr-audio/lib/gr_audio_registry.h')
-rw-r--r-- | gr-audio/lib/gr_audio_registry.h | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/gr-audio/lib/gr_audio_registry.h b/gr-audio/lib/gr_audio_registry.h index 59a4c0fa67..70612de574 100644 --- a/gr-audio/lib/gr_audio_registry.h +++ b/gr-audio/lib/gr_audio_registry.h @@ -26,30 +26,38 @@ #include <audio/source.h> #include <string> -typedef audio_source::sptr(*source_factory_t)(int, const std::string &, bool); -typedef audio_sink::sptr(*sink_factory_t)(int, const std::string &, bool); +namespace gr { + namespace audio { -enum reg_prio_type{ - REG_PRIO_LOW = 100, - REG_PRIO_MED = 200, - REG_PRIO_HIGH = 300 -}; + typedef source::sptr(*source_factory_t)(int, const std::string &, bool); + typedef sink::sptr(*sink_factory_t)(int, const std::string &, bool); -void audio_register_source(reg_prio_type prio, const std::string &arch, source_factory_t source); -void audio_register_sink(reg_prio_type prio, const std::string &arch, sink_factory_t sink); + enum reg_prio_type { + REG_PRIO_LOW = 100, + REG_PRIO_MED = 200, + REG_PRIO_HIGH = 300 + }; + + void register_source(reg_prio_type prio, const std::string &arch, + source_factory_t source); + void register_sink(reg_prio_type prio, const std::string &arch, + sink_factory_t sink); #define AUDIO_REGISTER_FIXTURE(x) static struct x{x();}x;x::x() #define AUDIO_REGISTER_SOURCE(prio, arch) \ - static audio_source::sptr arch##_source_fcn(int, const std::string &, bool); \ - AUDIO_REGISTER_FIXTURE(arch##_source_reg){ \ - audio_register_source(prio, #arch, &arch##_source_fcn); \ - } static audio_source::sptr arch##_source_fcn - -#define AUDIO_REGISTER_SINK(prio, arch) \ - static audio_sink::sptr arch##_sink_fcn(int, const std::string &, bool); \ - AUDIO_REGISTER_FIXTURE(arch##_sink_reg){ \ - audio_register_sink(prio, #arch, &arch##_sink_fcn); \ - } static audio_sink::sptr arch##_sink_fcn + static source::sptr arch##_source_fcn(int, const std::string &, bool); \ + AUDIO_REGISTER_FIXTURE(arch##_source_reg) { \ + register_source(prio, #arch, &arch##_source_fcn); \ + } static source::sptr arch##_source_fcn + +#define AUDIO_REGISTER_SINK(prio, arch) \ + static sink::sptr arch##_sink_fcn(int, const std::string &, bool); \ + AUDIO_REGISTER_FIXTURE(arch##_sink_reg) { \ + register_sink(prio, #arch, &arch##_sink_fcn); \ + } static sink::sptr arch##_sink_fcn + + } /* namespace audio */ +} /* namespace gr */ #endif /* INCLUDED_GR_AUDIO_REGISTRY_H */ |