1 // generated by Fast Light User Interface Designer (fluid) version 1.0305
2 
3 #include "../../gettext.h"
4 #include "flgui.h"
5 
cb_window_main_i(Fl_My_Double_Window *,void *)6 void flgui::cb_window_main_i(Fl_My_Double_Window*, void*) {
7   window_main_close_cb();
8 }
cb_window_main(Fl_My_Double_Window * o,void * v)9 void flgui::cb_window_main(Fl_My_Double_Window* o, void* v) {
10   ((flgui*)(o->user_data()))->cb_window_main_i(o,v);
11 }
12 
cb_lcd_i(Fl_ILM216 *,void *)13 void flgui::cb_lcd_i(Fl_ILM216*, void*) {
14   ILM216_cb();
15 }
cb_lcd(Fl_ILM216 * o,void * v)16 void flgui::cb_lcd(Fl_ILM216* o, void* v) {
17   ((flgui*)(o->parent()->parent()->user_data()))->cb_lcd_i(o,v);
18 }
19 
cb_button_connect_i(Fl_Button *,void *)20 void flgui::cb_button_connect_i(Fl_Button*, void*) {
21   button_connect_cb();
22 }
cb_button_connect(Fl_Button * o,void * v)23 void flgui::cb_button_connect(Fl_Button* o, void* v) {
24   ((flgui*)(o->parent()->parent()->user_data()))->cb_button_connect_i(o,v);
25 }
26 
cb_button_disconnect_i(Fl_Button *,void *)27 void flgui::cb_button_disconnect_i(Fl_Button*, void*) {
28   button_disconnect_cb();
29 }
cb_button_disconnect(Fl_Button * o,void * v)30 void flgui::cb_button_disconnect(Fl_Button* o, void* v) {
31   ((flgui*)(o->parent()->parent()->user_data()))->cb_button_disconnect_i(o,v);
32 }
33 
cb_button_record_i(Fl_Button *,void *)34 void flgui::cb_button_record_i(Fl_Button*, void*) {
35   button_record_cb();
36 }
cb_button_record(Fl_Button * o,void * v)37 void flgui::cb_button_record(Fl_Button* o, void* v) {
38   ((flgui*)(o->parent()->parent()->user_data()))->cb_button_record_i(o,v);
39 }
40 
cb_button_info_i(Fl_Button *,void *)41 void flgui::cb_button_info_i(Fl_Button*, void*) {
42   button_info_cb();
43 }
cb_button_info(Fl_Button * o,void * v)44 void flgui::cb_button_info(Fl_Button* o, void* v) {
45   ((flgui*)(o->parent()->parent()->user_data()))->cb_button_info_i(o,v);
46 }
47 
cb_button_cfg_i(Fl_Button *,void *)48 void flgui::cb_button_cfg_i(Fl_Button*, void*) {
49   button_cfg_cb();
50 }
cb_button_cfg(Fl_Button * o,void * v)51 void flgui::cb_button_cfg(Fl_Button* o, void* v) {
52   ((flgui*)(o->parent()->user_data()))->cb_button_cfg_i(o,v);
53 }
54 
cb_slider_gain_i(Fl_My_Value_Slider *,void *)55 void flgui::cb_slider_gain_i(Fl_My_Value_Slider*, void*) {
56   slider_gain_cb();
57 }
cb_slider_gain(Fl_My_Value_Slider * o,void * v)58 void flgui::cb_slider_gain(Fl_My_Value_Slider* o, void* v) {
59   ((flgui*)(o->parent()->user_data()))->cb_slider_gain_i(o,v);
60 }
61 
cb_window_cfg_i(Fl_My_Double_Window *,void *)62 void flgui::cb_window_cfg_i(Fl_My_Double_Window*, void*) {
63   window_cfg->hide();
64 button_cfg->label("Settings@>");
65 }
cb_window_cfg(Fl_My_Double_Window * o,void * v)66 void flgui::cb_window_cfg(Fl_My_Double_Window* o, void* v) {
67   ((flgui*)(o->user_data()))->cb_window_cfg_i(o,v);
68 }
69 
cb_choice_cfg_act_srv_i(Fl_Choice *,void *)70 void flgui::cb_choice_cfg_act_srv_i(Fl_Choice*, void*) {
71   choice_cfg_act_srv_cb();
72 }
cb_choice_cfg_act_srv(Fl_Choice * o,void * v)73 void flgui::cb_choice_cfg_act_srv(Fl_Choice* o, void* v) {
74   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_cfg_act_srv_i(o,v);
75 }
76 
cb_ADD_i(Fl_Button *,void *)77 void flgui::cb_ADD_i(Fl_Button*, void*) {
78   button_cfg_add_srv_cb();
79 }
cb_ADD(Fl_Button * o,void * v)80 void flgui::cb_ADD(Fl_Button* o, void* v) {
81   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_ADD_i(o,v);
82 }
83 
cb_button_cfg_edit_srv_i(Fl_Button *,void *)84 void flgui::cb_button_cfg_edit_srv_i(Fl_Button*, void*) {
85   button_cfg_edit_srv_cb();
86 }
cb_button_cfg_edit_srv(Fl_Button * o,void * v)87 void flgui::cb_button_cfg_edit_srv(Fl_Button* o, void* v) {
88   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_cfg_edit_srv_i(o,v);
89 }
90 
cb_button_cfg_del_srv_i(Fl_Button *,void *)91 void flgui::cb_button_cfg_del_srv_i(Fl_Button*, void*) {
92   button_cfg_del_srv_cb();
93 }
cb_button_cfg_del_srv(Fl_Button * o,void * v)94 void flgui::cb_button_cfg_del_srv(Fl_Button* o, void* v) {
95   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_cfg_del_srv_i(o,v);
96 }
97 
cb_choice_cfg_act_icy_i(Fl_Choice *,void *)98 void flgui::cb_choice_cfg_act_icy_i(Fl_Choice*, void*) {
99   choice_cfg_act_icy_cb();
100 }
cb_choice_cfg_act_icy(Fl_Choice * o,void * v)101 void flgui::cb_choice_cfg_act_icy(Fl_Choice* o, void* v) {
102   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_cfg_act_icy_i(o,v);
103 }
104 
cb_ADD1_i(Fl_Button *,void *)105 void flgui::cb_ADD1_i(Fl_Button*, void*) {
106   button_cfg_add_icy_cb();
107 }
cb_ADD1(Fl_Button * o,void * v)108 void flgui::cb_ADD1(Fl_Button* o, void* v) {
109   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_ADD1_i(o,v);
110 }
111 
cb_button_cfg_edit_icy_i(Fl_Button *,void *)112 void flgui::cb_button_cfg_edit_icy_i(Fl_Button*, void*) {
113   button_cfg_edit_icy_cb();
114 }
cb_button_cfg_edit_icy(Fl_Button * o,void * v)115 void flgui::cb_button_cfg_edit_icy(Fl_Button* o, void* v) {
116   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_cfg_edit_icy_i(o,v);
117 }
118 
cb_button_cfg_del_icy_i(Fl_Button *,void *)119 void flgui::cb_button_cfg_del_icy_i(Fl_Button*, void*) {
120   button_cfg_del_icy_cb();
121 }
cb_button_cfg_del_icy(Fl_Button * o,void * v)122 void flgui::cb_button_cfg_del_icy(Fl_Button* o, void* v) {
123   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_cfg_del_icy_i(o,v);
124 }
125 
cb_input_log_filename_i(Fl_Input *,void *)126 void flgui::cb_input_log_filename_i(Fl_Input*, void*) {
127   input_log_filename_cb();
128 }
cb_input_log_filename(Fl_Input * o,void * v)129 void flgui::cb_input_log_filename(Fl_Input* o, void* v) {
130   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_log_filename_i(o,v);
131 }
132 
cb__i(Fl_Button *,void *)133 void flgui::cb__i(Fl_Button*, void*) {
134   button_cfg_log_browse_cb();
135 }
cb_(Fl_Button * o,void * v)136 void flgui::cb_(Fl_Button* o, void* v) {
137   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb__i(o,v);
138 }
139 
140 #include <FL/Fl_Image.H>
141 static const unsigned char idata_folder[] =
142 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
143 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
144 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
145 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
146 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
147 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
148 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
149 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,19,19,0,
150 4,4,4,0,2,2,2,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
151 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
152 0,0,0,0,0,0,0,0,0,0,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
153 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
154 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,36,36,
155 36,12,4,4,4,58,3,3,3,62,1,1,1,62,0,0,0,61,0,0,0,14,0,0,0,0,0,0,0,1,1,1,1,1,1,1,
156 1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
157 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,14,2,2,2,156,1,1,1,105,0,0,0,95,0,0,0,95,
158 0,0,0,89,0,0,0,180,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
159 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,5,5,5,
160 98,5,5,5,123,0,0,0,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,154,0,0,0,
161 111,0,0,0,113,0,0,0,113,0,0,0,113,0,0,0,113,0,0,0,118,0,0,0,81,0,0,0,0,0,0,0,5,
162 0,0,0,3,5,5,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,2,2,2,72,2,2,2,25,0,0,0,2,7,
163 7,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,15,0,0,0,15,0,0,0,15,0,0,
164 0,15,0,0,0,15,0,0,0,1,0,0,0,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
165 0,0,0,0,0,0,0,0,95,0,0,0,48,2,2,2,5,4,4,4,3,0,0,0,0,7,7,7,94,3,3,3,140,0,0,0,
166 140,0,0,0,141,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,0,0,0,144,3,3,3,
167 139,6,6,6,196,0,0,0,141,0,0,0,141,0,0,0,138,4,4,4,136,0,0,0,16,0,0,0,0,0,0,0,0,
168 0,0,0,96,0,0,0,46,0,0,0,2,0,0,0,0,0,0,0,78,0,0,0,110,0,0,0,0,1,1,1,7,0,0,0,7,
169 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,1,1,1,7,0,0,0,7,0,0,0,1,2,2,2,7,0,0,0,
170 11,0,0,0,0,0,0,0,177,1,1,1,15,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,45,0,0,0,1,0,0,0,
171 0,0,0,0,157,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
172 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,0,0,0,105,0,0,0,0,0,0,
173 0,0,0,0,0,0,0,0,0,96,0,0,0,46,0,0,0,0,0,0,0,100,0,0,0,57,0,0,0,1,0,0,0,1,0,0,
174 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
175 0,0,0,0,0,0,0,0,0,0,167,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,48,0,0,
176 0,14,0,0,0,125,0,0,0,12,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
177 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,0,0,0,79,0,0,0,0,0,
178 0,0,1,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,46,0,0,0,68,0,0,0,95,0,0,0,0,0,0,0,0,0,0,
179 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
180 0,0,2,0,0,0,11,0,0,0,127,0,0,0,18,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,
181 0,0,36,0,0,0,166,0,0,0,0,0,0,0,0,2,2,2,0,2,2,2,0,2,2,2,0,2,2,2,0,2,2,2,0,2,2,
182 2,0,2,2,2,0,2,2,2,0,2,2,2,0,2,2,2,0,1,1,1,1,1,1,1,2,0,0,0,50,0,0,0,111,0,0,0,
183 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,81,10,10,10,152,0,0,0,71,0,0,0,0,0,0,
184 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
185 0,0,0,0,0,0,3,0,0,0,0,0,0,0,160,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
186 0,0,6,6,6,91,4,4,4,196,0,0,0,13,4,4,4,23,3,3,3,20,4,4,4,20,4,4,4,20,4,4,4,20,
187 4,4,4,20,4,4,4,20,4,4,4,20,4,4,4,20,4,4,4,20,4,4,4,20,3,3,3,20,16,16,16,11,5,
188 5,5,95,0,0,0,104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,
189 0,118,0,0,0,133,0,0,0,133,0,0,0,133,0,0,0,133,0,0,0,133,0,0,0,133,0,0,0,133,0,
190 0,0,133,0,0,0,133,0,0,0,133,0,0,0,133,0,0,0,133,0,0,0,133,0,0,0,135,0,0,0,113,
191 4,4,4,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
192 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
193 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
194 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
195 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,
196 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
197 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
198 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
199 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
200 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
201 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
202 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
203 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
image_folder()204 static Fl_Image *image_folder() {
205   static Fl_Image *image = new Fl_RGB_Image(idata_folder, 24, 24, 4, 0);
206   return image;
207 }
208 
cb_Import_i(Fl_Button *,void *)209 void flgui::cb_Import_i(Fl_Button*, void*) {
210   button_cfg_import_cb();
211 }
cb_Import(Fl_Button * o,void * v)212 void flgui::cb_Import(Fl_Button* o, void* v) {
213   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Import_i(o,v);
214 }
215 
cb_Save_i(Fl_Button *,void *)216 void flgui::cb_Save_i(Fl_Button*, void*) {
217   cfg_write_file(NULL);
218 }
cb_Save(Fl_Button * o,void * v)219 void flgui::cb_Save(Fl_Button* o, void* v) {
220   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Save_i(o,v);
221 }
222 
cb_Export_i(Fl_Button *,void *)223 void flgui::cb_Export_i(Fl_Button*, void*) {
224   button_cfg_export_cb();
225 }
cb_Export(Fl_Button * o,void * v)226 void flgui::cb_Export(Fl_Button* o, void* v) {
227   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Export_i(o,v);
228 }
229 
cb_Check_i(Fl_Button *,void *)230 void flgui::cb_Check_i(Fl_Button*, void*) {
231   button_cfg_check_for_updates_cb();
232 }
cb_Check(Fl_Button * o,void * v)233 void flgui::cb_Check(Fl_Button* o, void* v) {
234   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Check_i(o,v);
235 }
236 
cb_check_update_at_startup_i(Fl_Check_Button *,void *)237 void flgui::cb_check_update_at_startup_i(Fl_Check_Button*, void*) {
238   check_update_at_startup_cb();
239 }
cb_check_update_at_startup(Fl_Check_Button * o,void * v)240 void flgui::cb_check_update_at_startup(Fl_Check_Button* o, void* v) {
241   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_update_at_startup_i(o,v);
242 }
243 
cb_choice_cfg_dev_i(Fl_Choice *,void *)244 void flgui::cb_choice_cfg_dev_i(Fl_Choice*, void*) {
245   choice_cfg_dev_cb();
246 }
cb_choice_cfg_dev(Fl_Choice * o,void * v)247 void flgui::cb_choice_cfg_dev(Fl_Choice* o, void* v) {
248   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_cfg_dev_i(o,v);
249 }
250 
cb_Stereo_i(Fl_Menu_ *,void *)251 void flgui::cb_Stereo_i(Fl_Menu_*, void*) {
252   choice_cfg_channel_stereo_cb();
253 }
cb_Stereo(Fl_Menu_ * o,void * v)254 void flgui::cb_Stereo(Fl_Menu_* o, void* v) {
255   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Stereo_i(o,v);
256 }
257 
cb_Mono_i(Fl_Menu_ *,void *)258 void flgui::cb_Mono_i(Fl_Menu_*, void*) {
259   choice_cfg_channel_mono_cb();
260 }
cb_Mono(Fl_Menu_ * o,void * v)261 void flgui::cb_Mono(Fl_Menu_* o, void* v) {
262   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Mono_i(o,v);
263 }
264 
265 unsigned char flgui::menu_choice_cfg_channel_i18n_done = 0;
266 Fl_Menu_Item flgui::menu_choice_cfg_channel[] = {
267  {"Stereo", 0,  (Fl_Callback*)flgui::cb_Stereo, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
268  {"Mono", 0,  (Fl_Callback*)flgui::cb_Mono, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
269  {0,0,0,0,0,0,0,0,0}
270 };
271 
cb_choice_cfg_samplerate_i(Fl_Choice *,void *)272 void flgui::cb_choice_cfg_samplerate_i(Fl_Choice*, void*) {
273   choice_cfg_samplerate_cb();
274 }
cb_choice_cfg_samplerate(Fl_Choice * o,void * v)275 void flgui::cb_choice_cfg_samplerate(Fl_Choice* o, void* v) {
276   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_cfg_samplerate_i(o,v);
277 }
278 
cb_choice_cfg_left_channel_i(Fl_Choice *,void *)279 void flgui::cb_choice_cfg_left_channel_i(Fl_Choice*, void*) {
280   choice_cfg_left_channel_cb();
281 }
cb_choice_cfg_left_channel(Fl_Choice * o,void * v)282 void flgui::cb_choice_cfg_left_channel(Fl_Choice* o, void* v) {
283   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_cfg_left_channel_i(o,v);
284 }
285 
cb_choice_cfg_right_channel_i(Fl_Choice *,void *)286 void flgui::cb_choice_cfg_right_channel_i(Fl_Choice*, void*) {
287   choice_cfg_right_channel_cb();
288 }
cb_choice_cfg_right_channel(Fl_Choice * o,void * v)289 void flgui::cb_choice_cfg_right_channel(Fl_Choice* o, void* v) {
290   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_cfg_right_channel_i(o,v);
291 }
292 
cb_MP3_i(Fl_Menu_ *,void *)293 void flgui::cb_MP3_i(Fl_Menu_*, void*) {
294   choice_cfg_codec_mp3_cb();
295 }
cb_MP3(Fl_Menu_ * o,void * v)296 void flgui::cb_MP3(Fl_Menu_* o, void* v) {
297   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_MP3_i(o,v);
298 }
299 
cb_OGG_i(Fl_Menu_ *,void *)300 void flgui::cb_OGG_i(Fl_Menu_*, void*) {
301   choice_cfg_codec_ogg_cb();
302 }
cb_OGG(Fl_Menu_ * o,void * v)303 void flgui::cb_OGG(Fl_Menu_* o, void* v) {
304   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_OGG_i(o,v);
305 }
306 
cb_OPUS_i(Fl_Menu_ *,void *)307 void flgui::cb_OPUS_i(Fl_Menu_*, void*) {
308   choice_cfg_codec_opus_cb();
309 }
cb_OPUS(Fl_Menu_ * o,void * v)310 void flgui::cb_OPUS(Fl_Menu_* o, void* v) {
311   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_OPUS_i(o,v);
312 }
313 
cb_menu_item_cfg_aac_i(Fl_Menu_ *,void *)314 void flgui::cb_menu_item_cfg_aac_i(Fl_Menu_*, void*) {
315   choice_cfg_codec_aac_cb();
316 }
cb_menu_item_cfg_aac(Fl_Menu_ * o,void * v)317 void flgui::cb_menu_item_cfg_aac(Fl_Menu_* o, void* v) {
318   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_menu_item_cfg_aac_i(o,v);
319 }
320 
cb_FLAC_i(Fl_Menu_ *,void *)321 void flgui::cb_FLAC_i(Fl_Menu_*, void*) {
322   choice_cfg_codec_flac_cb();
323 }
cb_FLAC(Fl_Menu_ * o,void * v)324 void flgui::cb_FLAC(Fl_Menu_* o, void* v) {
325   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_FLAC_i(o,v);
326 }
327 
328 unsigned char flgui::menu_choice_cfg_codec_i18n_done = 0;
329 Fl_Menu_Item flgui::menu_choice_cfg_codec[] = {
330  {"MP3", 0,  (Fl_Callback*)flgui::cb_MP3, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
331  {"OGG/VORBIS", 0,  (Fl_Callback*)flgui::cb_OGG, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
332  {"OPUS", 0,  (Fl_Callback*)flgui::cb_OPUS, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
333  {"AAC+", 0,  (Fl_Callback*)flgui::cb_menu_item_cfg_aac, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
334  {"FLAC", 0,  (Fl_Callback*)flgui::cb_FLAC, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
335  {0,0,0,0,0,0,0,0,0}
336 };
337 Fl_Menu_Item* flgui::menu_item_cfg_aac = flgui::menu_choice_cfg_codec + 3;
338 
cb_choice_cfg_bitrate_i(Fl_Choice *,void *)339 void flgui::cb_choice_cfg_bitrate_i(Fl_Choice*, void*) {
340   choice_cfg_bitrate_cb();
341 }
cb_choice_cfg_bitrate(Fl_Choice * o,void * v)342 void flgui::cb_choice_cfg_bitrate(Fl_Choice* o, void* v) {
343   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_cfg_bitrate_i(o,v);
344 }
345 
346 unsigned char flgui::menu_choice_cfg_bitrate_i18n_done = 0;
347 Fl_Menu_Item flgui::menu_choice_cfg_bitrate[] = {
348  {"8k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
349  {"16k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
350  {"24k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
351  {"32k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
352  {"40k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
353  {"48k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
354  {"56k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
355  {"64k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
356  {"80k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
357  {"96k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
358  {"112k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
359  {"128k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
360  {"160k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
361  {"192k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
362  {"224k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
363  {"256k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
364  {"320k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
365  {0,0,0,0,0,0,0,0,0}
366 };
367 
cb_check_cfg_mono_to_stereo_i(Fl_Check_Button *,void *)368 void flgui::cb_check_cfg_mono_to_stereo_i(Fl_Check_Button*, void*) {
369   check_cfg_mono_to_stereo_cb();
370 }
cb_check_cfg_mono_to_stereo(Fl_Check_Button * o,void * v)371 void flgui::cb_check_cfg_mono_to_stereo(Fl_Check_Button* o, void* v) {
372   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_cfg_mono_to_stereo_i(o,v);
373 }
374 
cb_MP31_i(Fl_Menu_ *,void *)375 void flgui::cb_MP31_i(Fl_Menu_*, void*) {
376   choice_rec_codec_mp3_cb();
377 }
cb_MP31(Fl_Menu_ * o,void * v)378 void flgui::cb_MP31(Fl_Menu_* o, void* v) {
379   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_MP31_i(o,v);
380 }
381 
cb_OGG1_i(Fl_Menu_ *,void *)382 void flgui::cb_OGG1_i(Fl_Menu_*, void*) {
383   choice_rec_codec_ogg_cb();
384 }
cb_OGG1(Fl_Menu_ * o,void * v)385 void flgui::cb_OGG1(Fl_Menu_* o, void* v) {
386   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_OGG1_i(o,v);
387 }
388 
cb_OPUS1_i(Fl_Menu_ *,void *)389 void flgui::cb_OPUS1_i(Fl_Menu_*, void*) {
390   choice_rec_codec_opus_cb();
391 }
cb_OPUS1(Fl_Menu_ * o,void * v)392 void flgui::cb_OPUS1(Fl_Menu_* o, void* v) {
393   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_OPUS1_i(o,v);
394 }
395 
cb_menu_item_rec_aac_i(Fl_Menu_ *,void *)396 void flgui::cb_menu_item_rec_aac_i(Fl_Menu_*, void*) {
397   choice_rec_codec_aac_cb();
398 }
cb_menu_item_rec_aac(Fl_Menu_ * o,void * v)399 void flgui::cb_menu_item_rec_aac(Fl_Menu_* o, void* v) {
400   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_menu_item_rec_aac_i(o,v);
401 }
402 
cb_FLAC1_i(Fl_Menu_ *,void *)403 void flgui::cb_FLAC1_i(Fl_Menu_*, void*) {
404   choice_rec_codec_flac_cb();
405 }
cb_FLAC1(Fl_Menu_ * o,void * v)406 void flgui::cb_FLAC1(Fl_Menu_* o, void* v) {
407   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_FLAC1_i(o,v);
408 }
409 
cb_WAV_i(Fl_Menu_ *,void *)410 void flgui::cb_WAV_i(Fl_Menu_*, void*) {
411   choice_rec_codec_wav_cb();
412 }
cb_WAV(Fl_Menu_ * o,void * v)413 void flgui::cb_WAV(Fl_Menu_* o, void* v) {
414   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_WAV_i(o,v);
415 }
416 
417 unsigned char flgui::menu_choice_rec_codec_i18n_done = 0;
418 Fl_Menu_Item flgui::menu_choice_rec_codec[] = {
419  {"MP3", 0,  (Fl_Callback*)flgui::cb_MP31, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
420  {"OGG/VORBIS", 0,  (Fl_Callback*)flgui::cb_OGG1, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
421  {"OPUS", 0,  (Fl_Callback*)flgui::cb_OPUS1, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
422  {"AAC+", 0,  (Fl_Callback*)flgui::cb_menu_item_rec_aac, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
423  {"FLAC", 0,  (Fl_Callback*)flgui::cb_FLAC1, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
424  {"WAV", 0,  (Fl_Callback*)flgui::cb_WAV, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
425  {0,0,0,0,0,0,0,0,0}
426 };
427 Fl_Menu_Item* flgui::menu_item_rec_aac = flgui::menu_choice_rec_codec + 3;
428 
cb_choice_rec_bitrate_i(Fl_Choice *,void *)429 void flgui::cb_choice_rec_bitrate_i(Fl_Choice*, void*) {
430   choice_rec_bitrate_cb();
431 }
cb_choice_rec_bitrate(Fl_Choice * o,void * v)432 void flgui::cb_choice_rec_bitrate(Fl_Choice* o, void* v) {
433   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_rec_bitrate_i(o,v);
434 }
435 
436 unsigned char flgui::menu_choice_rec_bitrate_i18n_done = 0;
437 Fl_Menu_Item flgui::menu_choice_rec_bitrate[] = {
438  {"8k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
439  {"16k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
440  {"24k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
441  {"32k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
442  {"40k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
443  {"48k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
444  {"56k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
445  {"64k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
446  {"80k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
447  {"96k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
448  {"112k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
449  {"128k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
450  {"160k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
451  {"192k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
452  {"224k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
453  {"256k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
454  {"320k", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
455  {0,0,0,0,0,0,0,0,0}
456 };
457 
cb_button_advanced_i(Fl_Button *,void *)458 void flgui::cb_button_advanced_i(Fl_Button*, void*) {
459   static int show_advanced = 0;
460 if (!show_advanced)
461 {
462 	window_cfg->size(window_cfg->w(), 450);
463 	show_advanced = 1;
464 	fl_g->button_advanced->label("Standard...");
465 }
466 else
467 {
468 	window_cfg->size(window_cfg->w(), 380);
469 	show_advanced = 0;
470 	fl_g->button_advanced->label("Advanced...");
471 
472 };
473 }
cb_button_advanced(Fl_Button * o,void * v)474 void flgui::cb_button_advanced(Fl_Button* o, void* v) {
475   ((flgui*)(o->parent()->parent()->parent()->user_data()))->cb_button_advanced_i(o,v);
476 }
477 
cb_input_cfg_buffer_i(Fl_Value_Input *,void *)478 void flgui::cb_input_cfg_buffer_i(Fl_Value_Input*, void*) {
479   input_cfg_buffer_cb(1);
480 }
cb_input_cfg_buffer(Fl_Value_Input * o,void * v)481 void flgui::cb_input_cfg_buffer(Fl_Value_Input* o, void* v) {
482   ((flgui*)(o->parent()->parent()->parent()->user_data()))->cb_input_cfg_buffer_i(o,v);
483 }
484 
cb_choice_cfg_resample_mode_i(Fl_Choice *,void *)485 void flgui::cb_choice_cfg_resample_mode_i(Fl_Choice*, void*) {
486   choice_cfg_resample_mode_cb();
487 }
cb_choice_cfg_resample_mode(Fl_Choice * o,void * v)488 void flgui::cb_choice_cfg_resample_mode(Fl_Choice* o, void* v) {
489   ((flgui*)(o->parent()->parent()->parent()->user_data()))->cb_choice_cfg_resample_mode_i(o,v);
490 }
491 
492 unsigned char flgui::menu_choice_cfg_resample_mode_i18n_done = 0;
493 Fl_Menu_Item flgui::menu_choice_cfg_resample_mode[] = {
494  {"SINC_BEST", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
495  {"SINC_MEDIUM", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
496  {"SINC_FASTEST", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
497  {"ZERO_ORDER_HOLD", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
498  {"LINEAR", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
499  {0,0,0,0,0,0,0,0,0}
500 };
501 
cb_input_cfg_present_level_i(Fl_Value_Input *,void *)502 void flgui::cb_input_cfg_present_level_i(Fl_Value_Input*, void*) {
503   input_cfg_present_level_cb();
504 }
cb_input_cfg_present_level(Fl_Value_Input * o,void * v)505 void flgui::cb_input_cfg_present_level(Fl_Value_Input* o, void* v) {
506   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_cfg_present_level_i(o,v);
507 }
508 
cb_input_cfg_absent_level_i(Fl_Value_Input *,void *)509 void flgui::cb_input_cfg_absent_level_i(Fl_Value_Input*, void*) {
510   input_cfg_absent_level_cb();
511 }
cb_input_cfg_absent_level(Fl_Value_Input * o,void * v)512 void flgui::cb_input_cfg_absent_level(Fl_Value_Input* o, void* v) {
513   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_cfg_absent_level_i(o,v);
514 }
515 
cb_input_cfg_song_file_i(Fl_Input *,void *)516 void flgui::cb_input_cfg_song_file_i(Fl_Input*, void*) {
517   input_cfg_song_file_cb();
518 }
cb_input_cfg_song_file(Fl_Input * o,void * v)519 void flgui::cb_input_cfg_song_file(Fl_Input* o, void* v) {
520   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_cfg_song_file_i(o,v);
521 }
522 
cb_button_songfile_browse_i(Fl_Button *,void *)523 void flgui::cb_button_songfile_browse_i(Fl_Button*, void*) {
524   button_cfg_browse_songfile_cb();
525 }
cb_button_songfile_browse(Fl_Button * o,void * v)526 void flgui::cb_button_songfile_browse(Fl_Button* o, void* v) {
527   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_songfile_browse_i(o,v);
528 }
529 
cb_check_song_update_active_i(Fl_Check_Button *,void *)530 void flgui::cb_check_song_update_active_i(Fl_Check_Button*, void*) {
531   check_song_update_active_cb();
532 }
cb_check_song_update_active(Fl_Check_Button * o,void * v)533 void flgui::cb_check_song_update_active(Fl_Check_Button* o, void* v) {
534   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_song_update_active_i(o,v);
535 }
536 
cb_check_read_last_line_i(Fl_Check_Button *,void *)537 void flgui::cb_check_read_last_line_i(Fl_Check_Button*, void*) {
538   check_read_last_line_cb();
539 }
cb_check_read_last_line(Fl_Check_Button * o,void * v)540 void flgui::cb_check_read_last_line(Fl_Check_Button* o, void* v) {
541   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_read_last_line_i(o,v);
542 }
543 
cb_input_cfg_song_i(Fl_Input *,void *)544 void flgui::cb_input_cfg_song_i(Fl_Input*, void*) {
545   input_cfg_song_cb();
546 }
cb_input_cfg_song(Fl_Input * o,void * v)547 void flgui::cb_input_cfg_song(Fl_Input* o, void* v) {
548   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_cfg_song_i(o,v);
549 }
550 
cb_OK_i(Fl_Button *,void *)551 void flgui::cb_OK_i(Fl_Button*, void*) {
552   button_cfg_song_go_cb();
553 }
cb_OK(Fl_Button * o,void * v)554 void flgui::cb_OK(Fl_Button* o, void* v) {
555   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_OK_i(o,v);
556 }
557 
cb_check_cfg_use_app_i(Fl_Check_Button *,void *)558 void flgui::cb_check_cfg_use_app_i(Fl_Check_Button*, void*) {
559   check_cfg_use_app_cb();
560 }
cb_check_cfg_use_app(Fl_Check_Button * o,void * v)561 void flgui::cb_check_cfg_use_app(Fl_Check_Button* o, void* v) {
562   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_cfg_use_app_i(o,v);
563 }
564 
cb_choice_cfg_app_i(Fl_Choice *,void *)565 void flgui::cb_choice_cfg_app_i(Fl_Choice*, void*) {
566   choice_cfg_app_cb();
567 }
cb_choice_cfg_app(Fl_Choice * o,void * v)568 void flgui::cb_choice_cfg_app(Fl_Choice* o, void* v) {
569   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_cfg_app_i(o,v);
570 }
571 
cb_check_cfg_connect_i(Fl_Check_Button *,void *)572 void flgui::cb_check_cfg_connect_i(Fl_Check_Button*, void*) {
573   check_cfg_connect_cb();
574 }
cb_check_cfg_connect(Fl_Check_Button * o,void * v)575 void flgui::cb_check_cfg_connect(Fl_Check_Button* o, void* v) {
576   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_cfg_connect_i(o,v);
577 }
578 
cb_input_cfg_silence_i(Fl_Value_Input *,void *)579 void flgui::cb_input_cfg_silence_i(Fl_Value_Input*, void*) {
580   input_cfg_silence_cb();
581 }
cb_input_cfg_silence(Fl_Value_Input * o,void * v)582 void flgui::cb_input_cfg_silence(Fl_Value_Input* o, void* v) {
583   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_cfg_silence_i(o,v);
584 }
585 
cb_input_cfg_signal_i(Fl_Value_Input *,void *)586 void flgui::cb_input_cfg_signal_i(Fl_Value_Input*, void*) {
587   input_cfg_signal_cb();
588 }
cb_input_cfg_signal(Fl_Value_Input * o,void * v)589 void flgui::cb_input_cfg_signal(Fl_Value_Input* o, void* v) {
590   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_cfg_signal_i(o,v);
591 }
592 
cb_check_cfg_force_reconnecting_i(Fl_Check_Button *,void *)593 void flgui::cb_check_cfg_force_reconnecting_i(Fl_Check_Button*, void*) {
594   check_cfg_force_reconnecting_cb();
595 }
cb_check_cfg_force_reconnecting(Fl_Check_Button * o,void * v)596 void flgui::cb_check_cfg_force_reconnecting(Fl_Check_Button* o, void* v) {
597   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_cfg_force_reconnecting_i(o,v);
598 }
599 
cb_input_cfg_song_prefix_i(Fl_Input *,void *)600 void flgui::cb_input_cfg_song_prefix_i(Fl_Input*, void*) {
601   input_cfg_song_prefix_cb();
602 }
cb_input_cfg_song_prefix(Fl_Input * o,void * v)603 void flgui::cb_input_cfg_song_prefix(Fl_Input* o, void* v) {
604   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_cfg_song_prefix_i(o,v);
605 }
606 
cb_input_cfg_song_suffix_i(Fl_Input *,void *)607 void flgui::cb_input_cfg_song_suffix_i(Fl_Input*, void*) {
608   input_cfg_song_suffix_cb();
609 }
cb_input_cfg_song_suffix(Fl_Input * o,void * v)610 void flgui::cb_input_cfg_song_suffix(Fl_Input* o, void* v) {
611   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_cfg_song_suffix_i(o,v);
612 }
613 
cb_input_rec_filename_i(Fl_Input *,void *)614 void flgui::cb_input_rec_filename_i(Fl_Input*, void*) {
615   input_rec_filename_cb();
616 }
cb_input_rec_filename(Fl_Input * o,void * v)617 void flgui::cb_input_rec_filename(Fl_Input* o, void* v) {
618   ((flgui*)(o->parent()->parent()->parent()->user_data()))->cb_input_rec_filename_i(o,v);
619 }
620 
cb_input_rec_folder_i(Fl_Input *,void *)621 void flgui::cb_input_rec_folder_i(Fl_Input*, void*) {
622   input_rec_folder_cb();
623 }
cb_input_rec_folder(Fl_Input * o,void * v)624 void flgui::cb_input_rec_folder(Fl_Input* o, void* v) {
625   ((flgui*)(o->parent()->parent()->parent()->user_data()))->cb_input_rec_folder_i(o,v);
626 }
627 
cb_button_rec_browse_i(Fl_Button *,void *)628 void flgui::cb_button_rec_browse_i(Fl_Button*, void*) {
629   button_rec_browse_cb();
630 }
cb_button_rec_browse(Fl_Button * o,void * v)631 void flgui::cb_button_rec_browse(Fl_Button* o, void* v) {
632   ((flgui*)(o->parent()->parent()->parent()->user_data()))->cb_button_rec_browse_i(o,v);
633 }
634 
cb_input_rec_split_time_i(Fl_Value_Input *,void *)635 void flgui::cb_input_rec_split_time_i(Fl_Value_Input*, void*) {
636   input_rec_split_time_cb();
637 }
cb_input_rec_split_time(Fl_Value_Input * o,void * v)638 void flgui::cb_input_rec_split_time(Fl_Value_Input* o, void* v) {
639   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_rec_split_time_i(o,v);
640 }
641 
cb_check_sync_to_full_hour_i(Fl_Check_Button *,void *)642 void flgui::cb_check_sync_to_full_hour_i(Fl_Check_Button*, void*) {
643   check_sync_to_full_hour_cb();
644 }
cb_check_sync_to_full_hour(Fl_Check_Button * o,void * v)645 void flgui::cb_check_sync_to_full_hour(Fl_Check_Button* o, void* v) {
646   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_sync_to_full_hour_i(o,v);
647 }
648 
cb_Split_i(Fl_Button *,void *)649 void flgui::cb_Split_i(Fl_Button*, void*) {
650   button_rec_split_now_cb();
651 }
cb_Split(Fl_Button * o,void * v)652 void flgui::cb_Split(Fl_Button* o, void* v) {
653   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Split_i(o,v);
654 }
655 
cb_check_cfg_auto_start_rec_i(Fl_Check_Button *,void *)656 void flgui::cb_check_cfg_auto_start_rec_i(Fl_Check_Button*, void*) {
657   check_cfg_auto_start_rec_cb();
658 }
cb_check_cfg_auto_start_rec(Fl_Check_Button * o,void * v)659 void flgui::cb_check_cfg_auto_start_rec(Fl_Check_Button* o, void* v) {
660   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_cfg_auto_start_rec_i(o,v);
661 }
662 
cb_check_cfg_rec_after_launch_i(Fl_Check_Button *,void *)663 void flgui::cb_check_cfg_rec_after_launch_i(Fl_Check_Button*, void*) {
664   check_cfg_rec_after_launch_cb();
665 }
cb_check_cfg_rec_after_launch(Fl_Check_Button * o,void * v)666 void flgui::cb_check_cfg_rec_after_launch(Fl_Check_Button* o, void* v) {
667   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_cfg_rec_after_launch_i(o,v);
668 }
669 
cb_input_rec_signal_i(Fl_Value_Input *,void *)670 void flgui::cb_input_rec_signal_i(Fl_Value_Input*, void*) {
671   input_rec_signal_cb();
672 }
cb_input_rec_signal(Fl_Value_Input * o,void * v)673 void flgui::cb_input_rec_signal(Fl_Value_Input* o, void* v) {
674   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_rec_signal_i(o,v);
675 }
676 
cb_check_cfg_auto_stop_rec_i(Fl_Check_Button *,void *)677 void flgui::cb_check_cfg_auto_stop_rec_i(Fl_Check_Button*, void*) {
678   check_cfg_auto_stop_rec_cb();
679 }
cb_check_cfg_auto_stop_rec(Fl_Check_Button * o,void * v)680 void flgui::cb_check_cfg_auto_stop_rec(Fl_Check_Button* o, void* v) {
681   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_cfg_auto_stop_rec_i(o,v);
682 }
683 
cb_input_rec_silence_i(Fl_Value_Input *,void *)684 void flgui::cb_input_rec_silence_i(Fl_Value_Input*, void*) {
685   input_rec_silence_cb();
686 }
cb_input_rec_silence(Fl_Value_Input * o,void * v)687 void flgui::cb_input_rec_silence(Fl_Value_Input* o, void* v) {
688   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_rec_silence_i(o,v);
689 }
690 
cb_input_tls_cert_file_i(Fl_Input *,void *)691 void flgui::cb_input_tls_cert_file_i(Fl_Input*, void*) {
692   input_tls_cert_file_cb();
693 }
cb_input_tls_cert_file(Fl_Input * o,void * v)694 void flgui::cb_input_tls_cert_file(Fl_Input* o, void* v) {
695   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_tls_cert_file_i(o,v);
696 }
697 
cb_input_tls_cert_dir_i(Fl_Input *,void *)698 void flgui::cb_input_tls_cert_dir_i(Fl_Input*, void*) {
699   input_tls_cert_dir_cb();
700 }
cb_input_tls_cert_dir(Fl_Input * o,void * v)701 void flgui::cb_input_tls_cert_dir(Fl_Input* o, void* v) {
702   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_input_tls_cert_dir_i(o,v);
703 }
704 
cb_button_tls_browse_dir_i(Fl_Button *,void *)705 void flgui::cb_button_tls_browse_dir_i(Fl_Button*, void*) {
706   button_tls_browse_dir_cb();
707 }
cb_button_tls_browse_dir(Fl_Button * o,void * v)708 void flgui::cb_button_tls_browse_dir(Fl_Button* o, void* v) {
709   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_tls_browse_dir_i(o,v);
710 }
711 
cb_button_tls_browse_file_i(Fl_Button *,void *)712 void flgui::cb_button_tls_browse_file_i(Fl_Button*, void*) {
713   button_tls_browse_file_cb();
714 }
cb_button_tls_browse_file(Fl_Button * o,void * v)715 void flgui::cb_button_tls_browse_file(Fl_Button* o, void* v) {
716   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_tls_browse_file_i(o,v);
717 }
718 
cb_check_activate_eq_i(Fl_Check_Button *,void *)719 void flgui::cb_check_activate_eq_i(Fl_Check_Button*, void*) {
720   check_activate_eq_cb();
721 }
cb_check_activate_eq(Fl_Check_Button * o,void * v)722 void flgui::cb_check_activate_eq(Fl_Check_Button* o, void* v) {
723   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_activate_eq_i(o,v);
724 }
725 
cb_equalizerSlider1_i(Fl_My_Value_Slider * o,void *)726 void flgui::cb_equalizerSlider1_i(Fl_My_Value_Slider* o, void*) {
727   slider_equalizer1_cb(o->value());
728 }
cb_equalizerSlider1(Fl_My_Value_Slider * o,void * v)729 void flgui::cb_equalizerSlider1(Fl_My_Value_Slider* o, void* v) {
730   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_equalizerSlider1_i(o,v);
731 }
732 
cb_equalizerSlider2_i(Fl_My_Value_Slider * o,void *)733 void flgui::cb_equalizerSlider2_i(Fl_My_Value_Slider* o, void*) {
734   slider_equalizer2_cb(o->value());
735 }
cb_equalizerSlider2(Fl_My_Value_Slider * o,void * v)736 void flgui::cb_equalizerSlider2(Fl_My_Value_Slider* o, void* v) {
737   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_equalizerSlider2_i(o,v);
738 }
739 
cb_equalizerSlider3_i(Fl_My_Value_Slider * o,void *)740 void flgui::cb_equalizerSlider3_i(Fl_My_Value_Slider* o, void*) {
741   slider_equalizer3_cb(o->value());
742 }
cb_equalizerSlider3(Fl_My_Value_Slider * o,void * v)743 void flgui::cb_equalizerSlider3(Fl_My_Value_Slider* o, void* v) {
744   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_equalizerSlider3_i(o,v);
745 }
746 
cb_equalizerSlider4_i(Fl_My_Value_Slider * o,void *)747 void flgui::cb_equalizerSlider4_i(Fl_My_Value_Slider* o, void*) {
748   slider_equalizer4_cb(o->value());
749 }
cb_equalizerSlider4(Fl_My_Value_Slider * o,void * v)750 void flgui::cb_equalizerSlider4(Fl_My_Value_Slider* o, void* v) {
751   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_equalizerSlider4_i(o,v);
752 }
753 
cb_equalizerSlider5_i(Fl_My_Value_Slider * o,void *)754 void flgui::cb_equalizerSlider5_i(Fl_My_Value_Slider* o, void*) {
755   slider_equalizer5_cb(o->value());
756 }
cb_equalizerSlider5(Fl_My_Value_Slider * o,void * v)757 void flgui::cb_equalizerSlider5(Fl_My_Value_Slider* o, void* v) {
758   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_equalizerSlider5_i(o,v);
759 }
760 
cb_Reset_i(Fl_Button *,void *)761 void flgui::cb_Reset_i(Fl_Button*, void*) {
762   fl_g->equalizerSlider1->value(0);
763 fl_g->equalizerSlider2->value(0);
764 fl_g->equalizerSlider3->value(0);
765 fl_g->equalizerSlider4->value(0);
766 fl_g->equalizerSlider5->value(0);
767 slider_equalizer1_cb(0);
768 slider_equalizer2_cb(0);
769 slider_equalizer3_cb(0);
770 slider_equalizer4_cb(0);
771 slider_equalizer5_cb(0);
772 }
cb_Reset(Fl_Button * o,void * v)773 void flgui::cb_Reset(Fl_Button* o, void* v) {
774   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Reset_i(o,v);
775 }
776 
cb_check_activate_drc_i(Fl_Check_Button *,void *)777 void flgui::cb_check_activate_drc_i(Fl_Check_Button*, void*) {
778   check_activate_drc_cb();
779 }
cb_check_activate_drc(Fl_Check_Button * o,void * v)780 void flgui::cb_check_activate_drc(Fl_Check_Button* o, void* v) {
781   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_activate_drc_i(o,v);
782 }
783 
cb_thresholdSlider_i(Fl_My_Value_Slider * o,void *)784 void flgui::cb_thresholdSlider_i(Fl_My_Value_Slider* o, void*) {
785   slider_threshold_cb(o->value());
786 }
cb_thresholdSlider(Fl_My_Value_Slider * o,void * v)787 void flgui::cb_thresholdSlider(Fl_My_Value_Slider* o, void* v) {
788   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_thresholdSlider_i(o,v);
789 }
790 
cb_ratioSlider_i(Fl_My_Value_Slider * o,void *)791 void flgui::cb_ratioSlider_i(Fl_My_Value_Slider* o, void*) {
792   slider_ratio_cb(o->value());
793 }
cb_ratioSlider(Fl_My_Value_Slider * o,void * v)794 void flgui::cb_ratioSlider(Fl_My_Value_Slider* o, void* v) {
795   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_ratioSlider_i(o,v);
796 }
797 
cb_attackSlider_i(Fl_My_Value_Slider * o,void *)798 void flgui::cb_attackSlider_i(Fl_My_Value_Slider* o, void*) {
799   slider_attack_cb(o->value());
800 }
cb_attackSlider(Fl_My_Value_Slider * o,void * v)801 void flgui::cb_attackSlider(Fl_My_Value_Slider* o, void* v) {
802   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_attackSlider_i(o,v);
803 }
804 
cb_releaseSlider_i(Fl_My_Value_Slider * o,void *)805 void flgui::cb_releaseSlider_i(Fl_My_Value_Slider* o, void*) {
806   slider_release_cb(o->value());
807 }
cb_releaseSlider(Fl_My_Value_Slider * o,void * v)808 void flgui::cb_releaseSlider(Fl_My_Value_Slider* o, void* v) {
809   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_releaseSlider_i(o,v);
810 }
811 
cb_Reset1_i(Fl_Button *,void *)812 void flgui::cb_Reset1_i(Fl_Button*, void*) {
813   fl_g->thresholdSlider->value(-20);
814 fl_g->ratioSlider->value(5);
815 fl_g->attackSlider->value(0.01);
816 fl_g->releaseSlider->value(1);
817 fl_g->makeupSlider->value(0);
818 slider_threshold_cb(-20);
819 slider_ratio_cb(5);
820 slider_attack_cb(0.01);
821 slider_release_cb(1);
822 slider_makeup_cb(0);
823 }
cb_Reset1(Fl_Button * o,void * v)824 void flgui::cb_Reset1(Fl_Button* o, void* v) {
825   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Reset1_i(o,v);
826 }
827 
cb_makeupSlider_i(Fl_My_Value_Slider * o,void *)828 void flgui::cb_makeupSlider_i(Fl_My_Value_Slider* o, void*) {
829   slider_makeup_cb(o->value());
830 }
cb_makeupSlider(Fl_My_Value_Slider * o,void * v)831 void flgui::cb_makeupSlider(Fl_My_Value_Slider* o, void* v) {
832   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_makeupSlider_i(o,v);
833 }
834 
cb_button_gui_text_color_i(Fl_Button *,void *)835 void flgui::cb_button_gui_text_color_i(Fl_Button*, void*) {
836   button_gui_text_color_cb();
837 }
cb_button_gui_text_color(Fl_Button * o,void * v)838 void flgui::cb_button_gui_text_color(Fl_Button* o, void* v) {
839   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_gui_text_color_i(o,v);
840 }
841 
cb_button_gui_bg_color_i(Fl_Button *,void *)842 void flgui::cb_button_gui_bg_color_i(Fl_Button*, void*) {
843   button_gui_bg_color_cb();
844 }
cb_button_gui_bg_color(Fl_Button * o,void * v)845 void flgui::cb_button_gui_bg_color(Fl_Button* o, void* v) {
846   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_button_gui_bg_color_i(o,v);
847 }
848 
cb_check_gui_attach_i(Fl_Check_Button *,void *)849 void flgui::cb_check_gui_attach_i(Fl_Check_Button*, void*) {
850   check_gui_attach_cb();
851 }
cb_check_gui_attach(Fl_Check_Button * o,void * v)852 void flgui::cb_check_gui_attach(Fl_Check_Button* o, void* v) {
853   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_gui_attach_i(o,v);
854 }
855 
cb_check_gui_ontop_i(Fl_Check_Button *,void *)856 void flgui::cb_check_gui_ontop_i(Fl_Check_Button*, void*) {
857   check_gui_ontop_cb();
858 }
cb_check_gui_ontop(Fl_Check_Button * o,void * v)859 void flgui::cb_check_gui_ontop(Fl_Check_Button* o, void* v) {
860   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_gui_ontop_i(o,v);
861 }
862 
cb_check_gui_lcd_auto_i(Fl_Check_Button *,void *)863 void flgui::cb_check_gui_lcd_auto_i(Fl_Check_Button*, void*) {
864   check_gui_lcd_auto_cb();
865 }
cb_check_gui_lcd_auto(Fl_Check_Button * o,void * v)866 void flgui::cb_check_gui_lcd_auto(Fl_Check_Button* o, void* v) {
867   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_gui_lcd_auto_i(o,v);
868 }
869 
cb_check_gui_hide_log_window_i(Fl_Check_Button *,void *)870 void flgui::cb_check_gui_hide_log_window_i(Fl_Check_Button*, void*) {
871   check_gui_hide_log_window_cb();
872 }
cb_check_gui_hide_log_window(Fl_Check_Button * o,void * v)873 void flgui::cb_check_gui_hide_log_window(Fl_Check_Button* o, void* v) {
874   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_gui_hide_log_window_i(o,v);
875 }
876 
cb_check_gui_remember_pos_i(Fl_Check_Button *,void *)877 void flgui::cb_check_gui_remember_pos_i(Fl_Check_Button*, void*) {
878   check_gui_remember_pos_cb();
879 }
cb_check_gui_remember_pos(Fl_Check_Button * o,void * v)880 void flgui::cb_check_gui_remember_pos(Fl_Check_Button* o, void* v) {
881   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_check_gui_remember_pos_i(o,v);
882 }
883 
cb_choice_gui_language_i(Fl_Choice *,void *)884 void flgui::cb_choice_gui_language_i(Fl_Choice*, void*) {
885   choice_gui_language_cb();
886 }
cb_choice_gui_language(Fl_Choice * o,void * v)887 void flgui::cb_choice_gui_language(Fl_Choice* o, void* v) {
888   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_choice_gui_language_i(o,v);
889 }
890 
891 unsigned char flgui::menu_choice_gui_language_i18n_done = 0;
892 Fl_Menu_Item flgui::menu_choice_gui_language[] = {
893  {"System", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
894  {"Deutsch", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
895  {"English", 0,  0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 14, 0},
896  {0,0,0,0,0,0,0,0,0}
897 };
898 
cb_Donate_i(Fl_Button *,void *)899 void flgui::cb_Donate_i(Fl_Button*, void*) {
900   fl_open_uri("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=LTRSQNTWN4L6L&source=url");
901 }
cb_Donate(Fl_Button * o,void * v)902 void flgui::cb_Donate(Fl_Button* o, void* v) {
903   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Donate_i(o,v);
904 }
905 
cb_Become_i(Fl_Button *,void *)906 void flgui::cb_Become_i(Fl_Button*, void*) {
907   fl_open_uri("https://www.patreon.com/butt_broadcast");
908 }
cb_Become(Fl_Button * o,void * v)909 void flgui::cb_Become(Fl_Button* o, void* v) {
910   ((flgui*)(o->parent()->parent()->parent()->parent()->user_data()))->cb_Become_i(o,v);
911 }
912 
cb_radio_add_srv_shoutcast_i(Fl_Round_Button *,void *)913 void flgui::cb_radio_add_srv_shoutcast_i(Fl_Round_Button*, void*) {
914   radio_add_srv_shoutcast_cb();
915 }
cb_radio_add_srv_shoutcast(Fl_Round_Button * o,void * v)916 void flgui::cb_radio_add_srv_shoutcast(Fl_Round_Button* o, void* v) {
917   ((flgui*)(o->parent()->parent()->user_data()))->cb_radio_add_srv_shoutcast_i(o,v);
918 }
919 
cb_radio_add_srv_icecast_i(Fl_Round_Button *,void *)920 void flgui::cb_radio_add_srv_icecast_i(Fl_Round_Button*, void*) {
921   radio_add_srv_icecast_cb();
922 }
cb_radio_add_srv_icecast(Fl_Round_Button * o,void * v)923 void flgui::cb_radio_add_srv_icecast(Fl_Round_Button* o, void* v) {
924   ((flgui*)(o->parent()->parent()->user_data()))->cb_radio_add_srv_icecast_i(o,v);
925 }
926 
cb_Cancel_i(Fl_Button *,void *)927 void flgui::cb_Cancel_i(Fl_Button*, void*) {
928   button_add_srv_cancel_cb();
929 }
cb_Cancel(Fl_Button * o,void * v)930 void flgui::cb_Cancel(Fl_Button* o, void* v) {
931   ((flgui*)(o->parent()->user_data()))->cb_Cancel_i(o,v);
932 }
933 
cb_button_add_srv_add_i(Fl_Button *,void *)934 void flgui::cb_button_add_srv_add_i(Fl_Button*, void*) {
935   button_add_srv_add_cb();
936 }
cb_button_add_srv_add(Fl_Button * o,void * v)937 void flgui::cb_button_add_srv_add(Fl_Button* o, void* v) {
938   ((flgui*)(o->parent()->user_data()))->cb_button_add_srv_add_i(o,v);
939 }
940 
cb_button_add_srv_save_i(Fl_Button *,void *)941 void flgui::cb_button_add_srv_save_i(Fl_Button*, void*) {
942   button_add_srv_save_cb();
943 }
cb_button_add_srv_save(Fl_Button * o,void * v)944 void flgui::cb_button_add_srv_save(Fl_Button* o, void* v) {
945   ((flgui*)(o->parent()->user_data()))->cb_button_add_srv_save_i(o,v);
946 }
947 
cb_button_cfg_show_pw_i(Fl_Button *,void *)948 void flgui::cb_button_cfg_show_pw_i(Fl_Button*, void*) {
949   button_add_srv_show_pwd_cb();
950 }
cb_button_cfg_show_pw(Fl_Button * o,void * v)951 void flgui::cb_button_cfg_show_pw(Fl_Button* o, void* v) {
952   ((flgui*)(o->parent()->user_data()))->cb_button_cfg_show_pw_i(o,v);
953 }
954 
cb_button_add_srv_revoke_cert_i(Fl_Button *,void *)955 void flgui::cb_button_add_srv_revoke_cert_i(Fl_Button*, void*) {
956   button_add_srv_revoke_cert_cb();
957 }
cb_button_add_srv_revoke_cert(Fl_Button * o,void * v)958 void flgui::cb_button_add_srv_revoke_cert(Fl_Button* o, void* v) {
959   ((flgui*)(o->parent()->parent()->user_data()))->cb_button_add_srv_revoke_cert_i(o,v);
960 }
961 
cb_Cancel1_i(Fl_Button *,void *)962 void flgui::cb_Cancel1_i(Fl_Button*, void*) {
963   button_add_icy_cancel_cb();
964 }
cb_Cancel1(Fl_Button * o,void * v)965 void flgui::cb_Cancel1(Fl_Button* o, void* v) {
966   ((flgui*)(o->parent()->user_data()))->cb_Cancel1_i(o,v);
967 }
968 
cb_button_add_icy_add_i(Fl_Button *,void *)969 void flgui::cb_button_add_icy_add_i(Fl_Button*, void*) {
970   button_add_icy_add_cb();
971 }
cb_button_add_icy_add(Fl_Button * o,void * v)972 void flgui::cb_button_add_icy_add(Fl_Button* o, void* v) {
973   ((flgui*)(o->parent()->user_data()))->cb_button_add_icy_add_i(o,v);
974 }
975 
cb_button_add_icy_save_i(Fl_Button *,void *)976 void flgui::cb_button_add_icy_save_i(Fl_Button*, void*) {
977   button_add_icy_save_cb();
978 }
cb_button_add_icy_save(Fl_Button * o,void * v)979 void flgui::cb_button_add_icy_save(Fl_Button* o, void* v) {
980   ((flgui*)(o->parent()->user_data()))->cb_button_add_icy_save_i(o,v);
981 }
982 
flgui()983 flgui::flgui() {
984   { window_main = new Fl_My_Double_Window(430, 380);
985     window_main->box(FL_FLAT_BOX);
986     window_main->color(FL_BACKGROUND_COLOR);
987     window_main->selection_color(FL_BACKGROUND_COLOR);
988     window_main->labeltype(FL_NO_LABEL);
989     window_main->labelfont(0);
990     window_main->labelsize(14);
991     window_main->labelcolor(FL_FOREGROUND_COLOR);
992     window_main->callback((Fl_Callback*)cb_window_main, (void*)(this));
993     window_main->align(Fl_Align(FL_ALIGN_TOP));
994     window_main->when(FL_WHEN_RELEASE);
995     { Fl_Group* o = new Fl_Group(0, -1, 430, 426);
996       { lcd = new Fl_ILM216(10, 9, 410, 95);
997         lcd->tooltip(gettext("press left mouse to toggle lcd info"));
998         lcd->box(FL_ENGRAVED_BOX);
999         lcd->color(FL_SELECTION_COLOR);
1000         lcd->selection_color((Fl_Color)41);
1001         lcd->labeltype(FL_NORMAL_LABEL);
1002         lcd->labelfont(0);
1003         lcd->labelsize(14);
1004         lcd->labelcolor(FL_FOREGROUND_COLOR);
1005         lcd->callback((Fl_Callback*)cb_lcd);
1006         lcd->align(Fl_Align(FL_ALIGN_CENTER));
1007         lcd->when(FL_WHEN_RELEASE);
1008       } // Fl_ILM216* lcd
1009       { button_connect = new Fl_Button(102, 121, 30, 30, gettext("@> "));
1010         button_connect->tooltip(gettext("connect to server"));
1011         button_connect->box(FL_ENGRAVED_BOX);
1012         button_connect->shortcut(0x40063);
1013         button_connect->down_box(FL_ENGRAVED_BOX);
1014         button_connect->color((Fl_Color)48);
1015         button_connect->selection_color((Fl_Color)40);
1016         button_connect->labelfont(1);
1017         button_connect->labelcolor(FL_BACKGROUND2_COLOR);
1018         button_connect->callback((Fl_Callback*)cb_button_connect);
1019       } // Fl_Button* button_connect
1020       { button_disconnect = new Fl_Button(62, 121, 30, 30, gettext("@-3square"));
1021         button_disconnect->tooltip(gettext("disconnect from server"));
1022         button_disconnect->box(FL_ENGRAVED_BOX);
1023         button_disconnect->shortcut(0x40064);
1024         button_disconnect->down_box(FL_ENGRAVED_BOX);
1025         button_disconnect->color((Fl_Color)48);
1026         button_disconnect->selection_color((Fl_Color)40);
1027         button_disconnect->labelfont(1);
1028         button_disconnect->labelcolor(FL_BACKGROUND2_COLOR);
1029         button_disconnect->callback((Fl_Callback*)cb_button_disconnect);
1030       } // Fl_Button* button_disconnect
1031       { button_record = new Fl_Button(10, 121, 30, 30, gettext("@-3circle"));
1032         button_record->tooltip(gettext("start/stop recording"));
1033         button_record->box(FL_ENGRAVED_BOX);
1034         button_record->shortcut(0x40072);
1035         button_record->down_box(FL_ENGRAVED_BOX);
1036         button_record->color((Fl_Color)48);
1037         button_record->selection_color((Fl_Color)40);
1038         button_record->labelfont(1);
1039         button_record->labelcolor((Fl_Color)1);
1040         button_record->callback((Fl_Callback*)cb_button_record);
1041       } // Fl_Button* button_record
1042       { button_info = new Fl_Button(340, 143, 80, 15, gettext("Show log"));
1043         button_info->tooltip(gettext("show/hide info window"));
1044         button_info->box(FL_ENGRAVED_BOX);
1045         button_info->shortcut(0x40076);
1046         button_info->color((Fl_Color)48);
1047         button_info->labelsize(10);
1048         button_info->callback((Fl_Callback*)cb_button_info);
1049       } // Fl_Button* button_info
1050       { vumeter = new VUMeter(156, 115, 174, 43);
1051         vumeter->box(FL_BORDER_BOX);
1052         vumeter->color(FL_BACKGROUND_COLOR);
1053         vumeter->selection_color(FL_BACKGROUND_COLOR);
1054         vumeter->labeltype(FL_NORMAL_LABEL);
1055         vumeter->labelfont(0);
1056         vumeter->labelsize(14);
1057         vumeter->labelcolor(FL_FOREGROUND_COLOR);
1058         vumeter->align(Fl_Align(FL_ALIGN_TOP));
1059         vumeter->when(FL_WHEN_RELEASE);
1060         vumeter->end();
1061       } // VUMeter* vumeter
1062       o->end();
1063     } // Fl_Group* o
1064     { info_output = new Fl_Text_Display(0, 195, 430, 184);
1065       info_output->box(FL_EMBOSSED_BOX);
1066       info_output->textfont(4);
1067       info_output->textsize(15);
1068     } // Fl_Text_Display* info_output
1069     { button_cfg = new Fl_Button(340, 114, 80, 22, gettext("Settings"));
1070       button_cfg->tooltip(gettext("show/hide config window"));
1071       button_cfg->box(FL_ENGRAVED_BOX);
1072       button_cfg->shortcut(0x40066);
1073       button_cfg->color((Fl_Color)48);
1074       button_cfg->labelsize(11);
1075       button_cfg->callback((Fl_Callback*)cb_button_cfg);
1076     } // Fl_Button* button_cfg
1077     { Fl_Box* o = new Fl_Box(10, 167, 30, 16, gettext("-24 dB"));
1078       o->labelsize(10);
1079     } // Fl_Box* o
1080     { slider_gain = new Fl_My_Value_Slider(50, 168, 335, 15);
1081       slider_gain->tooltip(gettext("Gain"));
1082       slider_gain->type(5);
1083       slider_gain->box(FL_NO_BOX);
1084       slider_gain->color(FL_BACKGROUND_COLOR);
1085       slider_gain->selection_color(FL_BACKGROUND_COLOR);
1086       slider_gain->labeltype(FL_NORMAL_LABEL);
1087       slider_gain->labelfont(0);
1088       slider_gain->labelsize(14);
1089       slider_gain->labelcolor(FL_FOREGROUND_COLOR);
1090       slider_gain->minimum(-24);
1091       slider_gain->maximum(24);
1092       slider_gain->step(0.1);
1093       slider_gain->callback((Fl_Callback*)cb_slider_gain);
1094       slider_gain->align(Fl_Align(FL_ALIGN_BOTTOM));
1095       slider_gain->when(FL_WHEN_CHANGED);
1096     } // Fl_My_Value_Slider* slider_gain
1097     { Fl_Box* o = new Fl_Box(390, 167, 30, 16, gettext("+24 dB"));
1098       o->labelsize(10);
1099     } // Fl_Box* o
1100     window_main->size_range(430, 155, 430);
1101     window_main->end();
1102   } // Fl_My_Double_Window* window_main
1103   { window_cfg = new Fl_My_Double_Window(400, 550, gettext("butt settings"));
1104     window_cfg->box(FL_FLAT_BOX);
1105     window_cfg->color(FL_BACKGROUND_COLOR);
1106     window_cfg->selection_color(FL_BACKGROUND_COLOR);
1107     window_cfg->labeltype(FL_NO_LABEL);
1108     window_cfg->labelfont(0);
1109     window_cfg->labelsize(14);
1110     window_cfg->labelcolor(FL_FOREGROUND_COLOR);
1111     window_cfg->callback((Fl_Callback*)cb_window_cfg, (void*)(this));
1112     window_cfg->align(Fl_Align(FL_ALIGN_TOP));
1113     window_cfg->when(FL_WHEN_RELEASE);
1114     { Settings = new Fl_Tabs(0, 0, 406, 560);
1115       Settings->selection_color((Fl_Color)41);
1116       { Fl_Group* o = new Fl_Group(0, 20, 400, 530, gettext("Main"));
1117         o->when(FL_WHEN_RELEASE_ALWAYS);
1118         { Fl_Group* o = new Fl_Group(37, 55, 326, 155, gettext("Server Settings"));
1119           o->box(FL_ENGRAVED_FRAME);
1120           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1121           { choice_cfg_act_srv = new Fl_Choice(45, 75, 310, 20, gettext("Server"));
1122             choice_cfg_act_srv->tooltip(gettext("Server to connect to"));
1123             choice_cfg_act_srv->down_box(FL_BORDER_BOX);
1124             choice_cfg_act_srv->callback((Fl_Callback*)cb_choice_cfg_act_srv);
1125             choice_cfg_act_srv->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1126           } // Fl_Choice* choice_cfg_act_srv
1127           { Fl_Button* o = new Fl_Button(45, 100, 43, 20, gettext("ADD"));
1128             o->tooltip(gettext("Add server"));
1129             o->box(FL_ENGRAVED_BOX);
1130             o->callback((Fl_Callback*)cb_ADD);
1131           } // Fl_Button* o
1132           { button_cfg_edit_srv = new Fl_Button(178, 100, 43, 20, gettext("EDIT"));
1133             button_cfg_edit_srv->tooltip(gettext("Edit selected server"));
1134             button_cfg_edit_srv->box(FL_ENGRAVED_BOX);
1135             button_cfg_edit_srv->callback((Fl_Callback*)cb_button_cfg_edit_srv);
1136           } // Fl_Button* button_cfg_edit_srv
1137           { button_cfg_del_srv = new Fl_Button(312, 100, 43, 20, gettext("DEL"));
1138             button_cfg_del_srv->tooltip(gettext("Delete selected server"));
1139             button_cfg_del_srv->box(FL_ENGRAVED_BOX);
1140             button_cfg_del_srv->callback((Fl_Callback*)cb_button_cfg_del_srv);
1141           } // Fl_Button* button_cfg_del_srv
1142           { choice_cfg_act_icy = new Fl_Choice(45, 155, 310, 20, gettext("Stream Infos"));
1143             choice_cfg_act_icy->tooltip(gettext("Stream info that shall be used"));
1144             choice_cfg_act_icy->down_box(FL_BORDER_BOX);
1145             choice_cfg_act_icy->callback((Fl_Callback*)cb_choice_cfg_act_icy);
1146             choice_cfg_act_icy->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1147           } // Fl_Choice* choice_cfg_act_icy
1148           { Fl_Button* o = new Fl_Button(45, 180, 43, 20, gettext("ADD"));
1149             o->tooltip(gettext("Add stream info"));
1150             o->box(FL_ENGRAVED_BOX);
1151             o->callback((Fl_Callback*)cb_ADD1);
1152           } // Fl_Button* o
1153           { button_cfg_edit_icy = new Fl_Button(178, 180, 43, 20, gettext("EDIT"));
1154             button_cfg_edit_icy->tooltip(gettext("Edit stream info"));
1155             button_cfg_edit_icy->box(FL_ENGRAVED_BOX);
1156             button_cfg_edit_icy->callback((Fl_Callback*)cb_button_cfg_edit_icy);
1157           } // Fl_Button* button_cfg_edit_icy
1158           { button_cfg_del_icy = new Fl_Button(312, 180, 43, 20, gettext("DEL"));
1159             button_cfg_del_icy->tooltip(gettext("Delete stream info"));
1160             button_cfg_del_icy->box(FL_ENGRAVED_BOX);
1161             button_cfg_del_icy->callback((Fl_Callback*)cb_button_cfg_del_icy);
1162           } // Fl_Button* button_cfg_del_icy
1163           o->end();
1164         } // Fl_Group* o
1165         { Fl_Group* o = new Fl_Group(37, 237, 326, 40, gettext("Log File"));
1166           o->box(FL_ENGRAVED_FRAME);
1167           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1168           { input_log_filename = new Fl_Input(45, 245, 280, 25);
1169             input_log_filename->tooltip(gettext("Log file path"));
1170             input_log_filename->callback((Fl_Callback*)cb_input_log_filename);
1171             input_log_filename->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1172           } // Fl_Input* input_log_filename
1173           { Fl_Button* o = new Fl_Button(331, 245, 25, 25);
1174             o->tooltip(gettext("Select log file"));
1175             o->box(FL_ENGRAVED_BOX);
1176             o->image( image_folder() );
1177             o->callback((Fl_Callback*)cb_);
1178           } // Fl_Button* o
1179           o->end();
1180         } // Fl_Group* o
1181         { Fl_Group* o = new Fl_Group(37, 304, 326, 50, gettext("Configuration"));
1182           o->box(FL_ENGRAVED_FRAME);
1183           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1184           { Fl_Button* o = new Fl_Button(45, 315, 70, 28, gettext("Import..."));
1185             o->tooltip(gettext("Import settings from config file"));
1186             o->box(FL_ENGRAVED_BOX);
1187             o->callback((Fl_Callback*)cb_Import);
1188           } // Fl_Button* o
1189           { Fl_Button* o = new Fl_Button(153, 315, 95, 28, gettext("&Save"));
1190             o->tooltip(gettext("Save settings"));
1191             o->box(FL_ENGRAVED_BOX);
1192             o->callback((Fl_Callback*)cb_Save);
1193           } // Fl_Button* o
1194           { Fl_Button* o = new Fl_Button(285, 315, 70, 28, gettext("Export..."));
1195             o->tooltip(gettext("export settings"));
1196             o->box(FL_ENGRAVED_BOX);
1197             o->callback((Fl_Callback*)cb_Export);
1198           } // Fl_Button* o
1199           o->end();
1200         } // Fl_Group* o
1201         { Fl_Group* o = new Fl_Group(37, 383, 326, 50, gettext("Updates"));
1202           o->box(FL_ENGRAVED_FRAME);
1203           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1204           { Fl_Button* o = new Fl_Button(250, 395, 105, 28, gettext("Check now"));
1205             o->tooltip(gettext("Check if a new version is available"));
1206             o->box(FL_ENGRAVED_BOX);
1207             o->callback((Fl_Callback*)cb_Check);
1208           } // Fl_Button* o
1209           { check_update_at_startup = new Fl_Check_Button(45, 402, 145, 15, gettext("Check at startup"));
1210             check_update_at_startup->tooltip(gettext("Check for updates at start"));
1211             check_update_at_startup->down_box(FL_DOWN_BOX);
1212             check_update_at_startup->callback((Fl_Callback*)cb_check_update_at_startup);
1213           } // Fl_Check_Button* check_update_at_startup
1214           o->end();
1215         } // Fl_Group* o
1216         o->end();
1217       } // Fl_Group* o
1218       { Fl_Group* o = new Fl_Group(0, 20, 400, 530, gettext("Audio"));
1219         o->hide();
1220         { Fl_Group* o = new Fl_Group(37, 55, 326, 165, gettext("Main Audio Settings"));
1221           o->box(FL_ENGRAVED_FRAME);
1222           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1223           { choice_cfg_dev = new Fl_Choice(45, 84, 310, 20, gettext("Audio Device"));
1224             choice_cfg_dev->tooltip(gettext("select your sound card device"));
1225             choice_cfg_dev->down_box(FL_FLAT_BOX);
1226             choice_cfg_dev->callback((Fl_Callback*)cb_choice_cfg_dev);
1227             choice_cfg_dev->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1228           } // Fl_Choice* choice_cfg_dev
1229           { choice_cfg_channel = new Fl_Choice(45, 124, 160, 21, gettext("Channel mode"));
1230             choice_cfg_channel->tooltip(gettext("Select input channel"));
1231             choice_cfg_channel->box(FL_ENGRAVED_BOX);
1232             choice_cfg_channel->down_box(FL_BORDER_BOX);
1233             choice_cfg_channel->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1234             if (!menu_choice_cfg_channel_i18n_done) {
1235               int i=0;
1236               for ( ; i<2; i++)
1237                 if (menu_choice_cfg_channel[i].label())
1238                   menu_choice_cfg_channel[i].label(gettext(menu_choice_cfg_channel[i].label()));
1239               menu_choice_cfg_channel_i18n_done = 1;
1240             }
1241             choice_cfg_channel->menu(menu_choice_cfg_channel);
1242           } // Fl_Choice* choice_cfg_channel
1243           { choice_cfg_samplerate = new Fl_Choice(240, 124, 115, 20, gettext("Samplerate"));
1244             choice_cfg_samplerate->tooltip(gettext("Select input sample rate"));
1245             choice_cfg_samplerate->down_box(FL_BORDER_BOX);
1246             choice_cfg_samplerate->callback((Fl_Callback*)cb_choice_cfg_samplerate);
1247             choice_cfg_samplerate->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1248           } // Fl_Choice* choice_cfg_samplerate
1249           { choice_cfg_left_channel = new Fl_Choice(45, 175, 70, 20, gettext("Left"));
1250             choice_cfg_left_channel->down_box(FL_BORDER_BOX);
1251             choice_cfg_left_channel->callback((Fl_Callback*)cb_choice_cfg_left_channel);
1252             choice_cfg_left_channel->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1253           } // Fl_Choice* choice_cfg_left_channel
1254           { choice_cfg_right_channel = new Fl_Choice(135, 175, 70, 20, gettext("Right"));
1255             choice_cfg_right_channel->down_box(FL_BORDER_BOX);
1256             choice_cfg_right_channel->callback((Fl_Callback*)cb_choice_cfg_right_channel);
1257             choice_cfg_right_channel->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1258           } // Fl_Choice* choice_cfg_right_channel
1259           o->end();
1260         } // Fl_Group* o
1261         { Fl_Group* o = new Fl_Group(37, 247, 326, 60, gettext("Streaming"));
1262           o->box(FL_ENGRAVED_FRAME);
1263           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1264           { choice_cfg_codec = new Fl_Choice(45, 274, 125, 20, gettext("Codec"));
1265             choice_cfg_codec->tooltip(gettext("Select streaming codec"));
1266             choice_cfg_codec->box(FL_ENGRAVED_BOX);
1267             choice_cfg_codec->down_box(FL_BORDER_BOX);
1268             choice_cfg_codec->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1269             if (!menu_choice_cfg_codec_i18n_done) {
1270               int i=0;
1271               for ( ; i<5; i++)
1272                 if (menu_choice_cfg_codec[i].label())
1273                   menu_choice_cfg_codec[i].label(gettext(menu_choice_cfg_codec[i].label()));
1274               menu_choice_cfg_codec_i18n_done = 1;
1275             }
1276             choice_cfg_codec->menu(menu_choice_cfg_codec);
1277           } // Fl_Choice* choice_cfg_codec
1278           { choice_cfg_bitrate = new Fl_Choice(240, 274, 115, 20, gettext("Bitrate"));
1279             choice_cfg_bitrate->tooltip(gettext("Select streaming bitrate"));
1280             choice_cfg_bitrate->box(FL_ENGRAVED_BOX);
1281             choice_cfg_bitrate->down_box(FL_BORDER_BOX);
1282             choice_cfg_bitrate->callback((Fl_Callback*)cb_choice_cfg_bitrate);
1283             choice_cfg_bitrate->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1284             if (!menu_choice_cfg_bitrate_i18n_done) {
1285               int i=0;
1286               for ( ; i<17; i++)
1287                 if (menu_choice_cfg_bitrate[i].label())
1288                   menu_choice_cfg_bitrate[i].label(gettext(menu_choice_cfg_bitrate[i].label()));
1289               menu_choice_cfg_bitrate_i18n_done = 1;
1290             }
1291             choice_cfg_bitrate->menu(menu_choice_cfg_bitrate);
1292           } // Fl_Choice* choice_cfg_bitrate
1293           { check_cfg_mono_to_stereo = new Fl_Check_Button(40, 291, 170, 15, gettext("Convert Mono to Stereo"));
1294             check_cfg_mono_to_stereo->tooltip(gettext("Copies a mono channel to both stereo channels"));
1295             check_cfg_mono_to_stereo->down_box(FL_DOWN_BOX);
1296             check_cfg_mono_to_stereo->callback((Fl_Callback*)cb_check_cfg_mono_to_stereo);
1297             check_cfg_mono_to_stereo->hide();
1298           } // Fl_Check_Button* check_cfg_mono_to_stereo
1299           o->end();
1300         } // Fl_Group* o
1301         { Fl_Group* o = new Fl_Group(37, 339, 326, 60, gettext("Recording"));
1302           o->box(FL_ENGRAVED_FRAME);
1303           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1304           { choice_rec_codec = new Fl_Choice(45, 366, 125, 20, gettext("Codec"));
1305             choice_rec_codec->tooltip(gettext("Select recording codec"));
1306             choice_rec_codec->box(FL_ENGRAVED_BOX);
1307             choice_rec_codec->down_box(FL_BORDER_BOX);
1308             choice_rec_codec->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1309             if (!menu_choice_rec_codec_i18n_done) {
1310               int i=0;
1311               for ( ; i<6; i++)
1312                 if (menu_choice_rec_codec[i].label())
1313                   menu_choice_rec_codec[i].label(gettext(menu_choice_rec_codec[i].label()));
1314               menu_choice_rec_codec_i18n_done = 1;
1315             }
1316             choice_rec_codec->menu(menu_choice_rec_codec);
1317           } // Fl_Choice* choice_rec_codec
1318           { choice_rec_bitrate = new Fl_Choice(240, 366, 115, 20, gettext("Bitrate"));
1319             choice_rec_bitrate->tooltip(gettext("Select recording bitrate"));
1320             choice_rec_bitrate->down_box(FL_BORDER_BOX);
1321             choice_rec_bitrate->callback((Fl_Callback*)cb_choice_rec_bitrate);
1322             choice_rec_bitrate->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1323             if (!menu_choice_rec_bitrate_i18n_done) {
1324               int i=0;
1325               for ( ; i<17; i++)
1326                 if (menu_choice_rec_bitrate[i].label())
1327                   menu_choice_rec_bitrate[i].label(gettext(menu_choice_rec_bitrate[i].label()));
1328               menu_choice_rec_bitrate_i18n_done = 1;
1329             }
1330             choice_rec_bitrate->menu(menu_choice_rec_bitrate);
1331           } // Fl_Choice* choice_rec_bitrate
1332           o->end();
1333         } // Fl_Group* o
1334         { button_advanced = new Fl_Button(37, 345, 89, 25, gettext("Advanced..."));
1335           button_advanced->box(FL_ENGRAVED_BOX);
1336           button_advanced->callback((Fl_Callback*)cb_button_advanced);
1337           button_advanced->hide();
1338           button_advanced->deactivate();
1339         } // Fl_Button* button_advanced
1340         { input_cfg_buffer = new Fl_Value_Input(37, 405, 75, 20, gettext("Buffer (ms)"));
1341           input_cfg_buffer->maximum(0);
1342           input_cfg_buffer->value(50);
1343           input_cfg_buffer->callback((Fl_Callback*)cb_input_cfg_buffer);
1344           input_cfg_buffer->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1345           input_cfg_buffer->when(FL_WHEN_ENTER_KEY);
1346           input_cfg_buffer->hide();
1347           input_cfg_buffer->deactivate();
1348         } // Fl_Value_Input* input_cfg_buffer
1349         { choice_cfg_resample_mode = new Fl_Choice(177, 405, 125, 20, gettext("Resample Quality"));
1350           choice_cfg_resample_mode->down_box(FL_BORDER_BOX);
1351           choice_cfg_resample_mode->callback((Fl_Callback*)cb_choice_cfg_resample_mode);
1352           choice_cfg_resample_mode->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1353           choice_cfg_resample_mode->hide();
1354           choice_cfg_resample_mode->deactivate();
1355           if (!menu_choice_cfg_resample_mode_i18n_done) {
1356             int i=0;
1357             for ( ; i<5; i++)
1358               if (menu_choice_cfg_resample_mode[i].label())
1359                 menu_choice_cfg_resample_mode[i].label(gettext(menu_choice_cfg_resample_mode[i].label()));
1360             menu_choice_cfg_resample_mode_i18n_done = 1;
1361           }
1362           choice_cfg_resample_mode->menu(menu_choice_cfg_resample_mode);
1363         } // Fl_Choice* choice_cfg_resample_mode
1364         { Fl_Group* o = new Fl_Group(37, 430, 326, 50, gettext("Signal detection levels"));
1365           o->box(FL_ENGRAVED_FRAME);
1366           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1367           { input_cfg_present_level = new Fl_Value_Input(45, 454, 70, 19, gettext("Signal present"));
1368             input_cfg_present_level->minimum(-90);
1369             input_cfg_present_level->maximum(0);
1370             input_cfg_present_level->value(-50);
1371             input_cfg_present_level->callback((Fl_Callback*)cb_input_cfg_present_level);
1372             input_cfg_present_level->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1373           } // Fl_Value_Input* input_cfg_present_level
1374           { input_cfg_absent_level = new Fl_Value_Input(240, 454, 65, 19, gettext("Signal absent"));
1375             input_cfg_absent_level->minimum(-90);
1376             input_cfg_absent_level->maximum(0);
1377             input_cfg_absent_level->value(-50);
1378             input_cfg_absent_level->callback((Fl_Callback*)cb_input_cfg_absent_level);
1379             input_cfg_absent_level->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1380           } // Fl_Value_Input* input_cfg_absent_level
1381           { Fl_Box* o = new Fl_Box(115, 456, 25, 17, gettext("dB"));
1382             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1383           } // Fl_Box* o
1384           { Fl_Box* o = new Fl_Box(305, 455, 25, 17, gettext("dB"));
1385             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1386           } // Fl_Box* o
1387           o->end();
1388         } // Fl_Group* o
1389         o->end();
1390       } // Fl_Group* o
1391       { Fl_Group* o = new Fl_Group(0, 20, 406, 530, gettext("Stream"));
1392         o->hide();
1393         { Fl_Group* o = new Fl_Group(37, 55, 326, 65, gettext("Update song name from file"));
1394           o->box(FL_ENGRAVED_FRAME);
1395           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1396           { input_cfg_song_file = new Fl_Input(42, 64, 283, 26);
1397             input_cfg_song_file->tooltip(gettext("Filename that holds the current song name"));
1398             input_cfg_song_file->callback((Fl_Callback*)cb_input_cfg_song_file);
1399             input_cfg_song_file->align(Fl_Align(FL_ALIGN_TOP_RIGHT));
1400             this->input_cfg_song_file->maximum_size(500);
1401           } // Fl_Input* input_cfg_song_file
1402           { button_songfile_browse = new Fl_Button(330, 65, 25, 25);
1403             button_songfile_browse->tooltip(gettext("Select file that holds the current song name"));
1404             button_songfile_browse->box(FL_ENGRAVED_FRAME);
1405             button_songfile_browse->image( image_folder() );
1406             button_songfile_browse->callback((Fl_Callback*)cb_button_songfile_browse);
1407           } // Fl_Button* button_songfile_browse
1408           { check_song_update_active = new Fl_Check_Button(40, 91, 77, 25, gettext("Activate"));
1409             check_song_update_active->tooltip(gettext("Activate auto update song name from file"));
1410             check_song_update_active->down_box(FL_DOWN_BOX);
1411             check_song_update_active->callback((Fl_Callback*)cb_check_song_update_active);
1412           } // Fl_Check_Button* check_song_update_active
1413           { check_read_last_line = new Fl_Check_Button(120, 91, 215, 25, gettext("Read last line instead of first"));
1414             check_read_last_line->tooltip(gettext("Activate auto update song name from file"));
1415             check_read_last_line->down_box(FL_DOWN_BOX);
1416             check_read_last_line->callback((Fl_Callback*)cb_check_read_last_line);
1417           } // Fl_Check_Button* check_read_last_line
1418           o->end();
1419         } // Fl_Group* o
1420         { Fl_Group* o = new Fl_Group(37, 236, 326, 40, gettext("Update song name manually"));
1421           o->box(FL_ENGRAVED_FRAME);
1422           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1423           { input_cfg_song = new Fl_Input(42, 244, 283, 25);
1424             input_cfg_song->tooltip(gettext("Current song name"));
1425             input_cfg_song->callback((Fl_Callback*)cb_input_cfg_song);
1426             input_cfg_song->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1427             input_cfg_song->when(FL_WHEN_CHANGED);
1428             this->input_cfg_song->maximum_size(500);
1429           } // Fl_Input* input_cfg_song
1430           { Fl_Button* o = new Fl_Button(330, 244, 25, 25, gettext("OK"));
1431             o->tooltip(gettext("Send current song name to the server"));
1432             o->box(FL_ENGRAVED_BOX);
1433             o->shortcut(0xff0d);
1434             o->labelsize(12);
1435             o->callback((Fl_Callback*)cb_OK);
1436           } // Fl_Button* o
1437           o->end();
1438         } // Fl_Group* o
1439         { Fl_Group* o = new Fl_Group(37, 144, 326, 65, gettext("Update song name from application"));
1440           o->box(FL_ENGRAVED_BOX);
1441           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1442           { check_cfg_use_app = new Fl_Check_Button(40, 174, 85, 33, gettext("Activate"));
1443             check_cfg_use_app->down_box(FL_DOWN_BOX);
1444             check_cfg_use_app->callback((Fl_Callback*)cb_check_cfg_use_app);
1445           } // Fl_Check_Button* check_cfg_use_app
1446           { choice_cfg_app = new Fl_Choice(42, 155, 203, 20);
1447             choice_cfg_app->tooltip(gettext("Changes the song through an running application"));
1448             choice_cfg_app->down_box(FL_BORDER_BOX);
1449             choice_cfg_app->callback((Fl_Callback*)cb_choice_cfg_app);
1450           } // Fl_Choice* choice_cfg_app
1451           o->end();
1452         } // Fl_Group* o
1453         { Fl_Group* o = new Fl_Group(37, 418, 328, 112, gettext("Streaming"));
1454           o->box(FL_ENGRAVED_FRAME);
1455           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1456           { check_cfg_connect = new Fl_Check_Button(42, 483, 205, 18, gettext("Start streaming after launch"));
1457             check_cfg_connect->tooltip(gettext("Connect automatically to a server after launch"));
1458             check_cfg_connect->down_box(FL_DOWN_BOX);
1459             check_cfg_connect->callback((Fl_Callback*)cb_check_cfg_connect);
1460           } // Fl_Check_Button* check_cfg_connect
1461           { input_cfg_silence = new Fl_Value_Input(238, 453, 42, 19);
1462             input_cfg_silence->callback((Fl_Callback*)cb_input_cfg_silence);
1463           } // Fl_Value_Input* input_cfg_silence
1464           { input_cfg_signal = new Fl_Value_Input(238, 429, 42, 19);
1465             input_cfg_signal->callback((Fl_Callback*)cb_input_cfg_signal);
1466           } // Fl_Value_Input* input_cfg_signal
1467           { Fl_Box* o = new Fl_Box(280, 429, 62, 16, gettext("seconds"));
1468             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1469           } // Fl_Box* o
1470           { Fl_Box* o = new Fl_Box(280, 453, 62, 16, gettext("seconds"));
1471             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1472           } // Fl_Box* o
1473           { Fl_Box* o = new Fl_Box(42, 429, 175, 16, gettext("Start if signal is present for"));
1474             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1475           } // Fl_Box* o
1476           { Fl_Box* o = new Fl_Box(42, 453, 175, 16, gettext("Stop if signal is absent for"));
1477             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1478           } // Fl_Box* o
1479           { check_cfg_force_reconnecting = new Fl_Check_Button(42, 505, 205, 18, gettext("Force reconnecting"));
1480             check_cfg_force_reconnecting->tooltip(gettext("If enabled butt keeps reconnecting regardless of the error message"));
1481             check_cfg_force_reconnecting->down_box(FL_DOWN_BOX);
1482             check_cfg_force_reconnecting->callback((Fl_Callback*)cb_check_cfg_force_reconnecting);
1483           } // Fl_Check_Button* check_cfg_force_reconnecting
1484           o->end();
1485         } // Fl_Group* o
1486         { Fl_Group* o = new Fl_Group(35, 302, 330, 90, gettext("Extend song name"));
1487           o->box(FL_ENGRAVED_FRAME);
1488           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1489           { input_cfg_song_prefix = new Fl_Input(88, 318, 255, 24, gettext("Prefix:"));
1490             input_cfg_song_prefix->callback((Fl_Callback*)cb_input_cfg_song_prefix);
1491             input_cfg_song_prefix->when(FL_WHEN_CHANGED);
1492             this->input_cfg_song_prefix->maximum_size(500);
1493           } // Fl_Input* input_cfg_song_prefix
1494           { input_cfg_song_suffix = new Fl_Input(88, 353, 255, 24, gettext("Suffix:"));
1495             input_cfg_song_suffix->callback((Fl_Callback*)cb_input_cfg_song_suffix);
1496             input_cfg_song_suffix->when(FL_WHEN_CHANGED);
1497             this->input_cfg_song_suffix->maximum_size(500);
1498           } // Fl_Input* input_cfg_song_suffix
1499           o->end();
1500         } // Fl_Group* o
1501         o->end();
1502       } // Fl_Group* o
1503       { Fl_Group* o = new Fl_Group(0, 20, 400, 530, gettext("Record"));
1504         o->hide();
1505         { input_rec_filename = new Fl_Input(37, 55, 326, 25, gettext("Record File Name:"));
1506           input_rec_filename->tooltip(gettext("Record file name"));
1507           input_rec_filename->callback((Fl_Callback*)cb_input_rec_filename);
1508           input_rec_filename->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1509           this->input_rec_filename->maximum_size(500);
1510         } // Fl_Input* input_rec_filename
1511         { input_rec_folder = new Fl_Input(37, 106, 298, 25, gettext("Record Directory:"));
1512           input_rec_folder->tooltip(gettext("Directory of recordings"));
1513           input_rec_folder->callback((Fl_Callback*)cb_input_rec_folder);
1514           input_rec_folder->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1515           this->input_rec_folder->maximum_size(500);
1516         } // Fl_Input* input_rec_folder
1517         { button_rec_browse = new Fl_Button(338, 106, 25, 25);
1518           button_rec_browse->tooltip(gettext("Select recording directory"));
1519           button_rec_browse->box(FL_ENGRAVED_BOX);
1520           button_rec_browse->image( image_folder() );
1521           button_rec_browse->callback((Fl_Callback*)cb_button_rec_browse);
1522         } // Fl_Button* button_rec_browse
1523         { Fl_Group* o = new Fl_Group(37, 164, 326, 57, gettext("Split file"));
1524           o->box(FL_ENGRAVED_FRAME);
1525           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1526           { input_rec_split_time = new Fl_Value_Input(84, 171, 40, 19, gettext("every"));
1527             input_rec_split_time->callback((Fl_Callback*)cb_input_rec_split_time);
1528           } // Fl_Value_Input* input_rec_split_time
1529           { text_rec_split_time = new Fl_Box(130, 171, 50, 16, gettext("minutes"));
1530           } // Fl_Box* text_rec_split_time
1531           { check_sync_to_full_hour = new Fl_Check_Button(42, 196, 124, 15, gettext("Sync to full hour"));
1532             check_sync_to_full_hour->tooltip(gettext("Sync to full hour"));
1533             check_sync_to_full_hour->down_box(FL_DOWN_BOX);
1534             check_sync_to_full_hour->callback((Fl_Callback*)cb_check_sync_to_full_hour);
1535           } // Fl_Check_Button* check_sync_to_full_hour
1536           { Fl_Button* o = new Fl_Button(275, 179, 80, 28, gettext("Split now"));
1537             o->box(FL_ENGRAVED_BOX);
1538             o->callback((Fl_Callback*)cb_Split);
1539           } // Fl_Button* o
1540           o->end();
1541         } // Fl_Group* o
1542         { Fl_Group* o = new Fl_Group(37, 250, 326, 138, gettext("Recording"));
1543           o->box(FL_ENGRAVED_FRAME);
1544           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1545           { check_cfg_auto_start_rec = new Fl_Check_Button(42, 260, 265, 20, gettext("Start recording when connected"));
1546             check_cfg_auto_start_rec->tooltip(gettext("Start recording when connected"));
1547             check_cfg_auto_start_rec->down_box(FL_DOWN_BOX);
1548             check_cfg_auto_start_rec->callback((Fl_Callback*)cb_check_cfg_auto_start_rec);
1549           } // Fl_Check_Button* check_cfg_auto_start_rec
1550           { check_cfg_rec_after_launch = new Fl_Check_Button(42, 309, 265, 20, gettext("Start recording after launch"));
1551             check_cfg_rec_after_launch->tooltip(gettext("Start recording after launch"));
1552             check_cfg_rec_after_launch->down_box(FL_DOWN_BOX);
1553             check_cfg_rec_after_launch->callback((Fl_Callback*)cb_check_cfg_rec_after_launch);
1554           } // Fl_Check_Button* check_cfg_rec_after_launch
1555           { input_rec_signal = new Fl_Value_Input(253, 332, 42, 19);
1556             input_rec_signal->callback((Fl_Callback*)cb_input_rec_signal);
1557           } // Fl_Value_Input* input_rec_signal
1558           { Fl_Box* o = new Fl_Box(295, 333, 64, 16, gettext("seconds"));
1559             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1560           } // Fl_Box* o
1561           { check_cfg_auto_stop_rec = new Fl_Check_Button(42, 284, 265, 20, gettext("Stop recording when disconnected"));
1562             check_cfg_auto_stop_rec->tooltip(gettext("Start recording when disconnected"));
1563             check_cfg_auto_stop_rec->down_box(FL_DOWN_BOX);
1564             check_cfg_auto_stop_rec->callback((Fl_Callback*)cb_check_cfg_auto_stop_rec);
1565           } // Fl_Check_Button* check_cfg_auto_stop_rec
1566           { input_rec_silence = new Fl_Value_Input(253, 356, 42, 19);
1567             input_rec_silence->callback((Fl_Callback*)cb_input_rec_silence);
1568           } // Fl_Value_Input* input_rec_silence
1569           { Fl_Box* o = new Fl_Box(295, 356, 62, 16, gettext("seconds"));
1570             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1571           } // Fl_Box* o
1572           { Fl_Box* o = new Fl_Box(57, 334, 175, 16, gettext("Start if signal is present for"));
1573             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1574           } // Fl_Box* o
1575           { Fl_Box* o = new Fl_Box(57, 357, 175, 16, gettext("Stop if signal is absent for"));
1576             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1577           } // Fl_Box* o
1578           o->end();
1579         } // Fl_Group* o
1580         o->end();
1581       } // Fl_Group* o
1582       { Fl_Group* o = new Fl_Group(0, 20, 400, 530, gettext("TLS"));
1583         o->hide();
1584         { Fl_Group* o = new Fl_Group(37, 55, 326, 184, gettext("SSL/TLS"));
1585           o->box(FL_ENGRAVED_FRAME);
1586           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1587           { input_tls_cert_file = new Fl_Input(45, 149, 275, 25, gettext("CA Certificate File:"));
1588             input_tls_cert_file->tooltip(gettext("Certificate file"));
1589             input_tls_cert_file->callback((Fl_Callback*)cb_input_tls_cert_file);
1590             input_tls_cert_file->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1591             this->input_tls_cert_file->maximum_size(500);
1592           } // Fl_Input* input_tls_cert_file
1593           { input_tls_cert_dir = new Fl_Input(45, 200, 275, 25, gettext("CA Certificate Directory:"));
1594             input_tls_cert_dir->tooltip(gettext("Certificate directory"));
1595             input_tls_cert_dir->callback((Fl_Callback*)cb_input_tls_cert_dir);
1596             input_tls_cert_dir->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1597             this->input_tls_cert_dir->maximum_size(500);
1598           } // Fl_Input* input_tls_cert_dir
1599           { button_tls_browse_dir = new Fl_Button(325, 200, 25, 25);
1600             button_tls_browse_dir->tooltip(gettext("Select certificate directory"));
1601             button_tls_browse_dir->box(FL_ENGRAVED_BOX);
1602             button_tls_browse_dir->image( image_folder() );
1603             button_tls_browse_dir->callback((Fl_Callback*)cb_button_tls_browse_dir);
1604           } // Fl_Button* button_tls_browse_dir
1605           { button_tls_browse_file = new Fl_Button(325, 149, 25, 25);
1606             button_tls_browse_file->tooltip(gettext("Select certificate file"));
1607             button_tls_browse_file->box(FL_ENGRAVED_BOX);
1608             button_tls_browse_file->image( image_folder() );
1609             button_tls_browse_file->callback((Fl_Callback*)cb_button_tls_browse_file);
1610           } // Fl_Button* button_tls_browse_file
1611           { Fl_Box* o = new Fl_Box(43, 67, 272, 60, gettext("If your server uses a certificate from\nLet\'s Encrypt or another well known\
1612 \nCA, you can leave these fields blank."));
1613             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1614           } // Fl_Box* o
1615           o->end();
1616         } // Fl_Group* o
1617         o->end();
1618       } // Fl_Group* o
1619       { Fl_Group* o = new Fl_Group(0, 20, 400, 530, gettext("DSP"));
1620         o->hide();
1621         { Fl_Group* o = new Fl_Group(36, 55, 327, 175, gettext("Equalizer"));
1622           o->box(FL_ENGRAVED_FRAME);
1623           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1624           { check_activate_eq = new Fl_Check_Button(40, 57, 79, 25, gettext("Activate"));
1625             check_activate_eq->down_box(FL_DOWN_BOX);
1626             check_activate_eq->callback((Fl_Callback*)cb_check_activate_eq);
1627           } // Fl_Check_Button* check_activate_eq
1628           { equalizerSlider1 = new Fl_My_Value_Slider(86, 97, 15, 115, gettext("100Hz"));
1629             equalizerSlider1->type(4);
1630             equalizerSlider1->box(FL_NO_BOX);
1631             equalizerSlider1->color(FL_BACKGROUND_COLOR);
1632             equalizerSlider1->selection_color(FL_BACKGROUND_COLOR);
1633             equalizerSlider1->labeltype(FL_NORMAL_LABEL);
1634             equalizerSlider1->labelfont(0);
1635             equalizerSlider1->labelsize(11);
1636             equalizerSlider1->labelcolor(FL_FOREGROUND_COLOR);
1637             equalizerSlider1->minimum(15);
1638             equalizerSlider1->maximum(-15);
1639             equalizerSlider1->step(0.1);
1640             equalizerSlider1->callback((Fl_Callback*)cb_equalizerSlider1);
1641             equalizerSlider1->align(Fl_Align(FL_ALIGN_BOTTOM));
1642             equalizerSlider1->when(FL_WHEN_CHANGED);
1643           } // Fl_My_Value_Slider* equalizerSlider1
1644           { equalizerSlider2 = new Fl_My_Value_Slider(136, 97, 15, 115, gettext("350Hz"));
1645             equalizerSlider2->type(4);
1646             equalizerSlider2->box(FL_NO_BOX);
1647             equalizerSlider2->color(FL_BACKGROUND_COLOR);
1648             equalizerSlider2->selection_color(FL_BACKGROUND_COLOR);
1649             equalizerSlider2->labeltype(FL_NORMAL_LABEL);
1650             equalizerSlider2->labelfont(0);
1651             equalizerSlider2->labelsize(11);
1652             equalizerSlider2->labelcolor(FL_FOREGROUND_COLOR);
1653             equalizerSlider2->minimum(15);
1654             equalizerSlider2->maximum(-15);
1655             equalizerSlider2->step(0.1);
1656             equalizerSlider2->callback((Fl_Callback*)cb_equalizerSlider2);
1657             equalizerSlider2->align(Fl_Align(FL_ALIGN_BOTTOM));
1658             equalizerSlider2->when(FL_WHEN_CHANGED);
1659           } // Fl_My_Value_Slider* equalizerSlider2
1660           { equalizerSlider3 = new Fl_My_Value_Slider(186, 97, 15, 115, gettext("1kHz"));
1661             equalizerSlider3->type(4);
1662             equalizerSlider3->box(FL_NO_BOX);
1663             equalizerSlider3->color(FL_BACKGROUND_COLOR);
1664             equalizerSlider3->selection_color(FL_BACKGROUND_COLOR);
1665             equalizerSlider3->labeltype(FL_NORMAL_LABEL);
1666             equalizerSlider3->labelfont(0);
1667             equalizerSlider3->labelsize(11);
1668             equalizerSlider3->labelcolor(FL_FOREGROUND_COLOR);
1669             equalizerSlider3->minimum(15);
1670             equalizerSlider3->maximum(-15);
1671             equalizerSlider3->step(0.1);
1672             equalizerSlider3->callback((Fl_Callback*)cb_equalizerSlider3);
1673             equalizerSlider3->align(Fl_Align(FL_ALIGN_BOTTOM));
1674             equalizerSlider3->when(FL_WHEN_CHANGED);
1675           } // Fl_My_Value_Slider* equalizerSlider3
1676           { equalizerSlider4 = new Fl_My_Value_Slider(236, 97, 15, 115, gettext("3.5kHz"));
1677             equalizerSlider4->type(4);
1678             equalizerSlider4->box(FL_NO_BOX);
1679             equalizerSlider4->color(FL_BACKGROUND_COLOR);
1680             equalizerSlider4->selection_color(FL_BACKGROUND_COLOR);
1681             equalizerSlider4->labeltype(FL_NORMAL_LABEL);
1682             equalizerSlider4->labelfont(0);
1683             equalizerSlider4->labelsize(11);
1684             equalizerSlider4->labelcolor(FL_FOREGROUND_COLOR);
1685             equalizerSlider4->minimum(15);
1686             equalizerSlider4->maximum(-15);
1687             equalizerSlider4->step(0.1);
1688             equalizerSlider4->callback((Fl_Callback*)cb_equalizerSlider4);
1689             equalizerSlider4->align(Fl_Align(FL_ALIGN_BOTTOM));
1690             equalizerSlider4->when(FL_WHEN_CHANGED);
1691           } // Fl_My_Value_Slider* equalizerSlider4
1692           { equalizerSlider5 = new Fl_My_Value_Slider(286, 97, 15, 115, gettext("10kHz"));
1693             equalizerSlider5->type(4);
1694             equalizerSlider5->box(FL_NO_BOX);
1695             equalizerSlider5->color(FL_BACKGROUND_COLOR);
1696             equalizerSlider5->selection_color(FL_BACKGROUND_COLOR);
1697             equalizerSlider5->labeltype(FL_NORMAL_LABEL);
1698             equalizerSlider5->labelfont(0);
1699             equalizerSlider5->labelsize(11);
1700             equalizerSlider5->labelcolor(FL_FOREGROUND_COLOR);
1701             equalizerSlider5->minimum(15);
1702             equalizerSlider5->maximum(-15);
1703             equalizerSlider5->step(0.1);
1704             equalizerSlider5->callback((Fl_Callback*)cb_equalizerSlider5);
1705             equalizerSlider5->align(Fl_Align(FL_ALIGN_BOTTOM));
1706             equalizerSlider5->when(FL_WHEN_CHANGED);
1707           } // Fl_My_Value_Slider* equalizerSlider5
1708           { equalizerGain1 = new Fl_Text_Display(72, 97, 35, 10, gettext("+0.0"));
1709             equalizerGain1->box(FL_NO_BOX);
1710             equalizerGain1->labelsize(11);
1711           } // Fl_Text_Display* equalizerGain1
1712           { equalizerGain2 = new Fl_Text_Display(122, 97, 35, 10, gettext("+0.0"));
1713             equalizerGain2->box(FL_NO_BOX);
1714             equalizerGain2->labelsize(11);
1715           } // Fl_Text_Display* equalizerGain2
1716           { equalizerGain3 = new Fl_Text_Display(172, 97, 35, 10, gettext("+0.0"));
1717             equalizerGain3->box(FL_NO_BOX);
1718             equalizerGain3->labelsize(11);
1719           } // Fl_Text_Display* equalizerGain3
1720           { equalizerGain4 = new Fl_Text_Display(222, 97, 35, 10, gettext("+0.0"));
1721             equalizerGain4->box(FL_NO_BOX);
1722             equalizerGain4->labelsize(11);
1723           } // Fl_Text_Display* equalizerGain4
1724           { equalizerGain5 = new Fl_Text_Display(272, 97, 35, 10, gettext("+0.0"));
1725             equalizerGain5->box(FL_NO_BOX);
1726             equalizerGain5->labelsize(11);
1727           } // Fl_Text_Display* equalizerGain5
1728           { Fl_Button* o = new Fl_Button(310, 61, 45, 19, gettext("Reset"));
1729             o->labelsize(12);
1730             o->callback((Fl_Callback*)cb_Reset);
1731           } // Fl_Button* o
1732           o->end();
1733         } // Fl_Group* o
1734         { Fl_Group* o = new Fl_Group(36, 255, 327, 175, gettext("Dynamic Range Compressor"));
1735           o->box(FL_ENGRAVED_FRAME);
1736           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1737           { check_activate_drc = new Fl_Check_Button(40, 257, 79, 25, gettext("Activate"));
1738             check_activate_drc->down_box(FL_DOWN_BOX);
1739             check_activate_drc->callback((Fl_Callback*)cb_check_activate_drc);
1740           } // Fl_Check_Button* check_activate_drc
1741           { thresholdSlider = new Fl_My_Value_Slider(86, 297, 15, 115, gettext("Threshold"));
1742             thresholdSlider->type(4);
1743             thresholdSlider->box(FL_NO_BOX);
1744             thresholdSlider->color(FL_BACKGROUND_COLOR);
1745             thresholdSlider->selection_color(FL_BACKGROUND_COLOR);
1746             thresholdSlider->labeltype(FL_NORMAL_LABEL);
1747             thresholdSlider->labelfont(0);
1748             thresholdSlider->labelsize(11);
1749             thresholdSlider->labelcolor(FL_FOREGROUND_COLOR);
1750             thresholdSlider->maximum(-60);
1751             thresholdSlider->step(0.1);
1752             thresholdSlider->callback((Fl_Callback*)cb_thresholdSlider);
1753             thresholdSlider->align(Fl_Align(FL_ALIGN_BOTTOM));
1754             thresholdSlider->when(FL_WHEN_CHANGED);
1755           } // Fl_My_Value_Slider* thresholdSlider
1756           { ratioSlider = new Fl_My_Value_Slider(136, 297, 15, 115, gettext("Ratio"));
1757             ratioSlider->type(4);
1758             ratioSlider->box(FL_NO_BOX);
1759             ratioSlider->color(FL_BACKGROUND_COLOR);
1760             ratioSlider->selection_color(FL_BACKGROUND_COLOR);
1761             ratioSlider->labeltype(FL_NORMAL_LABEL);
1762             ratioSlider->labelfont(0);
1763             ratioSlider->labelsize(11);
1764             ratioSlider->labelcolor(FL_FOREGROUND_COLOR);
1765             ratioSlider->minimum(10);
1766             ratioSlider->step(0.1);
1767             ratioSlider->value(5);
1768             ratioSlider->callback((Fl_Callback*)cb_ratioSlider);
1769             ratioSlider->align(Fl_Align(FL_ALIGN_BOTTOM));
1770             ratioSlider->when(FL_WHEN_CHANGED);
1771           } // Fl_My_Value_Slider* ratioSlider
1772           { attackSlider = new Fl_My_Value_Slider(186, 297, 15, 115, gettext("Attack"));
1773             attackSlider->type(4);
1774             attackSlider->box(FL_NO_BOX);
1775             attackSlider->color(FL_BACKGROUND_COLOR);
1776             attackSlider->selection_color(FL_BACKGROUND_COLOR);
1777             attackSlider->labeltype(FL_NORMAL_LABEL);
1778             attackSlider->labelfont(0);
1779             attackSlider->labelsize(11);
1780             attackSlider->labelcolor(FL_FOREGROUND_COLOR);
1781             attackSlider->minimum(1);
1782             attackSlider->maximum(0);
1783             attackSlider->step(0.001);
1784             attackSlider->value(0.01);
1785             attackSlider->callback((Fl_Callback*)cb_attackSlider);
1786             attackSlider->align(Fl_Align(FL_ALIGN_BOTTOM));
1787             attackSlider->when(FL_WHEN_CHANGED);
1788           } // Fl_My_Value_Slider* attackSlider
1789           { releaseSlider = new Fl_My_Value_Slider(236, 297, 15, 115, gettext("Release"));
1790             releaseSlider->type(4);
1791             releaseSlider->box(FL_NO_BOX);
1792             releaseSlider->color(FL_BACKGROUND_COLOR);
1793             releaseSlider->selection_color(FL_BACKGROUND_COLOR);
1794             releaseSlider->labeltype(FL_NORMAL_LABEL);
1795             releaseSlider->labelfont(0);
1796             releaseSlider->labelsize(11);
1797             releaseSlider->labelcolor(FL_FOREGROUND_COLOR);
1798             releaseSlider->minimum(10);
1799             releaseSlider->maximum(0);
1800             releaseSlider->step(0.01);
1801             releaseSlider->value(1);
1802             releaseSlider->callback((Fl_Callback*)cb_releaseSlider);
1803             releaseSlider->align(Fl_Align(FL_ALIGN_BOTTOM));
1804             releaseSlider->when(FL_WHEN_CHANGED);
1805           } // Fl_My_Value_Slider* releaseSlider
1806           { threshold = new Fl_Text_Display(72, 297, 35, 10, gettext("+0.0"));
1807             threshold->box(FL_NO_BOX);
1808             threshold->labelsize(11);
1809           } // Fl_Text_Display* threshold
1810           { ratio = new Fl_Text_Display(122, 297, 35, 10, gettext("+0.0"));
1811             ratio->box(FL_NO_BOX);
1812             ratio->labelsize(11);
1813           } // Fl_Text_Display* ratio
1814           { attack = new Fl_Text_Display(172, 297, 35, 10, gettext("+0.0"));
1815             attack->box(FL_NO_BOX);
1816             attack->labelsize(11);
1817           } // Fl_Text_Display* attack
1818           { release = new Fl_Text_Display(222, 297, 35, 10, gettext("+0.0"));
1819             release->box(FL_NO_BOX);
1820             release->labelsize(11);
1821           } // Fl_Text_Display* release
1822           { Fl_Button* o = new Fl_Button(310, 261, 45, 19, gettext("Reset"));
1823             o->labelsize(12);
1824             o->callback((Fl_Callback*)cb_Reset1);
1825           } // Fl_Button* o
1826           { makeupSlider = new Fl_My_Value_Slider(286, 297, 15, 104, gettext("Makeup\nGain"));
1827             makeupSlider->type(4);
1828             makeupSlider->box(FL_NO_BOX);
1829             makeupSlider->color(FL_BACKGROUND_COLOR);
1830             makeupSlider->selection_color(FL_BACKGROUND_COLOR);
1831             makeupSlider->labeltype(FL_NORMAL_LABEL);
1832             makeupSlider->labelfont(0);
1833             makeupSlider->labelsize(11);
1834             makeupSlider->labelcolor(FL_FOREGROUND_COLOR);
1835             makeupSlider->minimum(30);
1836             makeupSlider->maximum(0);
1837             makeupSlider->step(0.01);
1838             makeupSlider->value(1);
1839             makeupSlider->callback((Fl_Callback*)cb_makeupSlider);
1840             makeupSlider->align(Fl_Align(FL_ALIGN_BOTTOM));
1841             makeupSlider->when(FL_WHEN_CHANGED);
1842           } // Fl_My_Value_Slider* makeupSlider
1843           { makeup = new Fl_Text_Display(272, 297, 35, 10, gettext("+0.0"));
1844             makeup->box(FL_NO_BOX);
1845             makeup->labelsize(11);
1846           } // Fl_Text_Display* makeup
1847           o->end();
1848         } // Fl_Group* o
1849         o->end();
1850       } // Fl_Group* o
1851       { Fl_Group* o = new Fl_Group(0, 20, 400, 530, gettext("GUI"));
1852         o->hide();
1853         { Fl_Group* o = new Fl_Group(37, 133, 326, 80, gettext("Display Color"));
1854           o->box(FL_ENGRAVED_FRAME);
1855           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1856           { button_gui_text_color = new Fl_Button(50, 143, 25, 25, gettext("Select text color"));
1857             button_gui_text_color->tooltip(gettext("Select text color"));
1858             button_gui_text_color->box(FL_SHADOW_BOX);
1859             button_gui_text_color->color(FL_BACKGROUND2_COLOR);
1860             button_gui_text_color->callback((Fl_Callback*)cb_button_gui_text_color);
1861             button_gui_text_color->align(Fl_Align(FL_ALIGN_RIGHT));
1862           } // Fl_Button* button_gui_text_color
1863           { button_gui_bg_color = new Fl_Button(50, 178, 25, 25, gettext("Select background color"));
1864             button_gui_bg_color->tooltip(gettext("Select background color"));
1865             button_gui_bg_color->box(FL_SHADOW_BOX);
1866             button_gui_bg_color->color(FL_SELECTION_COLOR);
1867             button_gui_bg_color->callback((Fl_Callback*)cb_button_gui_bg_color);
1868             button_gui_bg_color->align(Fl_Align(FL_ALIGN_RIGHT));
1869           } // Fl_Button* button_gui_bg_color
1870           o->end();
1871         } // Fl_Group* o
1872         { Fl_Group* o = new Fl_Group(37, 240, 326, 140, gettext("Misc"));
1873           o->box(FL_ENGRAVED_FRAME);
1874           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1875           { check_gui_attach = new Fl_Check_Button(48, 250, 300, 20, gettext("Attach settings window to main window"));
1876             check_gui_attach->tooltip(gettext("Attach this window to the butt window"));
1877             check_gui_attach->down_box(FL_DOWN_BOX);
1878             check_gui_attach->callback((Fl_Callback*)cb_check_gui_attach);
1879           } // Fl_Check_Button* check_gui_attach
1880           { check_gui_ontop = new Fl_Check_Button(48, 275, 175, 20, gettext("Stay always on top"));
1881             check_gui_ontop->tooltip(gettext("Stay always on top"));
1882             check_gui_ontop->down_box(FL_DOWN_BOX);
1883             check_gui_ontop->callback((Fl_Callback*)cb_check_gui_ontop);
1884           } // Fl_Check_Button* check_gui_ontop
1885           { check_gui_lcd_auto = new Fl_Check_Button(48, 350, 295, 20, gettext("Change display mode every 5 seconds"));
1886             check_gui_lcd_auto->tooltip(gettext("Change display mode every 5 seconds"));
1887             check_gui_lcd_auto->down_box(FL_DOWN_BOX);
1888             check_gui_lcd_auto->callback((Fl_Callback*)cb_check_gui_lcd_auto);
1889           } // Fl_Check_Button* check_gui_lcd_auto
1890           { check_gui_hide_log_window = new Fl_Check_Button(48, 325, 220, 20, gettext("Hide log window after start up"));
1891             check_gui_hide_log_window->tooltip(gettext("Stay always on top"));
1892             check_gui_hide_log_window->down_box(FL_DOWN_BOX);
1893             check_gui_hide_log_window->callback((Fl_Callback*)cb_check_gui_hide_log_window);
1894           } // Fl_Check_Button* check_gui_hide_log_window
1895           { check_gui_remember_pos = new Fl_Check_Button(48, 300, 260, 20, gettext("Remember main window position"));
1896             check_gui_remember_pos->tooltip(gettext("Stay always on top"));
1897             check_gui_remember_pos->down_box(FL_DOWN_BOX);
1898             check_gui_remember_pos->callback((Fl_Callback*)cb_check_gui_remember_pos);
1899           } // Fl_Check_Button* check_gui_remember_pos
1900           o->end();
1901         } // Fl_Group* o
1902         { Fl_Group* o = new Fl_Group(37, 50, 326, 60, gettext("Language"));
1903           o->box(FL_ENGRAVED_FRAME);
1904           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1905           { choice_gui_language = new Fl_Choice(50, 70, 300, 20);
1906             choice_gui_language->down_box(FL_BORDER_BOX);
1907             choice_gui_language->callback((Fl_Callback*)cb_choice_gui_language);
1908             if (!menu_choice_gui_language_i18n_done) {
1909               int i=0;
1910               for ( ; i<3; i++)
1911                 if (menu_choice_gui_language[i].label())
1912                   menu_choice_gui_language[i].label(gettext(menu_choice_gui_language[i].label()));
1913               menu_choice_gui_language_i18n_done = 1;
1914             }
1915             choice_gui_language->menu(menu_choice_gui_language);
1916           } // Fl_Choice* choice_gui_language
1917           o->end();
1918         } // Fl_Group* o
1919         o->end();
1920       } // Fl_Group* o
1921       { Fl_Group* o = new Fl_Group(0, 20, 400, 530, gettext("Donate"));
1922         o->hide();
1923         { Fl_Group* o = new Fl_Group(37, 70, 326, 280, gettext("Donation"));
1924           o->box(FL_ENGRAVED_FRAME);
1925           o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1926           { Fl_Box* o = new Fl_Box(47, 75, 308, 150, gettext("Keeping this software up to date, adding\nnew features and answering support \
1927 mails\ntakes a lot of time and effort. If you can\nafford it, please consider \
1928 supporting this\nproject.\n\nThank you!"));
1929             o->align(Fl_Align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE));
1930           } // Fl_Box* o
1931           { Fl_Button* o = new Fl_Button(130, 240, 140, 28, gettext("&Donate via PayPal"));
1932             o->box(FL_ENGRAVED_BOX);
1933             o->callback((Fl_Callback*)cb_Donate);
1934           } // Fl_Button* o
1935           { Fl_Button* o = new Fl_Button(130, 287, 140, 28, gettext("Become a &patron"));
1936             o->box(FL_ENGRAVED_BOX);
1937             o->callback((Fl_Callback*)cb_Become);
1938           } // Fl_Button* o
1939           o->end();
1940         } // Fl_Group* o
1941         o->end();
1942       } // Fl_Group* o
1943       Settings->end();
1944     } // Fl_Tabs* Settings
1945     window_cfg->size_range(400, 550, 400, 550);
1946     window_cfg->end();
1947   } // Fl_My_Double_Window* window_cfg
1948   { window_add_srv = new Fl_Double_Window(330, 380, gettext("Add server"));
1949     window_add_srv->user_data((void*)(this));
1950     { input_add_srv_name = new Fl_Input(80, 30, 170, 25, gettext("Name:"));
1951       input_add_srv_name->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1952       this->input_add_srv_name->maximum_size(100);
1953     } // Fl_Input* input_add_srv_name
1954     { input_add_srv_addr = new Fl_Input(10, 206, 235, 25, gettext("Address:"));
1955       input_add_srv_addr->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1956       this->input_add_srv_addr->maximum_size(100);
1957     } // Fl_Input* input_add_srv_addr
1958     { input_add_srv_port = new Fl_Int_Input(250, 206, 70, 25, gettext("Port:"));
1959       input_add_srv_port->type(2);
1960       input_add_srv_port->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1961     } // Fl_Int_Input* input_add_srv_port
1962     { input_add_srv_pwd = new Fl_Input(10, 251, 235, 25, gettext("Password:"));
1963       input_add_srv_pwd->type(5);
1964       input_add_srv_pwd->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1965       this->input_add_srv_pwd->maximum_size(100);
1966     } // Fl_Input* input_add_srv_pwd
1967     { input_add_srv_mount = new Fl_Input(10, 301, 165, 25, gettext("IceCast mountpoint:"));
1968       input_add_srv_mount->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1969       this->input_add_srv_mount->maximum_size(100);
1970     } // Fl_Input* input_add_srv_mount
1971     { input_add_srv_usr = new Fl_Input(180, 301, 140, 25, gettext("IceCast user:"));
1972       input_add_srv_usr->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1973       this->input_add_srv_usr->maximum_size(100);
1974     } // Fl_Input* input_add_srv_usr
1975     { Fl_Group* o = new Fl_Group(10, 120, 105, 62, gettext("Type"));
1976       o->box(FL_ENGRAVED_BOX);
1977       o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
1978       { radio_add_srv_shoutcast = new Fl_Round_Button(15, 130, 88, 15, gettext("ShoutCast"));
1979         radio_add_srv_shoutcast->type(102);
1980         radio_add_srv_shoutcast->down_box(FL_ROUND_DOWN_BOX);
1981         radio_add_srv_shoutcast->callback((Fl_Callback*)cb_radio_add_srv_shoutcast);
1982       } // Fl_Round_Button* radio_add_srv_shoutcast
1983       { radio_add_srv_icecast = new Fl_Round_Button(15, 159, 80, 12, gettext("IceCast"));
1984         radio_add_srv_icecast->type(102);
1985         radio_add_srv_icecast->down_box(FL_ROUND_DOWN_BOX);
1986         radio_add_srv_icecast->callback((Fl_Callback*)cb_radio_add_srv_icecast);
1987       } // Fl_Round_Button* radio_add_srv_icecast
1988       o->end();
1989     } // Fl_Group* o
1990     { Fl_Button* o = new Fl_Button(10, 340, 74, 25, gettext("&Cancel"));
1991       o->box(FL_ENGRAVED_BOX);
1992       o->callback((Fl_Callback*)cb_Cancel);
1993     } // Fl_Button* o
1994     { button_add_srv_add = new Fl_Button(224, 340, 74, 25, gettext("&ADD"));
1995       button_add_srv_add->box(FL_ENGRAVED_BOX);
1996       button_add_srv_add->callback((Fl_Callback*)cb_button_add_srv_add);
1997     } // Fl_Button* button_add_srv_add
1998     { button_add_srv_save = new Fl_Button(224, 340, 74, 25, gettext("&Save"));
1999       button_add_srv_save->box(FL_ENGRAVED_BOX);
2000       button_add_srv_save->callback((Fl_Callback*)cb_button_add_srv_save);
2001     } // Fl_Button* button_add_srv_save
2002     { button_cfg_show_pw = new Fl_Button(250, 251, 70, 25, gettext("Show"));
2003       button_cfg_show_pw->tooltip(gettext("show/hide password"));
2004       button_cfg_show_pw->box(FL_ENGRAVED_BOX);
2005       button_cfg_show_pw->callback((Fl_Callback*)cb_button_cfg_show_pw);
2006     } // Fl_Button* button_cfg_show_pw
2007     { frame_add_srv_tls = new Fl_Group(125, 120, 195, 62, gettext("SSL/TLS"));
2008       frame_add_srv_tls->box(FL_ENGRAVED_BOX);
2009       frame_add_srv_tls->align(Fl_Align(FL_ALIGN_TOP_LEFT));
2010       { check_add_srv_tls = new Fl_Check_Button(129, 130, 115, 15, gettext("Use SSL/TLS"));
2011         check_add_srv_tls->down_box(FL_DOWN_BOX);
2012       } // Fl_Check_Button* check_add_srv_tls
2013       { button_add_srv_revoke_cert = new Fl_Button(130, 149, 185, 25, gettext("Revoke certificate trust"));
2014         button_add_srv_revoke_cert->box(FL_ENGRAVED_BOX);
2015         button_add_srv_revoke_cert->callback((Fl_Callback*)cb_button_add_srv_revoke_cert);
2016       } // Fl_Button* button_add_srv_revoke_cert
2017       frame_add_srv_tls->end();
2018     } // Fl_Group* frame_add_srv_tls
2019     window_add_srv->set_modal();
2020     window_add_srv->end();
2021   } // Fl_Double_Window* window_add_srv
2022   { window_add_icy = new Fl_Double_Window(305, 380, gettext("Add stream info"));
2023     window_add_icy->user_data((void*)(this));
2024     { input_add_icy_name = new Fl_Input(65, 35, 170, 25, gettext("Name:"));
2025       input_add_icy_name->tooltip(gettext("The name of your new ICY-entrie"));
2026       input_add_icy_name->align(Fl_Align(FL_ALIGN_TOP_LEFT));
2027       this->input_add_icy_name->maximum_size(100);
2028     } // Fl_Input* input_add_icy_name
2029     { input_add_icy_desc = new Fl_Input(10, 145, 170, 25, gettext("Description:"));
2030       input_add_icy_desc->align(Fl_Align(FL_ALIGN_TOP_LEFT));
2031       this->input_add_icy_desc->maximum_size(100);
2032     } // Fl_Input* input_add_icy_desc
2033     { input_add_icy_genre = new Fl_Input(185, 145, 110, 25, gettext("Genre:"));
2034       input_add_icy_genre->align(Fl_Align(FL_ALIGN_TOP_LEFT));
2035       this->input_add_icy_genre->maximum_size(100);
2036     } // Fl_Input* input_add_icy_genre
2037     { input_add_icy_url = new Fl_Input(10, 190, 170, 25, gettext("URL:"));
2038       input_add_icy_url->align(Fl_Align(FL_ALIGN_TOP_LEFT));
2039       this->input_add_icy_url->maximum_size(100);
2040     } // Fl_Input* input_add_icy_url
2041     { input_add_icy_icq = new Fl_Input(185, 190, 110, 25, gettext("ICQ:"));
2042       input_add_icy_icq->align(Fl_Align(FL_ALIGN_TOP_LEFT));
2043       this->input_add_icy_icq->maximum_size(100);
2044     } // Fl_Input* input_add_icy_icq
2045     { input_add_icy_irc = new Fl_Input(10, 235, 170, 25, gettext("IRC:"));
2046       input_add_icy_irc->align(Fl_Align(FL_ALIGN_TOP_LEFT));
2047       this->input_add_icy_irc->maximum_size(100);
2048     } // Fl_Input* input_add_icy_irc
2049     { input_add_icy_aim = new Fl_Input(185, 235, 110, 25, gettext("AIM:"));
2050       input_add_icy_aim->align(Fl_Align(FL_ALIGN_TOP_LEFT));
2051       this->input_add_icy_aim->maximum_size(100);
2052     } // Fl_Input* input_add_icy_aim
2053     { check_add_icy_pub = new Fl_Check_Button(10, 270, 166, 20, gettext("Make server public"));
2054       check_add_icy_pub->down_box(FL_DOWN_BOX);
2055     } // Fl_Check_Button* check_add_icy_pub
2056     { Fl_Button* o = new Fl_Button(10, 340, 74, 25, gettext("&Cancel"));
2057       o->box(FL_ENGRAVED_BOX);
2058       o->callback((Fl_Callback*)cb_Cancel1);
2059     } // Fl_Button* o
2060     { button_add_icy_add = new Fl_Button(224, 340, 74, 25, gettext("&ADD"));
2061       button_add_icy_add->box(FL_ENGRAVED_BOX);
2062       button_add_icy_add->callback((Fl_Callback*)cb_button_add_icy_add);
2063     } // Fl_Button* button_add_icy_add
2064     { button_add_icy_save = new Fl_Button(224, 340, 74, 25, gettext("&Save"));
2065       button_add_icy_save->box(FL_ENGRAVED_BOX);
2066       button_add_icy_save->callback((Fl_Callback*)cb_button_add_icy_save);
2067     } // Fl_Button* button_add_icy_save
2068     window_add_icy->set_modal();
2069     window_add_icy->end();
2070   } // Fl_Double_Window* window_add_icy
2071   Fl::scheme("standard");
2072   window_main->label(PACKAGE_STRING);
2073 
2074   info_buffer = new Fl_Text_Buffer();
2075   info_output->buffer(info_buffer);
2076 
2077   //window_cfg->size(window_cfg->w(), 380);
2078 
2079   // show info output...
2080   info_visible = 1;
2081 
2082   info_output->show();
2083 }
2084 
~flgui()2085 flgui::~flgui() {
2086   return;
2087 }
2088