ADDED XAudio2 config dialog
git-svn-id: https://svn.code.sf.net/p/vbam/code/trunk@589 a31d4220-a93d-0410-bf67-fe4944624d44
This commit is contained in:
parent
89a0052b21
commit
8fa9746feb
|
@ -743,6 +743,10 @@
|
|||
RelativePath=".\src\win32\MemoryViewerDlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\OALConfig.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\OamView.cpp"
|
||||
>
|
||||
|
@ -795,6 +799,10 @@
|
|||
RelativePath=".\src\win32\WinResUtil.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\XAudio2_Config.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\ZoomControl.cpp"
|
||||
>
|
||||
|
@ -899,10 +907,6 @@
|
|||
RelativePath=".\src\win32\LoadOAL.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\OALConfig.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\OpenAL.cpp"
|
||||
>
|
||||
|
@ -1269,6 +1273,10 @@
|
|||
RelativePath=".\src\win32\MemoryViewerDlg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\OALConfig.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\OamView.h"
|
||||
>
|
||||
|
@ -1325,6 +1333,10 @@
|
|||
RelativePath=".\src\win32\WinResUtil.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\XAudio2_Config.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\ZoomControl.h"
|
||||
>
|
||||
|
@ -1381,10 +1393,6 @@
|
|||
RelativePath=".\src\win32\Input.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\OALConfig.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\win32\Sound.h"
|
||||
>
|
||||
|
|
|
@ -442,6 +442,8 @@ BEGIN_MESSAGE_MAP(MainWnd, CWnd)
|
|||
ON_UPDATE_COMMAND_UI(ID_OPTIONS_SELECT_PLUGIN, &MainWnd::OnUpdateOptionsSelectPlugin)
|
||||
ON_COMMAND(ID_LOADGAME_DONOTCHANGEBATTERYSAVE, &MainWnd::OnLoadgameDonotchangebatterysave)
|
||||
ON_UPDATE_COMMAND_UI(ID_LOADGAME_DONOTCHANGEBATTERYSAVE, &MainWnd::OnUpdateLoadgameDonotchangebatterysave)
|
||||
ON_COMMAND(ID_OUTPUTAPI_XAUDIO2CONFIG, &MainWnd::OnOutputapiXaudio2config)
|
||||
ON_UPDATE_COMMAND_UI(ID_OUTPUTAPI_XAUDIO2CONFIG, &MainWnd::OnUpdateOutputapiXaudio2config)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// -*- C++ -*-
|
||||
// VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
|
||||
// Copyright (C) 1999-2003 Forgotten
|
||||
// Copyright (C) 2005 Forgotten and the VBA development team
|
||||
// Copyright (C) 2007-2008 VBA-M development team
|
||||
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
|
@ -17,424 +17,396 @@
|
|||
// along with this program; if not, write to the Free Software Foundation,
|
||||
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
#if !defined(AFX_MAINWND_H__E8AD28B9_C9FB_4EC2_A2DC_DD1BBA55A275__INCLUDED_)
|
||||
#define AFX_MAINWND_H__E8AD28B9_C9FB_4EC2_A2DC_DD1BBA55A275__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// MainWnd.h : header file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// MainWnd window
|
||||
|
||||
class MainWnd : public CWnd
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
MainWnd();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// Operations
|
||||
public:
|
||||
bool FileRun();
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(MainWnd)
|
||||
public:
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
HCURSOR arrow;
|
||||
void winMouseOn();
|
||||
void screenCapture(int captureNumber);
|
||||
HACCEL m_hAccelTable;
|
||||
bool fileOpenSelect( int system );
|
||||
afx_msg LRESULT OnMySysCommand(WPARAM, LPARAM);
|
||||
afx_msg void OnUpdateFileLoadGameSlot(CCmdUI *pCmdUI);
|
||||
afx_msg void OnUpdateFileSaveGameSlot(CCmdUI *pCmdUI);
|
||||
afx_msg void OnUpdateOptionsJoypadAutofire(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsJoypadAutofire(UINT nID);
|
||||
afx_msg void OnUpdateOptionsJoypadDefault(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsJoypadDefault(UINT nID);
|
||||
afx_msg void OnUpdateOptionsFilterIFB(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsFilterIFB(UINT nID);
|
||||
afx_msg void OnUpdateOptionsFilter(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsFilter(UINT nID);
|
||||
afx_msg void OnUpdateOptionsPriority(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsPriority(UINT nID);
|
||||
void updateSoundChannels(UINT nID);
|
||||
afx_msg void OnUpdateOptionsSoundVolume(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsSoundVolume(UINT nID);
|
||||
afx_msg void OnUpdateOptionsEmulatorShowSpeed(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsEmulatorShowSpeed(UINT nID);
|
||||
afx_msg void OnSystemMinimize();
|
||||
afx_msg void OnUpdateVideoLayer(CCmdUI* pCmdUI);
|
||||
afx_msg BOOL OnVideoLayer(UINT nID);
|
||||
afx_msg BOOL OnOptionVideoSize(UINT nID);
|
||||
afx_msg BOOL OnOptionsFrameskip(UINT nID);
|
||||
bool fileImportGSACodeFile(CString& fileName);
|
||||
bool writeSaveGame(const char *name);
|
||||
bool loadSaveGame(const char *name);
|
||||
CString winLoadFilter(UINT id);
|
||||
void winLoadCheatList(const char *name);
|
||||
void winLoadCheatListDefault();
|
||||
void readBatteryFile();
|
||||
void writeBatteryFile();
|
||||
bool isDriveRoot(CString& file);
|
||||
CString getDirFromFile(CString& file);
|
||||
void winSaveCheatList(const char *name);
|
||||
void winSaveCheatListDefault();
|
||||
virtual ~MainWnd();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(MainWnd)
|
||||
afx_msg void OnClose();
|
||||
afx_msg void OnHelpAbout();
|
||||
afx_msg void OnHelpFaq();
|
||||
afx_msg void OnFileOpen();
|
||||
afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
|
||||
afx_msg void OnFilePause();
|
||||
afx_msg void OnUpdateFilePause(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileReset();
|
||||
afx_msg void OnUpdateFileReset(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateFileRecentFreeze(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileRecentReset();
|
||||
afx_msg void OnFileRecentFreeze();
|
||||
afx_msg void OnFileExit();
|
||||
afx_msg void OnFileClose();
|
||||
afx_msg void OnUpdateFileClose(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileOpengameboy();
|
||||
afx_msg void OnFileLoad();
|
||||
afx_msg void OnUpdateFileLoad(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileSave();
|
||||
afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileImportBatteryfile();
|
||||
afx_msg void OnUpdateFileImportBatteryfile(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileImportGamesharkcodefile();
|
||||
afx_msg void OnUpdateFileImportGamesharkcodefile(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileImportGamesharksnapshot();
|
||||
afx_msg void OnUpdateFileImportGamesharksnapshot(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileExportBatteryfile();
|
||||
afx_msg void OnUpdateFileExportBatteryfile(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileExportGamesharksnapshot();
|
||||
afx_msg void OnUpdateFileExportGamesharksnapshot(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileScreencapture();
|
||||
afx_msg void OnUpdateFileScreencapture(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileRominformation();
|
||||
afx_msg void OnUpdateFileRominformation(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileTogglemenu();
|
||||
afx_msg void OnUpdateFileTogglemenu(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottleNothrottle(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle25(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle50(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle100(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle150(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle200(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottleOther(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsFrameskipThrottleNothrottle();
|
||||
afx_msg void OnOptionsFrameskipThrottle25();
|
||||
afx_msg void OnOptionsFrameskipThrottle50();
|
||||
afx_msg void OnOptionsFrameskipThrottle100();
|
||||
afx_msg void OnOptionsFrameskipThrottle150();
|
||||
afx_msg void OnOptionsFrameskipThrottle200();
|
||||
afx_msg void OnOptionsFrameskipThrottleOther();
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip0(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip1(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip3(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip4(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip5(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip6(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip7(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip8(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip9(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoVsync();
|
||||
afx_msg void OnUpdateOptionsVideoVsync(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoX1(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoX2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoX3(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoX4(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen320x240(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen640x480(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen800x600(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoFullscreen320x240();
|
||||
afx_msg void OnOptionsVideoFullscreen640x480();
|
||||
afx_msg void OnOptionsVideoFullscreen800x600();
|
||||
afx_msg void OnOptionsVideoFullscreen();
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen(CCmdUI* pCmdUI);
|
||||
afx_msg void OnMove(int x, int y);
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg void OnOptionsVideoDisablesfx();
|
||||
afx_msg void OnUpdateOptionsVideoDisablesfx(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoFullscreenstretchtofit();
|
||||
afx_msg void OnUpdateOptionsVideoFullscreenstretchtofit(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRendermethodDirectdraw();
|
||||
afx_msg void OnUpdateOptionsVideoRendermethodDirectdraw(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRendermethodDirect3d();
|
||||
afx_msg void OnUpdateOptionsVideoRendermethodDirect3d(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRendermethodOpengl();
|
||||
afx_msg void OnUpdateOptionsVideoRendermethodOpengl(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoTriplebuffering();
|
||||
afx_msg void OnUpdateOptionsVideoTriplebuffering(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRenderoptionsD3dnofilter();
|
||||
afx_msg void OnUpdateOptionsVideoRenderoptionsD3dnofilter(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRenderoptionsD3dbilinear();
|
||||
afx_msg void OnUpdateOptionsVideoRenderoptionsD3dbilinear(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRenderoptionsGlnearest();
|
||||
afx_msg void OnUpdateOptionsVideoRenderoptionsGlnearest(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRenderoptionsGlbilinear();
|
||||
afx_msg void OnUpdateOptionsVideoRenderoptionsGlbilinear(CCmdUI* pCmdUI);
|
||||
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
|
||||
afx_msg void OnOptionsEmulatorAssociate();
|
||||
afx_msg void OnOptionsEmulatorDirectories();
|
||||
afx_msg void OnOptionsEmulatorDisablestatusmessages();
|
||||
afx_msg void OnUpdateOptionsEmulatorDisablestatusmessages(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSynchronize();
|
||||
afx_msg void OnUpdateOptionsEmulatorSynchronize(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorPausewheninactive();
|
||||
afx_msg void OnUpdateOptionsEmulatorPausewheninactive(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSpeeduptoggle();
|
||||
afx_msg void OnUpdateOptionsEmulatorSpeeduptoggle(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorAutomaticallyipspatch();
|
||||
afx_msg void OnUpdateOptionsEmulatorAutomaticallyipspatch(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorAgbprint();
|
||||
afx_msg void OnUpdateOptionsEmulatorAgbprint(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorRealtimeclock();
|
||||
afx_msg void OnUpdateOptionsEmulatorRealtimeclock(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorGenericflashcard();
|
||||
afx_msg void OnUpdateOptionsEmulatorGenericflashcard(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorRewindinterval();
|
||||
afx_msg void OnOptionsEmulatorSavetypeAutomatic();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeAutomatic(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeEeprom();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeEeprom(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeSram();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeSram(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeFlash();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeFlash(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeEepromsensor();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeEepromsensor(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeNone();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeNone(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeFlash512k();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeFlash512k(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeFlash1m();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeFlash1m(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorPngformat();
|
||||
afx_msg void OnUpdateOptionsEmulatorPngformat(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorBmpformat();
|
||||
afx_msg void OnUpdateOptionsEmulatorBmpformat(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundOff();
|
||||
afx_msg void OnUpdateOptionsSoundOff(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundMute();
|
||||
afx_msg void OnUpdateOptionsSoundMute(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundOn();
|
||||
afx_msg void OnUpdateOptionsSoundOn(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundEcho();
|
||||
afx_msg void OnUpdateOptionsSoundEcho(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundLowpassfilter();
|
||||
afx_msg void OnUpdateOptionsSoundLowpassfilter(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundReversestereo();
|
||||
afx_msg void OnUpdateOptionsSoundReversestereo(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSound11khz();
|
||||
afx_msg void OnUpdateOptionsSound11khz(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSound22khz();
|
||||
afx_msg void OnUpdateOptionsSound22khz(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSound44khz();
|
||||
afx_msg void OnUpdateOptionsSound44khz(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundChannel1();
|
||||
afx_msg void OnUpdateOptionsSoundChannel1(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundChannel2();
|
||||
afx_msg void OnUpdateOptionsSoundChannel2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundChannel3();
|
||||
afx_msg void OnUpdateOptionsSoundChannel3(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundChannel4();
|
||||
afx_msg void OnUpdateOptionsSoundChannel4(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundDirectsounda();
|
||||
afx_msg void OnUpdateOptionsSoundDirectsounda(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundDirectsoundb();
|
||||
afx_msg void OnUpdateOptionsSoundDirectsoundb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyBorder();
|
||||
afx_msg void OnUpdateOptionsGameboyBorder(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyPrinter();
|
||||
afx_msg void OnUpdateOptionsGameboyPrinter(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyBorderAutomatic();
|
||||
afx_msg void OnUpdateOptionsGameboyBorderAutomatic(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyAutomatic();
|
||||
afx_msg void OnUpdateOptionsGameboyAutomatic(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyGba();
|
||||
afx_msg void OnUpdateOptionsGameboyGba(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyCgb();
|
||||
afx_msg void OnUpdateOptionsGameboyCgb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboySgb();
|
||||
afx_msg void OnUpdateOptionsGameboySgb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboySgb2();
|
||||
afx_msg void OnUpdateOptionsGameboySgb2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyGb();
|
||||
afx_msg void OnUpdateOptionsGameboyGb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyRealcolors();
|
||||
afx_msg void OnUpdateOptionsGameboyRealcolors(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyGameboycolors();
|
||||
afx_msg void OnUpdateOptionsGameboyGameboycolors(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyColors();
|
||||
afx_msg void OnOptionsFilterDisablemmx();
|
||||
afx_msg void OnUpdateOptionsFilterDisablemmx(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsLanguageSystem();
|
||||
afx_msg void OnUpdateOptionsLanguageSystem(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsLanguageEnglish();
|
||||
afx_msg void OnUpdateOptionsLanguageEnglish(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsLanguageOther();
|
||||
afx_msg void OnUpdateOptionsLanguageOther(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadConfigure1();
|
||||
afx_msg void OnUpdateOptionsJoypadConfigure1(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadConfigure2();
|
||||
afx_msg void OnUpdateOptionsJoypadConfigure2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadConfigure3();
|
||||
afx_msg void OnUpdateOptionsJoypadConfigure3(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadConfigure4();
|
||||
afx_msg void OnUpdateOptionsJoypadConfigure4(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadMotionconfigure();
|
||||
afx_msg void OnUpdateOptionsJoypadMotionconfigure(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsSearchforcheats();
|
||||
afx_msg void OnUpdateCheatsSearchforcheats(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsCheatlist();
|
||||
afx_msg void OnUpdateCheatsCheatlist(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsAutomaticsaveloadcheats();
|
||||
afx_msg void OnCheatsLoadcheatlist();
|
||||
afx_msg void OnUpdateCheatsLoadcheatlist(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsSavecheatlist();
|
||||
afx_msg void OnUpdateCheatsSavecheatlist(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDisassemble();
|
||||
afx_msg void OnUpdateToolsDisassemble(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsLogging();
|
||||
afx_msg void OnUpdateToolsLogging(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsIoviewer();
|
||||
afx_msg void OnUpdateToolsIoviewer(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsMapview();
|
||||
afx_msg void OnUpdateToolsMapview(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsMemoryviewer();
|
||||
afx_msg void OnUpdateToolsMemoryviewer(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsOamviewer();
|
||||
afx_msg void OnUpdateToolsOamviewer(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsPaletteview();
|
||||
afx_msg void OnUpdateToolsPaletteview(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsTileviewer();
|
||||
afx_msg void OnUpdateToolsTileviewer(CCmdUI* pCmdUI);
|
||||
afx_msg void OnDebugNextframe();
|
||||
afx_msg void OnUpdateCheatsAutomaticsaveloadcheats(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDebugGdb();
|
||||
afx_msg void OnUpdateToolsDebugGdb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDebugLoadandwait();
|
||||
afx_msg void OnUpdateToolsDebugLoadandwait(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDebugBreak();
|
||||
afx_msg void OnUpdateToolsDebugBreak(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDebugDisconnect();
|
||||
afx_msg void OnUpdateToolsDebugDisconnect(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundStartrecording();
|
||||
afx_msg void OnUpdateOptionsSoundStartrecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundStoprecording();
|
||||
afx_msg void OnUpdateOptionsSoundStoprecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsRecordStartavirecording();
|
||||
afx_msg void OnUpdateToolsRecordStartavirecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsRecordStopavirecording();
|
||||
afx_msg void OnUpdateToolsRecordStopavirecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg void OnToolsRecordStartmovierecording();
|
||||
afx_msg void OnUpdateToolsRecordStartmovierecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsRecordStopmovierecording();
|
||||
afx_msg void OnUpdateToolsRecordStopmovierecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsPlayStartmovieplaying();
|
||||
afx_msg void OnUpdateToolsPlayStartmovieplaying(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsPlayStopmovieplaying();
|
||||
afx_msg void OnUpdateToolsPlayStopmovieplaying(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsRewind();
|
||||
afx_msg void OnUpdateToolsRewind(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsCustomize();
|
||||
afx_msg void OnUpdateToolsCustomize(CCmdUI* pCmdUI);
|
||||
afx_msg void OnHelpBugreport();
|
||||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||
afx_msg void OnInitMenu(CMenu* pMenu);
|
||||
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
|
||||
afx_msg void OnDropFiles(HDROP hDropInfo);
|
||||
afx_msg void OnFileSavegameOldestslot();
|
||||
afx_msg void OnUpdateFileSavegameOldestslot(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileLoadgameMostrecent();
|
||||
afx_msg void OnUpdateFileLoadgameMostrecent(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileLoadgameAutoloadmostrecent();
|
||||
afx_msg void OnUpdateFileLoadgameAutoloadmostrecent(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundVolume25x();
|
||||
afx_msg void OnUpdateOptionsSoundVolume25x(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundVolume5x();
|
||||
afx_msg void OnUpdateOptionsSoundVolume5x(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsDisablecheats();
|
||||
afx_msg void OnUpdateCheatsDisablecheats(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoFullscreenmaxscale();
|
||||
afx_msg void OnOptionsSelectPlugin();
|
||||
afx_msg void OnOptionsEmulatorGameoverrides();
|
||||
afx_msg void OnUpdateOptionsEmulatorGameoverrides(CCmdUI* pCmdUI);
|
||||
afx_msg void OnHelpGnupubliclicense();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
afx_msg BOOL OnFileRecentFile(UINT nID);
|
||||
afx_msg BOOL OnFileLoadSlot(UINT nID);
|
||||
afx_msg BOOL OnFileSaveSlot(UINT nID);
|
||||
afx_msg void OnOptionsFilterLcdcolors();
|
||||
afx_msg void OnUpdateOptionsFilterLcdcolors(CCmdUI *pCmdUI);
|
||||
|
||||
afx_msg BOOL OnOptionsSoundPcminterpolation(UINT nID);
|
||||
afx_msg void OnUpdateOptionsSoundPcminterpolation(CCmdUI *pCmdUI);
|
||||
public:
|
||||
MainWnd();
|
||||
virtual ~MainWnd();
|
||||
|
||||
HCURSOR arrow;
|
||||
HACCEL m_hAccelTable;
|
||||
|
||||
bool FileRun();
|
||||
void winMouseOn();
|
||||
void screenCapture(int captureNumber);
|
||||
bool fileOpenSelect( int system );
|
||||
void updateSoundChannels(UINT nID);
|
||||
bool fileImportGSACodeFile(CString& fileName);
|
||||
bool writeSaveGame(const char *name);
|
||||
bool loadSaveGame(const char *name);
|
||||
CString winLoadFilter(UINT id);
|
||||
void winLoadCheatList(const char *name);
|
||||
void winLoadCheatListDefault();
|
||||
void readBatteryFile();
|
||||
void writeBatteryFile();
|
||||
bool isDriveRoot(CString& file);
|
||||
CString getDirFromFile(CString& file);
|
||||
void winSaveCheatList(const char *name);
|
||||
void winSaveCheatListDefault();
|
||||
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
|
||||
afx_msg LRESULT OnMySysCommand(WPARAM, LPARAM);
|
||||
afx_msg void OnUpdateFileLoadGameSlot(CCmdUI *pCmdUI);
|
||||
afx_msg void OnUpdateFileSaveGameSlot(CCmdUI *pCmdUI);
|
||||
afx_msg void OnUpdateOptionsJoypadAutofire(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsJoypadAutofire(UINT nID);
|
||||
afx_msg void OnUpdateOptionsJoypadDefault(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsJoypadDefault(UINT nID);
|
||||
afx_msg void OnUpdateOptionsFilterIFB(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsFilterIFB(UINT nID);
|
||||
afx_msg void OnUpdateOptionsFilter(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsFilter(UINT nID);
|
||||
afx_msg void OnUpdateOptionsPriority(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsPriority(UINT nID);
|
||||
afx_msg void OnUpdateOptionsSoundVolume(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsSoundVolume(UINT nID);
|
||||
afx_msg void OnUpdateOptionsEmulatorShowSpeed(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsEmulatorShowSpeed(UINT nID);
|
||||
afx_msg void OnSystemMinimize();
|
||||
afx_msg void OnUpdateVideoLayer(CCmdUI* pCmdUI);
|
||||
afx_msg BOOL OnVideoLayer(UINT nID);
|
||||
afx_msg BOOL OnOptionVideoSize(UINT nID);
|
||||
afx_msg BOOL OnOptionsFrameskip(UINT nID);
|
||||
afx_msg void OnClose();
|
||||
afx_msg void OnHelpAbout();
|
||||
afx_msg void OnHelpFaq();
|
||||
afx_msg void OnFileOpen();
|
||||
afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
|
||||
afx_msg void OnFilePause();
|
||||
afx_msg void OnUpdateFilePause(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileReset();
|
||||
afx_msg void OnUpdateFileReset(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateFileRecentFreeze(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileRecentReset();
|
||||
afx_msg void OnFileRecentFreeze();
|
||||
afx_msg void OnFileExit();
|
||||
afx_msg void OnFileClose();
|
||||
afx_msg void OnUpdateFileClose(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileOpengameboy();
|
||||
afx_msg void OnFileLoad();
|
||||
afx_msg void OnUpdateFileLoad(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileSave();
|
||||
afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileImportBatteryfile();
|
||||
afx_msg void OnUpdateFileImportBatteryfile(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileImportGamesharkcodefile();
|
||||
afx_msg void OnUpdateFileImportGamesharkcodefile(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileImportGamesharksnapshot();
|
||||
afx_msg void OnUpdateFileImportGamesharksnapshot(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileExportBatteryfile();
|
||||
afx_msg void OnUpdateFileExportBatteryfile(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileExportGamesharksnapshot();
|
||||
afx_msg void OnUpdateFileExportGamesharksnapshot(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileScreencapture();
|
||||
afx_msg void OnUpdateFileScreencapture(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileRominformation();
|
||||
afx_msg void OnUpdateFileRominformation(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileTogglemenu();
|
||||
afx_msg void OnUpdateFileTogglemenu(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottleNothrottle(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle25(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle50(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle100(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle150(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottle200(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsFrameskipThrottleOther(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsFrameskipThrottleNothrottle();
|
||||
afx_msg void OnOptionsFrameskipThrottle25();
|
||||
afx_msg void OnOptionsFrameskipThrottle50();
|
||||
afx_msg void OnOptionsFrameskipThrottle100();
|
||||
afx_msg void OnOptionsFrameskipThrottle150();
|
||||
afx_msg void OnOptionsFrameskipThrottle200();
|
||||
afx_msg void OnOptionsFrameskipThrottleOther();
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip0(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip1(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip3(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip4(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip5(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip6(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip7(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip8(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFrameskip9(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoVsync();
|
||||
afx_msg void OnUpdateOptionsVideoVsync(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoX1(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoX2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoX3(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoX4(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen320x240(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen640x480(CCmdUI* pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen800x600(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoFullscreen320x240();
|
||||
afx_msg void OnOptionsVideoFullscreen640x480();
|
||||
afx_msg void OnOptionsVideoFullscreen800x600();
|
||||
afx_msg void OnOptionsVideoFullscreen();
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen(CCmdUI* pCmdUI);
|
||||
afx_msg void OnMove(int x, int y);
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg void OnOptionsVideoDisablesfx();
|
||||
afx_msg void OnUpdateOptionsVideoDisablesfx(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoFullscreenstretchtofit();
|
||||
afx_msg void OnUpdateOptionsVideoFullscreenstretchtofit(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRendermethodDirectdraw();
|
||||
afx_msg void OnUpdateOptionsVideoRendermethodDirectdraw(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRendermethodDirect3d();
|
||||
afx_msg void OnUpdateOptionsVideoRendermethodDirect3d(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRendermethodOpengl();
|
||||
afx_msg void OnUpdateOptionsVideoRendermethodOpengl(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoTriplebuffering();
|
||||
afx_msg void OnUpdateOptionsVideoTriplebuffering(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRenderoptionsD3dnofilter();
|
||||
afx_msg void OnUpdateOptionsVideoRenderoptionsD3dnofilter(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRenderoptionsD3dbilinear();
|
||||
afx_msg void OnUpdateOptionsVideoRenderoptionsD3dbilinear(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRenderoptionsGlnearest();
|
||||
afx_msg void OnUpdateOptionsVideoRenderoptionsGlnearest(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoRenderoptionsGlbilinear();
|
||||
afx_msg void OnUpdateOptionsVideoRenderoptionsGlbilinear(CCmdUI* pCmdUI);
|
||||
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
|
||||
afx_msg void OnOptionsEmulatorAssociate();
|
||||
afx_msg void OnOptionsEmulatorDirectories();
|
||||
afx_msg void OnOptionsEmulatorDisablestatusmessages();
|
||||
afx_msg void OnUpdateOptionsEmulatorDisablestatusmessages(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSynchronize();
|
||||
afx_msg void OnUpdateOptionsEmulatorSynchronize(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorPausewheninactive();
|
||||
afx_msg void OnUpdateOptionsEmulatorPausewheninactive(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSpeeduptoggle();
|
||||
afx_msg void OnUpdateOptionsEmulatorSpeeduptoggle(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorAutomaticallyipspatch();
|
||||
afx_msg void OnUpdateOptionsEmulatorAutomaticallyipspatch(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorAgbprint();
|
||||
afx_msg void OnUpdateOptionsEmulatorAgbprint(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorRealtimeclock();
|
||||
afx_msg void OnUpdateOptionsEmulatorRealtimeclock(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorGenericflashcard();
|
||||
afx_msg void OnUpdateOptionsEmulatorGenericflashcard(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorRewindinterval();
|
||||
afx_msg void OnOptionsEmulatorSavetypeAutomatic();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeAutomatic(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeEeprom();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeEeprom(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeSram();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeSram(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeFlash();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeFlash(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeEepromsensor();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeEepromsensor(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeNone();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeNone(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeFlash512k();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeFlash512k(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorSavetypeFlash1m();
|
||||
afx_msg void OnUpdateOptionsEmulatorSavetypeFlash1m(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorPngformat();
|
||||
afx_msg void OnUpdateOptionsEmulatorPngformat(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsEmulatorBmpformat();
|
||||
afx_msg void OnUpdateOptionsEmulatorBmpformat(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundOff();
|
||||
afx_msg void OnUpdateOptionsSoundOff(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundMute();
|
||||
afx_msg void OnUpdateOptionsSoundMute(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundOn();
|
||||
afx_msg void OnUpdateOptionsSoundOn(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundEcho();
|
||||
afx_msg void OnUpdateOptionsSoundEcho(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundLowpassfilter();
|
||||
afx_msg void OnUpdateOptionsSoundLowpassfilter(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundReversestereo();
|
||||
afx_msg void OnUpdateOptionsSoundReversestereo(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSound11khz();
|
||||
afx_msg void OnUpdateOptionsSound11khz(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSound22khz();
|
||||
afx_msg void OnUpdateOptionsSound22khz(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSound44khz();
|
||||
afx_msg void OnUpdateOptionsSound44khz(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundChannel1();
|
||||
afx_msg void OnUpdateOptionsSoundChannel1(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundChannel2();
|
||||
afx_msg void OnUpdateOptionsSoundChannel2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundChannel3();
|
||||
afx_msg void OnUpdateOptionsSoundChannel3(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundChannel4();
|
||||
afx_msg void OnUpdateOptionsSoundChannel4(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundDirectsounda();
|
||||
afx_msg void OnUpdateOptionsSoundDirectsounda(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundDirectsoundb();
|
||||
afx_msg void OnUpdateOptionsSoundDirectsoundb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyBorder();
|
||||
afx_msg void OnUpdateOptionsGameboyBorder(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyPrinter();
|
||||
afx_msg void OnUpdateOptionsGameboyPrinter(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyBorderAutomatic();
|
||||
afx_msg void OnUpdateOptionsGameboyBorderAutomatic(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyAutomatic();
|
||||
afx_msg void OnUpdateOptionsGameboyAutomatic(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyGba();
|
||||
afx_msg void OnUpdateOptionsGameboyGba(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyCgb();
|
||||
afx_msg void OnUpdateOptionsGameboyCgb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboySgb();
|
||||
afx_msg void OnUpdateOptionsGameboySgb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboySgb2();
|
||||
afx_msg void OnUpdateOptionsGameboySgb2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyGb();
|
||||
afx_msg void OnUpdateOptionsGameboyGb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyRealcolors();
|
||||
afx_msg void OnUpdateOptionsGameboyRealcolors(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyGameboycolors();
|
||||
afx_msg void OnUpdateOptionsGameboyGameboycolors(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsGameboyColors();
|
||||
afx_msg void OnOptionsFilterDisablemmx();
|
||||
afx_msg void OnUpdateOptionsFilterDisablemmx(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsLanguageSystem();
|
||||
afx_msg void OnUpdateOptionsLanguageSystem(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsLanguageEnglish();
|
||||
afx_msg void OnUpdateOptionsLanguageEnglish(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsLanguageOther();
|
||||
afx_msg void OnUpdateOptionsLanguageOther(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadConfigure1();
|
||||
afx_msg void OnUpdateOptionsJoypadConfigure1(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadConfigure2();
|
||||
afx_msg void OnUpdateOptionsJoypadConfigure2(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadConfigure3();
|
||||
afx_msg void OnUpdateOptionsJoypadConfigure3(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadConfigure4();
|
||||
afx_msg void OnUpdateOptionsJoypadConfigure4(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsJoypadMotionconfigure();
|
||||
afx_msg void OnUpdateOptionsJoypadMotionconfigure(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsSearchforcheats();
|
||||
afx_msg void OnUpdateCheatsSearchforcheats(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsCheatlist();
|
||||
afx_msg void OnUpdateCheatsCheatlist(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsAutomaticsaveloadcheats();
|
||||
afx_msg void OnCheatsLoadcheatlist();
|
||||
afx_msg void OnUpdateCheatsLoadcheatlist(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsSavecheatlist();
|
||||
afx_msg void OnUpdateCheatsSavecheatlist(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDisassemble();
|
||||
afx_msg void OnUpdateToolsDisassemble(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsLogging();
|
||||
afx_msg void OnUpdateToolsLogging(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsIoviewer();
|
||||
afx_msg void OnUpdateToolsIoviewer(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsMapview();
|
||||
afx_msg void OnUpdateToolsMapview(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsMemoryviewer();
|
||||
afx_msg void OnUpdateToolsMemoryviewer(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsOamviewer();
|
||||
afx_msg void OnUpdateToolsOamviewer(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsPaletteview();
|
||||
afx_msg void OnUpdateToolsPaletteview(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsTileviewer();
|
||||
afx_msg void OnUpdateToolsTileviewer(CCmdUI* pCmdUI);
|
||||
afx_msg void OnDebugNextframe();
|
||||
afx_msg void OnUpdateCheatsAutomaticsaveloadcheats(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDebugGdb();
|
||||
afx_msg void OnUpdateToolsDebugGdb(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDebugLoadandwait();
|
||||
afx_msg void OnUpdateToolsDebugLoadandwait(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDebugBreak();
|
||||
afx_msg void OnUpdateToolsDebugBreak(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsDebugDisconnect();
|
||||
afx_msg void OnUpdateToolsDebugDisconnect(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundStartrecording();
|
||||
afx_msg void OnUpdateOptionsSoundStartrecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundStoprecording();
|
||||
afx_msg void OnUpdateOptionsSoundStoprecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsRecordStartavirecording();
|
||||
afx_msg void OnUpdateToolsRecordStartavirecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsRecordStopavirecording();
|
||||
afx_msg void OnUpdateToolsRecordStopavirecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg void OnToolsRecordStartmovierecording();
|
||||
afx_msg void OnUpdateToolsRecordStartmovierecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsRecordStopmovierecording();
|
||||
afx_msg void OnUpdateToolsRecordStopmovierecording(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsPlayStartmovieplaying();
|
||||
afx_msg void OnUpdateToolsPlayStartmovieplaying(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsPlayStopmovieplaying();
|
||||
afx_msg void OnUpdateToolsPlayStopmovieplaying(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsRewind();
|
||||
afx_msg void OnUpdateToolsRewind(CCmdUI* pCmdUI);
|
||||
afx_msg void OnToolsCustomize();
|
||||
afx_msg void OnUpdateToolsCustomize(CCmdUI* pCmdUI);
|
||||
afx_msg void OnHelpBugreport();
|
||||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||||
afx_msg void OnInitMenu(CMenu* pMenu);
|
||||
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
|
||||
afx_msg void OnDropFiles(HDROP hDropInfo);
|
||||
afx_msg void OnFileSavegameOldestslot();
|
||||
afx_msg void OnUpdateFileSavegameOldestslot(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileLoadgameMostrecent();
|
||||
afx_msg void OnUpdateFileLoadgameMostrecent(CCmdUI* pCmdUI);
|
||||
afx_msg void OnFileLoadgameAutoloadmostrecent();
|
||||
afx_msg void OnUpdateFileLoadgameAutoloadmostrecent(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundVolume25x();
|
||||
afx_msg void OnUpdateOptionsSoundVolume25x(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsSoundVolume5x();
|
||||
afx_msg void OnUpdateOptionsSoundVolume5x(CCmdUI* pCmdUI);
|
||||
afx_msg void OnCheatsDisablecheats();
|
||||
afx_msg void OnUpdateCheatsDisablecheats(CCmdUI* pCmdUI);
|
||||
afx_msg void OnOptionsVideoFullscreenmaxscale();
|
||||
afx_msg void OnOptionsSelectPlugin();
|
||||
afx_msg void OnOptionsEmulatorGameoverrides();
|
||||
afx_msg void OnUpdateOptionsEmulatorGameoverrides(CCmdUI* pCmdUI);
|
||||
afx_msg void OnHelpGnupubliclicense();
|
||||
afx_msg BOOL OnFileRecentFile(UINT nID);
|
||||
afx_msg BOOL OnFileLoadSlot(UINT nID);
|
||||
afx_msg BOOL OnFileSaveSlot(UINT nID);
|
||||
afx_msg void OnOptionsFilterLcdcolors();
|
||||
afx_msg void OnUpdateOptionsFilterLcdcolors(CCmdUI *pCmdUI);
|
||||
afx_msg BOOL OnOptionsSoundPcminterpolation(UINT nID);
|
||||
afx_msg void OnUpdateOptionsSoundPcminterpolation(CCmdUI *pCmdUI);
|
||||
afx_msg void OnOptionsSoundHardwareacceleration();
|
||||
afx_msg void OnUpdateOptionsSoundHardwareacceleration(CCmdUI *pCmdUI);
|
||||
afx_msg void OnOptionsVideoFullscreen1280x1024();
|
||||
afx_msg void OnOptionsVideoFullscreen1024x768();
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen1024x768(CCmdUI *pCmdUI);
|
||||
afx_msg void OnUpdateOptionsVideoFullscreen1280x1024(CCmdUI *pCmdUI);
|
||||
afx_msg void OnLinkOptions();
|
||||
afx_msg void OnLinkOptions();
|
||||
afx_msg void OnOptionsLinkLog() ;
|
||||
afx_msg void OnUpdateOptionsLinkLog(CCmdUI* pCmdUI) ;
|
||||
afx_msg void OnOptionsLinkRFU() ;
|
||||
afx_msg void OnUpdateOptionsLinkRFU(CCmdUI* pCmdUI) ;
|
||||
afx_msg void OnOptionsLinkEnable() ;
|
||||
afx_msg void OnUpdateOptionsLinkEnable(CCmdUI* pCmdUI) ;
|
||||
|
||||
afx_msg void OnOutputapiDirectsound();
|
||||
afx_msg void OnUpdateOutputapiDirectsound(CCmdUI *pCmdUI);
|
||||
|
||||
afx_msg void OnOutputapiOpenal();
|
||||
afx_msg void OnUpdateOutputapiOpenal(CCmdUI *pCmdUI);
|
||||
afx_msg void OnOutputapiOalconfiguration();
|
||||
afx_msg void OnUpdateOutputapiOalconfiguration(CCmdUI *pCmdUI);
|
||||
afx_msg void OnMoving(UINT fwSide, LPRECT pRect);
|
||||
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
|
||||
|
||||
afx_msg void OnOutputapiXaudio2();
|
||||
afx_msg void OnUpdateOutputapiXaudio2(CCmdUI *pCmdUI);
|
||||
afx_msg void OnOutputapiXaudio2config();
|
||||
afx_msg void OnUpdateOutputapiXaudio2config(CCmdUI *pCmdUI);
|
||||
|
||||
afx_msg void OnRenderapiD3dmotionblur();
|
||||
afx_msg void OnUpdateRenderapiD3dmotionblur(CCmdUI *pCmdUI);
|
||||
afx_msg void OnPixelfilterMultiThreading();
|
||||
|
||||
afx_msg void OnMoving(UINT fwSide, LPRECT pRect);
|
||||
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
|
||||
afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
|
||||
afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
|
||||
afx_msg void OnEmulatorBiosfiles();
|
||||
afx_msg void OnFileOpenGbc();
|
||||
afx_msg void OnNcRButtonDown(UINT nHitTest, CPoint point);
|
||||
afx_msg void OnOutputapiXaudio2();
|
||||
afx_msg void OnUpdateOutputapiXaudio2(CCmdUI *pCmdUI);
|
||||
afx_msg void OnPixelfilterMultiThreading();
|
||||
afx_msg void OnUpdatePixelfilterMultiThreading(CCmdUI *pCmdUI);
|
||||
afx_msg void OnUpdateOptionsSelectPlugin(CCmdUI *pCmdUI);
|
||||
afx_msg void OnLoadgameDonotchangebatterysave();
|
||||
afx_msg void OnUpdateLoadgameDonotchangebatterysave(CCmdUI *pCmdUI);
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_MAINWND_H__E8AD28B9_C9FB_4EC2_A2DC_DD1BBA55A275__INCLUDED_)
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "WinResUtil.h"
|
||||
#include "SelectPlugin.h"
|
||||
#include "OALConfig.h"
|
||||
#include "XAudio2_Config.h"
|
||||
#include "BIOSDialog.h"
|
||||
|
||||
#include "../System.h"
|
||||
|
@ -1831,6 +1832,36 @@ void MainWnd::OnUpdateOutputapiOalconfiguration(CCmdUI *pCmdUI)
|
|||
#endif
|
||||
}
|
||||
|
||||
void MainWnd::OnOutputapiXaudio2config()
|
||||
{
|
||||
#ifndef NO_XAUDIO2
|
||||
XAudio2_Config dlg;
|
||||
|
||||
dlg.m_selected_device_index = theApp.xa2Device;
|
||||
dlg.m_buffer_count = theApp.xa2BufferCount;
|
||||
dlg.m_enable_upmixing = theApp.xa2Upmixing;
|
||||
|
||||
if( dlg.DoModal() == IDOK ) {
|
||||
systemSoundShutdown();
|
||||
|
||||
theApp.xa2Device = dlg.m_selected_device_index;
|
||||
theApp.xa2BufferCount = dlg.m_buffer_count;
|
||||
theApp.xa2Upmixing = dlg.m_enable_upmixing;
|
||||
|
||||
systemSoundInit();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void MainWnd::OnUpdateOutputapiXaudio2config(CCmdUI *pCmdUI)
|
||||
{
|
||||
#ifndef NO_XAUDIO2
|
||||
pCmdUI->Enable(!theApp.aviRecording && !theApp.soundRecording);
|
||||
#else
|
||||
pCmdUI->Enable( FALSE );
|
||||
#endif
|
||||
}
|
||||
|
||||
void MainWnd::OnRenderapiD3dmotionblur()
|
||||
{
|
||||
#ifndef NO_D3D
|
||||
|
|
|
@ -294,11 +294,16 @@ VBA::VBA()
|
|||
oalDevice = NULL;
|
||||
oalBufferCount = 5;
|
||||
#endif
|
||||
iconic = false;
|
||||
#ifndef NO_XAUDIO2
|
||||
xa2Device = 0;
|
||||
xa2BufferCount = 4;
|
||||
xa2Upmixing = false;
|
||||
#endif
|
||||
#ifndef NO_D3D
|
||||
d3dFilter = 0;
|
||||
d3dMotionBlur = false;
|
||||
#endif
|
||||
iconic = false;
|
||||
glFilter = 0;
|
||||
regEnabled = false;
|
||||
pauseWhenInactive = true;
|
||||
|
@ -1795,6 +1800,12 @@ void VBA::loadSettings()
|
|||
oalBufferCount = regQueryDwordValue( "oalBufferCount", 5 );
|
||||
#endif
|
||||
|
||||
#ifndef NO_XAUDIO2
|
||||
xa2Device = regQueryDwordValue( "xa2Device", 0 );
|
||||
xa2BufferCount = regQueryDwordValue( "xa2BufferCount", 4 );
|
||||
xa2Upmixing = ( 1 == regQueryDwordValue( "xa2Upmixing", 0 ) );
|
||||
#endif
|
||||
|
||||
if( ( maxCpuCores == 1 ) && filterMT ) {
|
||||
// multi-threading use useless for just one core
|
||||
filterMT = false;
|
||||
|
@ -2689,6 +2700,12 @@ void VBA::saveSettings()
|
|||
regSetStringValue( "oalDevice", oalDevice );
|
||||
regSetDwordValue( "oalBufferCount", oalBufferCount );
|
||||
#endif
|
||||
|
||||
#ifndef NO_XAUDIO2
|
||||
regSetDwordValue( "xa2Device", xa2Device );
|
||||
regSetDwordValue( "xa2BufferCount", xa2BufferCount );
|
||||
regSetDwordValue( "xa2Upmixing", xa2Upmixing ? 1 : 0 );
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned int VBA::detectCpuCores()
|
||||
|
|
|
@ -157,11 +157,16 @@ class VBA : public CWinApp
|
|||
TCHAR *oalDevice;
|
||||
int oalBufferCount;
|
||||
#endif
|
||||
bool iconic;
|
||||
#ifndef NO_XAUDIO2
|
||||
UINT32 xa2Device;
|
||||
UINT32 xa2BufferCount;
|
||||
bool xa2Upmixing;
|
||||
#endif
|
||||
#ifndef NO_D3D
|
||||
int d3dFilter;
|
||||
bool d3dMotionBlur;
|
||||
#endif
|
||||
bool iconic;
|
||||
int glFilter;
|
||||
bool dinputKeyFocus;
|
||||
bool pauseWhenInactive;
|
||||
|
|
124
src/win32/VBA.rc
124
src/win32/VBA.rc
|
@ -22,60 +22,26 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,8,0,0
|
||||
PRODUCTVERSION 1,8,0,0
|
||||
FILEFLAGSMASK 0x17L
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "VBA-M comes with NO WARRANTY. Use it at your own risk."
|
||||
VALUE "CompanyName", "http://vba-m.ngemu.com/"
|
||||
VALUE "FileDescription", "GB & GBA emulator for Windows"
|
||||
VALUE "FileVersion", "1, 8, 0, 0"
|
||||
VALUE "InternalName", "VBA-M"
|
||||
VALUE "LegalCopyright", "Copyright © 2008 VBA-M development team"
|
||||
VALUE "OriginalFilename", "VisualBoyAdvance.exe"
|
||||
VALUE "ProductName", "VBA-M - A VisualBoyAdvance Fork"
|
||||
VALUE "ProductVersion", "1, 8, 0, 0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_MAINICON ICON "VBA-M.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_XAUDIO2_CONFIG DIALOGEX 0, 0, 160, 144
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "XAudio2"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,42,126,54,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,102,126,54,14
|
||||
COMBOBOX IDC_COMBO_DEV,6,18,150,60,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Enable stereo upmixing",IDC_CHECK_UPMIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,108,150,8
|
||||
LTEXT "Select device:",IDC_STATIC,6,6,150,8
|
||||
GROUPBOX "Number of sound buffers:",IDC_STATIC,6,42,150,54
|
||||
CONTROL "",IDC_SLIDER_BUFFER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | WS_TABSTOP,12,54,138,24
|
||||
CTEXT "bufferInfo",IDC_INFO_BUFFER,12,78,138,12,0,WS_EX_DLGMODALFRAME
|
||||
END
|
||||
|
||||
IDD_OAL_CONFIG DIALOGEX 0, 0, 167, 114
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "OpenAL configuration"
|
||||
|
@ -1161,6 +1127,14 @@ END
|
|||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_XAUDIO2_CONFIG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 153
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 137
|
||||
END
|
||||
|
||||
IDD_OAL_CONFIG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
|
@ -1497,6 +1471,55 @@ END
|
|||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,8,0,0
|
||||
PRODUCTVERSION 1,8,0,0
|
||||
FILEFLAGSMASK 0x17L
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "Comments", "VBA-M comes with NO WARRANTY. Use it at your own risk."
|
||||
VALUE "CompanyName", "http://vba-m.ngemu.com/"
|
||||
VALUE "FileDescription", "GB & GBA emulator for Windows"
|
||||
VALUE "FileVersion", "1, 8, 0, 0"
|
||||
VALUE "InternalName", "VBA-M"
|
||||
VALUE "LegalCopyright", "Copyright © 2008 VBA-M development team"
|
||||
VALUE "OriginalFilename", "VisualBoyAdvance.exe"
|
||||
VALUE "ProductName", "VBA-M - A VisualBoyAdvance Fork"
|
||||
VALUE "ProductVersion", "1, 8, 0, 0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_MAINICON ICON "VBA-M.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Menu
|
||||
|
@ -1674,6 +1697,7 @@ BEGIN
|
|||
MENUITEM "DirectSound", ID_OUTPUTAPI_DIRECTSOUND
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "XAudio2", ID_OUTPUTAPI_XAUDIO2
|
||||
MENUITEM " Configuration...", ID_OUTPUTAPI_XAUDIO2CONFIG
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "OpenAL", ID_OUTPUTAPI_OPENAL
|
||||
MENUITEM " Configuration...", ID_OUTPUTAPI_OALCONFIGURATION
|
||||
|
@ -2202,6 +2226,8 @@ BEGIN
|
|||
"XAudio2: Creating mastering voice failed!"
|
||||
IDS_XAUDIO2_CANNOT_CREATE_SOURCEVOICE
|
||||
"XAudio2: Creating source voice failed!"
|
||||
IDS_XAUDIO2_CANNOT_ENUMERATE_DEVICES
|
||||
"XAudio2: Enumerating devices failed!"
|
||||
IDS_CHEATS_DISABLED "Cheats disabled"
|
||||
IDS_CHEATS_ENABLED "Cheats enabled"
|
||||
END
|
||||
|
|
|
@ -21,10 +21,6 @@
|
|||
|
||||
#ifndef NO_XAUDIO2
|
||||
|
||||
|
||||
#define NBUFFERS 4
|
||||
#define STEREO_UPMIXING
|
||||
|
||||
// MFC
|
||||
#include "stdafx.h"
|
||||
|
||||
|
@ -32,7 +28,7 @@
|
|||
#include "Sound.h"
|
||||
|
||||
// XAudio2
|
||||
#include <Xaudio2.h>
|
||||
#include <xaudio2.h>
|
||||
|
||||
// Internals
|
||||
#include "../Sound.h" // for soundBufferLen, soundFinalWave and soundQuality
|
||||
|
@ -101,6 +97,7 @@ private:
|
|||
bool initialized;
|
||||
bool playing;
|
||||
UINT32 freq;
|
||||
UINT32 bufferCount;
|
||||
BYTE *buffers;
|
||||
int currentBuffer;
|
||||
|
||||
|
@ -120,6 +117,7 @@ XAudio2_Output::XAudio2_Output()
|
|||
initialized = false;
|
||||
playing = false;
|
||||
freq = 0;
|
||||
bufferCount = theApp.xa2BufferCount;
|
||||
buffers = NULL;
|
||||
currentBuffer = 0;
|
||||
|
||||
|
@ -166,12 +164,12 @@ bool XAudio2_Output::init()
|
|||
HRESULT hr;
|
||||
|
||||
// Initialize XAudio2
|
||||
UINT32 Flags = 0;
|
||||
UINT32 flags = 0;
|
||||
#ifdef _DEBUG
|
||||
Flags = XAUDIO2_DEBUG_ENGINE;
|
||||
flags = XAUDIO2_DEBUG_ENGINE;
|
||||
#endif
|
||||
|
||||
hr = XAudio2Create( &xaud, Flags );
|
||||
hr = XAudio2Create( &xaud, flags );
|
||||
if( hr != S_OK ) {
|
||||
systemMessage( IDS_XAUDIO2_FAILURE, NULL );
|
||||
failed = true;
|
||||
|
@ -187,7 +185,7 @@ bool XAudio2_Output::init()
|
|||
|
||||
// create own buffers to store sound data because it must not be
|
||||
// manipulated while the voice plays from it
|
||||
buffers = (BYTE *)malloc( ( NBUFFERS + 1 ) * soundBufferLen );
|
||||
buffers = (BYTE *)malloc( ( bufferCount + 1 ) * soundBufferLen );
|
||||
// + 1 because we need one temporary buffer when all others are in use
|
||||
|
||||
WAVEFORMATEX wfx;
|
||||
|
@ -201,7 +199,13 @@ bool XAudio2_Output::init()
|
|||
|
||||
|
||||
// create sound receiver
|
||||
hr = xaud->CreateMasteringVoice( &mVoice );
|
||||
hr = xaud->CreateMasteringVoice(
|
||||
&mVoice,
|
||||
XAUDIO2_DEFAULT_CHANNELS,
|
||||
XAUDIO2_DEFAULT_SAMPLERATE,
|
||||
0,
|
||||
theApp.xa2Device,
|
||||
NULL );
|
||||
if( hr != S_OK ) {
|
||||
systemMessage( IDS_XAUDIO2_CANNOT_CREATE_MASTERINGVOICE, NULL );
|
||||
failed = true;
|
||||
|
@ -218,66 +222,66 @@ bool XAudio2_Output::init()
|
|||
}
|
||||
|
||||
|
||||
#ifdef STEREO_UPMIXING
|
||||
// set up stereo upmixing
|
||||
XAUDIO2_DEVICE_DETAILS dd;
|
||||
ZeroMemory( &dd, sizeof( dd ) );
|
||||
hr = xaud->GetDeviceDetails( 0, &dd );
|
||||
ASSERT( hr == S_OK );
|
||||
float *matrix = NULL;
|
||||
matrix = (float*)malloc( sizeof( float ) * 2 * dd.OutputFormat.Format.nChannels );
|
||||
switch( dd.OutputFormat.Format.nChannels ) {
|
||||
case 4: // 4.0
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Back L*/ matrix[4] = 1.0000f; matrix[5] = 0.0000f;
|
||||
/*Back R*/ matrix[6] = 0.0000f; matrix[7] = 1.0000f;
|
||||
break;
|
||||
case 5: // 5.0
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Front C*/ matrix[4] = 0.7071f; matrix[5] = 0.7071f;
|
||||
/*Side L*/ matrix[6] = 1.0000f; matrix[7] = 0.0000f;
|
||||
/*Side R*/ matrix[8] = 0.0000f; matrix[9] = 1.0000f;
|
||||
break;
|
||||
case 6: // 5.1
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Front C*/ matrix[4] = 0.7071f; matrix[5] = 0.7071f;
|
||||
/*LFE */ matrix[6] = 0.0000f; matrix[7] = 0.0000f;
|
||||
/*Side L*/ matrix[8] = 1.0000f; matrix[9] = 0.0000f;
|
||||
/*Side R*/ matrix[10] = 0.0000f; matrix[11] = 1.0000f;
|
||||
break;
|
||||
case 7: // 6.1
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Front C*/ matrix[4] = 0.7071f; matrix[5] = 0.7071f;
|
||||
/*LFE */ matrix[6] = 0.0000f; matrix[7] = 0.0000f;
|
||||
/*Side L*/ matrix[8] = 1.0000f; matrix[9] = 0.0000f;
|
||||
/*Side R*/ matrix[10] = 0.0000f; matrix[11] = 1.0000f;
|
||||
/*Back C*/ matrix[12] = 0.7071f; matrix[13] = 0.7071f;
|
||||
break;
|
||||
case 8: // 7.1
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Front C*/ matrix[4] = 0.7071f; matrix[5] = 0.7071f;
|
||||
/*LFE */ matrix[6] = 0.0000f; matrix[7] = 0.0000f;
|
||||
/*Back L*/ matrix[8] = 1.0000f; matrix[9] = 0.0000f;
|
||||
/*Back R*/ matrix[10] = 0.0000f; matrix[11] = 1.0000f;
|
||||
/*Side L*/ matrix[12] = 1.0000f; matrix[13] = 0.0000f;
|
||||
/*Side R*/ matrix[14] = 0.0000f; matrix[15] = 1.0000f;
|
||||
break;
|
||||
if( theApp.xa2Upmixing ) {
|
||||
// set up stereo upmixing
|
||||
XAUDIO2_DEVICE_DETAILS dd;
|
||||
ZeroMemory( &dd, sizeof( dd ) );
|
||||
hr = xaud->GetDeviceDetails( 0, &dd );
|
||||
ASSERT( hr == S_OK );
|
||||
float *matrix = NULL;
|
||||
matrix = (float*)malloc( sizeof( float ) * 2 * dd.OutputFormat.Format.nChannels );
|
||||
switch( dd.OutputFormat.Format.nChannels ) {
|
||||
case 4: // 4.0
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Back L*/ matrix[4] = 1.0000f; matrix[5] = 0.0000f;
|
||||
/*Back R*/ matrix[6] = 0.0000f; matrix[7] = 1.0000f;
|
||||
break;
|
||||
case 5: // 5.0
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Front C*/ matrix[4] = 0.7071f; matrix[5] = 0.7071f;
|
||||
/*Side L*/ matrix[6] = 1.0000f; matrix[7] = 0.0000f;
|
||||
/*Side R*/ matrix[8] = 0.0000f; matrix[9] = 1.0000f;
|
||||
break;
|
||||
case 6: // 5.1
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Front C*/ matrix[4] = 0.7071f; matrix[5] = 0.7071f;
|
||||
/*LFE */ matrix[6] = 0.0000f; matrix[7] = 0.0000f;
|
||||
/*Side L*/ matrix[8] = 1.0000f; matrix[9] = 0.0000f;
|
||||
/*Side R*/ matrix[10] = 0.0000f; matrix[11] = 1.0000f;
|
||||
break;
|
||||
case 7: // 6.1
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Front C*/ matrix[4] = 0.7071f; matrix[5] = 0.7071f;
|
||||
/*LFE */ matrix[6] = 0.0000f; matrix[7] = 0.0000f;
|
||||
/*Side L*/ matrix[8] = 1.0000f; matrix[9] = 0.0000f;
|
||||
/*Side R*/ matrix[10] = 0.0000f; matrix[11] = 1.0000f;
|
||||
/*Back C*/ matrix[12] = 0.7071f; matrix[13] = 0.7071f;
|
||||
break;
|
||||
case 8: // 7.1
|
||||
//Speaker \ Left Source Right Source
|
||||
/*Front L*/ matrix[0] = 1.0000f; matrix[1] = 0.0000f;
|
||||
/*Front R*/ matrix[2] = 0.0000f; matrix[3] = 1.0000f;
|
||||
/*Front C*/ matrix[4] = 0.7071f; matrix[5] = 0.7071f;
|
||||
/*LFE */ matrix[6] = 0.0000f; matrix[7] = 0.0000f;
|
||||
/*Back L*/ matrix[8] = 1.0000f; matrix[9] = 0.0000f;
|
||||
/*Back R*/ matrix[10] = 0.0000f; matrix[11] = 1.0000f;
|
||||
/*Side L*/ matrix[12] = 1.0000f; matrix[13] = 0.0000f;
|
||||
/*Side R*/ matrix[14] = 0.0000f; matrix[15] = 1.0000f;
|
||||
break;
|
||||
}
|
||||
hr = sVoice->SetOutputMatrix( NULL, 2, dd.OutputFormat.Format.nChannels, matrix );
|
||||
ASSERT( hr == S_OK );
|
||||
free( matrix );
|
||||
matrix = NULL;
|
||||
}
|
||||
hr = sVoice->SetOutputMatrix( NULL, 2, dd.OutputFormat.Format.nChannels, matrix );
|
||||
ASSERT( hr == S_OK );
|
||||
free( matrix );
|
||||
matrix = NULL;
|
||||
#endif
|
||||
|
||||
|
||||
hr = sVoice->Start( 0 );
|
||||
|
@ -298,9 +302,9 @@ void XAudio2_Output::write()
|
|||
while( true ) {
|
||||
sVoice->GetState( &vState );
|
||||
|
||||
ASSERT( vState.BuffersQueued <= NBUFFERS );
|
||||
ASSERT( vState.BuffersQueued <= bufferCount );
|
||||
|
||||
if( vState.BuffersQueued < NBUFFERS ) {
|
||||
if( vState.BuffersQueued < bufferCount ) {
|
||||
if( vState.BuffersQueued == 0 ) {
|
||||
// buffers ran dry
|
||||
if( systemVerbose & VERBOSE_SOUNDOUTPUT ) {
|
||||
|
@ -329,7 +333,7 @@ void XAudio2_Output::write()
|
|||
buf.pAudioData = &buffers[ currentBuffer * soundBufferLen ];
|
||||
|
||||
currentBuffer++;
|
||||
currentBuffer %= ( NBUFFERS + 1 ); // + 1 because we need one temporary buffer
|
||||
currentBuffer %= ( bufferCount + 1 ); // + 1 because we need one temporary buffer
|
||||
|
||||
HRESULT hr = sVoice->SubmitSourceBuffer( &buf ); // send buffer to queue
|
||||
ASSERT( hr == S_OK );
|
||||
|
|
|
@ -0,0 +1,164 @@
|
|||
// VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
|
||||
// Copyright (C) 1999-2003 Forgotten
|
||||
// Copyright (C) 2005 Forgotten and the VBA development team
|
||||
// Copyright (C) 2007-2008 VBA-M development team
|
||||
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2, or(at your option)
|
||||
// any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software Foundation,
|
||||
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
#ifndef NO_XAUDIO2
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "XAudio2_Config.h"
|
||||
|
||||
#include <xaudio2.h>
|
||||
|
||||
|
||||
// XAudio2_Config dialog
|
||||
|
||||
IMPLEMENT_DYNAMIC(XAudio2_Config, CDialog)
|
||||
|
||||
XAudio2_Config::XAudio2_Config(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(XAudio2_Config::IDD, pParent)
|
||||
, m_selected_device_index(0)
|
||||
, m_enable_upmixing(false)
|
||||
, m_buffer_count(0)
|
||||
{
|
||||
}
|
||||
|
||||
XAudio2_Config::~XAudio2_Config()
|
||||
{
|
||||
}
|
||||
|
||||
void XAudio2_Config::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_COMBO_DEV, m_combo_dev);
|
||||
DDX_Control(pDX, IDC_SLIDER_BUFFER, m_slider_buffer);
|
||||
DDX_Control(pDX, IDC_INFO_BUFFER, m_info_buffer);
|
||||
DDX_Control(pDX, IDC_CHECK_UPMIX, m_check_upmix);
|
||||
|
||||
if( pDX->m_bSaveAndValidate == TRUE ) {
|
||||
if( CB_ERR != m_combo_dev.GetCurSel() ) {
|
||||
if( CB_ERR != m_combo_dev.GetItemData( m_combo_dev.GetCurSel() ) ) {
|
||||
m_selected_device_index = m_combo_dev.GetItemData( m_combo_dev.GetCurSel() );
|
||||
}
|
||||
}
|
||||
|
||||
m_enable_upmixing = ( m_check_upmix.GetCheck() == BST_CHECKED );
|
||||
|
||||
m_buffer_count = (UINT32)m_slider_buffer.GetPos();
|
||||
} else {
|
||||
m_check_upmix.SetCheck( m_enable_upmixing ? BST_CHECKED : BST_UNCHECKED );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(XAudio2_Config, CDialog)
|
||||
ON_WM_HSCROLL()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// XAudio2_Config message handlers
|
||||
|
||||
BOOL XAudio2_Config::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
m_combo_dev.ResetContent();
|
||||
|
||||
m_slider_buffer.SetRange( 2, 10, FALSE );
|
||||
m_slider_buffer.SetTicFreq( 1 );
|
||||
m_slider_buffer.SetPos( (int)m_buffer_count );
|
||||
|
||||
CString info;
|
||||
int pos = m_slider_buffer.GetPos();
|
||||
info.Format( _T("%i frames = %.2f ms"), pos, (float)pos / 60.0f * 1000.0f );
|
||||
m_info_buffer.SetWindowText( info );
|
||||
|
||||
HRESULT hr;
|
||||
IXAudio2 *xa = NULL;
|
||||
UINT32 flags = 0;
|
||||
#ifdef _DEBUG
|
||||
flags = XAUDIO2_DEBUG_ENGINE;
|
||||
#endif
|
||||
|
||||
hr = XAudio2Create( &xa, flags );
|
||||
if( hr != S_OK ) {
|
||||
systemMessage( IDS_XAUDIO2_FAILURE, NULL );
|
||||
} else {
|
||||
UINT32 dev_count = 0;
|
||||
hr = xa->GetDeviceCount( &dev_count );
|
||||
if( hr != S_OK ) {
|
||||
systemMessage( IDS_XAUDIO2_CANNOT_ENUMERATE_DEVICES, NULL );
|
||||
} else {
|
||||
XAUDIO2_DEVICE_DETAILS dd;
|
||||
for( UINT32 i = 0; i < dev_count; i++ ) {
|
||||
hr = xa->GetDeviceDetails( i, &dd );
|
||||
if( hr != S_OK ) {
|
||||
systemMessage( IDS_XAUDIO2_CANNOT_ENUMERATE_DEVICES, NULL );
|
||||
break;
|
||||
} else {
|
||||
#ifdef _MBCS
|
||||
CHAR temp[256];
|
||||
ZeroMemory( temp, sizeof( temp ) );
|
||||
WideCharToMultiByte(
|
||||
CP_ACP,
|
||||
WC_NO_BEST_FIT_CHARS,
|
||||
dd.DisplayName,
|
||||
-1,
|
||||
temp,
|
||||
sizeof( temp ) - 1,
|
||||
NULL,
|
||||
NULL );
|
||||
|
||||
int id = m_combo_dev.AddString( temp );
|
||||
#endif
|
||||
#ifdef _UNICODE
|
||||
int id = m_combo_dev.AddString( dd.DisplayName );
|
||||
#endif
|
||||
if( id < 0 ) {
|
||||
systemMessage( IDS_XAUDIO2_CANNOT_ENUMERATE_DEVICES, NULL );
|
||||
break;
|
||||
} else {
|
||||
m_combo_dev.SetItemData( id, i );
|
||||
}
|
||||
}
|
||||
}
|
||||
if( m_combo_dev.GetCount() > 0 ) {
|
||||
if( m_selected_device_index < (UINT32)(m_combo_dev.GetCount()) ) {
|
||||
m_combo_dev.SetCurSel( m_selected_device_index );
|
||||
}
|
||||
}
|
||||
}
|
||||
xa->Release();
|
||||
xa = NULL;
|
||||
}
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void XAudio2_Config::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
CString info;
|
||||
int pos = m_slider_buffer.GetPos();
|
||||
info.Format( _T("%i frames = %.2f ms"), pos, (float)pos / 60.0f * 1000.0f );
|
||||
m_info_buffer.SetWindowText( info );
|
||||
|
||||
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,59 @@
|
|||
// VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
|
||||
// Copyright (C) 1999-2003 Forgotten
|
||||
// Copyright (C) 2005 Forgotten and the VBA development team
|
||||
// Copyright (C) 2007-2008 VBA-M development team
|
||||
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2, or(at your option)
|
||||
// any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software Foundation,
|
||||
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
#ifndef NO_XAUDIO2
|
||||
|
||||
#pragma once
|
||||
#include "afxwin.h"
|
||||
#include "afxcmn.h"
|
||||
|
||||
|
||||
class XAudio2_Config : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(XAudio2_Config)
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
public:
|
||||
UINT32 m_selected_device_index;
|
||||
UINT32 m_buffer_count;
|
||||
bool m_enable_upmixing;
|
||||
|
||||
private:
|
||||
CComboBox m_combo_dev;
|
||||
CSliderCtrl m_slider_buffer;
|
||||
CStatic m_info_buffer;
|
||||
CButton m_check_upmix;
|
||||
|
||||
|
||||
public:
|
||||
XAudio2_Config(CWnd* pParent = NULL); // standard constructor
|
||||
virtual ~XAudio2_Config();
|
||||
|
||||
// Dialog Data
|
||||
enum { IDD = IDD_XAUDIO2_CONFIG };
|
||||
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
};
|
||||
|
||||
#endif
|
|
@ -100,6 +100,7 @@
|
|||
#define IDD_OAL_CONFIG 160
|
||||
#define IDD_BIOS 161
|
||||
#define IDD_FULLSCREEN 162
|
||||
#define IDD_XAUDIO2_CONFIG 163
|
||||
#define IDC_R0 1000
|
||||
#define IDC_EDIT_UP 1000
|
||||
#define IDC_R1 1001
|
||||
|
@ -534,6 +535,10 @@
|
|||
#define IDC_COMBO_DEVICE 1283
|
||||
#define IDC_CHECK1 1284
|
||||
#define IDC_ALWAYSLASTROMDIR 1284
|
||||
#define IDC_CHECK_UPMIX 1284
|
||||
#define IDC_COMBO_DEV 1285
|
||||
#define IDC_SLIDER_BUFFER 1286
|
||||
#define IDC_INFO_BUFFER 1287
|
||||
#define IDS_OAL_NODEVICE 2000
|
||||
#define IDS_OAL_NODLL 2001
|
||||
#define IDS_AVI_CANNOT_CREATE_AVI 2002
|
||||
|
@ -546,8 +551,9 @@
|
|||
#define IDS_XAUDIO2_FAILURE 2009
|
||||
#define IDS_XAUDIO2_CANNOT_CREATE_MASTERINGVOICE 2010
|
||||
#define IDS_XAUDIO2_CANNOT_CREATE_SOURCEVOICE 2011
|
||||
#define IDS_CHEATS_DISABLED 2012
|
||||
#define IDS_CHEATS_ENABLED 2013
|
||||
#define IDS_XAUDIO2_CANNOT_ENUMERATE_DEVICES 2012
|
||||
#define IDS_CHEATS_DISABLED 2013
|
||||
#define IDS_CHEATS_ENABLED 2014
|
||||
#define ID_HELP_ABOUT 40001
|
||||
#define ID_FILE_EXIT 40002
|
||||
#define ID_OPTIONS_VIDEO_FRAMESKIP_0 40003
|
||||
|
@ -859,14 +865,16 @@
|
|||
#define ID_PIXELFILTER_MULTI 40360
|
||||
#define ID_EMULATOR_LOADSTATESHOULD 40361
|
||||
#define ID_LOADGAME_DONOTCHANGEBATTERYSAVE 40362
|
||||
#define ID_OUTPUTAPI_CONFIGURATION40363 40363
|
||||
#define ID_OUTPUTAPI_XAUDIO2CONFIG 40364
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 163
|
||||
#define _APS_NEXT_COMMAND_VALUE 40363
|
||||
#define _APS_NEXT_CONTROL_VALUE 1285
|
||||
#define _APS_NEXT_RESOURCE_VALUE 164
|
||||
#define _APS_NEXT_COMMAND_VALUE 40365
|
||||
#define _APS_NEXT_CONTROL_VALUE 1288
|
||||
#define _APS_NEXT_SYMED_VALUE 103
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue