//+----------------------------------------------------------------------------+ //|bool Initialize(AudioEngine* engine, const rString &path, SoundType type) //\----------------------------------------------------------------------------+ bool SoundSDL::Initialize(AudioEngine* engine, const rString &path, SoundType type) { AudioEngineSDL* audioEngine = reinterpret_cast<AudioEngineSDL*>(engine); const SDL_AudioSpec* sysSpec = audioEngine->GetSystemSpec(); m_AudioEngine = audioEngine; m_Type = type; m_Name = path; m_ChunkSize = sysSpec->size; m_AudioCVT = pNew(SDL_AudioCVT); m_BufferData = tNew(AudioBuffer); m_AudioFile = nullptr; ///Check which file format the requested audiofile are ///Only wav and ogg are supported ///Is wave file if(path.find(".wav", 0) != std::string::npos) { m_AudioFile = pNew(WavFileReader); } ///Is ogg file else if(path.find(".ogg", 0) != std::string::npos) { m_AudioFile = pNew(OggFileReader); } ///Not supported format else { fprintf(stderr, "SoundSDL. Trying to load unsupported file format %s \n", path.c_str()); return false; } m_AudioFile->Initialize(); ///Read as sample, read everything into buffer if(type == SoundType::SAMPLE) { CreateSample(path, m_BufferData, sysSpec); } ///Read as stream, prepare for buffer streaming else if(type == SoundType::STREAM) { CreateStream(path, m_BufferData, sysSpec); } else { ///This should not happend.. fprintf(stderr, "SoundSDL. Unexpected error loading %s while setting sound type \n", path.c_str()); return false; } return true; }
NETWORK_API void NetworkUtility::GetIPAndPortFromString( const rString& input, rString& outIP, unsigned short& outPort ) { if ( input == "" ) return; outIP = ""; outPort = INVALID_PORT; size_t colonCount = std::count( input.begin(), input.end(), ':' ); if ( colonCount == 1 ) { outIP = GetIPFromString( input ); size_t colonPosition = input.find( ':' ); rString portString = input.substr( colonPosition + 1 ); if ( StringUtility::IsDigitsOnly( portString ) ) { outPort = GetPortFromString( portString ); } } else if ( StringUtility::IsDigitsOnly( input ) ) { outPort = GetPortFromString( input ); } else { outIP = GetIPFromString( input ); } }