| @@ -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 | ||||