Subversion Repositories DIN Is Noise

Rev

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
}