LMMS
Loading...
Searching...
No Matches
Steinberg::StringObject Class Reference

#include <fstring.h>

Inheritance diagram for Steinberg::StringObject:
Steinberg::FObject Steinberg::String Steinberg::IStringResult Steinberg::IString Steinberg::IDependent Steinberg::ConstString Steinberg::FUnknown Steinberg::FUnknown Steinberg::FUnknown

Public Member Functions

 StringObject ()
 StringObject (const char16 *str, int32 n=-1, bool isTerminated=true)
 StringObject (const char8 *str, int32 n=-1, bool isTerminated=true)
 StringObject (const StringObject &str, int32 n=-1)
 StringObject (const String &str, int32 n=-1)
 StringObject (const FVariant &var)
void PLUGIN_API setText (const char8 *text) SMTG_OVERRIDE
void PLUGIN_API setText8 (const char8 *text) SMTG_OVERRIDE
void PLUGIN_API setText16 (const char16 *text) SMTG_OVERRIDE
const char8 *PLUGIN_API getText8 () SMTG_OVERRIDE
const char16 *PLUGIN_API getText16 () SMTG_OVERRIDE
void PLUGIN_API take (void *s, bool _isWide) SMTG_OVERRIDE
bool PLUGIN_API isWideString () const SMTG_OVERRIDE
Stringoperator= (const char8 *str)
 Assign from a string of type char8.
Stringoperator= (const char16 *str)
Stringoperator= (const ConstString &str)
Stringoperator= (const String &str)
Stringoperator= (char8 c)
Stringoperator= (char16 c)
Public Member Functions inherited from Steinberg::FObject
 FObject ()
 default constructor...
 FObject (const FObject &)
 overloaded constructor...
virtual ~FObject ()
 destructor...
FObjectoperator= (const FObject &)
 overloads operator "=" as the reference assignment
virtual FClassID isA () const
 a local alternative to getFClassID ()
virtual bool isA (FClassID s) const
 evaluates if the passed ID is of the FObject type
virtual bool isTypeOf (FClassID s, bool=true) const
 evaluates if the passed ID is of the FObject type
int32 getRefCount ()
 returns the current interface reference count
FUnknownunknownCast ()
 get FUnknown interface from object
tresult PLUGIN_API queryInterface (const TUID _iid, void **obj) SMTG_OVERRIDE
 please refer to FUnknown::queryInterface ()
uint32 PLUGIN_API addRef () SMTG_OVERRIDE
 please refer to FUnknown::addref ()
uint32 PLUGIN_API release () SMTG_OVERRIDE
 please refer to FUnknown::release ()
void PLUGIN_API update (FUnknown *, int32) SMTG_OVERRIDE
 empty virtual method that should be overridden by derived classes for data updates upon changes
virtual void addDependent (IDependent *dep)
 adds dependency to the object
virtual void removeDependent (IDependent *dep)
 removes dependency from the object
virtual void changed (int32 msg=kChanged)
 Inform all dependents, that the object has changed.
virtual void deferUpdate (int32 msg=kChanged)
 Similar to triggerUpdates, except only delivered in idle (usefull in collecting updates).
virtual void updateDone (int32)
 empty virtual method that should be overridden by derived classes
virtual bool isEqualInstance (FUnknown *d)
Public Member Functions inherited from Steinberg::String
 String ()
 String (const char8 *str, MBCodePage codepage, int32 n=-1, bool isTerminated=true)
 assign n characters of str and convert to wide string by using the specified codepage
 String (const char8 *str, int32 n=-1, bool isTerminated=true)
 assign n characters of str (-1: all)
 String (const char16 *str, int32 n=-1, bool isTerminated=true)
 assign n characters of str (-1: all)
 String (const String &str, int32 n=-1)
 assign n characters of str (-1: all)
 String (const ConstString &str, int32 n=-1)
 assign n characters of str (-1: all)
 String (const FVariant &var)
 assign from FVariant
 String (IString *str)
 assign from IString
 ~String ()
void updateLength ()
 Call this when the string is truncated outside (not recommended though).
const char8text8 () const SMTG_OVERRIDE
 Returns pointer to string of type char8.
const char16text16 () const SMTG_OVERRIDE
 Returns pointer to string of type char16.
char8 getChar8 (uint32 index) const SMTG_OVERRIDE
 Returns character of type char16 at 'index'.
char16 getChar16 (uint32 index) const SMTG_OVERRIDE
 Returns character of type char8 at 'index'.
bool setChar8 (uint32 index, char8 c)
bool setChar16 (uint32 index, char16 c)
bool setChar (uint32 index, char8 c)
bool setChar (uint32 index, char16 c)
Stringoperator= (const char8 *str)
 Assign from a string of type char8.
Stringoperator= (const char16 *str)
Stringoperator= (const ConstString &str)
Stringoperator= (const String &str)
Stringoperator= (char8 c)
Stringoperator= (char16 c)
Stringassign (const ConstString &str, int32 n=-1)
 Assign n characters of str (-1: all).
Stringassign (const char8 *str, int32 n=-1, bool isTerminated=true)
 Assign n characters of str (-1: all).
Stringassign (const char16 *str, int32 n=-1, bool isTerminated=true)
 Assign n characters of str (-1: all).
Stringassign (char8 c, int32 n=1)
Stringassign (char16 c, int32 n=1)
Stringappend (const ConstString &str, int32 n=-1)
 Append n characters of str to this (n=-1: all).
Stringappend (const char8 *str, int32 n=-1)
 Append n characters of str to this (n=-1: all).
Stringappend (const char16 *str, int32 n=-1)
 Append n characters of str to this (n=-1: all).
Stringappend (const char8 c, int32 n=1)
 Append char c n times.
Stringappend (const char16 c, int32 n=1)
 Append char c n times.
StringinsertAt (uint32 idx, const ConstString &str, int32 n=-1)
 Insert n characters of str at position idx (n=-1: all).
StringinsertAt (uint32 idx, const char8 *str, int32 n=-1)
 Insert n characters of str at position idx (n=-1: all).
StringinsertAt (uint32 idx, const char16 *str, int32 n=-1)
 Insert n characters of str at position idx (n=-1: all).
StringinsertAt (uint32 idx, char8 c)
StringinsertAt (uint32 idx, char16 c)
Stringoperator+= (const String &str)
Stringoperator+= (const ConstString &str)
Stringoperator+= (const char8 *str)
Stringoperator+= (const char16 *str)
Stringoperator+= (const char8 c)
Stringoperator+= (const char16 c)
Stringreplace (uint32 idx, int32 n1, const ConstString &str, int32 n2=-1)
 Replace n1 characters of this (starting at idx) with n2 characters of str (n1,n2=-1: until end).
Stringreplace (uint32 idx, int32 n1, const char8 *str, int32 n2=-1)
 Replace n1 characters of this (starting at idx) with n2 characters of str (n1,n2=-1: until end).
Stringreplace (uint32 idx, int32 n1, const char16 *str, int32 n2=-1)
 Replace n1 characters of this (starting at idx) with n2 characters of str (n1,n2=-1: until end).
int32 replace (const char8 *toReplace, const char8 *toReplaceWith, bool all=false, CompareMode m=kCaseSensitive)
 Replace find string with replace string - returns number of replacements.
int32 replace (const char16 *toReplace, const char16 *toReplaceWith, bool all=false, CompareMode m=kCaseSensitive)
 Replace find string with replace string - returns number of replacements.
bool replaceChars8 (const char8 *toReplace, char8 toReplaceBy)
 Returns true when any replacement was done.
bool replaceChars16 (const char16 *toReplace, char16 toReplaceBy)
bool replaceChars8 (char8 toReplace, char8 toReplaceBy)
bool replaceChars16 (char16 toReplace, char16 toReplaceBy)
bool replaceChars (char8 toReplace, char8 toReplaceBy)
bool replaceChars (char16 toReplace, char16 toReplaceBy)
bool replaceChars (const char8 *toReplace, char8 toReplaceBy)
bool replaceChars (const char16 *toReplace, char16 toReplaceBy)
Stringremove (uint32 index=0, int32 n=-1)
 Remove n characters from string starting at index (n=-1: until end).
bool trim (CharGroup mode=kSpace)
 Trim lead/trail.
void removeChars (CharGroup mode=kSpace)
 Removes all of group.
bool removeChars8 (const char8 *which)
 Remove all occurrences of each char in 'which'.
bool removeChars16 (const char16 *which)
 Remove all occurrences of each char in 'which'.
bool removeChars8 (const char8 which)
bool removeChars16 (const char16 which)
bool removeChars (const char8 *which)
bool removeChars (const char16 *which)
bool removeChars (const char8 which)
bool removeChars (const char16 which)
bool removeSubString (const ConstString &subString, bool allOccurences=true)
Stringprintf (const char8 *format,...)
 Print formatted data into string.
Stringprintf (const char16 *format,...)
 Print formatted data into string.
Stringvprintf (const char8 *format, va_list args)
Stringvprintf (const char16 *format, va_list args)
StringprintInt64 (int64 value)
StringprintFloat (double value)
bool incrementTrailingNumber (uint32 width=2, tchar separator=STR(' '), uint32 minNumber=1, bool applyOnlyFormat=false)
bool fromVariant (const FVariant &var)
 Assigns string from FVariant.
void toVariant (FVariant &var) const
bool fromAttributes (IAttributes *a, IAttrID attrID)
 Assigns string from FAttributes.
bool toAttributes (IAttributes *a, IAttrID attrID)
void swapContent (String &s)
 Swaps ownership of the strings pointed to.
void take (String &str)
 Take ownership of the string of 'str'.
void take (void *_buffer, bool wide)
 Take ownership of buffer.
voidpass ()
void passToVariant (FVariant &var)
 Pass ownership of buffer to Variant - sets Variant ownership.
void toLower (uint32 index)
 Lower case the character.
void toLower ()
 Lower case the string.
void toUpper (uint32 index)
 Upper case the character.
void toUpper ()
 Upper case the string.
unsigned char * toPascalString (unsigned char *buf)
 Pascal string conversion.
const StringfromPascalString (const unsigned char *buf)
 Pascal string conversion.
bool toWideString (uint32 sourceCodePage=kCP_Default)
 Converts to wide string according to sourceCodePage.
bool toMultiByte (uint32 destCodePage=kCP_Default)
void fromUTF8 (const char8 *utf8String)
 Assigns from UTF8 string.
bool normalize (UnicodeNormalization=kUnicodeNormC)
 On PC only kUnicodeNormC is working.
Public Member Functions inherited from Steinberg::ConstString
 ConstString (const char8 *str, int32 length=-1)
 Assign from string of type char8 (length=-1: all).
 ConstString (const char16 *str, int32 length=-1)
 Assign from string of type char16 (length=-1: all).
 ConstString (const ConstString &str, int32 offset=0, int32 length=-1)
 Copy constructor (length=-1: all).
 ConstString (const FVariant &var)
 Assign a string from FVariant.
 ConstString ()
virtual ~ConstString ()
 Destructor.
virtual int32 length () const
 Return length of string.
bool isEmpty () const
 Return true if string is empty.
 operator const char8 * () const
 Returns pointer to string of type char8 (no modification allowed).
 operator const char16 * () const
 Returns pointer to string of type char16(no modification allowed).
tchar operator[] (short idx) const
 Returns character at 'idx'.
tchar operator[] (long idx) const
tchar operator[] (int idx) const
tchar operator[] (unsigned short idx) const
tchar operator[] (unsigned long idx) const
tchar operator[] (unsigned int idx) const
virtual const tchartext () const
 Returns pointer to string of type tchar.
virtual const voidptr () const
 Returns pointer to string of type void.
tchar getChar (uint32 index) const
 Returns character of type tchar at 'index'.
tchar getCharAt (uint32 index) const
 Returns character of type tchar at 'index', no conversion!
bool testChar8 (uint32 index, char8 c) const
 Returns true if character is equal at position 'index'.
bool testChar16 (uint32 index, char16 c) const
bool testChar (uint32 index, char8 c) const
bool testChar (uint32 index, char16 c) const
bool extract (String &result, uint32 idx, int32 n=-1) const
 Get n characters long substring starting at index (n=-1: until end).
int32 copyTo8 (char8 *str, uint32 idx=0, int32 n=-1) const
int32 copyTo16 (char16 *str, uint32 idx=0, int32 n=-1) const
int32 copyTo (tchar *str, uint32 idx=0, int32 n=-1) const
void copyTo (IStringResult *result) const
 Copies whole member string.
void copyTo (IString &string) const
 Copies whole member string.
uint32 hash (uint32 tsize) const
int32 compareAt (uint32 index, const ConstString &str, int32 n=-1, CompareMode m=kCaseSensitive) const
 Compare n characters of str with n characters of this starting at index (return: see above).
int32 compare (const ConstString &str, int32 n, CompareMode m=kCaseSensitive) const
 Compare n characters of str with n characters of this (return: see above).
int32 compare (const ConstString &str, CompareMode m=kCaseSensitive) const
 Compare all characters of str with this (return: see above).
int32 naturalCompare (const ConstString &str, CompareMode mode=kCaseSensitive) const
bool startsWith (const ConstString &str, CompareMode m=kCaseSensitive) const
 Check if this starts with str.
bool endsWith (const ConstString &str, CompareMode m=kCaseSensitive) const
 Check if this ends with str.
bool contains (const ConstString &str, CompareMode m=kCaseSensitive) const
 Check if this contains str.
int32 findLast (const ConstString &str, int32 n=-1, CompareMode m=kCaseSensitive) const
 Find last occurrence of n characters of str in this (n=-1: all).
int32 findLast (char8 c, CompareMode m=kCaseSensitive) const
int32 findLast (char16 c, CompareMode m=kCaseSensitive) const
int32 countOccurences (char8 c, uint32 startIndex, CompareMode=kCaseSensitive) const
 Counts occurences of c within this starting at index.
int32 countOccurences (char16 c, uint32 startIndex, CompareMode=kCaseSensitive) const
int32 getFirstDifferent (const ConstString &str, CompareMode=kCaseSensitive) const
 Returns position of first different character.
bool isDigit (uint32 index) const
 Returns true if character at position is a digit.
bool scanFloat (double &value, uint32 offset=0, bool scanToEnd=true) const
 Converts string to double value starting at offset.
bool scanInt64 (int64 &value, uint32 offset=0, bool scanToEnd=true) const
 Converts string to int64 value starting at offset.
bool scanUInt64 (uint64 &value, uint32 offset=0, bool scanToEnd=true) const
 Converts string to uint64 value starting at offset.
bool scanInt32 (int32 &value, uint32 offset=0, bool scanToEnd=true) const
 Converts string to int32 value starting at offset.
bool scanUInt32 (uint32 &value, uint32 offset=0, bool scanToEnd=true) const
 Converts string to uint32 value starting at offset.
bool scanHex (uint8 &value, uint32 offset=0, bool scanToEnd=true) const
 Converts string to hex/uint8 value starting at offset.
int32 getTrailingNumberIndex (uint32 width=0) const
 Returns start index of trailing number.
int64 getTrailingNumber (int64 fallback=0) const
 Returns result of scanInt64 or the fallback.
int64 getNumber () const
 Returns result of scanInt64.
void toVariant (FVariant &var) const
bool isWideString () const
 Returns true if string is wide.
bool isAsciiString () const
 Checks if all characters in string are in ascii range.
bool isNormalized (UnicodeNormalization=kUnicodeNormC)
 On PC only kUnicodeNormC is working.
int32 findFirst (const ConstString &str, int32 n=-1, CompareMode m=kCaseSensitive, int32 endIndex=-1) const
int32 findFirst (char8 c, CompareMode m=kCaseSensitive, int32 endIndex=-1) const
int32 findFirst (char16 c, CompareMode m=kCaseSensitive, int32 endIndex=-1) const
int32 findNext (int32 startIndex, const ConstString &str, int32 n=-1, CompareMode=kCaseSensitive, int32 endIndex=-1) const
int32 findNext (int32 startIndex, char8 c, CompareMode=kCaseSensitive, int32 endIndex=-1) const
int32 findNext (int32 startIndex, char16 c, CompareMode=kCaseSensitive, int32 endIndex=-1) const
int32 findPrev (int32 startIndex, const ConstString &str, int32 n=-1, CompareMode=kCaseSensitive) const
int32 findPrev (int32 startIndex, char8 c, CompareMode=kCaseSensitive) const
int32 findPrev (int32 startIndex, char16 c, CompareMode=kCaseSensitive) const

Additional Inherited Members

Public Types inherited from Steinberg::IDependent
enum  ChangeMessage {
  kWillChange , kChanged , kDestroyed , kWillDestroy ,
  kStdChangeMessageLast = kWillDestroy
}
Public Types inherited from Steinberg::String
enum  CharGroup { kSpace , kNotAlphaNum , kNotAlpha }
Public Types inherited from Steinberg::ConstString
enum  CompareMode { kCaseSensitive , kCaseInsensitive }
Static Public Member Functions inherited from Steinberg::FObject
static FClassID getFClassID ()
 return Class ID as an ASCII string (statically)
static void setUpdateHandler (IUpdateHandler *handler)
 set method for the local attribute
static IUpdateHandlergetUpdateHandler ()
 get method for the local attribute
static bool classIDsEqual (FClassID ci1, FClassID ci2)
 compares (evaluates) 2 class IDs
static FObjectunknownToObject (FUnknown *unknown)
 pointer conversion from FUnknown to FObject
Static Public Member Functions inherited from Steinberg::ConstString
static bool isCharSpace (char8 character)
 Returns true if character is a space.
static bool isCharSpace (char16 character)
 Returns true if character is a space.
static bool isCharAlpha (char8 character)
 Returns true if character is an alphabetic character.
static bool isCharAlpha (char16 character)
 Returns true if character is an alphabetic character.
static bool isCharAlphaNum (char8 character)
 Returns true if character is an alphanumeric character.
static bool isCharAlphaNum (char16 character)
 Returns true if character is an alphanumeric character.
static bool isCharDigit (char8 character)
 Returns true if character is a number.
static bool isCharDigit (char16 character)
 Returns true if character is a number.
static bool isCharAscii (char8 character)
 Returns true if character is in ASCII range.
static bool isCharAscii (char16 character)
 Returns true if character is in ASCII range.
static bool isCharUpper (char8 character)
static bool isCharUpper (char16 character)
static bool isCharLower (char8 character)
static bool isCharLower (char16 character)
static bool scanInt64_8 (const char8 *text, int64 &value, bool scanToEnd=true)
 Converts string of type char8 to int64 value.
static bool scanInt64_16 (const char16 *text, int64 &value, bool scanToEnd=true)
 Converts string of type char16 to int64 value.
static bool scanInt64 (const tchar *text, int64 &value, bool scanToEnd=true)
 Converts string of type tchar to int64 value.
static bool scanUInt64_8 (const char8 *text, uint64 &value, bool scanToEnd=true)
 Converts string of type char8 to uint64 value.
static bool scanUInt64_16 (const char16 *text, uint64 &value, bool scanToEnd=true)
 Converts string of type char16 to uint64 value.
static bool scanUInt64 (const tchar *text, uint64 &value, bool scanToEnd=true)
 Converts string of type tchar to uint64 value.
static bool scanInt32_8 (const char8 *text, int32 &value, bool scanToEnd=true)
 Converts string of type char8 to int32 value.
static bool scanInt32_16 (const char16 *text, int32 &value, bool scanToEnd=true)
 Converts string of type char16 to int32 value.
static bool scanInt32 (const tchar *text, int32 &value, bool scanToEnd=true)
 Converts string of type tchar to int32 value.
static bool scanUInt32_8 (const char8 *text, uint32 &value, bool scanToEnd=true)
 Converts string of type char8 to int32 value.
static bool scanUInt32_16 (const char16 *text, uint32 &value, bool scanToEnd=true)
 Converts string of type char16 to int32 value.
static bool scanUInt32 (const tchar *text, uint32 &value, bool scanToEnd=true)
 Converts string of type tchar to int32 value.
static bool scanHex_8 (const char8 *text, uint8 &value, bool scanToEnd=true)
 Converts string of type char8 to hex/unit8 value.
static bool scanHex_16 (const char16 *text, uint8 &value, bool scanToEnd=true)
 Converts string of type char16 to hex/unit8 value.
static bool scanHex (const tchar *text, uint8 &value, bool scanToEnd=true)
 Converts string of type tchar to hex/unit8 value.
static char8 toLower (char8 c)
 Converts to lower case.
static char8 toUpper (char8 c)
 Converts to upper case.
static char16 toLower (char16 c)
static char16 toUpper (char16 c)
static int32 multiByteToWideString (char16 *dest, const char8 *source, int32 wcharCount, uint32 sourceCodePage=kCP_Default)
 If dest is zero, this returns the maximum number of bytes needed to convert source.
static int32 wideStringToMultiByte (char8 *dest, const char16 *source, int32 char8Count, uint32 destCodePage=kCP_Default)
 If dest is zero, this returns the maximum number of bytes needed to convert source.
Static Public Attributes inherited from Steinberg::FObject
static const FUID iid
Static Public Attributes inherited from Steinberg::IDependent
static const FUID iid
Static Public Attributes inherited from Steinberg::FUnknown
static const FUID iid
Static Public Attributes inherited from Steinberg::IStringResult
static const FUID iid
Static Public Attributes inherited from Steinberg::IString
static const FUID iid
Protected Member Functions inherited from Steinberg::String
bool resize (uint32 newSize, bool wide, bool fill=false)
Protected Attributes inherited from Steinberg::FObject
int32 refCount
 COM-model local reference count.
Protected Attributes inherited from Steinberg::ConstString
union { 
   void *   buffer 
   char8 *   buffer8 
   char16 *   buffer16 
}; 
uint32 len: 30
uint32 isWide: 1
Static Protected Attributes inherited from Steinberg::FObject
static IUpdateHandlergUpdateHandler = nullptr

Detailed Description

StringObject implements IStringResult and IString methods. It can therefore be exchanged with other Steinberg objects using one or both of these interfaces.

See also
String, ConstString

Constructor & Destructor Documentation

◆ StringObject() [1/6]

Steinberg::StringObject::StringObject ( )
inline

◆ StringObject() [2/6]

Steinberg::StringObject::StringObject ( const char16 * str,
int32 n = -1,
bool isTerminated = true )
inline

◆ StringObject() [3/6]

Steinberg::StringObject::StringObject ( const char8 * str,
int32 n = -1,
bool isTerminated = true )
inline

◆ StringObject() [4/6]

Steinberg::StringObject::StringObject ( const StringObject & str,
int32 n = -1 )
inline

◆ StringObject() [5/6]

Steinberg::StringObject::StringObject ( const String & str,
int32 n = -1 )
inline

◆ StringObject() [6/6]

Steinberg::StringObject::StringObject ( const FVariant & var)
inline

Member Function Documentation

◆ getText16()

const char16 *PLUGIN_API Steinberg::StringObject::getText16 ( )
virtual

Return unicode string. If the string is ASCII so far, it will be converted.

Implements Steinberg::IString.

◆ getText8()

const char8 *PLUGIN_API Steinberg::StringObject::getText8 ( )
virtual

Return ASCII string. If the string is unicode so far, it will be converted. So you need to be careful, because the conversion can result in data loss. It is save though to call getText8 if isWideString() returns false

Implements Steinberg::IString.

◆ isWideString()

bool PLUGIN_API Steinberg::StringObject::isWideString ( ) const
virtual

Returns true if the string is in unicode format, returns false if the string is ASCII

Implements Steinberg::IString.

◆ operator=() [1/6]

String & Steinberg::String::operator= ( char16 c)
inline

◆ operator=() [2/6]

String & Steinberg::String::operator= ( char8 c)
inline

◆ operator=() [3/6]

String & Steinberg::String::operator= ( const char16 * str)
inline

◆ operator=() [4/6]

String & Steinberg::String::operator= ( const char8 * str)
inline

Assign from a string of type char8.

◆ operator=() [5/6]

String & Steinberg::String::operator= ( const ConstString & str)
inline

◆ operator=() [6/6]

String & Steinberg::String::operator= ( const String & str)
inline

◆ setText()

void PLUGIN_API Steinberg::StringObject::setText ( const char8 * text)
virtual

◆ setText16()

void PLUGIN_API Steinberg::StringObject::setText16 ( const char16 * text)
virtual

Assign unicode string

Implements Steinberg::IString.

◆ setText8()

void PLUGIN_API Steinberg::StringObject::setText8 ( const char8 * text)
virtual

Assign ASCII string

Implements Steinberg::IString.

◆ take()

void PLUGIN_API Steinberg::StringObject::take ( void * s,
bool isWide )
virtual

!Do not use this method! Early implementations take the given pointer as internal string and this will cause problems because 'free' will be used to delete the passed memory. Later implementations will redirect 'take' to setText8 and setText16

Implements Steinberg::IString.


The documentation for this class was generated from the following files: