ad1dc1735729f24b18788ff4a56680ec4ad4f769
[terminatorX.git] / src / tX_vttgui.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999-2003  Alexander K├Ânig
4  
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9  
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14  
15     You should have received a copy of the GNU General Public License
16     along with this program; if not, write to the Free Software
17     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  
19     File: tX_vttgui.h
20  
21     Description: Header to tX_vttgui.cc
22 */    
23
24 #ifndef _h_tX_vttgui
25 #define _h_tX_vttgui
26
27 #include <gtk/gtk.h>
28 #include <config.h>
29 #include "tX_types.h"
30 #include "tX_extdial.h"
31 #include "tX_panel.h"
32 #include <list>
33 #include "tX_seqpar.h"
34
35 typedef struct vtt_gui
36 {
37         GtkWidget *control_box;
38         GtkWidget *audio_box;
39         GtkWidget *adjust_dialog;
40         
41         /* Control Box Widgets */
42         GtkWidget *control_label;
43         GtkWidget *control_minimize;
44         GtkWidget *scrolled_win;
45         GtkWidget *control_subbox;
46         GtkWidget *ladspa_menu;
47         GtkWidget *par_menu;
48
49         /* Main */
50         tX_panel  *main_panel;
51         GtkWidget *name;
52         GtkWidget *show_audio;
53         GtkWidget *del;
54         GtkWidget *adjust_button;
55         GtkWidget *fx_button;
56         
57         /* Trigger */
58         tX_panel  *trigger_panel;
59         GtkWidget *trigger;
60         GtkWidget *stop;
61         GtkWidget *autotrigger;
62         GtkWidget *loop;
63         GtkWidget *sync_master;
64         GtkWidget *sync_client;
65         GtkAdjustment *cycles;
66         
67         /* Output Panel */
68         tX_extdial *pitchd;
69         tX_extdial *pand;
70         GtkAdjustment *pitch;
71         GtkAdjustment *pan;
72         GtkAdjustment *volume; 
73         GtkWidget *mute;
74         GtkWidget *solo;
75         GtkWidget *flash;
76
77         /* Widgets in Lowpass Panel */
78         tX_panel *lp_panel;
79         GtkWidget *lp_enable;
80         tX_extdial *lp_gaind;
81         tX_extdial *lp_resod;
82         tX_extdial *lp_freqd;
83         GtkAdjustment *lp_gain;
84         GtkAdjustment *lp_reso;
85         GtkAdjustment *lp_freq;
86         
87         /* Widgets in Echo Panel */
88         tX_panel *ec_panel;
89         GtkWidget *ec_enable;
90         tX_extdial *ec_lengthd;
91         tX_extdial *ec_feedbackd;
92         tX_extdial *ec_pand;
93         tX_extdial *ec_volumed;
94         GtkAdjustment *ec_length;
95         GtkAdjustment *ec_feedback;
96         GtkAdjustment *ec_pan;
97         GtkAdjustment *ec_volume;
98
99         GdkWindow *file_dialog;
100         GtkWidget *fs;
101         
102         int32_t current_gui;
103
104         /* Audio Box Widgets */
105         GtkWidget *audio_label;
106         GtkWidget *audio_minimize;
107         GtkWidget *display;
108         GtkWidget *zoom;
109         GtkWidget *file;
110         GtkWidget *file_menu;
111
112         GtkWidget *mouse_mapping;
113         GtkWidget *mouse_mapping_menu;
114         GtkWidget *mouse_mapping_menu_x;
115         GtkWidget *mouse_mapping_menu_y;
116
117 #ifdef USE_ALSA_MIDI_IN
118         GtkWidget *midi_mapping;
119 #endif  
120
121         GtkWidget *audio_minimized_panel_bar_button;
122         GtkWidget *control_minimized_panel_bar_button;
123
124         GtkWidget *audio_minimized_panel_bar_label;
125         GtkWidget *control_minimized_panel_bar_label;
126 };
127
128 extern void cleanup_all_vtts();
129 extern void update_all_vtts();
130 extern void vg_enable_critical_buttons(int enable);
131 extern void vg_init_all_non_seqpars();
132 extern void vg_adjust_zoom(GtkWidget *wid, vtt_class *vtt);
133 #endif