Rev 2289 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
964 | jag | 1 | /* |
2 | * globals.cc |
||
2302 | jag | 3 | * DIN Is Noise is copyright (c) 2006-2025 Jagannathan Sampath |
1713 | jag | 4 | * DIN Is Noise is released under GNU Public License 2.0 |
1479 | jag | 5 | * For more information, please visit https://dinisnoise.org/ |
964 | jag | 6 | */ |
7 | |||
8 | #include "globals.h" |
||
9 | #include "viewwin.h" |
||
10 | #include "checkbutton.h" |
||
11 | #include "random.h" |
||
12 | #include "log.h" |
||
978 | jag | 13 | #include "curve_editor.h" |
2289 | jag | 14 | |
1689 | jag | 15 | #include <map> |
16 | #include <iostream> |
||
964 | jag | 17 | |
18 | extern string INTERVALS_FILE; |
||
19 | extern int NUM_INTERVALS; |
||
20 | extern map <string, float> INTERVALS; |
||
21 | extern vector<string> INTERVAL_NAMES; |
||
22 | extern vector<float> INTERVAL_VALUES; |
||
23 | extern map <string, int> NOTE_POS; |
||
1023 | jag | 24 | extern int VAR_MIN, VAR_MAX; |
1755 | jag | 25 | extern string VARSTR; |
26 | extern int VAR_MIN2, VAR_MAX2; |
||
27 | extern std::string VARSTR2; |
||
1023 | jag | 28 | extern char BUFFER []; |
1829 | jag | 29 | extern const char* INDIAN_SWAR []; |
30 | extern map<string, string> INT2IND; |
||
964 | jag | 31 | |
32 | extern string user_data_dir; |
||
33 | |||
34 | int load_globals::load_intervals (const string& fname) { |
||
35 | |||
36 | ifstream file ((user_data_dir + fname).c_str(), ios::in); |
||
2251 | jag | 37 | |
964 | jag | 38 | if (file) { |
2251 | jag | 39 | |
964 | jag | 40 | INTERVALS_FILE = fname; |
41 | |||
42 | file >> ignore >> NUM_INTERVALS; |
||
43 | |||
44 | INTERVALS.clear (); |
||
45 | INTERVAL_NAMES.clear (); |
||
46 | INTERVAL_VALUES.clear (); |
||
47 | |||
2001 | jag | 48 | string interval_name; |
49 | float value; |
||
964 | jag | 50 | for (int i = 0, pos = 0; i < NUM_INTERVALS; ++i) { |
2001 | jag | 51 | file >> interval_name >> value; |
52 | INTERVALS [interval_name] = value; |
||
53 | NOTE_POS [interval_name] = pos++; |
||
54 | INTERVAL_NAMES.push_back (interval_name); |
||
964 | jag | 55 | INTERVAL_VALUES.push_back (value); |
2001 | jag | 56 | INT2IND[interval_name] = INDIAN_SWAR[i]; |
964 | jag | 57 | } |
58 | |||
59 | return 1; |
||
2251 | jag | 60 | |
964 | jag | 61 | } else return 0; |
62 | |||
63 | } |
||
64 | |||
65 | load_globals::load_globals () { |
||
66 | string fname (user_data_dir + "globals"); |
||
67 | ifstream file (fname.c_str(), ios::in); |
||
68 | if (file) { |
||
1023 | jag | 69 | |
964 | jag | 70 | file >> ignore >> INTERVALS_FILE; |
1023 | jag | 71 | |
964 | jag | 72 | file >> ignore >> viewport::handle_radius; |
1023 | jag | 73 | |
964 | jag | 74 | file >> ignore >> widget::R >> widget::G >> widget::B; |
978 | jag | 75 | file >> ignore >> checkbutton::on_color.r >> checkbutton::on_color.g >> checkbutton::on_color.b; |
76 | file >> ignore >> checkbutton::off_color.r >> checkbutton::off_color.g >> checkbutton::off_color.b; |
||
77 | file >> ignore >> curve_editor::vtxlbl.r >> curve_editor::vtxlbl.g >> curve_editor::vtxlbl.b; |
||
1023 | jag | 78 | |
964 | jag | 79 | extern rnd<int> RAN_MOD_BPM; |
80 | float rmb1, rmb2; |
||
81 | file >> ignore >> rmb1 >> rmb2; RAN_MOD_BPM = rnd<int> (rmb1, rmb2); |
||
1023 | jag | 82 | |
83 | file >> ignore >> VAR_MIN >> VAR_MAX; |
||
84 | sprintf (BUFFER, "%d %d", VAR_MIN, VAR_MAX); |
||
1755 | jag | 85 | VARSTR = BUFFER; |
1023 | jag | 86 | |
1755 | jag | 87 | file >> ignore >> VAR_MIN2 >> VAR_MAX2; |
88 | sprintf (BUFFER, "%d %d", VAR_MIN2, VAR_MAX2); |
||
89 | VARSTR2 = BUFFER; |
||
90 | |||
964 | jag | 91 | load_intervals (INTERVALS_FILE); |
2250 | jag | 92 | |
1023 | jag | 93 | dlog << "loaded globals from: " << fname << endl; |
964 | jag | 94 | } else { |
95 | dlog << "!!! could not load globals !!!" << endl; |
||
96 | } |
||
97 | } |