Example #1
0
	/** 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);
	}
Example #2
0
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;
}
Example #3
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);
    }
Example #4
0
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);
}