@@ -10,11 +10,11 @@ | |||||
pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0" | pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0" | ||||
pluginSilenceInIsSilenceOut="0" pluginTailLength="0" pluginEditorRequiresKeys="0" | pluginSilenceInIsSilenceOut="0" pluginTailLength="0" pluginEditorRequiresKeys="0" | ||||
pluginAUExportPrefix="TheIntrojucerAU" pluginAUViewClass="TheIntrojucerAU_V1" | pluginAUExportPrefix="TheIntrojucerAU" pluginAUViewClass="TheIntrojucerAU_V1" | ||||
pluginRTASCategory="" bundleIdentifier="com.rawmaterialsoftware.introjucer" | |||||
bigIcon="rVgowdy"> | |||||
pluginRTASCategory="" bundleIdentifier="com.rawmaterialsoftware.introjucer"> | |||||
<EXPORTFORMATS> | <EXPORTFORMATS> | ||||
<XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK" | <XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK" | ||||
juceFolder="../.." documentExtensions=".jucer" objCExtraSuffix="zNNCr"> | |||||
juceFolder="../.." documentExtensions=".jucer" objCExtraSuffix="zNNCr" | |||||
bigIcon="rVgowdy"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer" | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer" | ||||
osxSDK="default" osxCompatibility="default" osxArchitecture="default"/> | osxSDK="default" osxCompatibility="default" osxArchitecture="default"/> | ||||
@@ -23,27 +23,31 @@ | |||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</XCODE_MAC> | </XCODE_MAC> | ||||
<VS2005 targetFolder="Builds/VisualStudio2005" vstFolder="c:\SDKs\vstsdk2.4" | <VS2005 targetFolder="Builds/VisualStudio2005" vstFolder="c:\SDKs\vstsdk2.4" | ||||
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1"> | |||||
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1" | |||||
bigIcon="rVgowdy"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer"/> | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer"/> | ||||
<CONFIGURATION name="Release" isDebug="0" optimisation="3" targetName="Introjucer"/> | <CONFIGURATION name="Release" isDebug="0" optimisation="3" targetName="Introjucer"/> | ||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</VS2005> | </VS2005> | ||||
<VS2008 targetFolder="Builds/VisualStudio2008" vstFolder="c:\SDKs\vstsdk2.4" | <VS2008 targetFolder="Builds/VisualStudio2008" vstFolder="c:\SDKs\vstsdk2.4" | ||||
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1"> | |||||
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../.." libraryType="1" | |||||
bigIcon="rVgowdy"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer"/> | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer"/> | ||||
<CONFIGURATION name="Release" isDebug="0" optimisation="3" targetName="Introjucer"/> | <CONFIGURATION name="Release" isDebug="0" optimisation="3" targetName="Introjucer"/> | ||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</VS2008> | </VS2008> | ||||
<LINUX_MAKE targetFolder="Builds/Linux" vstFolder="~/SDKs/vstsdk2.4" juceFolder="../.."> | |||||
<LINUX_MAKE targetFolder="Builds/Linux" vstFolder="~/SDKs/vstsdk2.4" juceFolder="../.." | |||||
bigIcon="rVgowdy"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer"/> | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer"/> | ||||
<CONFIGURATION name="Release" isDebug="0" optimisation="3" targetName="Introjucer"/> | <CONFIGURATION name="Release" isDebug="0" optimisation="3" targetName="Introjucer"/> | ||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</LINUX_MAKE> | </LINUX_MAKE> | ||||
<VS2010 targetFolder="Builds/VisualStudio2010" vstFolder="c:\SDKs\vstsdk2.4" | <VS2010 targetFolder="Builds/VisualStudio2010" vstFolder="c:\SDKs\vstsdk2.4" | ||||
rtasFolder="c:\SDKs\PT_80_SDK" libraryType="1" juceFolder="../.."> | |||||
rtasFolder="c:\SDKs\PT_80_SDK" libraryType="1" juceFolder="../.." | |||||
bigIcon="rVgowdy"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer"/> | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Introjucer"/> | ||||
<CONFIGURATION name="Release" isDebug="0" optimisation="3" targetName="Introjucer"/> | <CONFIGURATION name="Release" isDebug="0" optimisation="3" targetName="Introjucer"/> | ||||
@@ -388,11 +388,11 @@ private: | |||||
{ | { | ||||
Array<Image> images; | Array<Image> images; | ||||
Image bigIcon (project.getBigIcon()); | |||||
Image bigIcon (getBigIcon()); | |||||
if (bigIcon.isValid()) | if (bigIcon.isValid()) | ||||
images.add (bigIcon); | images.add (bigIcon); | ||||
Image smallIcon (project.getSmallIcon()); | |||||
Image smallIcon (getSmallIcon()); | |||||
if (smallIcon.isValid()) | if (smallIcon.isValid()) | ||||
images.add (smallIcon); | images.add (smallIcon); | ||||
@@ -220,6 +220,31 @@ void ProjectExporter::createPropertyEditors (PropertyListBuilder& props) | |||||
"Extra command-line flags to be passed to the compiler. This string can contain references to preprocessor definitions in the form ${NAME_OF_DEFINITION}, which will be replaced with their values."); | "Extra command-line flags to be passed to the compiler. This string can contain references to preprocessor definitions in the form ${NAME_OF_DEFINITION}, which will be replaced with their values."); | ||||
props.add (new TextPropertyComponent (getExtraLinkerFlags(), "Extra linker flags", 2048, false), | props.add (new TextPropertyComponent (getExtraLinkerFlags(), "Extra linker flags", 2048, false), | ||||
"Extra command-line flags to be passed to the linker. You might want to use this for adding additional libraries. This string can contain references to preprocessor definitions in the form ${NAME_OF_VALUE}, which will be replaced with their values."); | "Extra command-line flags to be passed to the linker. You might want to use this for adding additional libraries. This string can contain references to preprocessor definitions in the form ${NAME_OF_VALUE}, which will be replaced with their values."); | ||||
{ | |||||
OwnedArray<Project::Item> images; | |||||
project.findAllImageItems (images); | |||||
StringArray choices; | |||||
Array<var> ids; | |||||
choices.add ("<None>"); | |||||
ids.add (var::null); | |||||
choices.add (String::empty); | |||||
ids.add (var::null); | |||||
for (int i = 0; i < images.size(); ++i) | |||||
{ | |||||
choices.add (images.getUnchecked(i)->getName().toString()); | |||||
ids.add (images.getUnchecked(i)->getID()); | |||||
} | |||||
props.add (new ChoicePropertyComponent (getSmallIconImageItemID(), "Icon (small)", choices, ids), | |||||
"Sets an icon to use for the executable."); | |||||
props.add (new ChoicePropertyComponent (getBigIconImageItemID(), "Icon (large)", choices, ids), | |||||
"Sets an icon to use for the executable."); | |||||
} | |||||
} | } | ||||
StringPairArray ProjectExporter::getAllPreprocessorDefs (const ProjectExporter::BuildConfiguration& config) const | StringPairArray ProjectExporter::getAllPreprocessorDefs (const ProjectExporter::BuildConfiguration& config) const | ||||
@@ -243,42 +268,6 @@ String ProjectExporter::replacePreprocessorTokens (const ProjectExporter::BuildC | |||||
return replacePreprocessorDefs (getAllPreprocessorDefs (config), sourceString); | return replacePreprocessorDefs (getAllPreprocessorDefs (config), sourceString); | ||||
} | } | ||||
Image ProjectExporter::getBestIconForSize (int size, bool returnNullIfNothingBigEnough) | |||||
{ | |||||
Image im; | |||||
const Image im1 (project.getSmallIcon()); | |||||
const Image im2 (project.getBigIcon()); | |||||
if (im1.isValid() && im2.isValid()) | |||||
{ | |||||
if (im1.getWidth() >= size && im2.getWidth() >= size) | |||||
im = im1.getWidth() < im2.getWidth() ? im1 : im2; | |||||
else if (im1.getWidth() >= size) | |||||
im = im1; | |||||
else if (im2.getWidth() >= size) | |||||
im = im2; | |||||
else | |||||
return Image::null; | |||||
} | |||||
else | |||||
{ | |||||
im = im1.isValid() ? im1 : im2; | |||||
} | |||||
if (size == im.getWidth() && size == im.getHeight()) | |||||
return im; | |||||
if (returnNullIfNothingBigEnough && im.getWidth() < size && im.getHeight() < size) | |||||
return Image::null; | |||||
Image newIm (Image::ARGB, size, size, true, SoftwareImageType()); | |||||
Graphics g (newIm); | |||||
g.drawImageWithin (im, 0, 0, size, size, | |||||
RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, false); | |||||
return newIm; | |||||
} | |||||
Project::Item& ProjectExporter::getModulesGroup() | Project::Item& ProjectExporter::getModulesGroup() | ||||
{ | { | ||||
if (modulesGroup == nullptr) | if (modulesGroup == nullptr) | ||||
@@ -389,6 +378,52 @@ void ProjectExporter::createDefaultConfigs() | |||||
} | } | ||||
} | } | ||||
Image ProjectExporter::getBigIcon() | |||||
{ | |||||
return project.getMainGroup().findItemWithID (getBigIconImageItemID().toString()).loadAsImageFile(); | |||||
} | |||||
Image ProjectExporter::getSmallIcon() | |||||
{ | |||||
return project.getMainGroup().findItemWithID (getSmallIconImageItemID().toString()).loadAsImageFile(); | |||||
} | |||||
Image ProjectExporter::getBestIconForSize (int size, bool returnNullIfNothingBigEnough) | |||||
{ | |||||
Image im; | |||||
const Image im1 (getSmallIcon()); | |||||
const Image im2 (getBigIcon()); | |||||
if (im1.isValid() && im2.isValid()) | |||||
{ | |||||
if (im1.getWidth() >= size && im2.getWidth() >= size) | |||||
im = im1.getWidth() < im2.getWidth() ? im1 : im2; | |||||
else if (im1.getWidth() >= size) | |||||
im = im1; | |||||
else if (im2.getWidth() >= size) | |||||
im = im2; | |||||
else | |||||
return Image::null; | |||||
} | |||||
else | |||||
{ | |||||
im = im1.isValid() ? im1 : im2; | |||||
} | |||||
if (size == im.getWidth() && size == im.getHeight()) | |||||
return im; | |||||
if (returnNullIfNothingBigEnough && im.getWidth() < size && im.getHeight() < size) | |||||
return Image::null; | |||||
Image newIm (Image::ARGB, size, size, true, SoftwareImageType()); | |||||
Graphics g (newIm); | |||||
g.drawImageWithin (im, 0, 0, size, size, | |||||
RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, false); | |||||
return newIm; | |||||
} | |||||
//============================================================================== | //============================================================================== | ||||
ProjectExporter::ConfigIterator::ConfigIterator (ProjectExporter& exporter_) | ProjectExporter::ConfigIterator::ConfigIterator (ProjectExporter& exporter_) | ||||
: index (-1), exporter (exporter_) | : index (-1), exporter (exporter_) | ||||
@@ -86,6 +86,12 @@ public: | |||||
RelativePath rebaseFromProjectFolderToBuildTarget (const RelativePath& path) const; | RelativePath rebaseFromProjectFolderToBuildTarget (const RelativePath& path) const; | ||||
void addToExtraSearchPaths (const RelativePath& pathFromProjectFolder); | void addToExtraSearchPaths (const RelativePath& pathFromProjectFolder); | ||||
Value getBigIconImageItemID() const { return getSetting (Ids::bigIcon); } | |||||
Value getSmallIconImageItemID() const { return getSetting (Ids::smallIcon); } | |||||
Image getBigIcon(); | |||||
Image getSmallIcon(); | |||||
Image getBestIconForSize (int size, bool returnNullIfNothingBigEnough); | |||||
String getExporterIdentifierMacro() const | String getExporterIdentifierMacro() const | ||||
{ | { | ||||
return "JUCER_" + settings.getType().toString() + "_" | return "JUCER_" + settings.getType().toString() + "_" | ||||
@@ -247,8 +253,6 @@ protected: | |||||
return name; | return name; | ||||
} | } | ||||
Image getBestIconForSize (int size, bool returnNullIfNothingBigEnough); | |||||
//============================================================================== | //============================================================================== | ||||
static void overwriteFileIfDifferentOrThrow (const File& file, const MemoryOutputStream& newData) | static void overwriteFileIfDifferentOrThrow (const File& file, const MemoryOutputStream& newData) | ||||
{ | { | ||||
@@ -111,6 +111,8 @@ void Project::setMissingDefaultValues() | |||||
getVersion() = "1.0.0"; | getVersion() = "1.0.0"; | ||||
updateOldStyleConfigList(); | updateOldStyleConfigList(); | ||||
moveOldPropertyFromProjectToAllExporters (Ids::bigIcon); | |||||
moveOldPropertyFromProjectToAllExporters (Ids::smallIcon); | |||||
for (Project::ExporterIterator exporter (*this); exporter.next();) | for (Project::ExporterIterator exporter (*this); exporter.next();) | ||||
if (exporter->getNumConfigurations() == 0) | if (exporter->getNumConfigurations() == 0) | ||||
@@ -160,6 +162,17 @@ void Project::updateOldStyleConfigList() | |||||
} | } | ||||
} | } | ||||
void Project::moveOldPropertyFromProjectToAllExporters (Identifier name) | |||||
{ | |||||
if (projectRoot.hasProperty (name)) | |||||
{ | |||||
for (Project::ExporterIterator exporter (*this); exporter.next();) | |||||
exporter->settings.setProperty (name, projectRoot [name], nullptr); | |||||
projectRoot.removeProperty (name, nullptr); | |||||
} | |||||
} | |||||
void Project::addDefaultModules (bool shouldCopyFilesLocally) | void Project::addDefaultModules (bool shouldCopyFilesLocally) | ||||
{ | { | ||||
addModule ("juce_core", shouldCopyFilesLocally); | addModule ("juce_core", shouldCopyFilesLocally); | ||||
@@ -337,32 +350,7 @@ void Project::createPropertyEditors (PropertyListBuilder& props) | |||||
props.add (new TextPropertyComponent (getBundleIdentifier(), "Bundle Identifier", 256, false), | props.add (new TextPropertyComponent (getBundleIdentifier(), "Bundle Identifier", 256, false), | ||||
"A unique identifier for this product, mainly for use in Mac builds. It should be something like 'com.yourcompanyname.yourproductname'"); | "A unique identifier for this product, mainly for use in Mac builds. It should be something like 'com.yourcompanyname.yourproductname'"); | ||||
{ | |||||
OwnedArray<Project::Item> images; | |||||
findAllImageItems (images); | |||||
StringArray choices; | |||||
Array<var> ids; | |||||
choices.add ("<None>"); | |||||
ids.add (var::null); | |||||
choices.add (String::empty); | |||||
ids.add (var::null); | |||||
for (int i = 0; i < images.size(); ++i) | |||||
{ | |||||
choices.add (images.getUnchecked(i)->getName().toString()); | |||||
ids.add (images.getUnchecked(i)->getID()); | |||||
} | |||||
props.add (new ChoicePropertyComponent (getSmallIconImageItemID(), "Icon (small)", choices, ids), | |||||
"Sets an icon to use for the executable."); | |||||
props.add (new ChoicePropertyComponent (getBigIconImageItemID(), "Icon (large)", choices, ids), | |||||
"Sets an icon to use for the executable."); | |||||
} | |||||
getProjectType().createPropertyEditors(*this, props); | |||||
getProjectType().createPropertyEditors (*this, props); | |||||
props.add (new TextPropertyComponent (getProjectPreprocessorDefs(), "Preprocessor definitions", 32768, false), | props.add (new TextPropertyComponent (getProjectPreprocessorDefs(), "Preprocessor definitions", 32768, false), | ||||
"Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash."); | "Extra preprocessor definitions. Use the form \"NAME1=value NAME2=value\", using whitespace or commas to separate the items - to include a space or comma in a definition, precede it with a backslash."); | ||||
@@ -385,16 +373,6 @@ String Project::getVersionAsHex() const | |||||
return "0x" + String::toHexString (value); | return "0x" + String::toHexString (value); | ||||
} | } | ||||
Image Project::getBigIcon() | |||||
{ | |||||
return getMainGroup().findItemWithID (getBigIconImageItemID().toString()).loadAsImageFile(); | |||||
} | |||||
Image Project::getSmallIcon() | |||||
{ | |||||
return getMainGroup().findItemWithID (getSmallIconImageItemID().toString()).loadAsImageFile(); | |||||
} | |||||
StringPairArray Project::getPreprocessorDefs() const | StringPairArray Project::getPreprocessorDefs() const | ||||
{ | { | ||||
return parsePreprocessorDefs (getProjectPreprocessorDefs().toString()); | return parsePreprocessorDefs (getProjectPreprocessorDefs().toString()); | ||||
@@ -87,11 +87,6 @@ public: | |||||
Value getProjectPreprocessorDefs() const { return getProjectValue (Ids::defines); } | Value getProjectPreprocessorDefs() const { return getProjectValue (Ids::defines); } | ||||
StringPairArray getPreprocessorDefs() const; | StringPairArray getPreprocessorDefs() const; | ||||
Value getBigIconImageItemID() const { return getProjectValue ("bigIcon"); } | |||||
Value getSmallIconImageItemID() const { return getProjectValue ("smallIcon"); } | |||||
Image getBigIcon(); | |||||
Image getSmallIcon(); | |||||
//============================================================================== | //============================================================================== | ||||
File getAppIncludeFile() const { return getGeneratedCodeFolder().getChildFile (getJuceSourceHFilename()); } | File getAppIncludeFile() const { return getGeneratedCodeFolder().getChildFile (getJuceSourceHFilename()); } | ||||
File getGeneratedCodeFolder() const { return getFile().getSiblingFile ("JuceLibraryCode"); } | File getGeneratedCodeFolder() const { return getFile().getSiblingFile ("JuceLibraryCode"); } | ||||
@@ -268,6 +263,7 @@ private: | |||||
ValueTree getModulesNode(); | ValueTree getModulesNode(); | ||||
void updateOldStyleConfigList(); | void updateOldStyleConfigList(); | ||||
void moveOldPropertyFromProjectToAllExporters (Identifier name); | |||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Project); | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Project); | ||||
}; | }; | ||||
@@ -64,6 +64,8 @@ namespace Ids | |||||
DECLARE_ID (osxArchitecture); | DECLARE_ID (osxArchitecture); | ||||
DECLARE_ID (winArchitecture); | DECLARE_ID (winArchitecture); | ||||
DECLARE_ID (winWarningLevel); | DECLARE_ID (winWarningLevel); | ||||
DECLARE_ID (bigIcon); | |||||
DECLARE_ID (smallIcon); | |||||
DECLARE_ID (jucerVersion); | DECLARE_ID (jucerVersion); | ||||
DECLARE_ID (projectType); | DECLARE_ID (projectType); | ||||
DECLARE_ID (prebuildCommand); | DECLARE_ID (prebuildCommand); | ||||
@@ -7,11 +7,10 @@ | |||||
pluginCode="Abcd" pluginChannelConfigs="{ {1, 1}, {2, 2} }" pluginIsSynth="0" | pluginCode="Abcd" pluginChannelConfigs="{ {1, 1}, {2, 2} }" pluginIsSynth="0" | ||||
pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="0" | pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="0" | ||||
pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="JuceDemoAU" | pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="JuceDemoAU" | ||||
pluginAUViewClass="JuceDemoAU_V1" pluginRTASCategory="" icon="Duj062Top" | |||||
bigIcon="f4hwldS"> | |||||
pluginAUViewClass="JuceDemoAU_V1" pluginRTASCategory="" icon="Duj062Top"> | |||||
<EXPORTFORMATS> | <EXPORTFORMATS> | ||||
<XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK" | <XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK" | ||||
juceFolder="../../../juce" objCExtraSuffix="JSLvvV6j"> | |||||
juceFolder="../../../juce" objCExtraSuffix="JSLvvV6j" bigIcon="f4hwldS"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | ||||
osxSDK="default" osxCompatibility="default" defines="JUCE_UNIT_TESTS=1" | osxSDK="default" osxCompatibility="default" defines="JUCE_UNIT_TESTS=1" | ||||
@@ -22,7 +21,7 @@ | |||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</XCODE_MAC> | </XCODE_MAC> | ||||
<XCODE_IPHONE targetFolder="Builds/iOS" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK" | <XCODE_IPHONE targetFolder="Builds/iOS" vstFolder="~/SDKs/vstsdk2.4" rtasFolder="~/SDKs/PT_80_SDK" | ||||
juceFolder="../../../juce" objCExtraSuffix="JSLvvV6j"> | |||||
juceFolder="../../../juce" objCExtraSuffix="JSLvvV6j" bigIcon="f4hwldS"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | ||||
osxSDK="default" osxCompatibility="default" defines="JUCE_UNIT_TESTS=1" | osxSDK="default" osxCompatibility="default" defines="JUCE_UNIT_TESTS=1" | ||||
@@ -33,7 +32,8 @@ | |||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</XCODE_IPHONE> | </XCODE_IPHONE> | ||||
<VS2005 targetFolder="Builds/VisualStudio2005" vstFolder="c:\SDKs\vstsdk2.4" | <VS2005 targetFolder="Builds/VisualStudio2005" vstFolder="c:\SDKs\vstsdk2.4" | ||||
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../../../juce" libraryType="1"> | |||||
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../../../juce" libraryType="1" | |||||
bigIcon="f4hwldS"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | ||||
defines="JUCE_UNIT_TESTS=1"/> | defines="JUCE_UNIT_TESTS=1"/> | ||||
@@ -42,7 +42,8 @@ | |||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</VS2005> | </VS2005> | ||||
<VS2008 targetFolder="Builds/VisualStudio2008" vstFolder="c:\SDKs\vstsdk2.4" | <VS2008 targetFolder="Builds/VisualStudio2008" vstFolder="c:\SDKs\vstsdk2.4" | ||||
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../../../juce" libraryType="1"> | |||||
rtasFolder="c:\SDKs\PT_80_SDK" juceFolder="../../../juce" libraryType="1" | |||||
bigIcon="f4hwldS"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | ||||
defines="JUCE_UNIT_TESTS=1"/> | defines="JUCE_UNIT_TESTS=1"/> | ||||
@@ -50,7 +51,8 @@ | |||||
defines="JUCE_UNIT_TESTS=1"/> | defines="JUCE_UNIT_TESTS=1"/> | ||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</VS2008> | </VS2008> | ||||
<LINUX_MAKE targetFolder="Builds/Linux" vstFolder="~/SDKs/vstsdk2.4" juceFolder="../../../juce"> | |||||
<LINUX_MAKE targetFolder="Builds/Linux" vstFolder="~/SDKs/vstsdk2.4" juceFolder="../../../juce" | |||||
bigIcon="f4hwldS"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | ||||
defines="JUCE_UNIT_TESTS=1"/> | defines="JUCE_UNIT_TESTS=1"/> | ||||
@@ -59,7 +61,8 @@ | |||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</LINUX_MAKE> | </LINUX_MAKE> | ||||
<VS2010 targetFolder="Builds/VisualStudio2010" vstFolder="c:\SDKs\vstsdk2.4" | <VS2010 targetFolder="Builds/VisualStudio2010" vstFolder="c:\SDKs\vstsdk2.4" | ||||
rtasFolder="c:\SDKs\PT_80_SDK" libraryType="1" juceFolder="../../../juce"> | |||||
rtasFolder="c:\SDKs\PT_80_SDK" libraryType="1" juceFolder="../../../juce" | |||||
bigIcon="f4hwldS"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | ||||
defines="JUCE_UNIT_TESTS=1" winArchitecture="32-bit"/> | defines="JUCE_UNIT_TESTS=1" winArchitecture="32-bit"/> | ||||
@@ -69,7 +72,7 @@ | |||||
</VS2010> | </VS2010> | ||||
<ANDROID targetFolder="Builds/Android" androidSDKPath="${user.home}/SDKs/android-sdk-macosx" | <ANDROID targetFolder="Builds/Android" androidSDKPath="${user.home}/SDKs/android-sdk-macosx" | ||||
androidNDKPath="${user.home}/SDKs/android-ndk-r7" juceFolder="../../../juce" | androidNDKPath="${user.home}/SDKs/android-ndk-r7" juceFolder="../../../juce" | ||||
androidInternetNeeded="1"> | |||||
androidInternetNeeded="1" bigIcon="f4hwldS"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="JuceDemo" | ||||
defines="JUCE_UNIT_TESTS=1"/> | defines="JUCE_UNIT_TESTS=1"/> | ||||
@@ -1,28 +1,30 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||
<JUCERPROJECT id="Uy86Nk" name="Jucer" projectType="guiapp" version="1.0.0" | <JUCERPROJECT id="Uy86Nk" name="Jucer" projectType="guiapp" version="1.0.0" | ||||
bundleIdentifier="com.yourcompany.Jucer" jucerVersion="3.0.0" | |||||
bigIcon="HFdB13"> | |||||
bundleIdentifier="com.yourcompany.Jucer" jucerVersion="3.0.0"> | |||||
<EXPORTFORMATS> | <EXPORTFORMATS> | ||||
<XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="wQBvzo" juceFolder="../.."> | |||||
<XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="wQBvzo" juceFolder="../.." | |||||
bigIcon="HFdB13"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Jucer"/> | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Jucer"/> | ||||
<CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="Jucer"/> | <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="Jucer"/> | ||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</XCODE_MAC> | </XCODE_MAC> | ||||
<VS2008 targetFolder="Builds/VisualStudio2008" libraryType="1" juceFolder="../.."> | |||||
<VS2008 targetFolder="Builds/VisualStudio2008" libraryType="1" juceFolder="../.." | |||||
bigIcon="HFdB13"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Jucer"/> | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Jucer"/> | ||||
<CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="Jucer"/> | <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="Jucer"/> | ||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</VS2008> | </VS2008> | ||||
<VS2010 targetFolder="Builds/VisualStudio2010" libraryType="1" juceFolder="../.."> | |||||
<VS2010 targetFolder="Builds/VisualStudio2010" libraryType="1" juceFolder="../.." | |||||
bigIcon="HFdB13"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Jucer"/> | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Jucer"/> | ||||
<CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="Jucer"/> | <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="Jucer"/> | ||||
</CONFIGURATIONS> | </CONFIGURATIONS> | ||||
</VS2010> | </VS2010> | ||||
<LINUX_MAKE targetFolder="Builds/Linux" juceFolder="../.."> | |||||
<LINUX_MAKE targetFolder="Builds/Linux" juceFolder="../.." bigIcon="HFdB13"> | |||||
<CONFIGURATIONS> | <CONFIGURATIONS> | ||||
<CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Jucer"/> | <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="Jucer"/> | ||||
<CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="Jucer"/> | <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="Jucer"/> | ||||
@@ -1009,6 +1009,12 @@ ValueTree ValueTree::readFromData (const void* const data, const size_t numBytes | |||||
return readFromStream (in); | return readFromStream (in); | ||||
} | } | ||||
ValueTree ValueTree::readFromGZIPData (const void* const data, const size_t numBytes) | |||||
{ | |||||
MemoryInputStream in (data, numBytes, false); | |||||
GZIPDecompressorInputStream gzipStream (in); | |||||
return readFromStream (gzipStream); | |||||
} | |||||
//============================================================================== | //============================================================================== | ||||
#if JUCE_UNIT_TESTS | #if JUCE_UNIT_TESTS | ||||
@@ -345,6 +345,11 @@ public: | |||||
/** Reloads a tree from a data block that was written with writeToStream(). */ | /** Reloads a tree from a data block that was written with writeToStream(). */ | ||||
static ValueTree readFromData (const void* data, size_t numBytes); | static ValueTree readFromData (const void* data, size_t numBytes); | ||||
/** Reloads a tree from a data block that was written with writeToStream() and | |||||
then zipped using GZIPCompressorOutputStream. | |||||
*/ | |||||
static ValueTree readFromGZIPData (const void* data, size_t numBytes); | |||||
//============================================================================== | //============================================================================== | ||||
/** Listener class for events that happen to a ValueTree. | /** Listener class for events that happen to a ValueTree. | ||||