Exemple #1
0
//==============================================================================
bool PEFile::checkValidity() {
    // 'dosHeader.Signature' must be "MZ" && 'peHeaders.Signature' must be "PE\0\0"
    if (dosHeader.Signature != IMAGE_DOS_SIGNATURE || peHeaders.Signature != IMAGE_NT_SIGNATURE) {
        unloadFile();
        echo("Invalid PE file!");
        return false;
    }

    if (peHeaders.FileHeader.NumberOfSections > MAX_SECTION_COUNT) {
        unloadFile();
        echo("Number of sections > MAX_SECTION_COUNT !");
        return false;
    }

    return true;
}
Exemple #2
0
//==============================================================================
bool PEFile::loadFromFile(char* filePath) {
    unloadFile();

    return readFileData(filePath) &&
           readHeaders() &&
           readBody() &&
           readImportTable();
}
Exemple #3
0
//==============================================================================
bool PEFile::loadFromMemory(char* memoryAddress) {
    unloadFile();

    peMemory = memoryAddress;

    return readHeaders()/* &&
		   readBody() &&
		   readImportTable()*/;
}
Exemple #4
0
/**
 * Default destructor.
 *
 * @remarks             It calls CloseFile() if needed.
 */
FPStream::~FPStream() {
	if (!_soundSupported)
		return;

	if (g_system->getMixer()->isSoundHandleActive(_handle))
		stop();

	if (_fileLoaded)
		unloadFile();

	_syncToPlay = NULL;
}
Exemple #5
0
/**
 * Opens a file stream
 *
 * @param fileName      Filename to be opened
 * @param bufSize       Buffer size
 *
 * @returns             True is everything is OK, False otherwise
 */
bool FPStream::loadFile(const Common::String &fileName, int bufSize) {
	if (!_soundSupported)
		return true;

	if (_fileLoaded)
		unloadFile();

	SoundCodecs codec = FPCODEC_UNKNOWN;

	// Open the file stream for reading
	if (_file.open(fileName))
		codec = FPCODEC_ADPCM;
	else if (_file.open(setExtension(fileName, ".MP3")))
		codec = FPCODEC_MP3;
	else if (_file.open(setExtension(fileName, ".OGG")))
		codec = FPCODEC_OGG;
	else if (_file.open(setExtension(fileName, ".FLA")))
		codec = FPCODEC_FLAC;
	// Fallback: try with an extra '0' prefix
	else if (_file.open("0" + fileName)) {
		codec = FPCODEC_ADPCM;
		warning("FPStream::loadFile(): Fallback from %s to %s", fileName.c_str(), _file.getName());
	} else if (_file.open(setExtension("0" + fileName, ".MP3"))) {
		codec = FPCODEC_MP3;
		warning("FPStream::loadFile(): Fallback from %s to %s", fileName.c_str(), _file.getName());
	} else if (_file.open(setExtension("0" + fileName, ".OGG"))) {
		codec = FPCODEC_OGG;
		warning("FPStream::loadFile(): Fallback from %s to %s", fileName.c_str(), _file.getName());
	} else if (_file.open(setExtension("0" + fileName, ".FLA"))) {
		codec = FPCODEC_FLAC;
		warning("FPStream::loadFile(): Fallback from %s to %s", fileName.c_str(), _file.getName());
	} else
		return false;

	// Save the size of the stream
	_size = _file.size();

#ifdef __amigaos4__
	// HACK: AmigaOS 4 has weird performance problems with reading in the audio thread,
	// so we read the whole stream into memory.
	switch (codec) {
	case FPCODEC_ADPCM:
		_rewindableStream = Audio::makeADPCMStream(_file.readStream(_size), DisposeAfterUse::YES, 0, Audio::kADPCMDVI, 44100, 2);
		break;
	case FPCODEC_MP3:
#ifdef USE_MAD
		_rewindableStream = Audio::makeMP3Stream(&_file, DisposeAfterUse::YES);
#endif
		break;
	case FPCODEC_OGG:
#ifdef USE_VORBIS
		_rewindableStream = Audio::makeVorbisStream(&_file, DisposeAfterUse::YES);
#endif
		break;
	case FPCODEC_FLAC:
#ifdef USE_FLAC
		_rewindableStream = Audio::makeFLACStream(&_file, DisposeAfterUse::YES);
#endif
		break;
	default:
		break;
	}
#else
	switch (codec) {
	case FPCODEC_ADPCM:
		_rewindableStream = Audio::makeADPCMStream(&_file, DisposeAfterUse::NO, 0, Audio::kADPCMDVI, 44100, 2);
		break;
	case FPCODEC_MP3:
#ifdef USE_MAD
		_rewindableStream = Audio::makeMP3Stream(&_file, DisposeAfterUse::NO);
#endif
		break;
	case FPCODEC_OGG:
#ifdef USE_VORBIS
		_rewindableStream = Audio::makeVorbisStream(&_file, DisposeAfterUse::NO);
#endif
		break;
	case FPCODEC_FLAC:
#ifdef USE_FLAC
		_rewindableStream = Audio::makeFLACStream(&_file, DisposeAfterUse::NO);
#endif
		break;
	default:
		break;
	}
#endif

	// All done
	_fileLoaded = true;
	_paused = false;

	setVolume(63);

	return true;
}
 //------------------------------------------------------------------------------
 CGameMessageConfig::~CGameMessageConfig()
 {
     unloadFile();
 }
Exemple #7
0
//==============================================================================
PEFile::~PEFile() {
    unloadFile();
}