AudioExtractor::AudioExtractor(const char *path, bool reverse) { fNumFrames = 0; fNumSamples = 0; fSamples = NULL; fSourcePath = path; if (path == NULL) return; // The sound file might already be in the right format (AIFF or WAV), try and read it. bool soundRead = ReadSoundFile(path); if (soundRead && reverse) { int32 revI; float temp; for (int32 i = 0; i < fSndInfo.frames / 2; i++) { revI = (int32)fSndInfo.frames - 1 - i; for (int32 j = 0; j < fSndInfo.channels; j++) { temp = fSamples[i * fSndInfo.channels + j]; fSamples[i * fSndInfo.channels + j] = fSamples[revI * fSndInfo.channels + j]; fSamples[revI * fSndInfo.channels + j] = temp; } } } }
void OlaRandom::initialize( char filename[], int datasize, float randomness, int mindist, bool scale_amp ) { // temp BB_setlog( BB_LOG_INFO ); ReadSoundFile( filename ); this->randomness = randomness; this->mindist = mindist; this->scale_amp = scale_amp; this->segsize = datasize; fprintf( stderr, "filename: %s\nsegment size: %d\nrandomness: %.2f\nmindist: %d\namp scale: %s\n", filename, this->segsize, this->randomness, this->mindist, (this->scale_amp ? "true" : "false") ); }
int PiggyInit (void) { int bHamOk = 0, bSoundOk = 0; int i; /*---*/PrintLog (" Initializing hash tables\n"); HashTableInit (bitmapNames, MAX_BITMAP_FILES); HashTableInit (bitmapNames + 1, D1_MAX_BITMAP_FILES); HashTableInit (soundNames, MAX_SOUND_FILES); HashTableInit (soundNames + 1, MAX_SOUND_FILES); /*---*/PrintLog (" Initializing sound data (%d sounds)\n", MAX_SOUND_FILES); for (i=0; i<MAX_SOUND_FILES; i++) { gameData.pig.sound.sounds [0][i].nLength [0] = gameData.pig.sound.sounds [0][i].nLength [1] = 0; gameData.pig.sound.sounds [0][i].data [0] = gameData.pig.sound.sounds [0][i].data [1] = NULL; soundOffset [0][i] = 0; } /*---*/PrintLog (" Initializing bitmap index (%d indices)\n", MAX_BITMAP_FILES); for (i = 0; i < MAX_BITMAP_FILES; i++) gameData.pig.tex.bitmapXlat [i] = i; if (!bogusBitmap_initialized) { int i; ubyte c; /*---*/PrintLog (" Initializing placeholder bitmap\n"); bogusBitmap_initialized = 1; memset (&bogusBitmap, 0, sizeof (grsBitmap)); bogusBitmap.bmProps.w = bogusBitmap.bmProps.h = bogusBitmap.bmProps.rowSize = 64; bogusBitmap.bmTexBuf = bogus_data; bogusBitmap.bmPalette = gamePalette; c = GrFindClosestColor (gamePalette, 0, 0, 63); memset (bogus_data, c, 4096); c = GrFindClosestColor (gamePalette, 63, 0, 0); // Make a big red X ! for (i=0; i<1024; i++) { bogus_data [i * 1024 + i] = c; bogus_data [i * 1024 + (1023 - i)] = c; } PiggyRegisterBitmap (&bogusBitmap, "bogus", 1); bogusSound.nLength [0] = 1024*1024; bogusSound.data [0] = bogus_data; bitmapOffsets [0][0] = bitmapOffsets [1][0] = 0; } if (FindArg ("-bigpig")) bBigPig = 1; if (FindArg ("-lowmem")) bLowMemory = 1; if (FindArg ("-nolowmem")) bLowMemory = 0; if (bLowMemory) gameStates.sound.digi.bLoMem = 1; /*---*/PrintLog (" Loading game data\n"); #if 1 //def EDITOR //need for d1 mission briefings PiggyInitPigFile ((char *) DEFAULT_PIGFILE); #endif /*---*/PrintLog (" Loading main ham file\n"); bSoundOk = bHamOk = ReadHamFile (); if (gameData.pig.tex.nHamFileVersion >= 3) { /*---*/PrintLog (" Loading sound file\n"); bSoundOk = ReadSoundFile (); } if (gameStates.app.bFixModels) gameStates.app.bFixModels = gameStates.app.bDemoData ? 0 : LoadRobotReplacements ("d2x-xl", 0, 1) > 0; LoadTextureBrightness ("descent2", gameData.pig.tex.defaultBrightness [0]); LoadTextureBrightness ("descent", gameData.pig.tex.defaultBrightness [1]); LoadTextureColors ("descent2", gameData.render.color.defaultTextures [0]); LoadTextureColors ("descent", gameData.render.color.defaultTextures [1]); atexit (PiggyClose); return (bHamOk && bSoundOk); //read ok }