Added OpenAL demo app
This commit is contained in:
42
project/jni/application/openal-demo/AndroidAppSettings.cfg
Normal file
42
project/jni/application/openal-demo/AndroidAppSettings.cfg
Normal file
@@ -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'
|
||||
BIN
project/jni/application/openal-demo/AndroidData/ballfield.zip
Normal file
BIN
project/jni/application/openal-demo/AndroidData/ballfield.zip
Normal file
Binary file not shown.
BIN
project/jni/application/openal-demo/icon.png
Normal file
BIN
project/jni/application/openal-demo/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
166
project/jni/application/openal-demo/openal.cpp
Normal file
166
project/jni/application/openal-demo/openal.cpp
Normal file
@@ -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 name>.app/Contents/MacOS folder. You need to use Terminal to do
|
||||
* this since the Finder windows interpret the <app name>.app as an executable
|
||||
* file instead.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <SDL/SDL.h>
|
||||
#include <AL/alut.h>
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user