RemoteVstPlugin: fixed too short arrays for preset names
[lmms.git] / include / config_mgr.h
bloba9a52158338d3872e294a8db245ef5a7378fa6cf
1 /*
2 * config_mgr.h - class configManager, a class for managing LMMS-configuration
4 * Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
6 * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
18 * You should have received a copy of the GNU General Public
19 * License along with this program (see COPYING); if not, write to the
20 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301 USA.
25 #ifndef _CONFIG_MGR_H
26 #define _CONFIG_MGR_H
28 #include "lmmsconfig.h"
30 #include <QtCore/QMap>
31 #include <QtCore/QPair>
32 #include <QtCore/QStringList>
33 #include <QtCore/QVector>
35 #include "export.h"
38 class engine;
39 class ResourceItem;
41 const QString PROJECTS_PATH = "projects/";
42 const QString PRESETS_PATH = "presets/";
43 const QString SAMPLES_PATH = "samples/";
44 const QString DEFAULT_THEME_PATH = "themes/default/";
45 const QString LOCALE_PATH = "locale/";
48 class EXPORT configManager
50 public:
51 static inline configManager * inst()
53 if( s_instanceOfMe == NULL )
55 s_instanceOfMe = new configManager();
57 return s_instanceOfMe;
60 const QString & dataDir() const
62 return m_dataDir;
65 const QString & workingDir() const
67 return m_workingDir;
70 QString userProjectsDir() const
72 return workingDir() + PROJECTS_PATH;
75 QString userPresetsDir() const
77 return workingDir() + PRESETS_PATH;
80 QString userSamplesDir() const
82 return workingDir() + SAMPLES_PATH;
85 QString factoryProjectsDir() const
87 return dataDir() + PROJECTS_PATH;
90 QString factoryPresetsDir() const
92 return dataDir() + PRESETS_PATH;
95 QString factorySamplesDir() const
97 return dataDir() + SAMPLES_PATH;
100 QString defaultArtworkDir() const
102 return m_dataDir + DEFAULT_THEME_PATH;
105 QString defaultLameLibrary() const
107 return "/usr/lib/libmp3lame.so.0";
111 QString artworkDir() const
113 return m_artworkDir;
116 QString localeDir() const
118 return m_dataDir + LOCALE_PATH;
121 const QString & pluginDir() const
123 return m_pluginDir;
126 const QString & vstDir() const
128 return m_vstDir;
131 const QString & flDir() const
133 return m_flDir;
136 const QString & ladspaDir() const
138 return m_ladDir;
141 #ifdef LMMS_HAVE_STK
142 const QString & stkDir() const
144 return m_stkDir;
146 #endif
148 #ifdef LMMS_HAVE_FLUIDSYNTH
149 const ResourceItem * defaultSoundfont() const
151 return m_defaultSoundfont;
153 #endif
155 const QString & lameLibrary() const
157 return m_lameLibrary;
160 const QString & backgroundArtwork() const
162 return m_backgroundArtwork;
165 inline const QStringList & recentlyOpenedProjects() const
167 return m_recentlyOpenedProjects;
170 void addRecentlyOpenedProject( const QString & _file );
172 const QString & value( const QString & _class,
173 const QString & _attribute ) const;
174 void setValue( const QString & _class, const QString & _attribute,
175 const QString & _value );
177 void loadConfigFile();
178 void saveConfigFile();
181 void setWorkingDir( const QString & _wd );
182 void setVSTDir( const QString & _vd );
183 void setArtworkDir( const QString & _ad );
184 void setFLDir( const QString & _fd );
185 void setLADSPADir( const QString & _fd );
186 void setSTKDir( const QString & _fd );
187 void setDefaultSoundfont( const ResourceItem * _sf );
188 void setBackgroundArtwork( const QString & _ba );
189 void setLameLibrary( const QString & _ll );
192 private:
193 static configManager * s_instanceOfMe;
195 configManager();
196 configManager( const configManager & _c );
197 ~configManager();
200 const QString m_lmmsRcFile;
201 QString m_workingDir;
202 QString m_dataDir;
203 QString m_artworkDir;
204 QString m_pluginDir;
205 QString m_vstDir;
206 QString m_flDir;
207 QString m_ladDir;
208 #ifdef LMMS_HAVE_STK
209 QString m_stkDir;
210 #endif
211 #ifdef LMMS_HAVE_FLUIDSYNTH
212 ResourceItem * m_defaultSoundfont;
213 #endif
214 QString m_backgroundArtwork;
215 QStringList m_recentlyOpenedProjects;
216 QString m_lameLibrary;
219 typedef QVector<QPair<QString, QString> > stringPairVector;
220 typedef QMap<QString, stringPairVector> settingsMap;
221 settingsMap m_settings;
224 friend class engine;
228 #endif