Copyright fixes and mpg321 support - Alex
[terminatorX.git] / src / tX_vttgui.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999-2002  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
36 #ifdef DONT_USE_FLASH
37 #undef USE_FLASH
38 #else
39 #define USE_FLASH 1
40 #endif
41
42 typedef struct vtt_gui
43 {
44         GtkWidget *control_box;
45         GtkWidget *audio_box;
46
47         /* Control Box Widgets */
48         GtkWidget *control_label;
49         GtkWidget *scrolled_win;
50         GtkWidget *control_subbox;
51         GtkWidget *ladspa_menu;
52         GtkWidget *par_menu;
53
54         /* Main */
55         tX_panel  *main_panel;
56         GtkWidget *name;
57         GtkWidget *show_audio;
58         GtkWidget *del;
59         GtkWidget *fx_button;
60         
61         /* Trigger */
62         tX_panel  *trigger_panel;
63         GtkWidget *trigger;
64         GtkWidget *stop;
65         GtkWidget *autotrigger;
66         GtkWidget *loop;
67         GtkWidget *sync_master;
68         GtkWidget *sync_client;
69         GtkAdjustment *cycles;
70         
71         /* Output Panel */
72         tX_extdial *pitchd;
73         tX_extdial *pand;
74         GtkAdjustment *pitch;
75         GtkAdjustment *pan;
76         GtkAdjustment *volume; 
77         GtkWidget *mute;
78         GtkWidget *solo;
79         GtkWidget *flash;
80
81         /* Widgets in Lowpass Panel */
82         tX_panel *lp_panel;
83         GtkWidget *lp_enable;
84         tX_extdial *lp_gaind;
85         tX_extdial *lp_resod;
86         tX_extdial *lp_freqd;
87         GtkAdjustment *lp_gain;
88         GtkAdjustment *lp_reso;
89         GtkAdjustment *lp_freq;
90         
91         /* Widgets in Echo Panel */
92         tX_panel *ec_panel;
93         GtkWidget *ec_enable;
94         tX_extdial *ec_lengthd;
95         tX_extdial *ec_feedbackd;
96         tX_extdial *ec_pand;
97         tX_extdial *ec_volumed;
98         GtkAdjustment *ec_length;
99         GtkAdjustment *ec_feedback;
100         GtkAdjustment *ec_pan;
101         GtkAdjustment *ec_volume;
102
103         GdkWindow *file_dialog;
104         GtkWidget *fs;
105         
106         int32_t current_gui;
107
108         /* Audio Box Widgets */
109         GtkWidget *audio_label;
110         GtkWidget *display;
111         GtkWidget *file;
112         GtkWidget *edit;
113         GtkWidget *reload;
114         GtkWidget *x_control;
115         GtkWidget *y_control;   
116 };
117
118 extern void cleanup_all_vtts();
119 extern void update_all_vtts();
120 /*extern void vg_update_sync(void *);*/
121 extern void vg_enable_critical_buttons(int enable);
122 extern void vg_init_all_non_seqpars();
123 #endif