예제 #1
0
void		window(char *file)
{
	int	loop;
	unsigned int	framelimit;

	framelimit = 0;
	loop = 0;
	game.file = file;
	if (init_all() == 0 && game.map != NULL)
	{
		load_audio();
		//load_intro();
		while (loop == 0)
		{
			loop = get_input_menu();
			load_menu();
			while (loop == 1)
			{
				loop = get_input_game();
				load_game();
				framelimit = delay(framelimit);
			}
			framelimit = delay(framelimit);
		}
	}
	exit_game();
}
예제 #2
0
파일: audio.c 프로젝트: braincat/uwin
static HANDLE open_dsp(Devtab_t* dp, Pfd_t* fdp, Path_t *ip, int oflags, HANDLE *extra)
{
	HANDLE hp;
	int blkno, minor = ip->name[1];
	Pdev_t *pdev;
	unsigned short *blocks = devtab_ptr(Share->chardev_index, AUDIO_MAJOR);

	if(load_audio())
	{

		/* If the device is already opened */
		if(blkno = blocks[minor])
		{
			logerr(LOG_DEV+5, "Device Busy");
			errno = EBUSY;
			return 0;
		}
		else
		{
			WAVEFORMATEX *wp;
			if((blkno = block_alloc(BLK_PDEV)) == 0)
				return(0);
			pdev = dev_ptr(blkno);
			wp = (WAVEFORMATEX*)(pdev+1);
			ZeroMemory((void *)pdev, BLOCK_SIZE-1);
			/* Initialising the wave format sturcture */
			wp->wFormatTag=WAVE_FORMAT_PCM;
			wp->nChannels=CHANNELS;
			wp->nSamplesPerSec=SAMPLES_PER_SEC;
			if(minor&1)
				wp->nSamplesPerSec *= 2;
			wp->wBitsPerSample=BITS_PER_SAMPLE;
			wp->nBlockAlign=(wp->wBitsPerSample*CHANNELS)/8 ;
			wp->nAvgBytesPerSec=wp->nSamplesPerSec*wp->nBlockAlign;
			wp->cbSize=EXTRA_FORMAT_SIZE;
			if(!audio_open(pdev,1))

			{
				logerr(LOG_DEV+5, "waveOutOpen");
				block_free((unsigned short)blkno);
				return 0;
			}
			hp = AUDIO_HANDLE;
			pdev->major=AUDIO_MAJOR;
			pdev->minor = minor;
			uwin_pathmap(ip->path, pdev->devname, sizeof(pdev->devname), UWIN_W2U);

			fdp->devno = blkno;
			blocks[minor] = blkno;
			pdev->devpid = P_CP->pid;
		}
		return hp;
	}
	else
	{
		logerr(0, "audio functions not supported");
		return 0;
	}
}
예제 #3
0
/** Initializes the sound subsystem **/
void SOUND_initialize()
{
	//Load paddle left
	load_audio( paddle_left, ARRAY_SIZE(paddle_left) );

	//Load paddle right
	load_audio( paddle_right, ARRAY_SIZE(paddle_right) );

	//Load paddle miss
	load_audio( paddle_fail, ARRAY_SIZE(paddle_fail) );

	//Load victory song
	load_audio( victory_song, ARRAY_SIZE(victory_song) );
	
	//Load intro song
	load_audio( pong_song, ARRAY_SIZE(pong_song) );

	//Finish up
	SOUND_stop();

	//so that amplitude is calculated
	volume = 5;
	SOUND_change_volume( 0 );
}
예제 #4
0
파일: audio.c 프로젝트: braincat/uwin
static HANDLE audio_open(Pdev_t *pdev, int close)
{
	HANDLE ph,th,hp=pdev->DeviceOutputHandle;
	DWORD err;
	WAVEFORMATEX *wp = (WAVEFORMATEX*)(pdev+1);
	if(!load_audio())
	{
		logerr(0, "audio functions not supported");
		return(0);
	}
	if(hp && P_CP->ntpid==pdev->NtPid)
	{
		if(!close)
			return(hp);
		(*pwaveOutReset)(hp);
		(*pwaveOutClose)(hp);
	}
	else if(pdev->NtPid && (ph=OpenProcess(PROCESS_ALL_ACCESS,FALSE,(DWORD)pdev->NtPid)))
	{
		/* remotely close the wave device */
		if(th=CreateRemoteThread(ph,NULL,0,wave_close,(void*)hp,0,&err))
		{
			if(WaitForSingleObject(th,1000)!=WAIT_OBJECT_0)
				logerr(LOG_PROC+2, "WaitForSingleObject");
			closehandle(th,HT_THREAD);
		}
		else
			logerr(LOG_PROC+2, "CreateRemoteThread");
		closehandle(ph,HT_PROC);
	}
	pdev->NtPid = 0;
	if(err=(*pwaveOutOpen)((HWAVEOUT*)&hp,WAVE_MAPPER,wp,0,0,WAVE_ALLOWSYNC))
	{
		SetLastError(err);
		logerr(LOG_DEV+5, "waveOutOpen");
		errno = maperr(err);
		return 0;
	}
	pdev->opencount = 1;
	pdev->NtPid = P_CP->ntpid;
	pdev->DeviceOutputHandle = hp;
	return(hp);
}