Alex: Added the new sources for terminatorX 3.5
[terminatorX.git] / src / tX_global.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999  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_global.h
20  
21     Description: Header to tX_global.c / defines the heavily used
22                  tX_global struct.
23                  
24     Changes:
25     
26     21 Jul 1999: Introduced the lowpass globals.
27 */    
28
29 #ifndef _TX_GLOBAL_H
30 #define _TX_GLOBAL_H
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif /* __cplusplus */
35
36 #include <limits.h>
37 #include <stdio.h>
38 #include "tX_types.h"
39
40 #ifndef PATH_MAX
41 #define PATH_MAX 1024
42 #endif
43
44 typedef struct {
45         char    scratch_name[PATH_MAX];
46         unsigned int    scratch_size; // In Bytes
47         unsigned int    scratch_len; // In samples
48         int16_t *scratch_data; 
49         
50         char    loop_name[PATH_MAX];
51         unsigned int    loop_len;
52         unsigned int    loop_size;
53         int16_t *loop_data;
54         
55         char    prefix[PATH_MAX];
56         char    audio_device[PATH_MAX];
57         
58         int     xinput_enable;
59         char    xinput_device[256]; // If your device's name is longer than that
60                                     // you are insane and you simply don't deserve
61                                     // running terminatorX ;) (said the guy who invented 8+3)                                                               
62
63         int     do_mix;
64         f_prec  scratch_vol;
65         
66         int     update_idle;
67         
68         int     buff_no;
69         int     buff_size;
70         
71         int     rec_size; // In Bytes   
72         int16_t *rec_buffer;
73         
74         int     sense_cycles;
75         
76         int     width;
77         int     height;
78         
79         f_prec  vtt_default_speed;
80         
81         int tooltips;
82         
83         f_prec mouse_speed;
84         
85         int time_enable;
86         int time_update;
87
88         int rec_len;
89         
90         int filectr;
91         int reset_filectr;
92         
93         char last_fn[PATH_MAX];
94         int use_y;
95         int use_stdout;
96         int show_nag;
97         
98         int prelis;
99         
100         int lowpass_enable;
101         f_prec lowpass_reso;
102         
103         f_prec pitch;
104         f_prec volume;
105         
106         int gui_wrap;
107         
108         char tables_filename[PATH_MAX];
109         char record_filename[PATH_MAX];
110         int autoname;
111         
112 } tx_global;
113
114 extern tx_global globals;
115
116 extern void load_globals();
117 extern void store_globals();
118
119 #ifdef __cplusplus
120 }
121 #endif /* __cplusplus */
122
123 #endif