1 /*
2 	Copyright (C) 2008, 2009 Andres Cabrera
3 	mantaraya36@gmail.com
4 
5 	This file is part of CsoundQt.
6 
7 	CsoundQt is free software; you can redistribute it
8 	and/or modify it under the terms of the GNU Lesser General Public
9 	License as published by the Free Software Foundation; either
10 	version 2.1 of the License, or (at your option) any later version.
11 
12 	CsoundQt is distributed in the hope that it will be useful,
13 	but WITHOUT ANY WARRANTY; without even the implied warranty of
14 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 	GNU Lesser General Public License for more details.
16 
17 	You should have received a copy of the GNU Lesser General Public
18 	License along with Csound; if not, write to the Free Software
19 	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20 	02111-1307 USA
21 */
22 
23 #ifndef OPTIONS_H
24 #define OPTIONS_H
25 
26 #include <QString>
27 #include <QColor>
28 
29 #include "csoundoptions.h"
30 
31 class Options: public CsoundOptions{
32 public:
33 	Options(ConfigLists *configlists);
34 	~Options();
35 
36 	QString theme;  // Icon theme name
37 	QString font;
38 	float fontPointSize;
39 	bool showLineNumberArea;
40 	int lineEnding; // 0=Unix (LF) 1=Windows(CR+LF)
41 	QString consoleFont;
42 	float consoleFontPointSize;
43 	QColor consoleFontColor;
44 	QColor consoleBgColor;
45 	QColor editorBgColor;
46 	int tabWidth;
47 	bool tabIndents;
48 	bool colorVariables;
49     QString highlightingTheme;
50 	bool autoPlay;
51 	bool autoJoin;
52 	bool saveChanges;
53     bool askIfTemporary;
54 	bool rememberFile;
55 	bool saveWidgets;
56 	bool iconText;
57 	bool showToolbar;
58     bool lockToolbar;
59     int  toolbarIconSize;
60 	bool wrapLines;
61 	bool autoComplete;
62 	bool autoParameterMode;
63     bool tabShortcutActive;
64 
65 	bool showWidgetsOnRun;
66 	bool showTooltips;
67     int graphUpdateRate;
68 	bool terminalFLTK;
69 	bool oldFormat;  // Store old MacCsound widget format
70 	bool openProperties;  // Open properties automatically when creating a widget
71 	double fontScaling;
72 	double fontOffset;
73 
74 	bool useAPI;
75 	bool enableWidgets;
76 	bool widgetsIndependent;  // Widget layouts in Separate Window (instead of Dock Widget)
77 	bool useInvalue; // If false use chnget
78 	bool keyRepeat;
79 	bool debugLiveEvents;
80 	int consoleBufferSize;
81 	int midiInterface;
82 	QString midiInterfaceName;
83 	int midiOutInterface;
84 	QString midiOutInterfaceName;
85 	int rtMidiApi; // "UNSPECIFIED" | "LINUX_ALSA" | "UNIX_JACK" | "MACOSX_CORE" | "WINDOWS_MM" see RtMidi.h
86 	// Csound engine flags
87 	bool noBuffer;
88 	bool noPython;
89 	bool noMessages;
90 	bool noEvents;
91 
92 	QString csdPath; //path of active csd needed for setting -o -i paths
93 
94 	int menuDepth;
95 	QString defaultCsd;
96 	bool defaultCsdActive;
97 	QString opcodexmldir;
98 	bool opcodexmldirActive;
99 	QString favoriteDir;
100 	QString pythonDir;
101 	QString pythonExecutable;
102 	QString csoundExecutable;
103 	QString logFile;
104 	QString sdkDir;
105 	QString templateDir;
106 
107 	typedef enum {
108 		CS_ORC = 0x01,
109 		CS_SCORE = 0x02,
110 		PYTHON = 0x04,
111 		LUA = 0x08,
112 		QML = 0x0F
113 	} CodeLanguage;
114 
115 	CodeLanguage evalLanguage;
116 	// External applications
117 	QString terminal;
118 	QString browser;
119 	QString dot;
120 	QString waveeditor;
121 	QString waveplayer;
122 	QString pdfviewer;
123 	int language;  // Interface language
124 
125 	QString csdTemplate;
126 
127 	quint16 debugPort;
128 
129 
130 	// Csound Utilities options
131 	QString cvInputName;
132 	QString cvOutputName;
133 	QString cvSampleRate;
134 	QString cvBeginTime;
135 	QString cvDuration;
136 	QString cvChannels;
137 
138 	QString hetInputName;
139 	QString hetOutputName;
140 	QString hetSampleRate;
141 	QString hetChannel;
142 	QString hetBeginTime;
143 	QString hetDuration;
144 	QString hetStartFrequency;
145 	QString hetNumPartials;
146 	QString hetMaxAmplitude;
147 	QString hetMinAplitude;
148 	QString hetNumBreakPoints;
149 	QString hetFilterCutoff;
150 
151 	QString lpInputName;
152 	QString lpOutputName;
153 	QString lpSampleRate;
154 	QString lpChannel;
155 	QString lpBeginTime;
156 	QString lpDuration;
157 	QString lpNumPoles;
158 	QString lpHopSize;
159 	QString lpLowestFreq;
160 	int lpVerbosity;
161 	bool lpAlternateStorage;
162 
163 	QString pvInputName;
164 	QString pvOutputName;
165 	QString pvSampleRate;
166 	QString pvChannel;
167 	QString pvBeginTime;
168 	QString pvDuration;
169 	QString pvFrameSize;
170 	QString pvOverlap;
171 	int pvWindow;
172 	QString pvBeta;
173 
174 	QString atsInputName;
175 	QString atsOutputName;
176 	QString atsBeginTime;
177 	QString atsEndTime;
178 	QString atsLowestFreq;
179 	QString atsHighestFreq;
180 	QString atsFreqDeviat;
181 	QString atsWinCycle;
182 	QString atsHopSize;
183 	QString atsLowestMag;
184 	QString atsTrackLen;
185 	QString atsMinSegLen;
186 	QString atsMinGapLen;
187 	QString atsSmrThresh;
188 	QString atsLastPkCon;
189 	QString atsSmrContr;
190 	int atsFileType;
191 	int atsWindow;
192 };
193 
194 #endif
195