void BassSoundEngine::PlaySound(string filename, float volume) { HSAMPLE sound = ReadSound(filename); HSTREAM channel = BASS_SampleGetChannel(sound, FALSE); BASS_ChannelSetAttribute(channel, BASS_ATTRIB_VOL, volume*defaultVolume); BASS_ChannelPlay(channel, TRUE); }
void test21() { printf("-----------------------------------------------------------\n"); printf("Non real-time rendering : use the MakeRendererSound wrapper\n"); printf("-----------------------------------------------------------\n\n"); AudioStream sound = MakeRendererSound(MakeWriteSound("output.aif", MakeReadSound(FILENAME3),SF_FORMAT_AIFF | SF_FORMAT_PCM_16)); float buffer[512 * OUT_CHANNELS]; long res; do { res = ReadSound(sound, buffer, 512, OUT_CHANNELS); printf("Simulate non real-time rendering : use buffer here %ld\n", res); } while (res == 512); printf("Simulate non real-time rendering : use last buffer here %ld\n", res); }
void test20() { printf("-----------------------------------------------------------\n"); printf("Non real-time rendering : use the MakeRendererSound wrapper\n"); printf("-----------------------------------------------------------\n\n"); //AudioStream sound = MakeRendererSound(MakeRegionSound(FILENAME2, 400000, 500000)); AudioStream sound = MakeRendererSound(MakeRegionSound(FILENAME2, 0, 1000)); float buffer[512 * OUT_CHANNELS]; long res; do { res = ReadSound(sound, buffer, 512, OUT_CHANNELS); printf("Simulate non real-time rendering : use buffer here %ld\n", res); } while (res == 512); printf("Simulate non real-time rendering : use last buffer here %ld\n", res); }
SWBOOL CacheSound(int num, int type) { VOC_INFOp vp = &voc[num]; PRODUCTION_ASSERT(num >= 0 && num < DIGI_MAX); // if no data we need to cache it in if (!vp->data) { int handle; int length; if (!OpenSound(vp, &handle, &length)) { sprintf(ds,"Could not open sound %s, num %d, priority %d\n",vp->name,num,vp->priority); CON_ConMessage(ds); return FALSE; } if (vp != NULL) { //FILE *fp; /* if (type == CACHE_SOUND_PLAY) // start it out locked at the min vp->lock = CACHE_LOCK_START; else if (type == CACHE_SOUND_PRECACHE) // start it out unlocked at the max */ vp->lock = CACHE_UNLOCK_MAX; allocache((intptr_t*)&vp->data, length, &vp->lock); #if 0 // DEBUG globsndata[num] = AllocMem(length); glength[num] = length; fp = fopen(vp->name, "rb"); if (fp != NULL) { fread(globsndata[num], length, 1, fp); ASSERT(globsndata[num] != NULL); fclose(fp); } #endif /////// ASSERT(vp->data); ReadSound(handle, vp, length); #if 0 //DEBUG globvpdata[num] = vp->data; CheckSndData(__FILE__, __LINE__); #endif } } return TRUE; }