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();
}

/*--------------------------------------------------*/