void StringArray::appendNumbersToDuplicates (bool ignoreCase, bool appendNumberToFirstInstance, CharPointer_UTF8 preNumberString, CharPointer_UTF8 postNumberString) { if (preNumberString.getAddress() == nullptr) preNumberString = CharPointer_UTF8 (" ("); if (postNumberString.getAddress() == nullptr) postNumberString = CharPointer_UTF8 (")"); for (int i = 0; i < size() - 1; ++i) { auto& s = strings.getReference(i); auto nextIndex = indexOf (s, ignoreCase, i + 1); if (nextIndex >= 0) { auto original = s; int number = 0; if (appendNumberToFirstInstance) s = original + String (preNumberString) + String (++number) + String (postNumberString); else ++number; while (nextIndex >= 0) { set (nextIndex, (*this)[nextIndex] + String (preNumberString) + String (++number) + String (postNumberString)); nextIndex = indexOf (original, ignoreCase, nextIndex + 1); } } } }
void MessageCenter::process(AudioSampleBuffer& buffer, MidiBuffer& eventBuffer) { softTimestamp = Time::getHighResolutionTicks() - lastTime; setTimestamp(eventBuffer,getTimestamp()); if (needsToSendTimestampMessage) { String eventString = "Software time: " + String(getTimestamp(true)) + "@" + String(Time::getHighResolutionTicksPerSecond()) + "Hz"; CharPointer_UTF8 data = eventString.toUTF8(); addEvent(eventBuffer, MESSAGE, 0, 0, 0, data.length() + 1, //It doesn't hurt to send the end-string null and can help avoid issues (uint8*)data.getAddress()); needsToSendTimestampMessage = false; } if (newEventAvailable) { //int numBytes = 0; String eventString = messageCenterEditor->getLabelString(); CharPointer_UTF8 data = eventString.toUTF8(); addEvent(eventBuffer, MESSAGE, 0, 0, 0, data.length()+1, //It doesn't hurt to send the end-string null and can help avoid issues (uint8*) data.getAddress()); newEventAvailable = false; } }
void StringArray::appendNumbersToDuplicates (const bool ignoreCase, const bool appendNumberToFirstInstance, CharPointer_UTF8 preNumberString, CharPointer_UTF8 postNumberString) { CharPointer_UTF8 defaultPre (" ("), defaultPost (")"); if (preNumberString.getAddress() == nullptr) preNumberString = defaultPre; if (postNumberString.getAddress() == nullptr) postNumberString = defaultPost; for (int i = 0; i < size() - 1; ++i) { String& s = strings.getReference(i); int nextIndex = indexOf (s, ignoreCase, i + 1); if (nextIndex >= 0) { const String original (s); int number = 0; if (appendNumberToFirstInstance) s = original + String (preNumberString) + String (++number) + String (postNumberString); else ++number; while (nextIndex >= 0) { set (nextIndex, (*this)[nextIndex] + String (preNumberString) + String (++number) + String (postNumberString)); nextIndex = indexOf (original, ignoreCase, nextIndex + 1); } } } }
String EncryptedString::encrypt (const String& stringToEncrypt, const String& publicKey, bool resultAsHex) { RSAKey rsaKey (publicKey); CharPointer_UTF8 stringPointer (stringToEncrypt.toUTF8()); MemoryBlock stringMemoryBlock (stringPointer.getAddress(), stringPointer.sizeInBytes()); BigInteger stringAsData; stringAsData.loadFromMemoryBlock (stringMemoryBlock); rsaKey.applyToValue (stringAsData); if (resultAsHex) { MemoryBlock encryptedMemoryBlock (stringAsData.toMemoryBlock()); return String::toHexString ((char*) encryptedMemoryBlock.getData(), (int) encryptedMemoryBlock.getSize(), 0); } else { return stringAsData.toMemoryBlock().toBase64Encoding(); } }