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