/// <summary>
        /// Begins text recording using a pre-existing TextInputRecord object, resuming recording from the previous
        /// carot location and previous text. If oldRecord is null, it returns a newly-registered TextInputRecord object.
        /// </summary>
        /// <param name="authKey">Authority key to register the TextInputRecord object with.</param>
        /// <param name="oldRecord">The record to resume recording from.</param>
        /// <returns></returns>
        public TextInputRecord StartTextRecording(uint authKey, TextInputRecord oldRecord)
        {
            if (oldRecord == null)
                return StartTextRecording(authKey);

            oldRecord.m_AuthKey = authKey;
            oldRecord.m_Location = m_Records.AddLast(oldRecord);

            return oldRecord;
        }
 /// <summary>
 /// Stops recording character inputs and clears the internal list of recorded characters.
 /// </summary>
 /// <param name="record">The record to stop recording into.</param>
 public void StopTextRecording(TextInputRecord record)
 {
     m_Records.Remove(record.m_Location);
 }
 /// <summary>
 /// Begins recording input to detect character inputs, i.e. typing a person's name into a textbox.
 /// </summary>
 /// <param name="authKey">The authority key to be used while checking for input within this recording.</param>
 /// <returns>A TextInputRecord object to be referenced while recording input. Must be freed when finished by using StopCharacterRecording().</returns>
 public TextInputRecord StartTextRecording(uint authKey)
 {
     TextInputRecord newRecord = new TextInputRecord();
     newRecord.m_AuthKey = authKey;
     newRecord.enteredText = "";
     newRecord.carotLocation = 0;
     newRecord.disableCarotUpdate = false;
     newRecord.m_Location = m_Records.AddLast(newRecord);
     return newRecord;
 }