@@ -3,8 +3,9 @@ | |||||
IMPORTANT! This file is auto-generated each time you save your | IMPORTANT! This file is auto-generated each time you save your | ||||
project - if you alter its contents, your changes may be overwritten! | project - if you alter its contents, your changes may be overwritten! | ||||
If you want to change any of these values, use the Introjucer to do so, | |||||
rather than editing this file directly! | |||||
There's a section below where you can add your own custom code safely, and the | |||||
Introjucer will preserve the contents of that block, but the best way to change | |||||
any of these definitions is by using the Introjucer's project settings. | |||||
Any commented-out settings will assume their default values. | Any commented-out settings will assume their default values. | ||||
@@ -13,6 +14,13 @@ | |||||
#ifndef __JUCE_APPCONFIG_M70QFTRRK__ | #ifndef __JUCE_APPCONFIG_M70QFTRRK__ | ||||
#define __JUCE_APPCONFIG_M70QFTRRK__ | #define __JUCE_APPCONFIG_M70QFTRRK__ | ||||
//============================================================================== | |||||
// [BEGIN_USER_CODE_SECTION] | |||||
// (You can add your own code in this section, and the Introjucer will not overwrite it) | |||||
// [END_USER_CODE_SECTION] | |||||
//============================================================================== | //============================================================================== | ||||
#define JUCE_MODULE_AVAILABLE_juce_core 1 | #define JUCE_MODULE_AVAILABLE_juce_core 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_cryptography 1 | #define JUCE_MODULE_AVAILABLE_juce_cryptography 1 | ||||
@@ -74,6 +74,8 @@ public: | |||||
return thread.result; | return thread.result; | ||||
} | } | ||||
const String appConfigUserContent (loadUserContentFromAppConfig()); | |||||
if (generatedCodeFolder.exists()) | if (generatedCodeFolder.exists()) | ||||
deleteNonHiddenFilesIn (generatedCodeFolder); | deleteNonHiddenFilesIn (generatedCodeFolder); | ||||
@@ -91,7 +93,7 @@ public: | |||||
} | } | ||||
if (errors.size() == 0) | if (errors.size() == 0) | ||||
writeAppConfigFile (modules); | |||||
writeAppConfigFile (modules, appConfigUserContent); | |||||
if (errors.size() == 0) | if (errors.size() == 0) | ||||
writeBinaryDataFiles(); | writeBinaryDataFiles(); | ||||
@@ -103,7 +105,7 @@ public: | |||||
writeProjects (modules); | writeProjects (modules); | ||||
if (errors.size() == 0) | if (errors.size() == 0) | ||||
writeAppConfigFile (modules); // (this is repeated in case the projects added anything to it) | |||||
writeAppConfigFile (modules, appConfigUserContent); // (this is repeated in case the projects added anything to it) | |||||
if (generatedCodeFolder.exists() && errors.size() == 0) | if (generatedCodeFolder.exists() && errors.size() == 0) | ||||
writeReadmeFile(); | writeReadmeFile(); | ||||
@@ -258,11 +260,42 @@ private: | |||||
return longest; | return longest; | ||||
} | } | ||||
void writeAppConfig (OutputStream& out, const OwnedArray<LibraryModule>& modules) | |||||
File getAppConfigFile() const { return generatedCodeFolder.getChildFile (project.getAppConfigFilename()); } | |||||
String loadUserContentFromAppConfig() const | |||||
{ | |||||
StringArray lines, userContent; | |||||
lines.addLines (getAppConfigFile().loadFileAsString()); | |||||
bool foundCodeSection = false; | |||||
for (int i = 0; i < lines.size(); ++i) | |||||
{ | |||||
if (lines[i].contains ("[BEGIN_USER_CODE_SECTION]")) | |||||
{ | |||||
for (int j = i + 1; j < lines.size() && ! lines[j].contains ("[END_USER_CODE_SECTION]"); ++j) | |||||
userContent.add (lines[j]); | |||||
foundCodeSection = true; | |||||
break; | |||||
} | |||||
} | |||||
if (! foundCodeSection) | |||||
{ | |||||
userContent.add (String::empty); | |||||
userContent.add ("// (You can add your own code in this section, and the Introjucer will not overwrite it)"); | |||||
userContent.add (String::empty); | |||||
} | |||||
return userContent.joinIntoString (newLine) + newLine; | |||||
} | |||||
void writeAppConfig (OutputStream& out, const OwnedArray<LibraryModule>& modules, const String& userContent) | |||||
{ | { | ||||
writeAutoGenWarningComment (out); | writeAutoGenWarningComment (out); | ||||
out << " If you want to change any of these values, use the Introjucer to do so," << newLine | |||||
<< " rather than editing this file directly!" << newLine | |||||
out << " There's a section below where you can add your own custom code safely, and the" << newLine | |||||
<< " Introjucer will preserve the contents of that block, but the best way to change" << newLine | |||||
<< " any of these definitions is by using the Introjucer's project settings." << newLine | |||||
<< newLine | << newLine | ||||
<< " Any commented-out settings will assume their default values." << newLine | << " Any commented-out settings will assume their default values." << newLine | ||||
<< newLine | << newLine | ||||
@@ -273,6 +306,11 @@ private: | |||||
out << "#ifndef " << headerGuard << newLine | out << "#ifndef " << headerGuard << newLine | ||||
<< "#define " << headerGuard << newLine | << "#define " << headerGuard << newLine | ||||
<< newLine | << newLine | ||||
<< "//==============================================================================" << newLine | |||||
<< "// [BEGIN_USER_CODE_SECTION]" << newLine | |||||
<< userContent | |||||
<< "// [END_USER_CODE_SECTION]" << newLine | |||||
<< newLine | |||||
<< "//==============================================================================" << newLine; | << "//==============================================================================" << newLine; | ||||
const int longestName = findLongestModuleName (modules); | const int longestName = findLongestModuleName (modules); | ||||
@@ -328,12 +366,12 @@ private: | |||||
<< "#endif // " << headerGuard << newLine; | << "#endif // " << headerGuard << newLine; | ||||
} | } | ||||
void writeAppConfigFile (const OwnedArray<LibraryModule>& modules) | |||||
void writeAppConfigFile (const OwnedArray<LibraryModule>& modules, const String& userContent) | |||||
{ | { | ||||
appConfigFile = generatedCodeFolder.getChildFile (project.getAppConfigFilename()); | |||||
appConfigFile = getAppConfigFile(); | |||||
MemoryOutputStream mem; | MemoryOutputStream mem; | ||||
writeAppConfig (mem, modules); | |||||
writeAppConfig (mem, modules, userContent); | |||||
saveGeneratedFile (project.getAppConfigFilename(), mem); | saveGeneratedFile (project.getAppConfigFilename(), mem); | ||||
} | } | ||||
@@ -3,8 +3,9 @@ | |||||
IMPORTANT! This file is auto-generated each time you save your | IMPORTANT! This file is auto-generated each time you save your | ||||
project - if you alter its contents, your changes may be overwritten! | project - if you alter its contents, your changes may be overwritten! | ||||
If you want to change any of these values, use the Introjucer to do so, | |||||
rather than editing this file directly! | |||||
There's a section below where you can add your own custom code safely, and the | |||||
Introjucer will preserve the contents of that block, but the best way to change | |||||
any of these definitions is by using the Introjucer's project settings. | |||||
Any commented-out settings will assume their default values. | Any commented-out settings will assume their default values. | ||||
@@ -13,6 +14,13 @@ | |||||
#ifndef __JUCE_APPCONFIG_SLVVV6J__ | #ifndef __JUCE_APPCONFIG_SLVVV6J__ | ||||
#define __JUCE_APPCONFIG_SLVVV6J__ | #define __JUCE_APPCONFIG_SLVVV6J__ | ||||
//============================================================================== | |||||
// [BEGIN_USER_CODE_SECTION] | |||||
// (You can add your own code in this section, and the Introjucer will not overwrite it) | |||||
// [END_USER_CODE_SECTION] | |||||
//============================================================================== | //============================================================================== | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | #define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | #define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | ||||
@@ -3,8 +3,9 @@ | |||||
IMPORTANT! This file is auto-generated each time you save your | IMPORTANT! This file is auto-generated each time you save your | ||||
project - if you alter its contents, your changes may be overwritten! | project - if you alter its contents, your changes may be overwritten! | ||||
If you want to change any of these values, use the Introjucer to do so, | |||||
rather than editing this file directly! | |||||
There's a section below where you can add your own custom code safely, and the | |||||
Introjucer will preserve the contents of that block, but the best way to change | |||||
any of these definitions is by using the Introjucer's project settings. | |||||
Any commented-out settings will assume their default values. | Any commented-out settings will assume their default values. | ||||
@@ -13,6 +14,13 @@ | |||||
#ifndef __JUCE_APPCONFIG_0NRD9LLGO__ | #ifndef __JUCE_APPCONFIG_0NRD9LLGO__ | ||||
#define __JUCE_APPCONFIG_0NRD9LLGO__ | #define __JUCE_APPCONFIG_0NRD9LLGO__ | ||||
//============================================================================== | |||||
// [BEGIN_USER_CODE_SECTION] | |||||
// (You can add your own code in this section, and the Introjucer will not overwrite it) | |||||
// [END_USER_CODE_SECTION] | |||||
//============================================================================== | //============================================================================== | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | #define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | #define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | ||||
@@ -3,8 +3,9 @@ | |||||
IMPORTANT! This file is auto-generated each time you save your | IMPORTANT! This file is auto-generated each time you save your | ||||
project - if you alter its contents, your changes may be overwritten! | project - if you alter its contents, your changes may be overwritten! | ||||
If you want to change any of these values, use the Introjucer to do so, | |||||
rather than editing this file directly! | |||||
There's a section below where you can add your own custom code safely, and the | |||||
Introjucer will preserve the contents of that block, but the best way to change | |||||
any of these definitions is by using the Introjucer's project settings. | |||||
Any commented-out settings will assume their default values. | Any commented-out settings will assume their default values. | ||||
@@ -13,6 +14,13 @@ | |||||
#ifndef __JUCE_APPCONFIG_NTE0XB0IJ__ | #ifndef __JUCE_APPCONFIG_NTE0XB0IJ__ | ||||
#define __JUCE_APPCONFIG_NTE0XB0IJ__ | #define __JUCE_APPCONFIG_NTE0XB0IJ__ | ||||
//============================================================================== | |||||
// [BEGIN_USER_CODE_SECTION] | |||||
// (You can add your own code in this section, and the Introjucer will not overwrite it) | |||||
// [END_USER_CODE_SECTION] | |||||
//============================================================================== | //============================================================================== | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | #define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | #define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | ||||
@@ -3,8 +3,9 @@ | |||||
IMPORTANT! This file is auto-generated each time you save your | IMPORTANT! This file is auto-generated each time you save your | ||||
project - if you alter its contents, your changes may be overwritten! | project - if you alter its contents, your changes may be overwritten! | ||||
If you want to change any of these values, use the Introjucer to do so, | |||||
rather than editing this file directly! | |||||
There's a section below where you can add your own custom code safely, and the | |||||
Introjucer will preserve the contents of that block, but the best way to change | |||||
any of these definitions is by using the Introjucer's project settings. | |||||
Any commented-out settings will assume their default values. | Any commented-out settings will assume their default values. | ||||
@@ -13,6 +14,13 @@ | |||||
#ifndef __JUCE_APPCONFIG_3T6YQETY1__ | #ifndef __JUCE_APPCONFIG_3T6YQETY1__ | ||||
#define __JUCE_APPCONFIG_3T6YQETY1__ | #define __JUCE_APPCONFIG_3T6YQETY1__ | ||||
//============================================================================== | |||||
// [BEGIN_USER_CODE_SECTION] | |||||
// (You can add your own code in this section, and the Introjucer will not overwrite it) | |||||
// [END_USER_CODE_SECTION] | |||||
//============================================================================== | //============================================================================== | ||||
#define JUCE_MODULE_AVAILABLE_juce_core 1 | #define JUCE_MODULE_AVAILABLE_juce_core 1 | ||||
@@ -3,8 +3,9 @@ | |||||
IMPORTANT! This file is auto-generated each time you save your | IMPORTANT! This file is auto-generated each time you save your | ||||
project - if you alter its contents, your changes may be overwritten! | project - if you alter its contents, your changes may be overwritten! | ||||
If you want to change any of these values, use the Introjucer to do so, | |||||
rather than editing this file directly! | |||||
There's a section below where you can add your own custom code safely, and the | |||||
Introjucer will preserve the contents of that block, but the best way to change | |||||
any of these definitions is by using the Introjucer's project settings. | |||||
Any commented-out settings will assume their default values. | Any commented-out settings will assume their default values. | ||||
@@ -13,6 +14,13 @@ | |||||
#ifndef __JUCE_APPCONFIG_TTAKTK1S__ | #ifndef __JUCE_APPCONFIG_TTAKTK1S__ | ||||
#define __JUCE_APPCONFIG_TTAKTK1S__ | #define __JUCE_APPCONFIG_TTAKTK1S__ | ||||
//============================================================================== | |||||
// [BEGIN_USER_CODE_SECTION] | |||||
// (You can add your own code in this section, and the Introjucer will not overwrite it) | |||||
// [END_USER_CODE_SECTION] | |||||
//============================================================================== | //============================================================================== | ||||
#define JUCE_MODULE_AVAILABLE_juce_core 1 | #define JUCE_MODULE_AVAILABLE_juce_core 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | #define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | ||||
@@ -3,8 +3,9 @@ | |||||
IMPORTANT! This file is auto-generated each time you save your | IMPORTANT! This file is auto-generated each time you save your | ||||
project - if you alter its contents, your changes may be overwritten! | project - if you alter its contents, your changes may be overwritten! | ||||
If you want to change any of these values, use the Introjucer to do so, | |||||
rather than editing this file directly! | |||||
There's a section below where you can add your own custom code safely, and the | |||||
Introjucer will preserve the contents of that block, but the best way to change | |||||
any of these definitions is by using the Introjucer's project settings. | |||||
Any commented-out settings will assume their default values. | Any commented-out settings will assume their default values. | ||||
@@ -13,6 +14,13 @@ | |||||
#ifndef __JUCE_APPCONFIG_IVABE4__ | #ifndef __JUCE_APPCONFIG_IVABE4__ | ||||
#define __JUCE_APPCONFIG_IVABE4__ | #define __JUCE_APPCONFIG_IVABE4__ | ||||
//============================================================================== | |||||
// [BEGIN_USER_CODE_SECTION] | |||||
// (You can add your own code in this section, and the Introjucer will not overwrite it) | |||||
// [END_USER_CODE_SECTION] | |||||
//============================================================================== | //============================================================================== | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | #define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | #define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 | ||||
@@ -3,8 +3,9 @@ | |||||
IMPORTANT! This file is auto-generated each time you save your | IMPORTANT! This file is auto-generated each time you save your | ||||
project - if you alter its contents, your changes may be overwritten! | project - if you alter its contents, your changes may be overwritten! | ||||
If you want to change any of these values, use the Introjucer to do so, | |||||
rather than editing this file directly! | |||||
There's a section below where you can add your own custom code safely, and the | |||||
Introjucer will preserve the contents of that block, but the best way to change | |||||
any of these definitions is by using the Introjucer's project settings. | |||||
Any commented-out settings will assume their default values. | Any commented-out settings will assume their default values. | ||||
@@ -13,6 +14,13 @@ | |||||
#ifndef __JUCE_APPCONFIG_UY86NK__ | #ifndef __JUCE_APPCONFIG_UY86NK__ | ||||
#define __JUCE_APPCONFIG_UY86NK__ | #define __JUCE_APPCONFIG_UY86NK__ | ||||
//============================================================================== | |||||
// [BEGIN_USER_CODE_SECTION] | |||||
// (You can add your own code in this section, and the Introjucer will not overwrite it) | |||||
// [END_USER_CODE_SECTION] | |||||
//============================================================================== | //============================================================================== | ||||
#define JUCE_MODULE_AVAILABLE_juce_core 1 | #define JUCE_MODULE_AVAILABLE_juce_core 1 | ||||
#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | #define JUCE_MODULE_AVAILABLE_juce_data_structures 1 | ||||