OpenShot Library | libopenshot-audio
0.2.0
|
41 using CharType = juce_wchar;
44 : data (
const_cast<CharType*
> (rawPointer))
58 data =
const_cast<CharType*
> (text);
64 inline bool operator!= (
CharPointer_UTF32 other)
const noexcept {
return data != other.data; }
65 inline bool operator<= (CharPointer_UTF32 other)
const noexcept {
return data <= other.data; }
66 inline bool operator< (CharPointer_UTF32 other)
const noexcept {
return data < other.data; }
67 inline bool operator>= (CharPointer_UTF32 other)
const noexcept {
return data >= other.data; }
68 inline bool operator> (CharPointer_UTF32 other)
const noexcept {
return data > other.data; }
71 inline CharType*
getAddress() const noexcept {
return data; }
74 inline operator const CharType*()
const noexcept {
return data; }
77 inline bool isEmpty() const noexcept {
return *data == 0; }
80 inline bool isNotEmpty() const noexcept {
return *data != 0; }
83 inline juce_wchar
operator*() const noexcept {
return *data; }
117 inline void operator-= (
int numToSkip) noexcept
123 inline juce_wchar&
operator[] (
int characterIndex)
const noexcept
125 return data [characterIndex];
141 inline void write (juce_wchar charToWrite) noexcept
143 *data++ = charToWrite;
146 inline void replaceChar (juce_wchar newChar) noexcept
160 #if JUCE_NATIVE_WCHAR_IS_UTF32 && ! JUCE_ANDROID
161 return wcslen (data);
187 return sizeof (CharType) * (
length() + 1);
195 return sizeof (CharType);
202 template <
class CharPo
inter>
205 return sizeof (CharType) * text.length();
215 template <
typename CharPo
inter>
226 while ((*data = *s) != 0)
237 template <
typename CharPo
inter>
247 template <
typename CharPo
inter>
254 template <
typename CharPo
inter>
255 int compare (CharPointer other)
const noexcept
260 #if JUCE_NATIVE_WCHAR_IS_UTF32 && ! JUCE_ANDROID
264 return wcscmp (data, other.data);
269 template <
typename CharPo
inter>
276 template <
typename CharPo
inter>
283 template <
typename CharPo
inter>
290 template <
typename CharPo
inter>
291 int indexOf (CharPointer stringToFind)
const noexcept
297 int indexOf (juce_wchar charToFind)
const noexcept
303 if (data[i] == charToFind)
313 int indexOf (juce_wchar charToFind,
bool ignoreCase)
const noexcept
338 int getIntValue32() const noexcept {
return CharacterFunctions::getIntValue <int, CharPointer_UTF32> (*
this); }
340 int64
getIntValue64() const noexcept {
return CharacterFunctions::getIntValue <int64, CharPointer_UTF32> (*
this); }
351 return ((uint32) character) < (uint32) 0x10ffff;
357 maxBytesToRead /= (int)
sizeof (CharType);
359 while (--maxBytesToRead >= 0 && *dataToTest != 0)
int compareIgnoreCase(CharPointer other) const
Compares this string with another one.
bool operator==(CharPointer_UTF32 other) const noexcept
This is a pointer comparison, it doesn't compare the actual text.
static bool isLowerCase(juce_wchar character) noexcept
Checks whether a unicode character is lower-case.
Wraps a pointer to a null-terminated UTF-32 character string, and provides various methods to operate...
bool isLowerCase() const
Returns true if the first character of this string is lower-case.
A simple wrapper around std::atomic.
static bool isLetter(char character) noexcept
Checks whether a character is alphabetic.
bool isUpperCase() const
Returns true if the first character of this string is upper-case.
void writeWithCharLimit(CharPointer src, int maxChars) noexcept
Copies a source string to this pointer, advancing this pointer as it goes.
static int compareUpTo(CharPointerType1 s1, CharPointerType2 s2, int maxChars) noexcept
Compares two null-terminated character strings, up to a given number of characters.
CharPointer_UTF32 atomicSwap(CharPointer_UTF32 newValue)
Atomically swaps this pointer for a new value, returning the previous value.
size_t sizeInBytes() const noexcept
Returns the number of bytes that are used to represent this string.
static size_t getBytesRequiredFor(CharPointer text) noexcept
Returns the number of bytes that would be needed to represent the given string in this encoding forma...
static bool isUpperCase(juce_wchar character) noexcept
Checks whether a unicode character is upper-case.
void writeNull() const noexcept
Writes a null character to this string (leaving the pointer's position unchanged).
CharPointer_UTF32 operator++() noexcept
Moves this pointer along to the next character in the string.
int compareIgnoreCaseUpTo(CharPointer other, int maxChars) const noexcept
Compares this string with another one, up to a specified number of characters.
static int compareIgnoreCaseUpTo(CharPointerType1 s1, CharPointerType2 s2, int maxChars) noexcept
Compares two null-terminated character strings, using a case-independent match.
static void copyWithCharLimit(DestCharPointerType &dest, SrcCharPointerType src, int maxChars) noexcept
Copies characters from one string to another, up to a null terminator or a given maximum number of ch...
juce_wchar toLowerCase() const noexcept
Returns a lower-case version of the first character of this string.
CharPointer_UTF32 findEndOfWhitespace() const noexcept
Returns the first non-whitespace character in the string.
size_t lengthUpTo(CharPointer_UTF32 end) const noexcept
Returns the number of characters in this string, or up to the given end pointer, whichever is lower.
bool isDigit() const
Returns true if the first character of this string is a digit.
static Type findEndOfWhitespace(Type text) noexcept
Returns a pointer to the first non-whitespace character in a string.
CharPointer_UTF32 operator--() noexcept
Moves this pointer to the previous character in the string.
juce_wchar getAndAdvance() noexcept
Returns the character that this pointer is currently pointing to, and then advances the pointer to po...
static int indexOf(CharPointerType1 textToSearch, const CharPointerType2 substringToLookFor) noexcept
Finds the character index of a given substring in another string.
CharType * getAddress() const noexcept
Returns the address that this pointer is pointing to.
static bool isDigit(char character) noexcept
Checks whether a character is a digit.
bool isLetterOrDigit() const
Returns true if the first character of this string is a letter or digit.
static void copyAll(DestCharPointerType &dest, SrcCharPointerType src) noexcept
Copies null-terminated characters from one string to another.
int indexOf(juce_wchar charToFind) const noexcept
Returns the character index of a unicode character, or -1 if it isn't found.
juce_wchar & operator[](int characterIndex) const noexcept
Returns the character at a given character index from the start of the string.
static int compare(juce_wchar char1, juce_wchar char2) noexcept
Compares two characters.
static bool isLetterOrDigit(char character) noexcept
Checks whether a character is alphabetic or numeric.
juce_wchar toUpperCase() const noexcept
Returns an upper-case version of the first character of this string.
int compareUpTo(CharPointer other, int maxChars) const noexcept
Compares this string with another one, up to a specified number of characters.
static int indexOfChar(Type text, const juce_wchar charToFind) noexcept
Finds the character index of a given character in another string.
bool isLetter() const
Returns true if the first character of this string is a letter.
int getIntValue32() const noexcept
Parses this string as a 32-bit integer.
bool isNotEmpty() const noexcept
Returns true if this pointer is not pointing to a null character.
static bool isWhitespace(char character) noexcept
Checks whether a character is whitespace.
size_t lengthUpTo(size_t maxCharsToCount) const noexcept
Returns the number of characters in this string, or the given value, whichever is lower.
static bool isValidString(const CharType *dataToTest, int maxBytesToRead)
Returns true if this data contains a valid string in this encoding.
juce_wchar operator*() const noexcept
Returns the unicode character that this pointer is pointing to.
CharPointer_UTF32 operator-(int numToSkip) const noexcept
Returns a pointer which is moved backwards from this one by the specified number of characters.
int compare(CharPointer other) const noexcept
Compares this string with another one.
static size_t copyWithDestByteLimit(DestCharPointerType &dest, SrcCharPointerType src, size_t maxBytesToWrite) noexcept
Copies characters from one string to another, up to a null terminator or a given byte size limit.
double getDoubleValue() const noexcept
Parses this string as a floating point double.
static int indexOfCharIgnoreCase(Type text, juce_wchar charToFind) noexcept
Finds the character index of a given character in another string, using a case-independent match.
int64 getIntValue64() const noexcept
Parses this string as a 64-bit integer.
static bool canRepresent(juce_wchar character) noexcept
Returns true if the given unicode character can be represented in this encoding.
static size_t getBytesRequiredFor(juce_wchar) noexcept
Returns the number of bytes that would be needed to represent the given unicode character in this enc...
bool isEmpty() const noexcept
Returns true if this pointer is pointing to a null character.
int indexOf(CharPointer stringToFind) const noexcept
Returns the character index of a substring, or -1 if it isn't found.
bool isWhitespace() const
Returns true if the first character of this string is whitespace.
static int compareIgnoreCase(juce_wchar char1, juce_wchar char2) noexcept
Compares two characters, using a case-independant match.
static size_t lengthUpTo(CharPointerType text, const size_t maxCharsToCount) noexcept
Counts the number of characters in a given string, stopping if the count exceeds a specified limit.
static double getDoubleValue(CharPointerType text) noexcept
Parses a character string, to read a floating-point value.
static juce_wchar toUpperCase(juce_wchar character) noexcept
Converts a character to upper-case.
int indexOf(juce_wchar charToFind, bool ignoreCase) const noexcept
Returns the character index of a unicode character, or -1 if it isn't found.
size_t writeWithDestByteLimit(CharPointer src, size_t maxDestBytes) noexcept
Copies a source string to this pointer, advancing this pointer as it goes.
size_t length() const noexcept
Returns the number of characters in this string.
void write(juce_wchar charToWrite) noexcept
Writes a unicode character to this string, and advances this pointer to point to the next position.
static juce_wchar toLowerCase(juce_wchar character) noexcept
Converts a character to lower-case.
CharPointer_UTF32 findTerminatingNull() const noexcept
Returns a pointer to the null character that terminates this string.
void writeAll(CharPointer src) noexcept
Copies a source string to this pointer, advancing this pointer as it goes.
CharPointer_UTF32 operator+(int numToSkip) const noexcept
Returns a pointer which is moved forwards from this one by the specified number of characters.
void writeAll(CharPointer_UTF32 src) noexcept
Copies a source string to this pointer, advancing this pointer as it goes.
void operator+=(int numToSkip) noexcept
Moves this pointer forwards by the specified number of characters.