Пример #1
0
int setHoldInterface(LtpInterfaceType *ltpInterfaceP,int holdB)
{
	int er = 0;
	if(ltpInterfaceP->ltpObjectP->sipOnB==false) //ltp interface
	{
		if(holdB)
		{	
			
			//er = pauseAudio(ltpInterfaceP->recordP);
			er =  pauseAudio(ltpInterfaceP->playbackP);
			if(er==0)
			{
				ltpInterfaceP->holdB = true;
			}
		}
		else
		{
			ltpInterfaceP->holdB = false;
			//PlayAudio(ltpInterfaceP->recordP);
			return 	PlayAudio(ltpInterfaceP->playbackP);
		}
		return 0;
	}
	else
	{	
		setHold(ltpInterfaceP->ltpObjectP,holdB);
	}
	
	
	return 0;
}
Пример #2
0
		void Sound::Pause()
		{
			if (_sound)
			{
				pauseAudio(_sound);
			}
		}
Пример #3
0
	static char* playGame_func(){
		if(!hasLoadedROM) return "Please load a ROM first";
		
		pauseRemovalThread();
		resumeAudio();
		resumeInput();
		GUI_toggle();
		go();
		GUI_toggle();
		pauseInput();
		pauseAudio();
		continueRemovalThread();
		return NULL;
	}
Пример #4
0
void ControlBar::playButtonClicked()
{
   if (isAudioPlaying)
   {
       this -> playButton -> setIcon( this -> style() -> standardIcon(QStyle::SP_MediaPlay));
       emit pauseAudio();
   }
   else
   {
       this -> playButton -> setIcon( this -> style() -> standardIcon(QStyle::SP_MediaPause));
       emit playAudio();
   }

   isAudioPlaying = !isAudioPlaying;

}
Пример #5
0
static void pauseMovie(struct nodeInstanceData *context)
{
	if (! context->movie)
		return;

	if(context->movie_timer)
	{
		dispatch_source_cancel(context->movie_timer);
		dispatch_semaphore_wait(context->movie_timerCanceled, DISPATCH_TIME_FOREVER);
		dispatch_release(context->movie_timer);
	}

	context->movie_timer = NULL;

	if(context->lastImage)
	{
		VuoRelease(context->lastImage);
		context->lastImage = NULL;
	}

	pauseAudio(context);
}
Пример #6
0
void Func_PlayGame()
{
	if(!hasLoadedROM)
	{
		menu::MessageBox::getInstance().setMessage("Please load a ROM first");
		return;
	}
	
	//Wait until 'A' button released before play/resume game
	menu::Cursor::getInstance().setFreezeAction(true);
	menu::Focus::getInstance().setFreezeAction(true);
	int buttonHeld = 1;
	while(buttonHeld)
	{
		buttonHeld = 0;
		menu::Gui::getInstance().draw();
		for (int i=0; i<4; i++)
		{
			if(PAD_ButtonsHeld(i) & PAD_BUTTON_A) buttonHeld++;
#ifdef HW_RVL
			WPADData* wiiPad = WPAD_Data(i);
			if(wiiPad->err == WPAD_ERR_NONE && wiiPad->btns_h & (WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A)) buttonHeld++;
#endif
		}
	}
	menu::Cursor::getInstance().setFreezeAction(false);
	menu::Focus::getInstance().setFreezeAction(false);

	menu::Gui::getInstance().gfx->clearEFB((GXColor){0, 0, 0, 0xFF}, 0x000000);
	pause_netinit_thread();
	pauseRemovalThread();
	resumeAudio();
	resumeInput();
	menuActive = 0;
#ifdef DEBUGON
	_break();
#endif
	new_frame();
	new_vi();
	go();
#ifdef DEBUGON
	_break();
#endif
	menuActive = 1;
	pauseInput();
	pauseAudio();

  if(autoSave==AUTOSAVE_ENABLE) {
    if(flashramWritten || sramWritten || eepromWritten || mempakWritten) {  //something needs saving
      switch (nativeSaveDevice)
    	{
    		case NATIVESAVEDEVICE_SD:
    		case NATIVESAVEDEVICE_USB:
    			// Adjust saveFile pointers
    			saveFile_dir = (nativeSaveDevice==NATIVESAVEDEVICE_SD) ? &saveDir_libfat_Default:&saveDir_libfat_USB;
    			saveFile_readFile  = fileBrowser_libfat_readFile;
    			saveFile_writeFile = fileBrowser_libfat_writeFile;
    			saveFile_init      = fileBrowser_libfat_init;
    			saveFile_deinit    = fileBrowser_libfat_deinit;
    			break;
    		case NATIVESAVEDEVICE_CARDA:
    		case NATIVESAVEDEVICE_CARDB:
    			// Adjust saveFile pointers
    			saveFile_dir       = (nativeSaveDevice==NATIVESAVEDEVICE_CARDA) ? &saveDir_CARD_SlotA:&saveDir_CARD_SlotB;
    			saveFile_readFile  = fileBrowser_CARD_readFile;
    			saveFile_writeFile = fileBrowser_CARD_writeFile;
    			saveFile_init      = fileBrowser_CARD_init;
    			saveFile_deinit    = fileBrowser_CARD_deinit;
    			break;
    	}
    	// Try saving everything
    	int amountSaves = flashramWritten + sramWritten + eepromWritten + mempakWritten;
    	int result = 0;
    	saveFile_init(saveFile_dir);
    	result += saveEeprom(saveFile_dir);
    	result += saveSram(saveFile_dir);
    	result += saveMempak(saveFile_dir);
    	result += saveFlashram(saveFile_dir);
    	saveFile_deinit(saveFile_dir);
    	if (result==amountSaves) {  //saved all of them ok	
    		switch (nativeSaveDevice)
    		{
    			case NATIVESAVEDEVICE_SD:
    				menu::MessageBox::getInstance().fadeMessage("Automatically saved to SD card");
    				break;
    			case NATIVESAVEDEVICE_USB:
    				menu::MessageBox::getInstance().fadeMessage("Automatically saved to USB device");
    				break;
    			case NATIVESAVEDEVICE_CARDA:
    				menu::MessageBox::getInstance().fadeMessage("Automatically saved to memcard in Slot A");
    				break;
    			case NATIVESAVEDEVICE_CARDB:
    				menu::MessageBox::getInstance().fadeMessage("Automatically saved to memcard in Slot B");
    				break;
    		}
    		flashramWritten = sramWritten = eepromWritten = mempakWritten = 0;  //nothing new written since save
  		}
  	  else		
  	    menu::MessageBox::getInstance().setMessage("Failed to save game"); //one or more failed to save
      
    }
  }

	continueRemovalThread();
	resume_netinit_thread();
	FRAME_BUTTONS[5].buttonString = FRAME_STRINGS[6];
	menu::Cursor::getInstance().clearCursorFocus();
}
Пример #7
0
int single_game(){
    Audio RRR;
    openAudioFile(".\\wav\\RRR.wav", &RRR);
	initializeKeyInput();
	Character yg = characterMaking1(".\\pic\\yg.pixel",".\\pic\\yg.color");
	int key_val[NUM_KEYS]={VK_A,VK_D,VK_ESCAPE};
	int stand=0,score=0,standBrick,pDown1,pDown2;
	double drop=0,scoreCount=0;
	Brick bricks[15];
	int i,j,k;
    char scoreStr[4]={'0'};
	for(i=0;i<10;i++){
		bricks[i].y=-1;
		bricks[i].w=40;
		bricks[i].h=2;
		if(i%2==0)bricks[i].color=15;
		else if(i<=5)bricks[i].color=8;
		else if(i>5)bricks[i].color=12;
		else bricks[i].color=10;
	}
	bricks[0].x=0;
	bricks[0].y=100;
	Font *large_font=read_font("font.txt");
	float lastbrick=0;
	int hp = 10,second=0;
	float rate=0.15;
	while(1){
		clearScreen();
		srand(clock());
        for(i=0;i<10;i++){
            if(bricks[i].y>0)bricks[i].y--;
            else if(bricks[i].y==0)bricks[i].y=-100;
            for(k=0;k<2;k++){
                for(j=0;j<bricks[k].w;j++){
                    putString(bricks[i].x+j,bricks[i].y+k,"=",bricks[i].color,0);
                }
            }
        }
        if(score>50){
            rate = 0.2;
        }
        else if(score>75){
            rate = 0.25;
        }
        else if(score>100){
            rate = 0.3;
        }
		if((float)clock()/(float)CLOCKS_PER_SEC-(float)lastbrick>rate&&rand()%10==1){
			for(i=0;i<10;i++){
				if(bricks[i].y<0){
					bricks[i].y=170;
					bricks[i].x=rand()%185;
					lastbrick=(float)clock()/(float)CLOCKS_PER_SEC;
					for(k=0;k<2;k++){
                        for(j=0;j<bricks[i].w;j++){
                            putString(bricks[i].x+j,bricks[i].y+k,"=",bricks[i].color,0);
                        }
                    }
					break;
				}
			}
		}

        for(k=0;k<10;k++){
        	if(abs(yg.y+yg.h-bricks[k].y)<=2&&(
            (yg.x+yg.w>bricks[k].x&&yg.x+yg.w<bricks[k].x+bricks[k].w)||
            (yg.x>bricks[k].x&&yg.x<bricks[k].x+bricks[k].w))){
        		stand=1;
        		standBrick=k;
        		yg.y=bricks[k].y-yg.h;
                break;
			}
			else if(k==9){
                stand=0;
                standBrick=-1;
			}
		}

        if(stand==1){
            drop=0;
            second++;
            if(bricks[standBrick].color==15&&second==15){
                second=0;
                if(hp<10)hp++;
            }
            else if(bricks[standBrick].color==12){
                second++;
                if(second==20){
                    second=0;
                    hp--;
                    playAudio(&RRR);
                }
            }
            else if(bricks[standBrick].color==8){
                if(second==10){
                    second=0;
                    bricks[standBrick].y=-100;
                }
            }
		}
		else{
            if(drop<2)drop+=0.5;
            yg.y+=(int)drop;
            second=0;
		}

		if(yg.y<0){
            yg.y+=10;
            drop=3;
            hp-=4;
            playAudio(&RRR);
		}
		for (k = 0 ; k < NUM_KEYS ; k++){
            if(KEY_DOWN(key_val[k])){
                switch (key_val[k]){
	                case VK_A:
	                	if(yg.x>=0)yg.x-=5;
	                	break;
	                case VK_D:
	                	if(yg.x+yg.w<225)yg.x+=5;
	                	break;
                    case VK_ESCAPE:
                        return 3;
                        break;
          	  	}
            }
        }
        show_image(yg.pic,yg.x,yg.y);
        for(i=0;i<225;i++){
            for(j=151;j<=170;j++){
                putString(i,j," ",0,0);
            }
        }
		putStringLarge(large_font,159,158,"HP ",15);
		putStringLarge(large_font,159,152,"STAGE ",15);
		scoreCount++;
		score = (pow(scoreCount/300,1.5));
		scoreStr[0]=score/100+'0';
		scoreStr[1]=score/10%10+'0';
		scoreStr[2]=score%10+'0';
		putStringLarge(large_font,201,152,scoreStr,15);
		for(i=0;i<hp;i++){
            for(j=1;j<5;j++){
                for(k=0;k<=4;k++)putString(180+i*4+j,158+k,"|",12,0);
            }
		}
		for(i=0;i<225;i++)putString(i,0,"V",12,0);
        for(i=0;i<225;i++){
            putString(i,149,"=",12,0);
        }
        for(i=0;i<150;i++){
            putString(0,i,"|",0,12);
            putString(224,i,"|",0,12);
        }
        drawCmdWindow();
        if(yg.y>150||hp<=0){
            break;
		};
        if(KEY_UP(VK_P)&&pDown1)pDown1=0;
        if(KEY_UP(VK_P)&&pDown2)pDown2=0;
        if(KEY_DOWN(VK_P)&&!pDown1){
            pDown1=1;
            putStringLarge(large_font,45,70,"Press P to continue",12);
            drawCmdWindow();
            Sleep(500);
            while(1){
                if(KEY_DOWN(VK_P)&&!pDown2){
                    pDown2=1;
                    break;
                }
            }
        }
		Sleep(20);
	}
	pauseAudio(&RRR);
	Image * jh =read_image(".\\pic\\jh.pixel",".\\pic\\jh.color");
	show_image(jh,15,30);
    putStringLarge(large_font,75,80,"SCORE ",15);
    putStringLarge(large_font,120,80,scoreStr,15);
    drawCmdWindow();
	Audio *barbar;
	openAudioFile(".\\wav\\88wav.wav",&barbar);
	playAudio(&barbar);
	Sleep(3500);
	int flagg = 1;
    putStringLarge(large_font, 45, 90, "Press esc to exit", 15);
    drawCmdWindow();
    while(flagg){
        if(KEY_DOWN(VK_ESCAPE))return 3;
    }
	clearScreen();
}
Пример #8
0
void savestates_save()
{ 
  gzFile f;
	char *filename, buf[1024];
  int len, i;
	
  /* fix the filename to %s.st%d format */
  filename = malloc(1024);
  sprintf(filename, "%s%s%s%s.st%d",(saveStateDevice==SAVESTATEDEVICE_USB)?"usb:":"sd:",
                           statespath, ROM_SETTINGS.goodname, saveregionstr(),savestates_slot);

	f = gzopen(filename, "wb");
  free(filename);
   	
  if(!f) {
  	return;
	}
  if(stop) {
	  pauseRemovalThread();
  }
  else {
    pauseAudio();
  }  
  gzwrite(f, &rdram_register, sizeof(RDRAM_register));
	gzwrite(f, &MI_register, sizeof(mips_register));
	gzwrite(f, &pi_register, sizeof(PI_register));
	gzwrite(f, &sp_register, sizeof(SP_register));
	gzwrite(f, &rsp_register, sizeof(RSP_register));
	gzwrite(f, &si_register, sizeof(SI_register));
	gzwrite(f, &vi_register, sizeof(VI_register));
	gzwrite(f, &ri_register, sizeof(RI_register));
	gzwrite(f, &ai_register, sizeof(AI_register));
	gzwrite(f, &dpc_register, sizeof(DPC_register));
	gzwrite(f, &dps_register, sizeof(DPS_register));
#ifdef USE_EXPANSION
	gzwrite(f, rdram, 0x800000);
#else
  gzwrite(f, rdram, 0x400000);
#endif
	gzwrite(f, SP_DMEM, 0x1000);
	gzwrite(f, SP_IMEM, 0x1000);
	gzwrite(f, PIF_RAM, 0x40);
	
	save_flashram_infos(buf);
	gzwrite(f, buf, 24);
#ifndef USE_TLB_CACHE
	gzwrite(f, tlb_LUT_r, 0x100000);		
	gzwrite(f, tlb_LUT_w, 0x100000);
#else
	//Traverse the TLB cache hash	and dump it
  TLBCache_dump_r(f);
	TLBCache_dump_w(f);
#endif

	gzwrite(f, &llbit, 4);
	gzwrite(f, reg, 32*8);
	for (i=0; i<32; i++) gzwrite(f, reg_cop0+i, 8); // *8 for compatibility with old versions purpose
	gzwrite(f, &lo, 8);
	gzwrite(f, &hi, 8);

	if ((Status & 0x04000000) == 0)
	{   // FR bit == 0 means 32-bit (MIPS I) FGR mode
		shuffle_fpr_data(0, 0x04000000);  // shuffle data into 64-bit register format for storage
		gzwrite(f, reg_cop1_fgr_64, 32*8);
		shuffle_fpr_data(0x04000000, 0);  // put it back in 32-bit mode
	}
	else
	{
		gzwrite(f, reg_cop1_fgr_64, 32*8);
	}

	gzwrite(f, &FCR0, 4);
	gzwrite(f, &FCR31, 4);
	gzwrite(f, tlb_e, 32*sizeof(tlb));
	gzwrite(f, &interp_addr, 4);    //Dynarec should be ok with just this

	gzwrite(f, &next_interupt, 4);
	gzwrite(f, &next_vi, 4);
	gzwrite(f, &vi_field, 4);
	
	len = save_eventqueue_infos(buf);
	gzwrite(f, buf, len);
	
	gzclose(f);
	if(stop) {
	  continueRemovalThread();
  }
  else {
    resumeAudio();
  }
}
Пример #9
0
void savestates_load()
{
	gzFile f = NULL;
	char *filename, buf[1024];
	int len, i;
		
	/* fix the filename to %s.st%d format */
  filename = malloc(1024);
  sprintf(filename, "%s%s%s%s.st%d",(saveStateDevice==SAVESTATEDEVICE_USB)?"usb:":"sd:",
                           statespath, ROM_SETTINGS.goodname, saveregionstr(),savestates_slot);
	
	f = gzopen(filename, "rb");
	free(filename);
	
	if (!f) {
		return;
	}
	if(stop) {
	  pauseRemovalThread();
  }
  else {
    pauseAudio();
  }
  gzread(f, &rdram_register, sizeof(RDRAM_register));
	gzread(f, &MI_register, sizeof(mips_register));
	gzread(f, &pi_register, sizeof(PI_register));
	gzread(f, &sp_register, sizeof(SP_register));
	gzread(f, &rsp_register, sizeof(RSP_register));
	gzread(f, &si_register, sizeof(SI_register));
	gzread(f, &vi_register, sizeof(VI_register));
	gzread(f, &ri_register, sizeof(RI_register));
	gzread(f, &ai_register, sizeof(AI_register));
	gzread(f, &dpc_register, sizeof(DPC_register));
	gzread(f, &dps_register, sizeof(DPS_register));
#ifdef USE_EXPANSION
	gzread(f, rdram, 0x800000);
#else
  gzread(f, rdram, 0x400000);
#endif
	gzread(f, SP_DMEM, 0x1000);
	gzread(f, SP_IMEM, 0x1000);
	gzread(f, PIF_RAM, 0x40);
	gzread(f, buf, 24);
	load_flashram_infos(buf);
	
#ifndef USE_TLB_CACHE
	gzread(f, tlb_LUT_r, 0x100000);
	gzread(f, tlb_LUT_w, 0x100000);
#else
	int numNodesWritten_r=0,numNodesWritten_w=0,cntr,tlbpage,tlbvalue;	
	TLBCache_deinit();
	TLBCache_init();
	//Load number of them..
	gzread(f, &numNodesWritten_r, 4);
	for(cntr=0;cntr<numNodesWritten_r;cntr++)
	{
		gzread(f, &tlbpage, 4);
		gzread(f, &tlbvalue, 4);
		TLBCache_set_r(tlbpage,tlbvalue);
	}
	gzread(f, &numNodesWritten_w, 4);
	for(cntr=0;cntr<numNodesWritten_w;cntr++)
	{
		gzread(f, &tlbpage, 4);
		gzread(f, &tlbvalue, 4);
		TLBCache_set_w(tlbpage,tlbvalue);
	}
#endif

	gzread(f, &llbit, 4);
	gzread(f, reg, 32*8);
	for (i=0; i<32; i++) 
	{
		gzread(f, reg_cop0+i, 4);
		gzread(f, buf, 4); // for compatibility with old versions purpose
	}
	set_fpr_pointers(Status);  // Status is reg_cop0[12]
	gzread(f, &lo, 8);
	gzread(f, &hi, 8);
	gzread(f, reg_cop1_fgr_64, 32*8);
	if ((Status & 0x04000000) == 0)  // 32-bit FPR mode requires data shuffling because 64-bit layout is always stored in savestate file
		shuffle_fpr_data(0x04000000, 0);
	gzread(f, &FCR0, 4);
	gzread(f, &FCR31, 4);
	gzread(f, tlb_e, 32*sizeof(tlb));
	for (i=0; i<0x100000; i++)
		invalid_code_set(i, 1);
	gzread(f, &interp_addr, 4);       //dynarec should be ok with just this
	gzread(f, &next_interupt, 4);
	gzread(f, &next_vi, 4);
	gzread(f, &vi_field, 4);
	
	len = 0;
	while(1)
	{
		gzread(f, buf+len, 4);
		if (*((unsigned long*)&buf[len]) == 0xFFFFFFFF) break;
		gzread(f, buf+len+4, 4);
		len += 8;
	}
	load_eventqueue_infos(buf);
	
	gzclose(f);
	last_addr = interp_addr;
	if(stop) {
	  continueRemovalThread();
  }
  else {
    resumeAudio();
  }
}
Пример #10
0
void pauseAudioNUM(int index)
{
    pauseAudio(&audioNUM[index][0]);
    pauseAudio(&audioNUM[index][1]);

}