/** This version loads both the raw data and the normalized samples * into two buffers and also returns the format and the sampling * frequency. * * @see LoadMemoryFromFileNormalized * @see LoadMemoryHelloWorldNormalized * * @alsymbols * @alutfunref{LoadMemoryFromFile} */ void LoadMemoryFromFile( std::vector<ALubyte>& raw, std::vector<ALfloat>& norm, const ALchar* file_path, DataFormat* data_format, ALfloat* frequency ) const { ::ALenum format = 0; ::ALsizei size = 0; ::ALvoid* ptr = OALPLUS_ALFUNC(alut,LoadMemoryFromFile)( file_path, &format, &size, frequency ); OALPLUS_CHECK_ALUT(OALPLUS_ERROR_INFO(alut, LoadMemoryFromFile)); _free_on_scope_exit cleaner = { ptr }; OALPLUS_FAKE_USE(cleaner); if(data_format) *data_format = DataFormat(format); raw = _load_memory(ptr, size); norm = _load_mem_norm(ptr, format, size); }
int bdplus_config_load(const char *config_path, bdplus_config_t **p_config) { bdplus_config_free(p_config); bdplus_config_t *config = *p_config = calloc(1, sizeof(bdplus_config_t)); if (!config) { BD_DEBUG(DBG_FILE | DBG_CRIT, "out of memory\n"); return -1; } char *base = NULL; if (!config_path) { base = file_get_config_dir(MEMORY_MAP_FILE); config_path = base; if (!base) { BD_DEBUG(DBG_FILE | DBG_CRIT, "VM configuration not found\n"); return -1; } } config->aes_keys = calloc(MAX_AES_KEYS, sizeof(bdplus_aes_key_t)); config->ecdsa_keys = calloc(MAX_ECDSA_KEYS, sizeof(bdplus_ecdsa_key_t)); config->dev = calloc(MAX_DEV_DISCOVERY, sizeof(bdplus_dev_t)); if (!config->aes_keys || !config->ecdsa_keys || !config->dev) { BD_DEBUG(DBG_FILE | DBG_CRIT, "out of memory\n"); return -1; } config->num_aes_keys = _load_aes_keys(config->aes_keys, config_path); if (config->num_aes_keys < 0) { BD_DEBUG(DBG_FILE | DBG_CRIT, "Player AES keys not found\n"); } if (_load_ecdsa_keys(config->ecdsa_keys, config_path) < 0) { BD_DEBUG(DBG_FILE | DBG_CRIT, "Player ECDSA keys not found\n"); } if (_load_dev_discovery(config->dev, config_path) < 0) { BD_DEBUG(DBG_FILE | DBG_CRIT, "Player device discovery signatures not found\n"); } if (_load_memory(&config->ram, config_path) < 0) { BD_DEBUG(DBG_FILE | DBG_CRIT, "Player memory loading failed\n"); } X_FREE(base); return 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); }
void ElfLoader::load_symbol_block(vaddr_t kv) { size_t sz; if (!_sym_blk.enable) return; DPRINTF((TEXT("ksyms\n"))); // load header _load_memory(kv, _sym_blk.header_size, _sym_blk.header); kv += _sym_blk.header_size; // load symbol table sz = _sym_blk.shsym->sh_size; _load_segment(kv, sz, _sym_blk.symoff, sz); kv += ROUND4(sz); // load string table sz = _sym_blk.shstr->sh_size; _load_segment(kv, sz, _sym_blk.stroff, sz); }