Uploaded Version 3.2 into ther repository... Alex
[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 "turntable.h"
35 #include "string.h"
36
37 tx_global globals;
38 Virtual_TurnTable *vttgl;
39
40 void get_rc_name(char *buffer)
41 {
42         strcpy(buffer,"");
43         
44         if (getenv("HOME"))
45         {
46                 strcpy(buffer, getenv("HOME"));
47                 if (buffer[strlen(buffer)-1]!='/')
48                 strcat(buffer, "/");
49         }
50         strcat(buffer, ".terminatorXrc.bin");
51 }
52
53 void load_globals()
54 {
55         char rc_name[PATH_MAX]="";
56         FILE *rc;
57         
58         strcpy(globals.scratch_name, "scratch.wav");
59         strcpy(globals.loop_name, "");
60         
61         strcpy(globals.prefix, "tX_scratch");
62         strcpy(globals.audio_device, "/dev/dsp");
63         
64         strcpy(globals.xinput_device, "");
65         globals.xinput_enable=0;
66         
67         globals.update_idle=18;
68         
69         globals.buff_no=2;
70         globals.buff_size=9;
71         
72         globals.rec_size=1024000;
73
74         globals.do_mix=1;
75         globals.scratch_vol=0.5;
76         
77         globals.sense_cycles=12;
78         
79         globals.mouse_speed=0.8;
80         
81         globals.width=800;
82         globals.height=440;     
83         
84         globals.vtt_default_speed=1.0;
85         globals.tooltips=1;
86
87         globals.time_update=15;
88         globals.time_enable=1;
89         
90         globals.filectr=0;
91         globals.reset_filectr=1;
92         
93         globals.use_y=0;
94         globals.use_stdout=0;
95         
96         globals.show_nag=1;
97         globals.prelis=1;
98         
99         globals.lowpass_enable=0;
100         globals.lowpass_reso=0.9;
101         
102         strcpy(globals.last_fn,"");
103
104         get_rc_name(rc_name);
105
106         rc=fopen(rc_name, "r");
107         if (rc)
108         {
109                 fread(&globals, sizeof(tx_global), 1, rc);
110                 fclose(rc);
111         }
112         
113         globals.scratch_size=0;
114         globals.scratch_len=0;
115         globals.scratch_data=NULL;
116
117         globals.loop_size=0;
118         globals.loop_len=0;
119         globals.loop_data=NULL;
120         
121         globals.rec_buffer=NULL;
122         globals.rec_len=0;
123         if (globals.reset_filectr) globals.filectr=0;
124 }
125
126 void store_globals()
127 {
128         char rc_name[PATH_MAX]="";
129         FILE *rc;
130         
131         get_rc_name(rc_name);
132
133         rc=fopen(rc_name, "w");
134         if (rc)
135         {
136                 fwrite(&globals, sizeof(tx_global), 1, rc);
137                 fclose(rc);
138         }       
139 }