/* =============== idAudioHardwareWIN32::InitializeSpeakers =============== */ bool idAudioHardwareWIN32::InitializeSpeakers( byte *speakerData, int bufferSize, dword dwPrimaryFreq, dword dwPrimaryBitRate, dword dwSpeakers ) { if ( dwSpeakers == 2 ) { WAVEFORMATEXTENSIBLE wfx; ZeroMemory( &wfx, sizeof(WAVEFORMATEXTENSIBLE) ); wfx.Format.wFormatTag = WAVE_FORMAT_PCM; wfx.Format.nChannels = 2; wfx.Format.nSamplesPerSec = dwPrimaryFreq; wfx.Format.wBitsPerSample = dwPrimaryBitRate; wfx.Format.nBlockAlign = wfx.Format.wBitsPerSample / 8 * wfx.Format.nChannels; wfx.Format.nAvgBytesPerSec = wfx.Format.nSamplesPerSec * wfx.Format.nBlockAlign; wfx.Format.cbSize = sizeof(WAVEFORMATEX); CreateFromMemory( &speakers, speakerData, bufferSize, (waveformatextensible_t *)&wfx ); common->Printf("sound: STEREO\n"); } else { WAVEFORMATEXTENSIBLE waveFormatPCMEx; ZeroMemory( &waveFormatPCMEx, sizeof(WAVEFORMATEXTENSIBLE) ); waveFormatPCMEx.Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE; waveFormatPCMEx.Format.nChannels = 6; waveFormatPCMEx.Format.nSamplesPerSec = dwPrimaryFreq; waveFormatPCMEx.Format.wBitsPerSample = dwPrimaryBitRate; waveFormatPCMEx.Format.nBlockAlign = waveFormatPCMEx.Format.wBitsPerSample / 8 * waveFormatPCMEx.Format.nChannels; waveFormatPCMEx.Format.nAvgBytesPerSec = waveFormatPCMEx.Format.nSamplesPerSec * waveFormatPCMEx.Format.nBlockAlign; waveFormatPCMEx.dwChannelMask = KSAUDIO_SPEAKER_5POINT1; // SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | // SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | // SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT waveFormatPCMEx.SubFormat = KSDATAFORMAT_SUBTYPE_PCM; // Specify PCM waveFormatPCMEx.Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE); waveFormatPCMEx.Samples.wValidBitsPerSample = 16; CreateFromMemory( &speakers, speakerData, bufferSize, (waveformatextensible_t *)&waveFormatPCMEx ); common->Printf("sound: MULTICHANNEL\n"); } if (!speakers) { return false; } speakers->Play(0,DSBPLAY_LOOPING); return true; }
UINT ShaderGL::CreateFromFile(std::string filename) { if (Archive::ToBuffer(filename.c_str(), mSource) == 0) { Debug::ShowError( STREAM("Could not open '" << filename << "'"), STREAM("Shader Loader Error")); return S_FALSE; } Debug::Log(STREAM("Compiling '" << filename << "'...")); return CreateFromMemory(mSource); }
//-------------------------------------------------------------------------------------- HRESULT SDKMesh::CreateFromFile( LPCWSTR szFileName, bool bCreateAdjacencyIndices) { HRESULT hr = S_OK; // Open the file m_hFile = CreateFile( szFileName, FILE_READ_DATA, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL ); if( INVALID_HANDLE_VALUE == m_hFile ) return E_FAIL; // Get the file size LARGE_INTEGER FileSize; GetFileSizeEx( m_hFile, &FileSize ); UINT cBytes = FileSize.LowPart; // Allocate memory m_pStaticMeshData = new BYTE[ cBytes ]; if( !m_pStaticMeshData ) { CloseHandle( m_hFile ); return E_OUTOFMEMORY; } // Read in the file DWORD dwBytesRead; if( !ReadFile( m_hFile, m_pStaticMeshData, cBytes, &dwBytesRead, NULL ) ) hr = E_FAIL; CloseHandle( m_hFile ); if( SUCCEEDED( hr ) ) { hr = CreateFromMemory( m_pStaticMeshData, cBytes, bCreateAdjacencyIndices, false); if( FAILED( hr ) ) delete []m_pStaticMeshData; } return hr; }
//-------------------------------------------------------------------------------------- HRESULT SDKMesh::Create( BYTE* pData, UINT DataBytes, bool bCreateAdjacencyIndices, bool bCopyStatic) { return CreateFromMemory( pData, DataBytes, bCreateAdjacencyIndices, bCopyStatic ); }
OggAudio* OggAudio::CreateFromFile(const FileIdRef& fileId) { MemoryData data = FileSystem::Instance().ReadAllData(fileId); return CreateFromMemory(fileId, data); }
HRESULT CDXUTSDKMesh::Create(ID3D11Device* pDev11, PBYTE pMesh, ULONG MeshSize, bool bCreateAdjacencyIndices) { return CreateFromMemory(pDev11, pMesh, MeshSize, bCreateAdjacencyIndices, true); }