void CSentence::ParseOptions( CUtlBuffer& buf ) { char token[ 4096 ]; while ( 1 ) { buf.GetString( token ); if ( !stricmp( token, "}" ) ) break; if ( Q_strlen( token ) == 0 ) break; char key[ 256 ]; Q_strncpy( key, token, sizeof( key ) ); char value[ 256 ]; buf.GetString( token ); Q_strncpy( value, token, sizeof( value ) ); if ( !strcmpi( key, "voice_duck" ) ) { SetVoiceDuck( atoi(value) ? true : false ); } else if ( !strcmpi( key, "checksum" ) ) { SetDataCheckSum( (unsigned int)atoi( value ) ); } } }
//----------------------------------------------------------------------------- // Purpose: // Input : buf - //----------------------------------------------------------------------------- void CSentence::CacheRestoreFromBuffer( CUtlBuffer& buf ) { Assert( !buf.IsText() ); Reset(); m_bIsCached = true; int version = buf.GetChar(); if ( version != CACHED_SENTENCE_VERSION ) { // Uh oh, version changed... m_bIsValid = false; return; } unsigned short pcount = (unsigned short)buf.GetShort(); CPhonemeTag pt; int i; for ( i = 0; i < pcount; ++i ) { unsigned short code = buf.GetShort(); float st = buf.GetFloat(); float et = buf.GetFloat(); pt.SetPhonemeCode( code ); pt.SetStartTime( st ); pt.SetEndTime( et ); AddRuntimePhoneme( &pt ); } // Now read emphasis samples int c = buf.GetShort(); for ( i = 0; i < c; i++ ) { CEmphasisSample sample; sample.SetSelected( false ); sample.time = buf.GetFloat(); sample.value = (float)buf.GetShort() / 32767.0f; m_EmphasisSamples.AddToTail( sample ); } // And voice duck SetVoiceDuck( buf.GetChar() == 0 ? false : true ); m_bIsValid = true; }
void CSentence::ParseOptions( CUtlBuffer& buf ) { char token[ 4096 ]; while ( 1 ) { buf.GetString( token ); if ( !stricmp( token, "}" ) ) break; char key[ 256 ]; strcpy( key, token ); char value[ 256 ]; buf.GetString( token ); strcpy( value, token ); if ( !strcmpi( key, "voice_duck" ) ) { SetVoiceDuck( atoi(value) ? true : false ); } } }