diff --git a/project/jni/application/openal-demo/AndroidAppSettings.cfg b/project/jni/application/openal-demo/AndroidAppSettings.cfg new file mode 100644 index 000000000..26337da72 --- /dev/null +++ b/project/jni/application/openal-demo/AndroidAppSettings.cfg @@ -0,0 +1,42 @@ +# The application settings for Android libSDL port +AppSettingVersion=17 +LibSdlVersion=1.2 +AppName="OpenAL demo" +AppFullName=net.openal.demo +ScreenOrientation=h +InhibitSuspend=n +AppDataDownloadUrl="Game data is 1 Mb|ballfield.zip" +VideoDepthBpp=16 +NeedDepthBuffer=n +NeedStencilBuffer=n +NeedGles2=n +SwVideoMode=y +SdlVideoResize=y +SdlVideoResizeKeepAspect=n +CompatibilityHacks=n +AppUsesMouse=n +AppNeedsTwoButtonMouse=n +ForceRelativeMouseMode=n +AppNeedsArrowKeys=n +AppNeedsTextInput=n +AppUsesJoystick=n +AppHandlesJoystickSensitivity=n +AppUsesMultitouch=n +NonBlockingSwapBuffers=n +RedefinedKeys="SPACE" +AppTouchscreenKeyboardKeysAmount=0 +AppTouchscreenKeyboardKeysAmountAutoFire=0 +RedefinedKeysScreenKb="1 2 3 4 5 6 1 2 3 4" +StartupMenuButtonTimeout=3000 +HiddenMenuOptions='' +FirstStartMenuOptions='' +MultiABI=n +AppVersionCode=101 +AppVersionName="1.01" +CompiledLibraries="sdl_mixer sdl_image openal" +CustomBuildScript=n +AppCflags='-O2 -finline-functions' +AppLdflags='' +AppSubdirsBuild='' +AppCmdline='' +ReadmeText='^Readme text' diff --git a/project/jni/application/openal-demo/AndroidData/ballfield.zip b/project/jni/application/openal-demo/AndroidData/ballfield.zip new file mode 100644 index 000000000..50dc9d55c Binary files /dev/null and b/project/jni/application/openal-demo/AndroidData/ballfield.zip differ diff --git a/project/jni/application/openal-demo/icon.png b/project/jni/application/openal-demo/icon.png new file mode 100644 index 000000000..b3614e149 Binary files /dev/null and b/project/jni/application/openal-demo/icon.png differ diff --git a/project/jni/application/openal-demo/openal.cpp b/project/jni/application/openal-demo/openal.cpp new file mode 100644 index 000000000..fbb910d12 --- /dev/null +++ b/project/jni/application/openal-demo/openal.cpp @@ -0,0 +1,166 @@ +/* + * openal.cpp + * PIGE-OpenAL + * + * Created by Chad Armstrong on Mon Jul 29 2002. + * Copyright (c) 2002 Edenwaith. All rights reserved. + * + * Remember to add these frameworks: GLUT, OpenAL, OpenGL + * Otherwise, Undefined symbols: errors will result + * + * Several prebind errors will occur, but I was still able to compile + * and run the program. + * + * A VERY important step to get this to work is to copy the .wav files into + * the .app/Contents/MacOS folder. You need to use Terminal to do + * this since the Finder windows interpret the .app as an executable + * file instead. + */ + +#include +#include +#include + +// function prototypes --------------------------------------------- +void init(); + +// highly evil global variables --------------------------------------------- +#define NUM_BUFFERS 3 +#define NUM_SOURCES 3 +#define NUM_ENVIRONMENTS 1 + +ALfloat listenerPos[]={0.0,0.0,4.0}; +ALfloat listenerVel[]={0.0,0.0,0.0}; +ALfloat listenerOri[]={0.0,0.0,1.0, 0.0,1.0,0.0}; + +ALfloat source0Pos[]={ -2.0, 0.0, 0.0}; +ALfloat source0Vel[]={ 0.0, 0.0, 0.0}; + + +ALfloat source1Pos[]={ 2.0, 0.0, 0.0}; +ALfloat source1Vel[]={ 0.0, 0.0, 0.0}; + +ALfloat source2Pos[]={ 0.0, 0.0, -4.0}; +ALfloat source2Vel[]={ 0.0, 0.0, 0.0}; + +ALuint buffer[NUM_BUFFERS]; +ALuint source[NUM_SOURCES]; +ALuint environment[NUM_ENVIRONMENTS]; + +ALsizei size,freq; +ALenum format; +ALvoid *data; +int ch; + +int main(int argc, char** argv) //finaly the main function +{ + SDL_Init(SDL_INIT_VIDEO); + SDL_Surface *screen; + screen = SDL_SetVideoMode(320, 200, 16, 0); + + atexit(SDL_Quit); + + init(); + + for(int i=0; i < 3; i++) + alSourcePlay(source[i]); + int color = 0; + while(1) + { + SDL_FillRect(screen, NULL, color); + color += 5; + + SDL_Flip(SDL_GetVideoSurface()); + SDL_Delay(50); + + SDL_Event evt; + while( SDL_PollEvent(&evt) ) + { + if(evt.type == SDL_KEYDOWN) + { + Uint8 *keys = SDL_GetKeyState(NULL); + if(keys[SDLK_ESCAPE]) + return 0; + } + } + } + + return 0; +} + +// =================================================================== +// void init() +// =================================================================== +void init(void) +{ + alutInit(0, NULL); + + alListenerfv(AL_POSITION,listenerPos); + alListenerfv(AL_VELOCITY,listenerVel); + alListenerfv(AL_ORIENTATION,listenerOri); + + alGetError(); // clear any error messages + + if(alGetError() != AL_NO_ERROR) + { + printf("- Error creating buffers !!\n"); + exit(1); + } + else + { + printf("init() - No errors yet."); + } + + // Generate buffers, or else no sound will happen! + alGenBuffers(NUM_BUFFERS, buffer); + + alutLoadWAVFile((ALbyte*)"c.wav",&format,&data,&size,&freq,NULL); + alBufferData(buffer[0],format,data,size,freq); + alutUnloadWAV(format,data,size,freq); + + alutLoadWAVFile((ALbyte*)"b.wav",&format,&data,&size,&freq,NULL); + alBufferData(buffer[1],format,data,size,freq); + alutUnloadWAV(format,data,size,freq); + + alutLoadWAVFile((ALbyte*)"a.wav",&format,&data,&size,&freq,NULL); + alBufferData(buffer[2],format,data,size,freq); + alutUnloadWAV(format,data,size,freq); + + alGetError(); /* clear error */ + alGenSources(NUM_SOURCES, source); + + if(alGetError() != AL_NO_ERROR) + { + printf("- Error creating sources !!\n"); + exit(2); + } + else + { + printf("init - no errors after alGenSources\n"); + } + + alSourcef(source[0],AL_PITCH,1.0f); + alSourcef(source[0],AL_GAIN,1.0f); + alSourcefv(source[0],AL_POSITION,source0Pos); + alSourcefv(source[0],AL_VELOCITY,source0Vel); + alSourcei(source[0],AL_BUFFER,buffer[0]); + alSourcei(source[0],AL_LOOPING,AL_TRUE); + + alSourcef(source[1],AL_PITCH,1.0f); + alSourcef(source[1],AL_GAIN,1.0f); + alSourcefv(source[1],AL_POSITION,source1Pos); + alSourcefv(source[1],AL_VELOCITY,source1Vel); + alSourcei(source[1],AL_BUFFER,buffer[1]); + alSourcei(source[1],AL_LOOPING,AL_TRUE); + + alSourcef(source[2],AL_PITCH,1.0f); + alSourcef(source[2],AL_GAIN,1.0f); + alSourcefv(source[2],AL_POSITION,source2Pos); + alSourcefv(source[2],AL_VELOCITY,source2Vel); + alSourcei(source[2],AL_BUFFER,buffer[2]); + alSourcei(source[2],AL_LOOPING,AL_TRUE); +} + + + +