X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNavaids%2Fnavlist.cxx;h=9b0c911dee50c44c274532495c78113a9252fb5d;hb=9c467af6bf2f04ddaae2d7937ce6d4b547ab099b;hp=7d5e8c12390c2b6fba2017924a379f7d785e27da;hpb=8d56b4664ac77597571dbc0a40459fecf2b4c44e;p=flightgear.git diff --git a/src/Navaids/navlist.cxx b/src/Navaids/navlist.cxx index 7d5e8c123..9b0c911de 100644 --- a/src/Navaids/navlist.cxx +++ b/src/Navaids/navlist.cxx @@ -37,6 +37,7 @@ #include #include +#include using std::string; @@ -178,14 +179,15 @@ FGNavList::TypeFilter* FGNavList::tacanFilter() return &tf; } -FGNavList::TypeFilter* FGNavList::carrierFilter() +FGNavList::TypeFilter* FGNavList::mobileTacanFilter() { static TypeFilter tf(FGPositioned::MOBILE_TACAN); return &tf; } -FGNavRecord *FGNavList::findByFreq( double freq, const SGGeod& position, - TypeFilter* filter) +FGNavRecordRef FGNavList::findByFreq( double freq, + const SGGeod& position, + TypeFilter* filter ) { flightgear::NavDataCache* cache = flightgear::NavDataCache::instance(); int freqKhz = static_cast(freq * 100 + 0.5); @@ -200,7 +202,7 @@ FGNavRecord *FGNavList::findByFreq( double freq, const SGGeod& position, = FG_NAV_MAX_RANGE*SG_NM_TO_METER*FG_NAV_MAX_RANGE*SG_NM_TO_METER; BOOST_FOREACH(PositionedID id, stations) { - FGNavRecord* station = (FGNavRecord*) cache->loadById(id); + FGNavRecordRef station = FGPositioned::loadById(id); if (!filter->pass(station)) { continue; } @@ -221,7 +223,7 @@ FGNavRecord *FGNavList::findByFreq( double freq, const SGGeod& position, return NULL; } -FGNavRecord *FGNavList::findByFreq( double freq, TypeFilter* filter) +FGNavRecordRef FGNavList::findByFreq(double freq, TypeFilter* filter) { flightgear::NavDataCache* cache = flightgear::NavDataCache::instance(); int freqKhz = static_cast(freq * 100 + 0.5); @@ -231,7 +233,7 @@ FGNavRecord *FGNavList::findByFreq( double freq, TypeFilter* filter) } BOOST_FOREACH(PositionedID id, stations) { - FGNavRecord* station = (FGNavRecord*) cache->loadById(id); + FGNavRecordRef station = FGPositioned::loadById(id); if (filter->pass(station)) { return station; } @@ -250,7 +252,7 @@ nav_list_type FGNavList::findAllByFreq( double freq, const SGGeod& position, PositionedIDVec ids(cache->findNavaidsByFreq(freqKhz, position, filter)); BOOST_FOREACH(PositionedID id, ids) { - FGNavRecord* station = (FGNavRecord*) cache->loadById(id); + FGNavRecordRef station = FGPositioned::loadById(id); if (!filter->pass(station)) { continue; } @@ -267,7 +269,7 @@ nav_list_type FGNavList::findByIdentAndFreq(const string& ident, const double fr nav_list_type reply; int f = (int)(freq*100.0 + 0.5); - FGPositioned::List stations = FGPositioned::findAllWithIdent(ident, filter); + FGPositionedList stations = FGPositioned::findAllWithIdent(ident, filter); BOOST_FOREACH(FGPositionedRef ref, stations) { FGNavRecord* nav = static_cast(ref.ptr()); if ( f <= 0.0 || nav->get_freq() == f) {