1 // generated by Fast Light User Interface Designer (fluid) version 1.0305
2
3 #include "gettext.h"
4 #include "rxmon.h"
5 #include <config.h>
6 #include <FL/Fl_Tooltip.H>
7 #include <FL/Fl_Box.H>
8 #include <FL/filename.H>
9 #include <FL/Fl_File_Chooser.H>
10 #include "main.h"
11 #include "fl_digi.h"
12 #include "soundconf.h"
13 #include "icons.h"
14 #include "status.h"
15 #include "fileselect.h"
16 #include "audio_alert.h"
17
18 Fl_Check_Button *btn_mon_xcvr_audio=(Fl_Check_Button *)0;
19
cb_btn_mon_xcvr_audio(Fl_Check_Button * o,void *)20 static void cb_btn_mon_xcvr_audio(Fl_Check_Button* o, void*) {
21 progdefaults.mon_xcvr_audio = o->value();
22 }
23
24 Fl_Value_Slider2 *sldrRxFilt_bw=(Fl_Value_Slider2 *)0;
25
cb_sldrRxFilt_bw(Fl_Value_Slider2 * o,void *)26 static void cb_sldrRxFilt_bw(Fl_Value_Slider2* o, void*) {
27 progdefaults.RxFilt_bw = o->value();
28
29 int bw2 = progdefaults.RxFilt_bw / 2;
30 progdefaults.RxFilt_low = progdefaults.RxFilt_mid - bw2;
31 if (progdefaults.RxFilt_low < 100) progdefaults.RxFilt_low = 100;
32
33 progdefaults.RxFilt_high = progdefaults.RxFilt_mid + bw2;
34 if (progdefaults.RxFilt_high > 4000) progdefaults.RxFilt_high = 4000;
35
36 sldrRxFilt_low->value(progdefaults.RxFilt_low);
37 sldrRxFilt_low->redraw();
38 sldrRxFilt_high->value(progdefaults.RxFilt_high);
39 sldrRxFilt_high->redraw();
40
41 progdefaults.changed = true;
42 audio_alert->init_filter();
43 }
44
45 Fl_Value_Slider2 *sldrRxFilt_mid=(Fl_Value_Slider2 *)0;
46
cb_sldrRxFilt_mid(Fl_Value_Slider2 * o,void *)47 static void cb_sldrRxFilt_mid(Fl_Value_Slider2* o, void*) {
48 progdefaults.RxFilt_mid = o->value();
49
50 int bw2 = progdefaults.RxFilt_bw / 2;
51 progdefaults.RxFilt_low = progdefaults.RxFilt_mid - bw2;
52 if (progdefaults.RxFilt_low < 100) progdefaults.RxFilt_low = 100;
53
54 progdefaults.RxFilt_high = progdefaults.RxFilt_mid + bw2;
55 if (progdefaults.RxFilt_high > 4000) progdefaults.RxFilt_high = 4000;
56
57 sldrRxFilt_low->value(progdefaults.RxFilt_low);
58 sldrRxFilt_low->redraw();
59 sldrRxFilt_high->value(progdefaults.RxFilt_high);
60 sldrRxFilt_high->redraw();
61
62 progdefaults.changed = true;
63 audio_alert->init_filter();
64 }
65
66 Fl_Value_Slider2 *sldrRxFilt_low=(Fl_Value_Slider2 *)0;
67
cb_sldrRxFilt_low(Fl_Value_Slider2 * o,void *)68 static void cb_sldrRxFilt_low(Fl_Value_Slider2* o, void*) {
69 progdefaults.RxFilt_low = o->value();
70
71 int bw = progdefaults.RxFilt_high - progdefaults.RxFilt_low;
72 progdefaults.RxFilt_bw = bw;
73 sldrRxFilt_bw->value(bw);
74 sldrRxFilt_bw->redraw();
75
76 int mid = (progdefaults.RxFilt_high + progdefaults.RxFilt_low) / 2;
77 progdefaults.RxFilt_mid = mid;
78 sldrRxFilt_mid->value(mid);
79 sldrRxFilt_mid->redraw();
80
81 progdefaults.changed = true;
82 audio_alert->init_filter();
83 }
84
85 Fl_Value_Slider2 *sldrRxFilt_high=(Fl_Value_Slider2 *)0;
86
cb_sldrRxFilt_high(Fl_Value_Slider2 * o,void *)87 static void cb_sldrRxFilt_high(Fl_Value_Slider2* o, void*) {
88 progdefaults.RxFilt_high = o->value();
89
90 int bw = progdefaults.RxFilt_high - progdefaults.RxFilt_low;
91 progdefaults.RxFilt_bw = bw;
92 sldrRxFilt_bw->value(bw);
93 sldrRxFilt_bw->redraw();
94
95 int mid = (progdefaults.RxFilt_high + progdefaults.RxFilt_low) / 2;
96 progdefaults.RxFilt_mid = mid;
97 sldrRxFilt_mid->value(mid);
98 sldrRxFilt_mid->redraw();
99
100 progdefaults.changed = true;
101 audio_alert->init_filter();
102 }
103
104 Fl_Check_Button *btn_RxFilt_at_track=(Fl_Check_Button *)0;
105
cb_btn_RxFilt_at_track(Fl_Check_Button * o,void *)106 static void cb_btn_RxFilt_at_track(Fl_Check_Button* o, void*) {
107 progdefaults.RxFilt_track_wf = o->value();
108
109 if (o->value() == 1) center_rxfilt_at_track();
110 }
111
112 Fl_Value_Slider2 *sldrRxFilt_vol=(Fl_Value_Slider2 *)0;
113
cb_sldrRxFilt_vol(Fl_Value_Slider2 * o,void *)114 static void cb_sldrRxFilt_vol(Fl_Value_Slider2* o, void*) {
115 progdefaults.RxFilt_vol = o->value();
116 progdefaults.changed = true;
117 }
118
119 Fl_Check_Button *btn_mon_dsp_audio=(Fl_Check_Button *)0;
120
cb_btn_mon_dsp_audio(Fl_Check_Button * o,void *)121 static void cb_btn_mon_dsp_audio(Fl_Check_Button* o, void*) {
122 progdefaults.mon_dsp_audio = o->value();
123 }
124
make_rxaudio_dialog()125 Fl_Double_Window* make_rxaudio_dialog() {
126 Fl_Double_Window* w;
127 { Fl_Double_Window* o = new Fl_Double_Window(360, 230, _("Rx Audio Monitor"));
128 w = o; if (w) {/* empty */}
129 { Fl_Check_Button* o = btn_mon_xcvr_audio = new Fl_Check_Button(50, 7, 70, 18, _("Monitor ON"));
130 btn_mon_xcvr_audio->tooltip(_("Rx audio stream ON"));
131 btn_mon_xcvr_audio->down_box(FL_DOWN_BOX);
132 btn_mon_xcvr_audio->callback((Fl_Callback*)cb_btn_mon_xcvr_audio);
133 o->value(progdefaults.mon_xcvr_audio);
134 } // Fl_Check_Button* btn_mon_xcvr_audio
135 { Fl_Group* o = new Fl_Group(5, 84, 350, 141, _("Filter Settings"));
136 o->box(FL_ENGRAVED_FRAME);
137 o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE));
138 { Fl_Value_Slider2* o = sldrRxFilt_bw = new Fl_Value_Slider2(10, 118, 300, 20, _("BW"));
139 sldrRxFilt_bw->tooltip(_("Filter bandwidth"));
140 sldrRxFilt_bw->type(5);
141 sldrRxFilt_bw->box(FL_DOWN_BOX);
142 sldrRxFilt_bw->color((Fl_Color)206);
143 sldrRxFilt_bw->selection_color((Fl_Color)2);
144 sldrRxFilt_bw->labeltype(FL_NORMAL_LABEL);
145 sldrRxFilt_bw->labelfont(0);
146 sldrRxFilt_bw->labelsize(14);
147 sldrRxFilt_bw->labelcolor(FL_FOREGROUND_COLOR);
148 sldrRxFilt_bw->minimum(50);
149 sldrRxFilt_bw->maximum(4000);
150 sldrRxFilt_bw->step(10);
151 sldrRxFilt_bw->value(500);
152 sldrRxFilt_bw->textsize(14);
153 sldrRxFilt_bw->callback((Fl_Callback*)cb_sldrRxFilt_bw);
154 sldrRxFilt_bw->align(Fl_Align(FL_ALIGN_RIGHT));
155 sldrRxFilt_bw->when(FL_WHEN_CHANGED);
156 o->value(progdefaults.RxFilt_bw);
157 } // Fl_Value_Slider2* sldrRxFilt_bw
158 { Fl_Value_Slider2* o = sldrRxFilt_mid = new Fl_Value_Slider2(10, 144, 300, 20, _("Mid"));
159 sldrRxFilt_mid->tooltip(_("Filter center frequ ency"));
160 sldrRxFilt_mid->type(5);
161 sldrRxFilt_mid->box(FL_DOWN_BOX);
162 sldrRxFilt_mid->color((Fl_Color)206);
163 sldrRxFilt_mid->selection_color((Fl_Color)2);
164 sldrRxFilt_mid->labeltype(FL_NORMAL_LABEL);
165 sldrRxFilt_mid->labelfont(0);
166 sldrRxFilt_mid->labelsize(14);
167 sldrRxFilt_mid->labelcolor(FL_FOREGROUND_COLOR);
168 sldrRxFilt_mid->minimum(400);
169 sldrRxFilt_mid->maximum(3500);
170 sldrRxFilt_mid->step(10);
171 sldrRxFilt_mid->value(1500);
172 sldrRxFilt_mid->textsize(14);
173 sldrRxFilt_mid->callback((Fl_Callback*)cb_sldrRxFilt_mid);
174 sldrRxFilt_mid->align(Fl_Align(FL_ALIGN_RIGHT));
175 sldrRxFilt_mid->when(FL_WHEN_CHANGED);
176 o->value(progdefaults.RxFilt_mid);
177 } // Fl_Value_Slider2* sldrRxFilt_mid
178 { Fl_Value_Slider2* o = sldrRxFilt_low = new Fl_Value_Slider2(10, 170, 300, 20, _("Low"));
179 sldrRxFilt_low->tooltip(_("Filter low cutoff frequency"));
180 sldrRxFilt_low->type(5);
181 sldrRxFilt_low->box(FL_DOWN_BOX);
182 sldrRxFilt_low->color((Fl_Color)206);
183 sldrRxFilt_low->selection_color((Fl_Color)2);
184 sldrRxFilt_low->labeltype(FL_NORMAL_LABEL);
185 sldrRxFilt_low->labelfont(0);
186 sldrRxFilt_low->labelsize(14);
187 sldrRxFilt_low->labelcolor(FL_FOREGROUND_COLOR);
188 sldrRxFilt_low->minimum(100);
189 sldrRxFilt_low->maximum(3000);
190 sldrRxFilt_low->step(10);
191 sldrRxFilt_low->value(500);
192 sldrRxFilt_low->textsize(14);
193 sldrRxFilt_low->callback((Fl_Callback*)cb_sldrRxFilt_low);
194 sldrRxFilt_low->align(Fl_Align(FL_ALIGN_RIGHT));
195 sldrRxFilt_low->when(FL_WHEN_CHANGED);
196 o->value(progdefaults.RxFilt_low);
197 } // Fl_Value_Slider2* sldrRxFilt_low
198 { Fl_Value_Slider2* o = sldrRxFilt_high = new Fl_Value_Slider2(10, 196, 300, 20, _("High"));
199 sldrRxFilt_high->tooltip(_("Filter high cutoff frequency"));
200 sldrRxFilt_high->type(5);
201 sldrRxFilt_high->box(FL_DOWN_BOX);
202 sldrRxFilt_high->color((Fl_Color)206);
203 sldrRxFilt_high->selection_color((Fl_Color)2);
204 sldrRxFilt_high->labeltype(FL_NORMAL_LABEL);
205 sldrRxFilt_high->labelfont(0);
206 sldrRxFilt_high->labelsize(14);
207 sldrRxFilt_high->labelcolor(FL_FOREGROUND_COLOR);
208 sldrRxFilt_high->minimum(500);
209 sldrRxFilt_high->maximum(4000);
210 sldrRxFilt_high->step(10);
211 sldrRxFilt_high->value(900);
212 sldrRxFilt_high->textsize(14);
213 sldrRxFilt_high->callback((Fl_Callback*)cb_sldrRxFilt_high);
214 sldrRxFilt_high->align(Fl_Align(FL_ALIGN_RIGHT));
215 sldrRxFilt_high->when(FL_WHEN_CHANGED);
216 o->value(progdefaults.RxFilt_high);
217 } // Fl_Value_Slider2* sldrRxFilt_high
218 { Fl_Check_Button* o = btn_RxFilt_at_track = new Fl_Check_Button(156, 93, 70, 15, _("track WF cursor"));
219 btn_RxFilt_at_track->tooltip(_("Filter center freq tracks waterfall track point"));
220 btn_RxFilt_at_track->down_box(FL_DOWN_BOX);
221 btn_RxFilt_at_track->callback((Fl_Callback*)cb_btn_RxFilt_at_track);
222 o->value(progdefaults.RxFilt_track_wf);
223 } // Fl_Check_Button* btn_RxFilt_at_track
224 o->end();
225 } // Fl_Group* o
226 { Fl_Value_Slider2* o = sldrRxFilt_vol = new Fl_Value_Slider2(10, 55, 300, 20, _("Vol\'"));
227 sldrRxFilt_vol->tooltip(_("Rx audio volume"));
228 sldrRxFilt_vol->type(5);
229 sldrRxFilt_vol->box(FL_DOWN_BOX);
230 sldrRxFilt_vol->color((Fl_Color)206);
231 sldrRxFilt_vol->selection_color((Fl_Color)2);
232 sldrRxFilt_vol->labeltype(FL_NORMAL_LABEL);
233 sldrRxFilt_vol->labelfont(0);
234 sldrRxFilt_vol->labelsize(14);
235 sldrRxFilt_vol->labelcolor(FL_FOREGROUND_COLOR);
236 sldrRxFilt_vol->maximum(100);
237 sldrRxFilt_vol->step(1);
238 sldrRxFilt_vol->value(50);
239 sldrRxFilt_vol->textsize(14);
240 sldrRxFilt_vol->callback((Fl_Callback*)cb_sldrRxFilt_vol);
241 sldrRxFilt_vol->align(Fl_Align(FL_ALIGN_RIGHT));
242 sldrRxFilt_vol->when(FL_WHEN_CHANGED);
243 o->value(progdefaults.RxFilt_vol);
244 } // Fl_Value_Slider2* sldrRxFilt_vol
245 { Fl_Check_Button* o = btn_mon_dsp_audio = new Fl_Check_Button(50, 29, 70, 18, _("Filtered audio"));
246 btn_mon_dsp_audio->tooltip(_("Enable DSP filtering of rx audio stream"));
247 btn_mon_dsp_audio->down_box(FL_DOWN_BOX);
248 btn_mon_dsp_audio->callback((Fl_Callback*)cb_btn_mon_dsp_audio);
249 o->value(progdefaults.mon_dsp_audio);
250 } // Fl_Check_Button* btn_mon_dsp_audio
251 o->end();
252 } // Fl_Double_Window* o
253 return w;
254 }
255