예제 #1
0
 /**
  *  @see CreateBufferHelloWorld
  *
  *  @alsymbols
  *  @alutfunref{CreateBufferFromFile}
  */
 Buffer CreateBufferFromFile(const StrCRef& file_path) const {
     assert(_initialized);
     ALuint name = OALPLUS_ALUTFUNC(CreateBufferFromFile)(
       file_path.is_nts() ? file_path.c_str() : file_path.str().c_str());
     OALPLUS_VERIFY_SIMPLE_ALUT(CreateBufferFromFile);
     return Buffer::FromRawName(BufferName(name));
 }
예제 #2
0
    /**
     *  @see LoadMemoryFromFileNormalized
     *  @see LoadMemoryHelloWorldNormalized
     *
     *  @alsymbols
     *  @alutfunref{LoadMemoryFromFile}
     */
    std::vector<ALubyte> LoadMemoryFromFile(
      const StrCRef& file_path,
      DataFormat* data_format,
      ALfloat* frequency) const {
        ::ALenum format = 0;
        ::ALsizei size = 0;
        ::ALvoid* ptr = OALPLUS_ALUTFUNC(LoadMemoryFromFile)(
          file_path.is_nts() ? file_path.c_str() : file_path.str().c_str(),
          &format,
          &size,
          frequency);
        OALPLUS_CHECK_SIMPLE_ALUT(LoadMemoryFromFile);

        _free_on_scope_exit cleaner = {ptr};
        OALPLUS_FAKE_USE(cleaner);

        if(data_format)
            *data_format = DataFormat(format);

        return _load_memory(ptr, size);
    }