Skip to content

Commit

Permalink
Merge pull request LMMS#2602 from LMMS/iss-2577
Browse files Browse the repository at this point in the history
Fix some Windows data directory resolve issues
  • Loading branch information
lukas-w committed Feb 23, 2016
2 parents 13125c6 + d88902e commit 8d91dd6
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 31 deletions.
9 changes: 4 additions & 5 deletions plugins/stk/mallets/mallets.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,7 @@ malletsInstrument::malletsInstrument( InstrumentTrack * _instrument_track ):
m_presetsModel(this),
m_spreadModel(0, 0, 255, 1, this, tr( "Spread" )),
m_filesMissing( !QDir( ConfigManager::inst()->stkDir() ).exists() ||
!QFileInfo( ConfigManager::inst()->stkDir() + QDir::separator()
+ "sinewave.raw" ).exists() )
!QFileInfo( ConfigManager::inst()->stkDir() + "/sinewave.raw" ).exists() )
{
// ModalBar
m_presetsModel.addItem( tr( "Marimba" ) );
Expand Down Expand Up @@ -533,7 +532,7 @@ malletsSynth::malletsSynth( const StkFloat _pitch,
try
{
Stk::setSampleRate( _sample_rate );
Stk::setRawwavePath( ConfigManager::inst()->stkDir()
Stk::setRawwavePath( QDir( ConfigManager::inst()->stkDir() ).absolutePath()
.toLatin1().constData() );

m_voice = new ModalBar();
Expand Down Expand Up @@ -580,7 +579,7 @@ malletsSynth::malletsSynth( const StkFloat _pitch,
try
{
Stk::setSampleRate( _sample_rate );
Stk::setRawwavePath( ConfigManager::inst()->stkDir()
Stk::setRawwavePath( QDir( ConfigManager::inst()->stkDir() ).absolutePath()
.toLatin1().constData() );

m_voice = new TubeBell();
Expand Down Expand Up @@ -625,7 +624,7 @@ malletsSynth::malletsSynth( const StkFloat _pitch,
try
{
Stk::setSampleRate( _sample_rate );
Stk::setRawwavePath( ConfigManager::inst()->stkDir()
Stk::setRawwavePath( QDir( ConfigManager::inst()->stkDir() ).absolutePath()
.toLatin1().constData() );

m_voice = new BandedWG();
Expand Down
30 changes: 12 additions & 18 deletions src/core/ConfigManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,27 +36,25 @@
#include "GuiApplication.h"


static inline QString ensureTrailingSlash( const QString & _s )
static inline QString ensureTrailingSlash( const QString & s )
{
if( _s.right( 1 ) != QDir::separator() )
if(s.at(s.length()-1) != '/')
{
return _s + QDir::separator();
return s + '/';
}
return _s;
return s;
}


ConfigManager * ConfigManager::s_instanceOfMe = NULL;


ConfigManager::ConfigManager() :
m_lmmsRcFile( QDir::home().absolutePath() + QDir::separator() +
".lmmsrc.xml" ),
m_workingDir( QDir::home().absolutePath() + QDir::separator() +
"lmms" + QDir::separator() ),
m_lmmsRcFile( QDir::home().absolutePath() +"/.lmmsrc.xml" ),
m_workingDir( QDir::home().absolutePath() + "/lmms/"),
m_dataDir( "data:/" ),
m_artworkDir( defaultArtworkDir() ),
m_vstDir( m_workingDir + "vst" + QDir::separator() ),
m_vstDir( m_workingDir + "vst/" ),
m_flDir( QDir::home().absolutePath() ),
m_gigDir( m_workingDir + GIG_PATH ),
m_sf2Dir( m_workingDir + SF2_PATH ),
Expand Down Expand Up @@ -400,11 +398,7 @@ void ConfigManager::loadConfigFile()
{
m_artworkDir = defaultArtworkDir();
}
if( m_artworkDir.right( 1 ) !=
QDir::separator() )
{
m_artworkDir += QDir::separator();
}
m_artworkDir = ensureTrailingSlash(m_artworkDir);
}
setWorkingDir( value( "paths", "workingdir" ) );

Expand Down Expand Up @@ -433,18 +427,18 @@ void ConfigManager::loadConfigFile()
}


if( m_vstDir.isEmpty() || m_vstDir == QDir::separator() ||
if( m_vstDir.isEmpty() || m_vstDir == QDir::separator() || m_vstDir == "/" ||
!QDir( m_vstDir ).exists() )
{
#ifdef LMMS_BUILD_WIN32
QString programFiles = QString::fromLocal8Bit( getenv( "ProgramFiles" ) );
m_vstDir = programFiles + QDir::separator() + "VstPlugins" + QDir::separator();
m_vstDir = programFiles + "/VstPlugins/";
#else
m_vstDir = m_workingDir + "plugins/vst/";
#endif
}

if( m_flDir.isEmpty() || m_flDir == QDir::separator() )
if( m_flDir.isEmpty() || m_flDir == QDir::separator() || m_flDir == "/")
{
m_flDir = ensureTrailingSlash( QDir::home().absolutePath() );
}
Expand All @@ -455,7 +449,7 @@ void ConfigManager::loadConfigFile()
}

#ifdef LMMS_HAVE_STK
if( m_stkDir.isEmpty() || m_stkDir == QDir::separator() ||
if( m_stkDir.isEmpty() || m_stkDir == QDir::separator() || m_stkDir == "/" ||
!QDir( m_stkDir ).exists() )
{
#if defined(LMMS_BUILD_WIN32)
Expand Down
16 changes: 8 additions & 8 deletions src/gui/SetupDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1003,18 +1003,18 @@ void SetupDialog::accept()
ConfigManager::inst()->setValue( "app", "language", m_lang );


ConfigManager::inst()->setWorkingDir( m_workingDir );
ConfigManager::inst()->setVSTDir( m_vstDir );
ConfigManager::inst()->setGIGDir( m_gigDir );
ConfigManager::inst()->setSF2Dir( m_sf2Dir );
ConfigManager::inst()->setArtworkDir( m_artworkDir );
ConfigManager::inst()->setFLDir( m_flDir );
ConfigManager::inst()->setLADSPADir( m_ladDir );
ConfigManager::inst()->setWorkingDir(QDir::fromNativeSeparators(m_workingDir));
ConfigManager::inst()->setVSTDir(QDir::fromNativeSeparators(m_vstDir));
ConfigManager::inst()->setGIGDir(QDir::fromNativeSeparators(m_gigDir));
ConfigManager::inst()->setSF2Dir(QDir::fromNativeSeparators(m_sf2Dir));
ConfigManager::inst()->setArtworkDir(QDir::fromNativeSeparators(m_artworkDir));
ConfigManager::inst()->setFLDir(QDir::fromNativeSeparators(m_flDir));
ConfigManager::inst()->setLADSPADir(QDir::fromNativeSeparators(m_ladDir));
#ifdef LMMS_HAVE_FLUIDSYNTH
ConfigManager::inst()->setDefaultSoundfont( m_defaultSoundfont );
#endif
#ifdef LMMS_HAVE_STK
ConfigManager::inst()->setSTKDir( m_stkDir );
ConfigManager::inst()->setSTKDir(QDir::fromNativeSeparators(m_stkDir));
#endif
ConfigManager::inst()->setBackgroundArtwork( m_backgroundArtwork );

Expand Down

0 comments on commit 8d91dd6

Please sign in to comment.