back to the text
/*----------------------------------------------------
*
* MAIN.c - init and main functions for
* Push/Pop and attached apps
*
*--------------------------------------------------*/
#include "INCLUDES.h"
AUDIOserver srv;
AUDIOsample smp1, smp2, smp3, smp4, smp5, smp6, smp7, smp8,
smp9, smp10, smp11, smp12, smp13, smp14;
char snd_dir1[512] , snd_samp1[128] ;
char snd_dir2[512] , snd_samp2[128] ;
char snd_dir3[512] , snd_samp3[128] ;
char snd_dir4[512] , snd_samp4[128] ;
char snd_dir5[512] , snd_samp5[128] ;
char snd_dir6[512] , snd_samp6[128] ;
char snd_dir7[512] , snd_samp7[128] ;
char snd_dir8[512] , snd_samp8[128] ;
char snd_dir9[512] , snd_samp9[128] ;
char snd_dir10[512] , snd_samp10[128] ;
char snd_dir11[512] , snd_samp11[128] ;
char snd_dir12[512] , snd_samp12[128] ;
char snd_dir13[512] , snd_samp13[128] ;
char snd_dir14[512] , snd_samp14[128] ;
int *App_in_use;
/*--------------------------------------------------*/
void read_audio_config()
{
FILE *file ;
file = fopen("hugesound.audiofiles", "r");
fscanf(file, "%s %s", snd_dir1, snd_samp1);
printf( " %s %s \n" , snd_dir1, snd_samp1 );
fscanf(file, "%s %s", snd_dir2, snd_samp2);
printf( " %s %s \n" , snd_dir2, snd_samp2 );
fscanf(file, "%s %s", snd_dir3, snd_samp3);
printf( " %s %s \n" , snd_dir3, snd_samp3 );
fscanf(file, "%s %s", snd_dir4, snd_samp4);
printf( " %s %s \n" , snd_dir4, snd_samp4 );
fscanf(file, "%s %s", snd_dir5, snd_samp5);
printf( " %s %s \n" , snd_dir5, snd_samp5 );
fscanf(file, "%s %s", snd_dir6, snd_samp6);
printf( " %s %s \n" , snd_dir6, snd_samp6 );
fscanf(file, "%s %s", snd_dir7, snd_samp7);
printf( " %s %s \n" , snd_dir7, snd_samp7 );
fscanf(file, "%s %s", snd_dir8, snd_samp8);
printf( " %s %s \n" , snd_dir8, snd_samp8 );
fscanf(file, "%s %s", snd_dir9, snd_samp9);
printf( " %s %s \n" , snd_dir9, snd_samp9 );
fscanf(file, "%s %s", snd_dir10, snd_samp10);
printf( " %s %s \n" , snd_dir10, snd_samp10 );
fscanf(file, "%s %s", snd_dir11, snd_samp11);
printf( " %s %s \n" , snd_dir11, snd_samp11 );
fscanf(file, "%s %s", snd_dir12, snd_samp12);
printf( " %s %s \n" , snd_dir12, snd_samp12 );
fscanf(file, "%s %s", snd_dir13, snd_samp13);
printf( " %s %s \n" , snd_dir13, snd_samp13 );
fscanf(file, "%s %s", snd_dir14, snd_samp14);
printf( " %s %s \n" , snd_dir14, snd_samp14 );
fclose(file);
}
/*--------------------------------------------------*/
void credits_Init(void)
{
CAVEFar = 500.0;
mssize(16, 32, 0);
zbsize(0);
gconfig();
}
/*--------------------------------------------------*/
void credits(void)
{
static ulong *image = NULL;
cpack(0xff000000); clear(); zclear();
if(!image) image = longimagedata("CREDITS/pushpop.rgb");
lrectwrite(0, 0, 1024 - 1, 767 - 1, image);
}
/*--------------------------------------------------*/
void Main_Init(void)
{
srv.enable();
smp1.create(snd_dir1, snd_samp1);
smp2.create(snd_dir2, snd_samp2);
smp3.create(snd_dir3, snd_samp3);
smp4.create(snd_dir4, snd_samp4);
smp5.create(snd_dir5, snd_samp5);
smp6.create(snd_dir6, snd_samp6);
smp7.create(snd_dir7, snd_samp7);
smp8.create(snd_dir8, snd_samp8);
smp9.create(snd_dir9, snd_samp9);
smp10.create(snd_dir10, snd_samp10);
smp11.create(snd_dir11, snd_samp11);
smp12.create(snd_dir12, snd_samp12);
smp13.create(snd_dir13, snd_samp13);
smp14.create(snd_dir14, snd_samp14);
GLobjPyrIndex = GLmakePyr();
GLobjTriangleIndex = GLmakeTriangle();
GLobjSqrIndex = GLmakeSqr();
GLobjCubeIndex = GLmakeCube();
GLobjCylIndex = GLmakeCyl();
GLobjsculptureIndex = GLmakesculpture();
GLobjsculpture2Index = GLmakesculpture2();
GLobjcubicvolumeIndex = GLmakecubicvolume();
GLobjSphIndex = GLmakeSph();
rsReadTextures();
}
/*--------------------------------------------------*/
void main(int argc, char **argv)
{
int quit = 0;
/*obj from soft variables*/
int NumArgs = 0, i;
char **ArgMents;
ArgMents = GetArgs(OBJFILES, &NumArgs);
csoftarray = init_object(NumArgs,ArgMents);
APP_COUNTER();
CAVEConfigure(&argc, argv, NULL);
setup_navigation();
App_in_use=(int*) CAVEMalloc(sizeof(int));
read_audio_config();
CAVEInit();
CAVEInitApplication(credits_Init, 0);
CAVEDisplay(credits,0);
CAVEInitApplication(Main_Init, 0);
if (*App_in_use == 0)reset_navigation_to(6.5, 0, 13, -90);
CAVEFrameFunction(APP_updt, 0);
CAVEDisplay(APP_draw,0);
while (quit == 0)
{
if ((CAVEBUTTON1 + CAVEBUTTON2 + CAVEBUTTON3) == 3)
{
printf (" = 3. going to exit. \n");
quit = 1;
}
do_navigation();
sginap (1);
}
CAVEExit();
}
/*--------------------------------------------------*/