ee438b67f6f81aa99f2b6b299daf904387875ac9
[terminatorX.git] / src / tX_global.h
1 /*
2     terminatorX - realtime audio scratching software
3     Copyright (C) 1999, 2000  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 #define BUTTON_TYPE_ICON 1
45 #define BUTTON_TYPE_TEXT 2
46 #define BUTTON_TYPE_BOTH 3
47
48 #define TX_AUDIODEVICE_TYPE_OSS 0
49 #define TX_AUDIODEVICE_TYPE_ALSA 1
50
51 typedef struct {
52         char    audio_device[PATH_MAX];
53         
54         int     xinput_enable;
55         char    xinput_device[256]; // If your device's name is longer than that
56                                     // you are insane and you simply don't deserve
57                                     // running terminatorX ;) (said the guy who invented 8+3)                                                               
58         int     store_globals;          // if it should store the globals vals on exit
59         char    *startup_set;   
60         char    *alternate_rc;          // a diferent set of stored globals to load
61         int     no_gui;                 // run without any gui
62         
63         int     update_idle;
64         
65         int     buff_no;
66         int     buff_size;
67         
68         int     sense_cycles;
69         
70         int     width;
71         int     height;
72
73         int tooltips;
74         
75         f_prec mouse_speed;
76                 
77         char last_fn[PATH_MAX];
78
79         int use_stdout;
80         int use_stdout_cmdline;
81         int use_stdout_from_conf_file;
82         int show_nag;
83         
84         int prelis;
85         
86         f_prec pitch;
87         f_prec volume;
88         
89         int gui_wrap;
90         
91         char tables_filename[PATH_MAX];
92         char record_filename[PATH_MAX];
93         int autoname;
94         
95         float flash_response;
96         
97         int button_type;
98         
99         char file_editor[PATH_MAX];
100         int true_block_size;
101         int update_delay; 
102         
103         char *current_path;
104         
105         /* new audiodevice handling 
106            we have *all* variables for *all* audiodevice types -
107            even if support for them is not compiled in - to keep
108            the .terminatorX3rc.bin in sync.
109         */
110         
111         int audiodevice_type; // TX_AUDIODEVICE_TYPE_OSS etc.
112         int audiodevice_buffersize; // buffer in samples
113         
114         /* OSS specific options */
115         char audiodevice_oss_devicename[PATH_MAX];
116         
117         /* ALSA specific options */
118         int audiodevice_alsa_card;
119         int audiodevice_alsa_pcm;               
120 } tx_global;
121
122 extern tx_global globals;
123
124 extern void load_globals();
125 extern void store_globals();
126
127 #ifdef __cplusplus
128 }
129 #endif /* __cplusplus */
130
131 #endif