mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-08-13 11:02:25 -04: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");
|
DataNode *header = s.rootNode()->newChild("header");
|
||||||
header->newChild("version")->element()->set(wxString(CUBICSDR_VERSION).ToStdWstring());
|
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) {
|
for (auto &bmd_i : bmData) {
|
||||||
DataNode *group = modems->newChild("group");
|
DataNode *group = modems->newChild("group");
|
||||||
*group->newChild("@name") = bmd_i.first;
|
*group->newChild("@name") = bmd_i.first;
|
||||||
|
|
||||||
for (auto &bm_i : bmd_i.second ) {
|
for (auto &bm_i : bmd_i.second ) {
|
||||||
std::lock_guard < std::mutex > lockEnt(bm_i->busy_lock);
|
|
||||||
group->newChildCloneFrom("modem", bm_i->node);
|
group->newChildCloneFrom("modem", bm_i->node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -34,7 +41,6 @@ void BookmarkMgr::saveToFile(std::string bookmarkFn) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (auto &r_i : this->recents) {
|
for (auto &r_i : this->recents) {
|
||||||
std::lock_guard < std::mutex > lockEnt(r_i->busy_lock);
|
|
||||||
recent_modems->newChildCloneFrom("modem", r_i->node);
|
recent_modems->newChildCloneFrom("modem", r_i->node);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,6 +71,22 @@ void BookmarkMgr::loadFromFile(std::string bookmarkFn) {
|
|||||||
return;
|
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")) {
|
if (s.rootNode()->hasAnother("modems")) {
|
||||||
DataNode *modems = s.rootNode()->getNext("modems");
|
DataNode *modems = s.rootNode()->getNext("modems");
|
||||||
while (modems->hasAnother("group")) {
|
while (modems->hasAnother("group")) {
|
||||||
|
@ -29,6 +29,7 @@ public:
|
|||||||
|
|
||||||
std::wstring label;
|
std::wstring label;
|
||||||
|
|
||||||
|
long long freq;
|
||||||
long long startFreq;
|
long long startFreq;
|
||||||
long long endFreq;
|
long long endFreq;
|
||||||
};
|
};
|
||||||
@ -47,7 +48,7 @@ struct BookmarkRangeEntryCompare : public std::binary_function<BookmarkRangeEntr
|
|||||||
{
|
{
|
||||||
bool operator()(const BookmarkRangeEntry *a, BookmarkRangeEntry *b) const
|
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) {
|
void BookmarkView::activateRange(BookmarkRangeEntry *rangeEnt) {
|
||||||
|
wxGetApp().setFrequency(rangeEnt->freq);
|
||||||
wxGetApp().getAppFrame()->setViewState(rangeEnt->startFreq + (rangeEnt->endFreq - rangeEnt->startFreq) / 2, rangeEnt->endFreq - rangeEnt->startFreq);
|
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 ) {
|
void BookmarkView::onAddRange( wxCommandEvent& event ) {
|
||||||
BookmarkRangeEntry *re = new BookmarkRangeEntry;
|
BookmarkRangeEntry *re = new BookmarkRangeEntry;
|
||||||
|
re->freq = wxGetApp().getFrequency();
|
||||||
re->startFreq = wxGetApp().getAppFrame()->getViewCenterFreq() - (wxGetApp().getAppFrame()->getViewBandwidth()/2);
|
re->startFreq = wxGetApp().getAppFrame()->getViewCenterFreq() - (wxGetApp().getAppFrame()->getViewBandwidth()/2);
|
||||||
re->endFreq = wxGetApp().getAppFrame()->getViewCenterFreq() + (wxGetApp().getAppFrame()->getViewBandwidth()/2);
|
re->endFreq = wxGetApp().getAppFrame()->getViewCenterFreq() + (wxGetApp().getAppFrame()->getViewBandwidth()/2);
|
||||||
re->label = m_labelText->GetValue();
|
re->label = m_labelText->GetValue();
|
||||||
|
@ -293,6 +293,7 @@ public:
|
|||||||
operator vector<long double> () { vector<long double> v; element()->get(v); return v; }
|
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 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; }
|
char operator= (char i) { element()->set(i); return i; }
|
||||||
unsigned char operator= (unsigned 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