+namespace {
+
+ class DMEFilter : public FGNavList::TypeFilter
+ {
+ public:
+ DMEFilter() :
+ TypeFilter(FGPositioned::DME),
+ _locEnabled(fgGetBool("/sim/realism/dme-fallback-to-loc", true))
+ {
+ if (_locEnabled) {
+ _mintype = FGPositioned::ILS;
+ }
+ }
+
+ virtual bool pass(FGPositioned* pos) const
+ {
+ switch (pos->type()) {
+ case FGPositioned::DME: return true;
+ case FGPositioned::ILS:
+ case FGPositioned::LOC: return _locEnabled;
+ default: return false;
+ }
+ }
+
+ private:
+ const bool _locEnabled;
+ };
+
+} // of anonymous namespace
+