bool ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, int& i) { const int maxFileSize = 10 * 1024 * 1024; const bool isFirstFile = (i == 0); cpp << "/* ==================================== " << resourceFileIdentifierString << " ====================================" << getComment() << "namespace " << className << newLine << "{" << newLine; bool containsAnyImages = false; while (i < files.size()) { const File& file = files.getReference(i); const String variableName (variableNames[i]); FileInputStream fileStream (file); if (fileStream.openedOk()) { containsAnyImages = containsAnyImages || (ImageFileFormat::findImageFormatForStream (fileStream) != nullptr); const String tempVariable ("temp_" + String::toHexString (file.hashCode())); cpp << newLine << "//================== " << file.getFileName() << " ==================" << newLine << "static const unsigned char " << tempVariable << "[] =" << newLine; { MemoryBlock data; fileStream.readIntoMemoryBlock (data); CodeHelpers::writeDataAsCppLiteral (data, cpp, true, true); } cpp << newLine << newLine << "const char* " << variableName << " = (const char*) " << tempVariable << ";" << newLine; } ++i; if (cpp.getPosition() > maxFileSize) break; } if (isFirstFile) { if (i < files.size()) { cpp << newLine << "}" << newLine << newLine << "#include \"" << headerFile.getFileName() << "\"" << newLine << newLine << "namespace " << className << newLine << "{"; } cpp << newLine << newLine << "const char* getNamedResource (const char*, int&) throw();" << newLine << "const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw()" << newLine << "{" << newLine; StringArray returnCodes; for (int j = 0; j < files.size(); ++j) { const File& file = files.getReference(j); const int64 dataSize = file.getSize(); returnCodes.add ("numBytes = " + String (dataSize) + "; return " + variableNames[j] + ";"); } CodeHelpers::createStringMatcher (cpp, "resourceNameUTF8", variableNames, returnCodes, 4); cpp << " numBytes = 0;" << newLine << " return 0;" << newLine << "}" << newLine; } cpp << newLine << "}" << newLine; return true; }