SatDump 2.0.0-alpha-76a915210
Loading...
Searching...
No Matches
options_displayer_warper.h
1#pragma once
2
3#include "dsp/block.h"
4#include "options_displayer.h"
5#include <memory>
6
7namespace satdump
8{
9 namespace ndsp
10 {
11 // TODOREWORK figure out how exactly this will be used longterm
12 class OptDisplayerWarper
13 {
14 private:
16 std::shared_ptr<Block> blk;
17
18 public:
19 OptDisplayerWarper(std::shared_ptr<Block> b) : blk(b)
20 {
21 disp.add_options(blk->get_cfg_list());
22 disp.set_values(blk->get_cfg());
23 }
24
25 bool draw()
26 {
27 nlohmann::json changed = disp.draw();
28
29 bool ret = false;
30
31 if (changed.size() > 0)
32 {
33 auto r = blk->set_cfg(changed);
34 if (r >= ndsp::Block::RES_LISTUPD)
35 {
36 disp.clear();
37 disp.add_options(blk->get_cfg_list());
38 }
39 ret = r >= ndsp::Block::RES_IOUPD;
40
41 disp.set_values(blk->get_cfg());
42 }
43
44 return ret;
45 }
46
47 void update()
48 {
49 disp.clear();
50 disp.add_options(blk->get_cfg_list());
51 disp.set_values(blk->get_cfg());
52 }
53 };
54 } // namespace ndsp
55} // namespace satdump
Definition options_displayer.h:25