1 #ifndef SND_X1_H
2 #define SND_X1_H
3 
4 
5 /* -------- snd-xhelp.c -------- */
6 
7 Widget snd_help(const char *subject, const char *help, with_word_wrap_t with_wrap);
8 Widget snd_help_with_xrefs(const char *subject, const char *helpstr, with_word_wrap_t with_wrap, const char **xrefs, const char **urls);
9 int help_text_width(const char *txt, int start, int end);
10 void snd_help_append(const char *text);
11 void snd_help_back_to_top(void);
12 
13 
14 
15 /* -------- snd-xdraw.c -------- */
16 
17 void draw_line(graphics_context *ax, int x0, int y0, int x1, int y1);
18 void draw_lines(graphics_context *ax, point_t *points, int num);
19 void draw_points(graphics_context *ax, point_t *points, int num, int size);
20 void fill_rectangle(graphics_context *ax, int x0, int y0, int width, int height);
21 void erase_rectangle(chan_info *cp, graphics_context *ax, int x0, int y0, int width, int height);
22 void fill_polygon(graphics_context *ax, int points, ...);
23 void fill_polygons(graphics_context *ax, point_t *points, int num, int y0);
24 void fill_two_sided_polygons(graphics_context *ax, point_t *points, point_t *points1, int num);
25 void draw_string(graphics_context *ax, int x0, int y0, const char *str, int len);
26 void gtk_style_draw_string(graphics_context *ax, int x0, int y0, const char *str, int len);
27 void draw_dot(graphics_context *ax, int x, int y, int size);
28 void setup_graphics_context(chan_info *cp, graphics_context *ax);
29 void draw_colored_lines(chan_info *cp, graphics_context *ax, point_t *points, int num, int *colors, int axis_y0, color_t default_color);
30 void draw_spectro_line(graphics_context *ax, int color, int x0, int y0, int x1, int y1);
31 void allocate_color_map(int colormap);
32 void check_colormap_sizes(int size);
33 void reflect_color_list(bool setup_time);
34 void allocate_sono_rects(int size);
35 void set_sono_rectangle(int j, int color, int x, int y, int width, int height);
36 void draw_sono_rectangles(graphics_context *ax, int color, int jmax);
37 void set_color_scale(mus_float_t val);
38 void set_color_inverted(bool val);
39 void set_color_cutoff(mus_float_t val);
40 void set_color_map(int val);
41 void set_spectro_hop(int val);
42 void set_spectro_x_angle(mus_float_t val);
43 void set_spectro_y_angle(mus_float_t val);
44 void set_spectro_z_angle(mus_float_t val);
45 void set_spectro_x_scale(mus_float_t val);
46 void set_spectro_y_scale(mus_float_t val);
47 void set_spectro_z_scale(mus_float_t val);
48 bool color_orientation_dialog_is_active(void);
49 Widget make_color_orientation_dialog(bool managed);
50 void reflect_spectro(void);
51 void set_with_gl(bool val, bool with_dialogs);
52 
53 
54 
55 /* -------- snd-xlistener.c -------- */
56 
57 void add_completer_to_builtin_textfield(Widget w, int completer);
58 void textfield_focus_callback(Widget w, XtPointer context, XtPointer info);
59 void textfield_unfocus_callback(Widget w, XtPointer context, XtPointer info);
60 void mouse_enter_text_callback(Widget w, XtPointer context, XEvent *event, Boolean *flag);
61 void mouse_leave_text_callback(Widget w, XtPointer context, XEvent *event, Boolean *flag);
62 void listener_delete_text(int new_end);
63 void listener_append_and_prompt(const char *msg);
64 int save_listener_text(FILE *fp);
65 void append_listener_text(int end, const char *msg);
66 void goto_listener(void);
67 void color_listener(Pixel pix);
68 void color_listener_text(Pixel pix);
69 void listener_append(const char *msg);
70 void handle_listener(bool new_state);
71 bool listener_exists(void);
72 int listener_height(void);
73 int listener_width(void);
74 Widget make_togglebutton_widget(const char *name, Widget parent, Arg *args, int n);
75 Widget make_pushbutton_widget(const char *name, Widget parent, Arg *args, int n);
76 Widget make_text_widget(const char *name, Widget parent, Arg *args, int n);
77 Widget make_textfield_widget(const char *name, Widget parent, Arg *args, int n, text_cr_t activatable, int completer);
78 void clear_listener(void);
79 void set_listener_text_font(void);
80 
81 
82 /* -------- snd-xmenu.c -------- */
83 
84 Widget add_menu(void);
85 void add_menu_drop(void);
86 Widget menu_widget(int which_menu);
87 void check_menu_labels(int key, int state, bool extended);
88 void reflect_play_selection_stop(void);
89 void set_button_label(Widget label, const char *str);
90 void add_tooltip(Widget w, const char *tip);
91 void post_basic_popup_menu(void *ev);
92 void post_lisp_popup_menu(void *ev);
93 void post_fft_popup_menu(void *ev);
94 void post_selection_popup_menu(void *ev);
95 widget_t make_file_print_dialog(bool managed, bool direct_to_printer);
96 void save_print_dialog_state(FILE *fd);
97 
98 
99 /* -------- snd-xmain.c -------- */
100 
101 void snd_doit(int argc, char **argv);
102 color_t get_in_between_color(color_t fg, color_t bg);
103 void auto_update_restart(void);
104 void save_colors(FILE *Fp);
105 
106 
107 
108 /* -------- snd-xfft.c -------- */
109 
110 void set_fft_window_beta(mus_float_t val);
111 void set_fft_window_alpha(mus_float_t val);
112 void set_transform_size(mus_long_t val);
113 void set_fft_window(mus_fft_window_t val);
114 void set_wavelet_type(int val);
115 Widget make_transform_dialog(bool managed);
116 bool transform_dialog_is_active(void);
117 
118 void set_spectrum_start(mus_float_t val);
119 void set_spectrum_end(mus_float_t val);
120 void set_transform_type(int val);
121 void make_transform_type_list(void);
122 
123 void set_show_transform_peaks(bool val);
124 void set_fft_log_magnitude(bool val);
125 void set_fft_with_phases(bool val);
126 void set_fft_log_frequency(bool val);
127 void set_transform_normalization(fft_normalize_t val);
128 void set_show_selection_transform(bool show);
129 void set_transform_graph_type(graph_type_t val);
130 void reflect_peaks_in_transform_dialog(void);
131 void reflect_log_freq_start_in_transform_dialog(void);
132 void reflect_min_db_in_transform_dialog(void);
133 
134 
135 
136 /* -------- snd-xregion.c -------- */
137 
138 int update_region_browser(bool grf_too);
139 bool region_browser_is_active(void);
140 void delete_region_and_update_browser(int n);
141 void reflect_play_region_stop(int n);
142 bool region_dialog_is_active(void);
143 void allocate_region_rows(int n);
144 void reflect_regions_in_region_browser(void);
145 void reflect_no_regions_in_region_browser(void);
146 void reflect_region_graph_style(void);
147 
148 
149 /* -------- snd-gxbitmaps.c -------- */
150 
151 const char **mini_bomb_bits(int n);
152 const char **mini_glass_bits(int n);
153 const char **mini_lock_bits(void);
154 const char **close_icon_bits(void);
155 const char **snd_icon_bits(void);
156 const char **blank_bits(void);
157 void make_icons_transparent(const char *basic_color);
158 const char **stop_sign_bits(void);
159 
160 void make_toolbar_icons(Widget w);
161 enum {SND_XPM_BACK_ARROW, SND_XPM_FORWARD_ARROW, SND_XPM_ZOOM_IN, SND_XPM_ZOOM_OUT, SND_XPM_CUT, SND_XPM_PASTE, SND_XPM_PREFERENCES, SND_XPM_CLOSE,
162       SND_XPM_REDO, SND_XPM_UNDO, SND_XPM_SAVE, SND_XPM_SAVE_AS, SND_XPM_NEW, SND_XPM_OPEN, SND_XPM_NEXT, SND_XPM_BACK, SND_XPM_EXIT, SND_XPM_SEPARATOR, SND_XPM_UP,
163       SND_XPM_STOP, SND_XPM_REVERT, SND_XPM_PLAY, SND_XPM_CURSOR_PLAY, SND_XPM_STOP_PLAY,
164       NUM_TOOLBAR_PIXMAPS};
165 Pixmap toolbar_icon(int which);
166 void show_toolbar(void);
167 void hide_toolbar(void);
168 
169 
170 
171 /* -------- snd-gxcolormaps.c -------- */
172 
173 char *colormap_name(int n);
174 bool is_colormap(int n);
175 int num_colormaps(void);
176 void get_current_color(int colormap, int n, rgb_t *r, rgb_t *g, rgb_t *b);
177 #if HAVE_GL
178 rgb_t *color_map_reds(int index);
179 rgb_t *color_map_greens(int index);
180 rgb_t *color_map_blues(int index);
181 #endif
182 void g_init_gxcolormaps(void);
183 
184 
185 /* -------- snd-xfind.c -------- */
186 
187 void find_dialog(chan_info *cp);
188 void find_dialog_set_label(const char *str);
189 void stop_search_if_error(const char *msg, void *data);
190 void errors_to_find_text(const char *msg, void *data);
191 void find_dialog_stop_label(bool show_stop);
192 bool find_dialog_is_active(void);
193 void save_find_dialog_state(FILE *fd);
194 
195 
196 /* -------- snd-xutils.c -------- */
197 
198 bool set_tiny_font(const char *font);
199 bool set_listener_font(const char *font);
200 bool set_peaks_font(const char *font);
201 bool set_bold_peaks_font(const char *font);
202 bool set_axis_label_font(const char *font);
203 bool set_axis_numbers_font(const char *font);
204 int label_width(const char *txt, bool use_tiny_font);
205 int number_width(const char *num, bool use_tiny_font);
206 int number_height(XFontStruct *numbers_font);
207 int label_height(bool use_tiny_font);
208 int mark_name_width(const char *txt);
209 void map_over_children_with_color(Widget w, void (*func)(Widget uw, color_t color), color_t color);
210 void clear_window(graphics_context *ax);
211 void set_label(Widget label, const char *str);
212 void set_title(const char *title);
213 void goto_window(Widget text);
214 void check_for_event(void);
215 void color_cursor(Pixel color);
216 void color_marks(Pixel color);
217 void color_selection(Pixel color);
218 void color_data(Pixel color);
219 void color_selected_data(Pixel color);
220 void color_graph(Pixel color);
221 void color_selected_graph(Pixel color);
222 void set_mix_color(Pixel color);
223 void recolor_graph(chan_info *cp, bool selected);
224 void set_sensitive(Widget wid, bool val);
225 void set_toggle_button(Widget wid, bool val, bool passed, void *data);
226 Dimension widget_height(Widget w);
227 Dimension widget_width(Widget w);
228 void set_widget_height(Widget w, Dimension height);
229 void set_widget_width(Widget w, Dimension width);
230 Position widget_x(Widget w);
231 Position widget_y(Widget w);
232 void set_widget_x(Widget w, Position x);
233 void set_widget_y(Widget w, Position y);
234 void set_widget_size(Widget w, Dimension width, Dimension height);
235 void set_widget_position(Widget w, Position x, Position y);
236 idle_t add_work_proc(XtWorkProc func, XtPointer data);
237 void draw_rotated_axis_label(chan_info *cp, graphics_context *ax, const char *text, int x0, int y0);
238 
239 
240 /* -------- snd-xchn.c -------- */
241 
242 Widget channel_main_pane(chan_info *cp);
243 Widget channel_w(chan_info *cp);
244 Widget channel_f(chan_info *cp);
245 Widget channel_graph(chan_info *cp);
246 bool channel_graph_is_visible(chan_info *cp);
247 void change_gzy(mus_float_t val, chan_info *cp);
248 mus_float_t gsy_value(chan_info *cp);
249 mus_float_t gsy_size(chan_info *cp);
250 void initialize_scrollbars(chan_info *cp);
251 void set_z_scrollbars(chan_info *cp, axis_info *ap);
252 void resize_sx(chan_info *cp);
253 void resize_sy(chan_info *cp);
254 void resize_sy_and_zy(chan_info *cp);
255 void resize_sx_and_zx(chan_info *cp);
256 void channel_open_pane(chan_info *cp);
257 void channel_unlock_pane(chan_info *cp);
258 void reflect_edit_history_change(chan_info *cp);
259 void reflect_edit_counter_change(chan_info *cp);
260 int add_channel_window(snd_info *sound, int channel, int chan_y, int insertion, Widget main, fw_button_t arrows, bool with_events);
261 void set_peak_numbers_font(chan_info *cp, graphics_context *ax);
262 void set_bold_peak_numbers_font(chan_info *cp, graphics_context *ax);
263 void set_tiny_numbers_font(chan_info *cp, graphics_context *ax);
264 color_t get_foreground_color(graphics_context *ax);
265 void set_foreground_color(graphics_context *ax, Pixel color);
266 GC copy_GC(chan_info *cp);
267 GC erase_GC(chan_info *cp);
268 void graph_key_press(Widget w, XtPointer context, XEvent *event, Boolean *cont);
269 void cleanup_cw(chan_info *cp);
270 void free_fft_pix(chan_info *cp);
271 bool restore_fft_pix(chan_info *cp, graphics_context *ax);
272 void save_fft_pix(chan_info *cp, graphics_context *ax, int fwidth, int fheight, int x0, int y1);
273 void change_channel_style(snd_info *sp, channel_style_t new_style);
274 void color_chan_components(color_t color, slider_choice_t which_component);
275 void color_unselected_graphs(color_t color);
276 
277 
278 /* -------- snd-xsnd.c -------- */
279 
280 int snd_pane_height(snd_info *sp);
281 int control_panel_height(snd_info *sp);
282 Widget w_snd_pane(snd_info *sp);
283 Widget unite_button(snd_info *sp);
284 void set_control_panel_play_button(snd_info *sp);
285 void set_status(snd_info *sp, const char *str, bool update);
286 void snd_info_cleanup(snd_info *sp);
287 void set_amp(snd_info *sp, mus_float_t val);
288 int amp_to_scroll(mus_float_t minval, mus_float_t val, mus_float_t maxval);
289 void set_expand(snd_info *sp, mus_float_t val);
290 void set_contrast(snd_info *sp, mus_float_t val);
291 void set_speed(snd_info *sp, mus_float_t val);
292 void set_revlen(snd_info *sp, mus_float_t val);
293 void set_revscl(snd_info *sp, mus_float_t val);
294 void set_filter_order(snd_info *sp, int val);
295 void set_filter_text(snd_info *sp, const char *str);
296 void display_filter_env(snd_info *sp);
297 void toggle_expand_button(snd_info *sp, bool state);
298 void toggle_contrast_button(snd_info *sp, bool state);
299 void toggle_reverb_button(snd_info *sp, bool state);
300 void toggle_filter_button(snd_info *sp, bool state);
301 void toggle_direction_arrow(snd_info *sp, bool state);
302 void set_filter_in_dB(snd_info *sp, bool val);
303 void set_filter_in_hz(snd_info *sp, bool val);
304 void filter_env_changed(snd_info *sp, env *e);
305 void set_play_button(snd_info *sp, bool val);
306 void play_button_pause(bool pausing);
307 void syncb(snd_info *sp, int on);
308 void show_lock(snd_info *sp);
309 void hide_lock(snd_info *sp);
310 void start_bomb(snd_info *sp);
311 void stop_bomb(snd_info *sp);
312 snd_info *add_sound_window(char *filename, read_only_t read_only, file_info *hdr);
313 void set_sound_pane_file_label(snd_info *sp, const char *str);
314 void color_filter_waveform(Pixel color);
315 void show_controls(snd_info *sp);
316 void hide_controls(snd_info *sp);
317 bool showing_controls(snd_info *sp);
318 void show_all_controls(void);
319 void hide_all_controls(void);
320 void start_progress_report(chan_info *cp);
321 void finish_progress_report(chan_info *cp);
322 void progress_report(chan_info *cp, mus_float_t pct);
323 XmString initial_speed_label(speed_style_t style);
324 void make_sound_icons_transparent_again(Pixel old_color, Pixel new_color);
325 void reflect_sound_selection(snd_info *sp);
326 void make_controls_dialog(void);
327 void update_sound_label(snd_info *sp);
328 
329 
330 /* -------- snd-xfile.c -------- */
331 
332 void cleanup_file_monitor(void);
333 void *unmonitor_file(void *watcher);
334 void monitor_sound(snd_info *sp);
335 
336 void save_view_files_dialogs(FILE *fd);
337 widget_t make_view_files_dialog(bool managed, bool make_new);
338 void view_files_unplay(void);
339 void view_files_add_directory(widget_t dialog, const char *dirname);
340 char *view_files_find_any_directory(void);
341 int view_files_dialog_list_length(void);
342 char **view_files_dialog_titles(void);
343 void view_files_start_dialog_with_title(const char *title);
344 
345 char *get_file_dialog_sound_attributes(file_data *fdat, int *srate, int *chans, mus_header_t *header_type,
346 				       mus_sample_t *sample_type, mus_long_t *location, mus_long_t *samples, int min_chan);
347 void alert_new_file(void);
348 widget_t make_open_file_dialog(read_only_t read_only, bool managed);
349 widget_t make_sound_save_as_dialog(bool managed);
350 void make_channel_extract_dialog(int chan);
351 widget_t make_selection_save_as_dialog(bool managed);
352 widget_t make_region_save_as_dialog(bool managed);
353 widget_t make_new_file_dialog(bool managed);
354 void mouse_enter_label(void *r, int type);
355 void mouse_leave_label(void *r, int type);
356 Widget edit_header(snd_info *sp);
357 void save_edit_header_dialog_state(FILE *fd);
358 void set_open_file_play_button(bool val);
359 widget_t make_mix_file_dialog(bool managed);
360 widget_t make_insert_file_dialog(bool managed);
361 void clear_deleted_snd_info(void *dp);
362 void reflect_just_sounds(void);
363 void save_file_dialog_state(FILE *fd);
364 widget_t post_it(const char *subject, const char *str);
365 void post_it_append(const char *str);
366 void save_post_it_dialog_state(FILE *fd);
367 void reflect_region_in_save_as_dialog(void);
368 void reflect_selection_in_save_as_dialog(bool on);
369 void save_edits_now(snd_info *sp);
370 void changed_file_dialog(snd_info *sp);
371 void unpost_file_has_changed_if_any(snd_info *sp);
372 void unpost_unsaved_edits_if_any(snd_info *sp);
373 void reflect_save_as_src(bool val);
374 void reflect_save_as_auto_comment(bool val);
375 void reflect_save_as_sound_selection(const char *sound_name);
376 void add_drag_and_drop(Widget w,
377 		       void (*drop_watcher)(Widget w, const char *message, Position x, Position y, void *data),
378 		       void (*drag_watcher)(Widget w, const char *message, Position x, Position y, drag_style_t dtype, void *data),
379 		       void *context);
380 
381 
382 
383 /* -------- snd-xenv.c -------- */
384 
385 axis_info *enved_make_axis(const char *name, graphics_context *ax, int ex0, int ey0, int width, int height,
386 			   mus_float_t xmin, mus_float_t xmax, mus_float_t ymin, mus_float_t ymax, printing_t printing);
387 void display_enved_env_with_selection(env *e, const char *name, int x0, int y0, int width, int height, bool dots, printing_t printing);
388 void set_enved_redo_sensitive(bool val);
389 void set_enved_revert_sensitive(bool val);
390 void set_enved_undo_sensitive(bool val);
391 void set_enved_save_sensitive(bool val);
392 void set_enved_show_sensitive(bool val);
393 void enved_reflect_selection(bool on);
394 void make_scrolled_env_list(void);
395 void enved_reflect_peak_env_completion(snd_info *sp);
396 void new_active_channel_alert(void);
397 void env_redisplay(void);
398 void env_redisplay_with_print(void);
399 void update_enved_background_waveform(chan_info *cp);
400 Widget create_envelope_editor(void);
401 void set_enved_clipping(bool val);
402 void reflect_enved_style(void);
403 void set_enved_base(mus_float_t val);
404 void set_enved_target(enved_target_t val);
405 void set_enved_with_wave(bool val);
406 void set_enved_in_dB(bool val);
407 bool enved_dialog_is_active(void);
408 void set_enved_filter_order(int order);
409 void color_enved_waveform(Pixel pix);
410 
411 
412 
413 /* -------- snd-xmix.c -------- */
414 
415 void reflect_mix_change(int mix_id);
416 Widget make_mix_dialog(void);
417 void reflect_mix_play_stop(void);
418 void make_mixer_icons_transparent_again(Pixel old_color, Pixel new_color);
419 int mix_dialog_mix(void);
420 void mix_dialog_set_mix(int id);
421 
422 
423 /* -------- snd-xprefs.c -------- */
424 
425 widget_t make_preferences_dialog(void);
426 
427 void g_init_motif(void);
428 
429 #endif
430 
431 
432