mirror of
				https://github.com/cjcliffe/CubicSDR.git
				synced 2025-11-03 21:20:21 -05:00 
			
		
		
		
	Load/Save view ranges
This commit is contained in:
		
							parent
							
								
									9eee45bb9d
								
							
						
					
					
						commit
						cf056acfe6
					
				@ -13,16 +13,23 @@ void BookmarkMgr::saveToFile(std::string bookmarkFn) {
 | 
			
		||||
    DataNode *header = s.rootNode()->newChild("header");
 | 
			
		||||
    header->newChild("version")->element()->set(wxString(CUBICSDR_VERSION).ToStdWstring());
 | 
			
		||||
 | 
			
		||||
    DataNode *modems = s.rootNode()->newChild("modems");
 | 
			
		||||
    DataNode *view_ranges = s.rootNode()->newChild("ranges");
 | 
			
		||||
 | 
			
		||||
    std::lock_guard < std::mutex > lockData(busy_lock);
 | 
			
		||||
    for (auto re_i : ranges) {
 | 
			
		||||
        DataNode *range = view_ranges->newChild("range");
 | 
			
		||||
        *range->newChild("label") = re_i->label;
 | 
			
		||||
        *range->newChild("freq") = re_i->freq;
 | 
			
		||||
        *range->newChild("start") = re_i->startFreq;
 | 
			
		||||
        *range->newChild("end") = re_i->endFreq;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    DataNode *modems = s.rootNode()->newChild("modems");
 | 
			
		||||
    
 | 
			
		||||
    for (auto &bmd_i : bmData) {
 | 
			
		||||
        DataNode *group = modems->newChild("group");
 | 
			
		||||
        *group->newChild("@name") = bmd_i.first;
 | 
			
		||||
 | 
			
		||||
        for (auto &bm_i : bmd_i.second ) {
 | 
			
		||||
            std::lock_guard < std::mutex > lockEnt(bm_i->busy_lock);
 | 
			
		||||
            group->newChildCloneFrom("modem", bm_i->node);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -34,7 +41,6 @@ void BookmarkMgr::saveToFile(std::string bookmarkFn) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (auto &r_i : this->recents) {
 | 
			
		||||
        std::lock_guard < std::mutex > lockEnt(r_i->busy_lock);
 | 
			
		||||
        recent_modems->newChildCloneFrom("modem", r_i->node);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -65,6 +71,22 @@ void BookmarkMgr::loadFromFile(std::string bookmarkFn) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (s.rootNode()->hasAnother("ranges")) {
 | 
			
		||||
        DataNode *view_ranges = s.rootNode()->getNext("ranges");
 | 
			
		||||
        while (view_ranges->hasAnother("range")) {
 | 
			
		||||
            DataNode *range = view_ranges->getNext("range");
 | 
			
		||||
            
 | 
			
		||||
            BookmarkRangeEntry *re = new BookmarkRangeEntry;
 | 
			
		||||
            
 | 
			
		||||
            range->getNext("label")->element()->get(re->label);
 | 
			
		||||
            range->getNext("freq")->element()->get(re->freq);
 | 
			
		||||
            range->getNext("start")->element()->get(re->startFreq);
 | 
			
		||||
            range->getNext("end")->element()->get(re->endFreq);
 | 
			
		||||
            
 | 
			
		||||
            addRange(re);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
    if (s.rootNode()->hasAnother("modems")) {
 | 
			
		||||
        DataNode *modems = s.rootNode()->getNext("modems");
 | 
			
		||||
        while (modems->hasAnother("group")) {
 | 
			
		||||
 | 
			
		||||
@ -29,6 +29,7 @@ public:
 | 
			
		||||
    
 | 
			
		||||
    std::wstring label;
 | 
			
		||||
    
 | 
			
		||||
    long long freq;
 | 
			
		||||
    long long startFreq;
 | 
			
		||||
    long long endFreq;
 | 
			
		||||
};
 | 
			
		||||
@ -47,7 +48,7 @@ struct BookmarkRangeEntryCompare : public std::binary_function<BookmarkRangeEntr
 | 
			
		||||
{
 | 
			
		||||
    bool operator()(const BookmarkRangeEntry *a, BookmarkRangeEntry *b) const
 | 
			
		||||
    {
 | 
			
		||||
        return a->startFreq < b->startFreq;
 | 
			
		||||
        return a->freq < b->freq;
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -792,6 +792,7 @@ void BookmarkView::activateBookmark(BookmarkEntry *bmEnt) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void BookmarkView::activateRange(BookmarkRangeEntry *rangeEnt) {
 | 
			
		||||
    wxGetApp().setFrequency(rangeEnt->freq);
 | 
			
		||||
    wxGetApp().getAppFrame()->setViewState(rangeEnt->startFreq + (rangeEnt->endFreq - rangeEnt->startFreq) / 2, rangeEnt->endFreq - rangeEnt->startFreq);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1173,6 +1174,7 @@ void BookmarkView::onRenameGroup( wxCommandEvent& event ) {
 | 
			
		||||
 | 
			
		||||
void BookmarkView::onAddRange( wxCommandEvent& event ) {
 | 
			
		||||
    BookmarkRangeEntry *re = new BookmarkRangeEntry;
 | 
			
		||||
    re->freq = wxGetApp().getFrequency();
 | 
			
		||||
    re->startFreq = wxGetApp().getAppFrame()->getViewCenterFreq() - (wxGetApp().getAppFrame()->getViewBandwidth()/2);
 | 
			
		||||
    re->endFreq = wxGetApp().getAppFrame()->getViewCenterFreq() + (wxGetApp().getAppFrame()->getViewBandwidth()/2);
 | 
			
		||||
    re->label = m_labelText->GetValue();
 | 
			
		||||
 | 
			
		||||
@ -293,6 +293,7 @@ public:
 | 
			
		||||
    operator vector<long double> () { vector<long double> v; element()->get(v);  return v; }
 | 
			
		||||
    
 | 
			
		||||
    const string &operator= (const string &s) { element()->set(s); return s; }
 | 
			
		||||
    const wstring &operator= (const wstring &s) { element()->set(s); return s; }
 | 
			
		||||
 | 
			
		||||
    char operator= (char i) { element()->set(i); return i; }
 | 
			
		||||
    unsigned char operator= (unsigned char i) { element()->set(i); return i; }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user