Alex: Added the new sources for terminatorX 3.5
[terminatorX.git] / src / tX_global.c
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.c
20  
21     Description:  This file contains the routines for handling the
22                   "globals" block. Intializing, reading setup from
23                   disk and storing it.
24                   
25     Changes:
26     
27     21 Jul 1999: introduced the lowpass globals.                          
28 */    
29
30 #include <stdio.h>
31 #include <stdlib.h>
32 #include "tX_types.h"
33 #include "tX_global.h"
34 #include "string.h"
35
36 tx_global globals;
37
38 void get_rc_name(char *buffer)
39 {
40         strcpy(buffer,"");
41         
42         if (getenv("HOME"))
43         {
44                 strcpy(buffer, getenv("HOME"));
45                 if (buffer[strlen(buffer)-1]!='/')
46                 strcat(buffer, "/");
47         }
48         strcat(buffer, ".terminatorXrc.bin");
49 }
50
51 void load_globals()
52 {
53         char rc_name[PATH_MAX]="";
54         FILE *rc;
55         
56         strcpy(globals.scratch_name, "scratch.wav");
57         strcpy(globals.loop_name, "");
58         
59         strcpy(globals.prefix, "tX_scratch");
60         strcpy(globals.audio_device, "/dev/dsp");
61         
62         strcpy(globals.xinput_device, "");
63         globals.xinput_enable=0;
64         
65         globals.update_idle=18;
66         
67         globals.buff_no=2;
68         globals.buff_size=9;
69         
70         globals.rec_size=1024000;
71
72         globals.do_mix=1;
73         globals.scratch_vol=0.5;
74         
75         globals.sense_cycles=12;
76         
77         globals.mouse_speed=0.8;
78         
79         globals.width=800;
80         globals.height=440;     
81         
82         globals.vtt_default_speed=1.0;
83         globals.tooltips=1;
84
85         globals.time_update=15;
86         globals.time_enable=1;
87         
88         globals.filectr=0;
89         globals.reset_filectr=1;
90         
91         globals.use_y=0;
92         globals.use_stdout=0;
93         
94         globals.show_nag=1;
95         globals.prelis=1;
96         
97         globals.lowpass_enable=0;
98         globals.lowpass_reso=0.9;
99         
100         strcpy(globals.last_fn,"");
101         
102         globals.pitch=1.0;
103         globals.volume=1.0;
104         globals.gui_wrap=3;
105         
106         strcpy(globals.tables_filename, "");
107         strcpy(globals.record_filename, "");
108         globals.autoname=0;
109
110         get_rc_name(rc_name);
111
112         rc=fopen(rc_name, "r");
113         if (rc)
114         {
115                 fread(&globals, sizeof(tx_global), 1, rc);
116                 fclose(rc);
117         }
118         
119         globals.scratch_size=0;
120         globals.scratch_len=0;
121         globals.scratch_data=NULL;
122
123         globals.loop_size=0;
124         globals.loop_len=0;
125         globals.loop_data=NULL;
126         
127         globals.rec_buffer=NULL;
128         globals.rec_len=0;
129         if (globals.reset_filectr) globals.filectr=0;
130 }
131
132 void store_globals()
133 {
134         char rc_name[PATH_MAX]="";
135         FILE *rc;
136         
137         get_rc_name(rc_name);
138
139         rc=fopen(rc_name, "w");
140         if (rc)
141         {
142                 fwrite(&globals, sizeof(tx_global), 1, rc);
143                 fclose(rc);
144         }       
145 }