Removed the dx9 pad plugin. I won't miss it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@704 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
7fcc9abe67
commit
f69166d0c2
|
@ -56,7 +56,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DolphinWX", "Core\DolphinWX
|
|||
{636FAD5F-02D1-4E9A-BE67-FB8EA99B9A18} = {636FAD5F-02D1-4E9A-BE67-FB8EA99B9A18}
|
||||
{33546D62-7F34-4EA6-A88E-D538B36E16BF} = {33546D62-7F34-4EA6-A88E-D538B36E16BF}
|
||||
{3E03C179-8251-46E4-81F4-466F114BAC63} = {3E03C179-8251-46E4-81F4-466F114BAC63}
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE} = {805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}
|
||||
{521498BE-6089-4780-8223-E67C22F4E068} = {521498BE-6089-4780-8223-E67C22F4E068}
|
||||
{E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA} = {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}
|
||||
{29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
|
||||
|
@ -84,8 +83,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VideoCommon", "Core\VideoCo
|
|||
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_PadDX9", "Plugins\Plugin_PadDX9\Plugin_PadDX9.vcproj", "{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_nJoy_SDL", "Plugins\Plugin_nJoy_SDL\Plugin_nJoy_SDL.vcproj", "{521498BE-6089-4780-8223-E67C22F4E068}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
|
||||
|
@ -290,18 +287,6 @@ Global
|
|||
{E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}.Release|Win32.Build.0 = Release|Win32
|
||||
{E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}.Release|x64.ActiveCfg = Release|x64
|
||||
{E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}.Release|x64.Build.0 = Release|x64
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Debug|x64.Build.0 = Debug|x64
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.DebugFast|Win32.Build.0 = DebugFast|Win32
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.DebugFast|x64.ActiveCfg = DebugFast|x64
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.DebugFast|x64.Build.0 = DebugFast|x64
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Release|Win32.Build.0 = Release|Win32
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Release|x64.ActiveCfg = Release|x64
|
||||
{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}.Release|x64.Build.0 = Release|x64
|
||||
{521498BE-6089-4780-8223-E67C22F4E068}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{521498BE-6089-4780-8223-E67C22F4E068}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{521498BE-6089-4780-8223-E67C22F4E068}.Debug|x64.ActiveCfg = Debug|x64
|
||||
|
|
|
@ -1,752 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="Plugin_PadDX9"
|
||||
ProjectGUID="{805B34AA-82A5-4875-8DC7-3C85BDC0BCEE}"
|
||||
RootNamespace="Plugin_PadDX9"
|
||||
TargetFrameworkVersion="131072"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/Pad_DirectX9.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../Externals/WTL80;../../PluginSpecs"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PAD_DIRECTX9_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
BufferSecurityCheck="false"
|
||||
EnableFunctionLevelLinking="true"
|
||||
FloatingPointModel="0"
|
||||
UsePrecompiledHeader="1"
|
||||
PrecompiledHeaderThrough="stdafx.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
AssemblerListingLocation="$(IntDir)\"
|
||||
ObjectFile="$(IntDir)\"
|
||||
ProgramDataBaseFileName="$(IntDir)\"
|
||||
WarningLevel="3"
|
||||
WarnAsError="false"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1053"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="dxguid.lib dxerr9.lib dinput8.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="..\..\..\Binary\Win32/plugins\Plugin_PadDX9.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
GenerateManifest="false"
|
||||
ProgramDatabaseFile=".\Release/Pad_DirectX9.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary=".\Release/Pad_DirectX9.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\Release/Pad_DirectX9.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../Externals/WTL80;../../PluginSpecs"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PAD_DIRECTX9_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
BufferSecurityCheck="false"
|
||||
EnableFunctionLevelLinking="true"
|
||||
FloatingPointModel="0"
|
||||
UsePrecompiledHeader="1"
|
||||
PrecompiledHeaderThrough="stdafx.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
AssemblerListingLocation="$(IntDir)\"
|
||||
ObjectFile="$(IntDir)\"
|
||||
ProgramDataBaseFileName="$(IntDir)\"
|
||||
WarningLevel="3"
|
||||
WarnAsError="false"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1053"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="dxguid.lib dxerr9.lib dinput8.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="..\..\..\Binary\x64\plugins\Plugin_PadDX9.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
GenerateManifest="false"
|
||||
ProgramDatabaseFile=".\Release/Pad_DirectX9.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary=".\Release/Pad_DirectX9.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/Pad_DirectX9.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../Externals/WTL80;../../PluginSpecs"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PAD_DIRECTX9_EXPORTS;;_CRT_SECURE_NO_DEPRECATE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
FloatingPointModel="0"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderThrough="stdafx.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
AssemblerListingLocation="$(IntDir)\"
|
||||
ObjectFile="$(IntDir)\"
|
||||
ProgramDataBaseFileName="$(IntDir)\"
|
||||
WarningLevel="3"
|
||||
WarnAsError="false"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1053"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="dxguid.lib dxerr9.lib dinput8.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="..\..\..\Binary\Win32/plugins\Plugin_PadDX9D.dll"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
GenerateManifest="false"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/Pad_DirectX9.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary=".\Debug/Pad_DirectX9.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\Debug/Pad_DirectX9.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../Externals/WTL80;../../PluginSpecs"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PAD_DIRECTX9_EXPORTS;;_CRT_SECURE_NO_DEPRECATE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
FloatingPointModel="0"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderThrough="stdafx.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
AssemblerListingLocation="$(IntDir)\"
|
||||
ObjectFile="$(IntDir)\"
|
||||
ProgramDataBaseFileName="$(IntDir)\"
|
||||
WarningLevel="3"
|
||||
WarnAsError="false"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1053"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="dxguid.lib dxerr9.lib dinput8.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="..\..\..\Binary\x64\plugins\Plugin_PadDX9D.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
GenerateManifest="false"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/Pad_DirectX9.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary=".\Debug/Pad_DirectX9.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="DebugFast|Win32"
|
||||
OutputDirectory="$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/Pad_DirectX9.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../Externals/WTL80;../../PluginSpecs"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PAD_DIRECTX9_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
BufferSecurityCheck="false"
|
||||
EnableFunctionLevelLinking="true"
|
||||
FloatingPointModel="0"
|
||||
UsePrecompiledHeader="1"
|
||||
PrecompiledHeaderThrough="stdafx.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
AssemblerListingLocation="$(IntDir)\"
|
||||
ObjectFile="$(IntDir)\"
|
||||
ProgramDataBaseFileName="$(IntDir)\"
|
||||
WarningLevel="3"
|
||||
WarnAsError="false"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1053"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="dxguid.lib dxerr9.lib dinput8.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="..\..\..\Binary\Win32/plugins\Plugin_PadDX9.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
GenerateManifest="false"
|
||||
ProgramDatabaseFile=".\Release/Pad_DirectX9.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary=".\Release/Pad_DirectX9.lib"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="DebugFast|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="3"
|
||||
TypeLibraryName=".\Release/Pad_DirectX9.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../Externals/WTL80;../../PluginSpecs"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PAD_DIRECTX9_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
BufferSecurityCheck="false"
|
||||
EnableFunctionLevelLinking="true"
|
||||
FloatingPointModel="0"
|
||||
UsePrecompiledHeader="1"
|
||||
PrecompiledHeaderThrough="stdafx.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
AssemblerListingLocation="$(IntDir)\"
|
||||
ObjectFile="$(IntDir)\"
|
||||
ProgramDataBaseFileName="$(IntDir)\"
|
||||
WarningLevel="3"
|
||||
WarnAsError="false"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1053"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="dxguid.lib dxerr9.lib dinput8.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="..\..\..\Binary\x64\plugins\Plugin_PadDX9.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
GenerateManifest="false"
|
||||
ProgramDatabaseFile=".\Release/Pad_DirectX9.pdb"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
ImportLibrary=".\Release/Pad_DirectX9.lib"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="AboutDialog"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Src\AboutDlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\AboutDlg.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="ConfigDialog"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Src\ConfigDlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\ConfigDlg.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="IniFile"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Src\IniFile.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\IniFile.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Src\resource.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\resource.rc"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\Src\DIHandler.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\DIHandler.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\main.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;PAD_DIRECTX9_EXPORTS;$(NoInherit)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;PAD_DIRECTX9_EXPORTS;$(NoInherit)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;PAD_DIRECTX9_EXPORTS;$(NoInherit)"
|
||||
BasicRuntimeChecks="3"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;PAD_DIRECTX9_EXPORTS;$(NoInherit)"
|
||||
BasicRuntimeChecks="3"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="DebugFast|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;PAD_DIRECTX9_EXPORTS;$(NoInherit)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="DebugFast|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;PAD_DIRECTX9_EXPORTS;$(NoInherit)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\multidi.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\multidi.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\Plugin_Specs\pad.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\stdafx.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Src\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
|
@ -1,48 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "resource.h"
|
||||
|
||||
#include "AboutDlg.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// I M P L E M E N T A T I O N //////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// OnInitDialog
|
||||
//
|
||||
LRESULT
|
||||
CAboutDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
CenterWindow(GetParent());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// OnCloseCmd
|
||||
//
|
||||
LRESULT
|
||||
CAboutDlg::OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
EndDialog(wID);
|
||||
return 0;
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
class CAboutDlg : public CDialogImpl<CAboutDlg>
|
||||
{
|
||||
public:
|
||||
enum { IDD = IDD_ABOUTPAD };
|
||||
|
||||
BEGIN_MSG_MAP(CAboutDlg)
|
||||
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
||||
COMMAND_ID_HANDLER(IDOK, OnCloseCmd)
|
||||
COMMAND_ID_HANDLER(IDCANCEL, OnCloseCmd)
|
||||
END_MSG_MAP()
|
||||
|
||||
// Handler prototypes (uncomment arguments if needed):
|
||||
// LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
// LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
|
||||
// LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
|
||||
|
||||
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
|
||||
|
||||
LRESULT OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
||||
};
|
|
@ -1,47 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "resource.h"
|
||||
|
||||
#include "ConfigDlg.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// I M P L E M E N T A T I O N //////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// OnInitDialog
|
||||
//
|
||||
LRESULT
|
||||
CConfigDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// OnCloseCmd
|
||||
//
|
||||
LRESULT
|
||||
CConfigDlg::OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
|
||||
{
|
||||
EndDialog(wID);
|
||||
return 0;
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
class CConfigDlg : public CDialogImpl<CConfigDlg>
|
||||
{
|
||||
public:
|
||||
enum { IDD = IDD_PADCONFIG };
|
||||
|
||||
BEGIN_MSG_MAP(CConfigDlg)
|
||||
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
|
||||
COMMAND_ID_HANDLER(IDOK, OnCloseCmd)
|
||||
END_MSG_MAP()
|
||||
|
||||
private:
|
||||
|
||||
// Handler prototypes (uncomment arguments if needed):
|
||||
// LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
|
||||
// LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
|
||||
// LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
|
||||
|
||||
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
|
||||
LRESULT OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
|
||||
};
|
|
@ -1,482 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include <math.h>
|
||||
|
||||
#include "PluginSpecs_Pad.h"
|
||||
#include "MultiDI.h"
|
||||
#include "DIHandler.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// T Y P E D E F S / D E F I N E S //////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Actions used by this app
|
||||
DIACTION CDIHandler::m_rgGameAction[] =
|
||||
{
|
||||
// Keyboard input mappings
|
||||
{ CDIHandler::INPUT_MAIN_LEFT, DIKEYBOARD_LEFT, 0, TEXT("Main left"), },
|
||||
{ CDIHandler::INPUT_MAIN_RIGHT, DIKEYBOARD_RIGHT, 0, TEXT("Main right"), },
|
||||
{ CDIHandler::INPUT_MAIN_UP, DIKEYBOARD_UP, 0, TEXT("Main up"), },
|
||||
{ CDIHandler::INPUT_MAIN_DOWN, DIKEYBOARD_DOWN, 0, TEXT("Main down"), },
|
||||
{ CDIHandler::INPUT_CPAD_LEFT, DIKEYBOARD_J, 0, TEXT("CPad left"), },
|
||||
{ CDIHandler::INPUT_CPAD_RIGHT, DIKEYBOARD_L, 0, TEXT("CPad right"), },
|
||||
{ CDIHandler::INPUT_CPAD_UP, DIKEYBOARD_I, 0, TEXT("CPad up"), },
|
||||
{ CDIHandler::INPUT_CPAD_DOWN, DIKEYBOARD_K, 0, TEXT("CPad down"), },
|
||||
{ CDIHandler::INPUT_DPAD_LEFT, DIKEYBOARD_F, 0, TEXT("DPad left"), },
|
||||
{ CDIHandler::INPUT_DPAD_RIGHT, DIKEYBOARD_H, 0, TEXT("DPad right"), },
|
||||
{ CDIHandler::INPUT_DPAD_UP, DIKEYBOARD_T, 0, TEXT("DPad up"), },
|
||||
{ CDIHandler::INPUT_DPAD_DOWN, DIKEYBOARD_G, 0, TEXT("DPad down"), },
|
||||
{ CDIHandler::INPUT_BUTTON_START, DIKEYBOARD_RETURN, 0, TEXT("Start"), },
|
||||
{ CDIHandler::INPUT_BUTTON_A, DIKEYBOARD_X, 0, TEXT("A-Button"), },
|
||||
{ CDIHandler::INPUT_BUTTON_B, DIKEYBOARD_Y, 0, TEXT("B-Button"), },
|
||||
{ CDIHandler::INPUT_BUTTON_X, DIKEYBOARD_S, 0, TEXT("X-Button"), },
|
||||
{ CDIHandler::INPUT_BUTTON_Y, DIKEYBOARD_C, 0, TEXT("Y-Button"), },
|
||||
{ CDIHandler::INPUT_BUTTON_Z, DIKEYBOARD_D, 0, TEXT("Z-Button"), },
|
||||
{ CDIHandler::INPUT_BUTTON_L, DIKEYBOARD_Q, 0, TEXT("L-Trigger"), },
|
||||
{ CDIHandler::INPUT_BUTTON_R, DIKEYBOARD_W, 0, TEXT("R-Trigger"), },
|
||||
|
||||
// Joystick input mappings
|
||||
{ CDIHandler::INPUT_MAIN_AXIS_LR, DIAXIS_ARCADEP_LATERAL, 0, _T("Main left/right"), },
|
||||
{ CDIHandler::INPUT_MAIN_AXIS_UD, DIAXIS_ARCADEP_MOVE, 0, _T("Main Up/Down"), },
|
||||
{ CDIHandler::INPUT_CPAD_AXIS_LR, DIAXIS_ANY_1, 0, _T("CPad left/right"), },
|
||||
{ CDIHandler::INPUT_CPAD_AXIS_UP, DIAXIS_ANY_2, 0, _T("CPad Up/Down"), },
|
||||
{ CDIHandler::INPUT_DPAD_AXIS_LR, DIPOV_ANY_1, 0, _T("DPad left/right"), },
|
||||
{ CDIHandler::INPUT_DPAD_AXIS_UP, DIPOV_ANY_2, 0, _T("DPad Up/Down"), },
|
||||
};
|
||||
|
||||
const GUID g_guidApp = { 0x3afabad0, 0xd2c0, 0x4514, { 0xb4, 0x7e, 0x65, 0xfe, 0xf9, 0xb5, 0x14, 0x2e } };
|
||||
#define SAMPLE_KEY TEXT("Emulator\\Dolphin\\PadPlugin2")
|
||||
#define NUMBER_OF_GAMEACTIONS (sizeof(m_rgGameAction)/sizeof(DIACTION))
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// I M P L E M E N T A T I O N ////////////////////////// ////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// constructor
|
||||
//
|
||||
CDIHandler::CDIHandler(void) :
|
||||
m_hWnd(NULL),
|
||||
m_pInputDeviceManager(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// destructor
|
||||
//
|
||||
CDIHandler::~CDIHandler(void)
|
||||
{
|
||||
CleanupDirectInput();
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// InitInput
|
||||
//
|
||||
HRESULT
|
||||
CDIHandler::InitInput(HWND _hWnd)
|
||||
{
|
||||
if (m_hWnd == _hWnd)
|
||||
return S_OK;
|
||||
|
||||
CleanupDirectInput();
|
||||
|
||||
m_hWnd = _hWnd;
|
||||
|
||||
HRESULT hr;
|
||||
|
||||
// Setup action format for the actual gameplay
|
||||
ZeroMemory( &m_diafGame, sizeof(DIACTIONFORMAT) );
|
||||
m_diafGame.dwSize = sizeof(DIACTIONFORMAT);
|
||||
m_diafGame.dwActionSize = sizeof(DIACTION);
|
||||
m_diafGame.dwDataSize = NUMBER_OF_GAMEACTIONS * sizeof(DWORD);
|
||||
m_diafGame.guidActionMap = g_guidApp;
|
||||
m_diafGame.dwGenre = DIVIRTUAL_ARCADE_PLATFORM;
|
||||
m_diafGame.dwNumActions = NUMBER_OF_GAMEACTIONS;
|
||||
m_diafGame.rgoAction = m_rgGameAction;
|
||||
m_diafGame.lAxisMin = -100;
|
||||
m_diafGame.lAxisMax = 100;
|
||||
m_diafGame.dwBufferSize = 32;
|
||||
_tcscpy_s( m_diafGame.tszActionMap, _T("Dolphin Pad Plugin") );
|
||||
|
||||
// Create a new input device manager
|
||||
m_pInputDeviceManager = new CMultiplayerInputDeviceManager( SAMPLE_KEY );
|
||||
|
||||
if( FAILED( hr = ChangeNumPlayers( 1, FALSE, FALSE ) ) )
|
||||
{
|
||||
MessageBox(NULL, "InitInput", "Pad", MB_OK);
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// ConfigInput
|
||||
//
|
||||
void
|
||||
CDIHandler::ConfigInput(void)
|
||||
{
|
||||
HRESULT hr;
|
||||
|
||||
CleanupDeviceStateStructs();
|
||||
|
||||
// Configure the devices (with edit capability)
|
||||
hr = m_pInputDeviceManager->ConfigureDevices( m_hWnd, NULL, NULL, DICD_EDIT, NULL );
|
||||
if( FAILED(hr) )
|
||||
{
|
||||
if( hr == E_DIUTILERR_PLAYERWITHOUTDEVICE )
|
||||
{
|
||||
// There's a player that hasn't been assigned a device. Some games may
|
||||
// want to handle this by reducing the number of players, or auto-assigning
|
||||
// a device, or warning the user, etc.
|
||||
MessageBox( m_hWnd, TEXT("There is at least one player that wasn't assigned ") \
|
||||
TEXT("a device\n") \
|
||||
TEXT("Press OK to auto-assign a device to these users"),
|
||||
TEXT("Player Without Device"), MB_OK | MB_ICONEXCLAMATION );
|
||||
}
|
||||
|
||||
// Auto-reassign every player a device.
|
||||
ChangeNumPlayers( m_dwNumPlayers, FALSE, FALSE );
|
||||
}
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// CleanupDirectInput
|
||||
//
|
||||
void
|
||||
CDIHandler::CleanupDirectInput(void)
|
||||
{
|
||||
if( NULL == m_pInputDeviceManager )
|
||||
return;
|
||||
|
||||
CleanupDeviceStateStructs();
|
||||
|
||||
// Cleanup DirectX input objects
|
||||
SAFE_DELETE( m_pInputDeviceManager );
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// CleanupDeviceStateStructs
|
||||
//
|
||||
void
|
||||
CDIHandler::CleanupDeviceStateStructs(void)
|
||||
{
|
||||
// Get access to the list of semantically-mapped input devices
|
||||
// to delete all InputDeviceState structs before calling ConfigureDevices()
|
||||
CMultiplayerInputDeviceManager::DeviceInfo* pDeviceInfos;
|
||||
DWORD dwNumDevices;
|
||||
|
||||
m_pInputDeviceManager->GetDevices( &pDeviceInfos, &dwNumDevices );
|
||||
|
||||
for( DWORD i=0; i<dwNumDevices; i++ )
|
||||
{
|
||||
SUserInput* pInputDeviceState = (SUserInput*) pDeviceInfos[i].pParam;
|
||||
SAFE_DELETE( pInputDeviceState );
|
||||
pDeviceInfos[i].pParam = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// CleanupDeviceStateStructs
|
||||
//
|
||||
HRESULT
|
||||
CDIHandler::ChangeNumPlayers( DWORD dwNumPlayers, BOOL bResetOwnership, BOOL bResetMappings )
|
||||
{
|
||||
HRESULT hr;
|
||||
|
||||
m_dwNumPlayers = dwNumPlayers;
|
||||
|
||||
// Just pass in stock names. Real games may want to ask the user for a name, etc.
|
||||
TCHAR* strUserNames[4] = { TEXT("Controller 1"), TEXT("Controller 2"),
|
||||
TEXT("Controller 3"), TEXT("Controller 4") };
|
||||
|
||||
BOOL bSuccess = FALSE;
|
||||
while( !bSuccess )
|
||||
{
|
||||
hr = m_pInputDeviceManager->Create( m_hWnd, strUserNames, m_dwNumPlayers, &m_diafGame,
|
||||
StaticInputAddDeviceCB, NULL,
|
||||
bResetOwnership, bResetMappings );
|
||||
|
||||
if( FAILED(hr) )
|
||||
{
|
||||
switch( hr )
|
||||
{
|
||||
case E_DIUTILERR_DEVICESTAKEN:
|
||||
{
|
||||
// It's possible that a single user could "own" too many devices for the other
|
||||
// players to get into the game. If so, we reinit the manager class to provide
|
||||
// each user with a device that has a default configuration.
|
||||
bResetOwnership = TRUE;
|
||||
|
||||
MessageBox( m_hWnd, TEXT("You have entered more users than there are suitable ") \
|
||||
TEXT("devices, or some users are claiming too many devices.\n") \
|
||||
TEXT("Press OK to give each user a default device"),
|
||||
TEXT("Devices Are Taken"), MB_OK | MB_ICONEXCLAMATION );
|
||||
break;
|
||||
}
|
||||
|
||||
case E_DIUTILERR_TOOMANYUSERS:
|
||||
{
|
||||
// Another common error is if more users are attempting to play than there are devices
|
||||
// attached to the machine. In this case, the number of players is automatically
|
||||
// lowered to make playing the game possible.
|
||||
DWORD dwNumDevices = m_pInputDeviceManager->GetNumDevices();
|
||||
m_dwNumPlayers = dwNumDevices;
|
||||
|
||||
TCHAR sz[256];
|
||||
wsprintf( sz, TEXT("There are not enough devices attached to the ") \
|
||||
TEXT("system for the number of users you entered.\nThe ") \
|
||||
TEXT("number of users has been automatically changed to ") \
|
||||
TEXT("%i (the number of devices available on the system)."),
|
||||
m_dwNumPlayers );
|
||||
MessageBox( m_hWnd, sz, _T("Too Many Users"), MB_OK | MB_ICONEXCLAMATION );
|
||||
break;
|
||||
}
|
||||
default:
|
||||
MessageBox(NULL, "Error creating DirectInput device.", "Pad DX9", MB_OK);
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
m_pInputDeviceManager->Cleanup();
|
||||
}
|
||||
else
|
||||
{
|
||||
bSuccess = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// UpdateInput
|
||||
//
|
||||
void
|
||||
CDIHandler::UpdateInput(void)
|
||||
{
|
||||
if( NULL == m_pInputDeviceManager )
|
||||
return;
|
||||
|
||||
CMultiplayerInputDeviceManager::DeviceInfo* pDeviceInfos;
|
||||
DWORD dwNumDevices;
|
||||
|
||||
// Get access to the list of semantically-mapped input devices
|
||||
m_pInputDeviceManager->GetDevices( &pDeviceInfos, &dwNumDevices );
|
||||
|
||||
// Loop through all devices and check game input
|
||||
for( DWORD i=0; i<dwNumDevices; i++ )
|
||||
{
|
||||
// skip past any devices that aren't assigned,
|
||||
// since we don't care about them
|
||||
if( pDeviceInfos[i].pPlayerInfo == NULL )
|
||||
continue;
|
||||
|
||||
DIDEVICEOBJECTDATA rgdod[10];
|
||||
DWORD dwItems = 10;
|
||||
HRESULT hr;
|
||||
LPDIRECTINPUTDEVICE8 pdidDevice = pDeviceInfos[i].pdidDevice;
|
||||
SUserInput* pInputDeviceState = (SUserInput*) pDeviceInfos[i].pParam;
|
||||
|
||||
// dunno if we need this
|
||||
if(pDeviceInfos[i].bRelativeAxis)
|
||||
{
|
||||
// For relative axis data, the action mapper only informs us when
|
||||
// the delta data is non-zero, so we need to zero its state
|
||||
// out each frame
|
||||
pInputDeviceState->fMainLR = 0.0f;
|
||||
pInputDeviceState->fMainUP = 0.0f;
|
||||
pInputDeviceState->fCPadLR = 0.0f;
|
||||
pInputDeviceState->fCPadUP = 0.0f;
|
||||
pInputDeviceState->fDPadLR = 0.0f;
|
||||
pInputDeviceState->fDPadUP = 0.0f;
|
||||
pInputDeviceState->fTriggerL = 0.0f;
|
||||
pInputDeviceState->fTriggerR = 0.0f;
|
||||
}
|
||||
|
||||
hr = pdidDevice->Acquire();
|
||||
hr = pdidDevice->Poll();
|
||||
hr = pdidDevice->GetDeviceData( sizeof(DIDEVICEOBJECTDATA), rgdod, &dwItems, 0 );
|
||||
if( FAILED(hr) )
|
||||
continue;
|
||||
|
||||
// Get the sematics codes for the game menu
|
||||
for( DWORD j=0; j<dwItems; j++ )
|
||||
{
|
||||
bool bButtonState = (rgdod[j].dwData==0x80) ? true : false;
|
||||
FLOAT fAxisState = (FLOAT)((int)rgdod[j].dwData)/100.0f;
|
||||
|
||||
switch( rgdod[j].uAppData )
|
||||
{
|
||||
// Handle relative axis data
|
||||
case INPUT_MAIN_AXIS_LR: pInputDeviceState->fMainLR = fAxisState; break;
|
||||
case INPUT_MAIN_AXIS_UD: pInputDeviceState->fMainUP = fAxisState; break;
|
||||
case INPUT_CPAD_AXIS_LR: pInputDeviceState->fCPadLR = fAxisState; break;
|
||||
case INPUT_CPAD_AXIS_UP: pInputDeviceState->fCPadUP = fAxisState; break;
|
||||
case INPUT_DPAD_AXIS_LR: pInputDeviceState->fDPadLR = fAxisState; break;
|
||||
case INPUT_DPAD_AXIS_UP: pInputDeviceState->fDPadUP = fAxisState; break;
|
||||
|
||||
// Handle buttons separately so the button state data
|
||||
// doesn't overwrite the axis state data, and handle
|
||||
// each button separately so they don't overwrite each other
|
||||
case INPUT_MAIN_LEFT: pInputDeviceState->bMainLeft = bButtonState; break;
|
||||
case INPUT_MAIN_RIGHT: pInputDeviceState->bMainRight = bButtonState; break;
|
||||
case INPUT_MAIN_UP: pInputDeviceState->bMainUp = bButtonState; break;
|
||||
case INPUT_MAIN_DOWN: pInputDeviceState->bMainDown = bButtonState; break;
|
||||
case INPUT_CPAD_LEFT: pInputDeviceState->bCPadLeft = bButtonState; break;
|
||||
case INPUT_CPAD_RIGHT: pInputDeviceState->bCPadRight = bButtonState; break;
|
||||
case INPUT_CPAD_UP: pInputDeviceState->bCPadUp = bButtonState; break;
|
||||
case INPUT_CPAD_DOWN: pInputDeviceState->bCPadDown = bButtonState; break;
|
||||
case INPUT_DPAD_LEFT: pInputDeviceState->bDPadLeft = bButtonState; break;
|
||||
case INPUT_DPAD_RIGHT: pInputDeviceState->bDPadRight = bButtonState; break;
|
||||
case INPUT_DPAD_UP: pInputDeviceState->bDPadUp = bButtonState; break;
|
||||
case INPUT_DPAD_DOWN: pInputDeviceState->bDPadDown = bButtonState; break;
|
||||
|
||||
case INPUT_BUTTON_START: pInputDeviceState->bButtonStart = bButtonState; break;
|
||||
case INPUT_BUTTON_A: pInputDeviceState->bButtonA = bButtonState; break;
|
||||
case INPUT_BUTTON_B: pInputDeviceState->bButtonB = bButtonState; break;
|
||||
case INPUT_BUTTON_X: pInputDeviceState->bButtonX = bButtonState; break;
|
||||
case INPUT_BUTTON_Y: pInputDeviceState->bButtonY = bButtonState; break;
|
||||
case INPUT_BUTTON_Z: pInputDeviceState->bButtonZ = bButtonState; break;
|
||||
case INPUT_BUTTON_L: pInputDeviceState->fTriggerL = bButtonState; break;
|
||||
case INPUT_BUTTON_R: pInputDeviceState->fTriggerR = bButtonState; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for( DWORD iPlayer=0; iPlayer<m_dwNumPlayers; iPlayer++ )
|
||||
{
|
||||
SControllerInput& ctrlInput = m_controllerInput[iPlayer];
|
||||
|
||||
m_controllerInput[iPlayer].fMainLR = 0.0f;
|
||||
m_controllerInput[iPlayer].fMainUP = 0.0f;
|
||||
m_controllerInput[iPlayer].fCPadLR = 0.0f;
|
||||
m_controllerInput[iPlayer].fCPadUP = 0.0f;
|
||||
m_controllerInput[iPlayer].fDPadLR = 0.0f;
|
||||
m_controllerInput[iPlayer].fDPadUP = 0.0f;
|
||||
|
||||
ctrlInput.bButtonA = false;
|
||||
ctrlInput.bButtonB = false;
|
||||
ctrlInput.bButtonX = false;
|
||||
ctrlInput.bButtonY = false;
|
||||
ctrlInput.bButtonZ = false;
|
||||
ctrlInput.bButtonStart = false;
|
||||
ctrlInput.fTriggerL = false;
|
||||
ctrlInput.fTriggerR = false;
|
||||
|
||||
// Concatinate the data from all the DirectInput devices
|
||||
for(DWORD i=0; i<dwNumDevices; i++)
|
||||
{
|
||||
// Only look at devices that are assigned to this player
|
||||
if( pDeviceInfos[i].pPlayerInfo == NULL ||
|
||||
pDeviceInfos[i].pPlayerInfo->dwPlayerIndex != iPlayer )
|
||||
continue;
|
||||
|
||||
SUserInput* pInputDeviceState = (SUserInput*)pDeviceInfos[i].pParam;
|
||||
|
||||
// main-axis
|
||||
if( fabs(pInputDeviceState->fMainLR) > fabs(ctrlInput.fMainLR) )
|
||||
ctrlInput.fMainLR = pInputDeviceState->fMainLR;
|
||||
if( fabs(pInputDeviceState->fMainUP) > fabs(ctrlInput.fMainUP) )
|
||||
ctrlInput.fMainUP = pInputDeviceState->fMainUP;
|
||||
|
||||
if (pInputDeviceState->bMainLeft) ctrlInput.fMainLR = -1.0f;
|
||||
if (pInputDeviceState->bMainRight) ctrlInput.fMainLR = 1.0f;
|
||||
if (pInputDeviceState->bMainUp) ctrlInput.fMainUP = -1.0f;
|
||||
if (pInputDeviceState->bMainDown) ctrlInput.fMainUP = 1.0f;
|
||||
|
||||
// CPad-axis
|
||||
if( fabs(pInputDeviceState->fCPadLR) > fabs(ctrlInput.fCPadLR) )
|
||||
ctrlInput.fCPadLR = pInputDeviceState->fCPadLR;
|
||||
if( fabs(pInputDeviceState->fCPadUP) > fabs(ctrlInput.fCPadUP) )
|
||||
ctrlInput.fCPadUP = pInputDeviceState->fCPadUP;
|
||||
|
||||
if (pInputDeviceState->bCPadLeft) ctrlInput.fCPadLR = -1.0f;
|
||||
if (pInputDeviceState->bCPadRight) ctrlInput.fCPadLR = 1.0f;
|
||||
if (pInputDeviceState->bCPadUp) ctrlInput.fCPadUP = -1.0f;
|
||||
if (pInputDeviceState->bCPadDown) ctrlInput.fCPadUP = 1.0f;
|
||||
|
||||
// DPad-axis
|
||||
if( fabs(pInputDeviceState->fDPadLR) > fabs(ctrlInput.fDPadLR) )
|
||||
ctrlInput.fDPadLR = pInputDeviceState->fDPadLR;
|
||||
if( fabs(pInputDeviceState->fDPadUP) > fabs(ctrlInput.fDPadUP) )
|
||||
ctrlInput.fDPadUP = pInputDeviceState->fDPadUP;
|
||||
|
||||
if (pInputDeviceState->bDPadLeft) ctrlInput.fDPadLR = -1.0f;
|
||||
if (pInputDeviceState->bDPadRight) ctrlInput.fDPadLR = 1.0f;
|
||||
if (pInputDeviceState->bDPadUp) ctrlInput.fDPadUP = -1.0f;
|
||||
if (pInputDeviceState->bDPadDown) ctrlInput.fDPadUP = 1.0f;
|
||||
|
||||
// buttons
|
||||
if (pInputDeviceState->bButtonA) ctrlInput.bButtonA = true;
|
||||
if (pInputDeviceState->bButtonB) ctrlInput.bButtonB = true;
|
||||
if (pInputDeviceState->bButtonX) ctrlInput.bButtonX = true;
|
||||
if (pInputDeviceState->bButtonY) ctrlInput.bButtonY = true;
|
||||
if (pInputDeviceState->bButtonZ) ctrlInput.bButtonZ = true;
|
||||
if (pInputDeviceState->bButtonStart)ctrlInput.bButtonStart = true;
|
||||
if (pInputDeviceState->fTriggerL) ctrlInput.fTriggerL = true;
|
||||
if (pInputDeviceState->fTriggerR) ctrlInput.fTriggerR = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// StaticInputAddDeviceCB
|
||||
//
|
||||
HRESULT CALLBACK
|
||||
CDIHandler::StaticInputAddDeviceCB( CMultiplayerInputDeviceManager::PlayerInfo* pPlayerInfo,
|
||||
CMultiplayerInputDeviceManager::DeviceInfo* pDeviceInfo,
|
||||
const DIDEVICEINSTANCE* pdidi,
|
||||
LPVOID pParam)
|
||||
{
|
||||
CDIHandler* pApp = (CDIHandler*) pParam;
|
||||
return pApp->InputAddDeviceCB( pPlayerInfo, pDeviceInfo, pdidi );
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// InputAddDeviceCB
|
||||
//
|
||||
HRESULT
|
||||
CDIHandler::InputAddDeviceCB( CMultiplayerInputDeviceManager::PlayerInfo* pPlayerInfo,
|
||||
CMultiplayerInputDeviceManager::DeviceInfo* pDeviceInfo,
|
||||
const DIDEVICEINSTANCE* pdidi)
|
||||
{
|
||||
if( (GET_DIDEVICE_TYPE(pdidi->dwDevType) != DI8DEVTYPE_KEYBOARD) &&
|
||||
(GET_DIDEVICE_TYPE(pdidi->dwDevType) != DI8DEVTYPE_MOUSE) )
|
||||
{
|
||||
// Setup the deadzone
|
||||
DIPROPDWORD dipdw;
|
||||
dipdw.diph.dwSize = sizeof(DIPROPDWORD);
|
||||
dipdw.diph.dwHeaderSize = sizeof(DIPROPHEADER);
|
||||
dipdw.diph.dwObj = 0;
|
||||
dipdw.diph.dwHow = DIPH_DEVICE;
|
||||
dipdw.dwData = 500;
|
||||
pDeviceInfo->pdidDevice->SetProperty( DIPROP_DEADZONE, &dipdw.diph );
|
||||
}
|
||||
|
||||
// Create a new InputDeviceState for each device so the
|
||||
// app can record its state
|
||||
SUserInput* pNewInputDeviceState = new SUserInput;
|
||||
ZeroMemory( pNewInputDeviceState, sizeof(SUserInput) );
|
||||
pDeviceInfo->pParam = (LPVOID) pNewInputDeviceState;
|
||||
|
||||
return S_OK;
|
||||
}
|
|
@ -1,164 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
// Struct to store the current input state
|
||||
struct SControllerInput
|
||||
{
|
||||
float fMainLR;
|
||||
float fMainUP;
|
||||
float fCPadLR;
|
||||
float fCPadUP;
|
||||
float fDPadLR;
|
||||
float fDPadUP;
|
||||
|
||||
bool bButtonStart;
|
||||
bool bButtonA;
|
||||
bool bButtonB;
|
||||
bool bButtonX;
|
||||
bool bButtonY;
|
||||
bool bButtonZ;
|
||||
|
||||
float fTriggerL;
|
||||
float fTriggerR;
|
||||
};
|
||||
|
||||
class CDIHandler
|
||||
{
|
||||
public:
|
||||
CDIHandler(void);
|
||||
|
||||
~CDIHandler(void);
|
||||
|
||||
HRESULT InitInput(HWND _hWnd);
|
||||
void ConfigInput(void);
|
||||
void CleanupDirectInput(void);
|
||||
void UpdateInput(void);
|
||||
|
||||
const SControllerInput& GetControllerInput(unsigned int _number)
|
||||
{
|
||||
return m_controllerInput[_number];
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
enum
|
||||
{
|
||||
MAX_AXIS = 127
|
||||
};
|
||||
|
||||
enum INPUT_SEMANTICS
|
||||
{
|
||||
// Gameplay semantics
|
||||
INPUT_MAIN_AXIS_LR=1,
|
||||
INPUT_MAIN_AXIS_UD,
|
||||
INPUT_MAIN_LEFT,
|
||||
INPUT_MAIN_RIGHT,
|
||||
INPUT_MAIN_UP,
|
||||
INPUT_MAIN_DOWN,
|
||||
INPUT_CPAD_AXIS_LR,
|
||||
INPUT_CPAD_AXIS_UP,
|
||||
INPUT_CPAD_LEFT,
|
||||
INPUT_CPAD_RIGHT,
|
||||
INPUT_CPAD_UP,
|
||||
INPUT_CPAD_DOWN,
|
||||
INPUT_DPAD_AXIS_LR,
|
||||
INPUT_DPAD_AXIS_UP,
|
||||
INPUT_DPAD_LEFT,
|
||||
INPUT_DPAD_RIGHT,
|
||||
INPUT_DPAD_UP,
|
||||
INPUT_DPAD_DOWN,
|
||||
INPUT_BUTTON_START,
|
||||
INPUT_BUTTON_A,
|
||||
INPUT_BUTTON_B,
|
||||
INPUT_BUTTON_X,
|
||||
INPUT_BUTTON_Y,
|
||||
INPUT_BUTTON_Z,
|
||||
INPUT_BUTTON_L,
|
||||
INPUT_BUTTON_R
|
||||
};
|
||||
|
||||
// Struct to store the current input state
|
||||
struct SUserInput
|
||||
{
|
||||
bool bMainLeft;
|
||||
bool bMainRight;
|
||||
bool bMainUp;
|
||||
bool bMainDown;
|
||||
float fMainLR;
|
||||
float fMainUP;
|
||||
|
||||
bool bCPadLeft;
|
||||
bool bCPadRight;
|
||||
bool bCPadUp;
|
||||
bool bCPadDown;
|
||||
float fCPadLR;
|
||||
float fCPadUP;
|
||||
|
||||
bool bDPadLeft;
|
||||
bool bDPadRight;
|
||||
bool bDPadUp;
|
||||
bool bDPadDown;
|
||||
float fDPadLR;
|
||||
float fDPadUP;
|
||||
|
||||
bool bButtonStart;
|
||||
bool bButtonA;
|
||||
bool bButtonB;
|
||||
bool bButtonX;
|
||||
bool bButtonY;
|
||||
bool bButtonZ;
|
||||
|
||||
bool fTriggerL;
|
||||
bool fTriggerR;
|
||||
};
|
||||
|
||||
// handle to window that "owns" the DInput
|
||||
HWND m_hWnd;
|
||||
|
||||
static DIACTION m_rgGameAction[];
|
||||
|
||||
// DirectInput multiplayer device manager
|
||||
CMultiplayerInputDeviceManager* m_pInputDeviceManager;
|
||||
|
||||
// Action format for game play
|
||||
DIACTIONFORMAT m_diafGame;
|
||||
|
||||
// Struct for storing user input
|
||||
SControllerInput m_controllerInput[4];
|
||||
|
||||
// Number of players in the game
|
||||
DWORD m_dwNumPlayers;
|
||||
|
||||
void CleanupDeviceStateStructs(void);
|
||||
|
||||
HRESULT ChangeNumPlayers(DWORD _dwNumPlayers, BOOL _bResetOwnership, BOOL _bResetMappings);
|
||||
|
||||
static HRESULT CALLBACK StaticInputAddDeviceCB(CMultiplayerInputDeviceManager::PlayerInfo* _pPlayerInfo,
|
||||
CMultiplayerInputDeviceManager::DeviceInfo* _pDeviceInfo,
|
||||
const DIDEVICEINSTANCE* _pdidi,
|
||||
LPVOID _pParam);
|
||||
|
||||
HRESULT InputAddDeviceCB(CMultiplayerInputDeviceManager::PlayerInfo* _pPlayerInfo,
|
||||
CMultiplayerInputDeviceManager::DeviceInfo* _pDeviceInfo,
|
||||
const DIDEVICEINSTANCE* _pdidi);
|
||||
};
|
|
@ -1,155 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "IniFile.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// I M P L E M E N T A T I O N //////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// constructor
|
||||
//
|
||||
IniFile::IniFile(void)
|
||||
{
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// destructor
|
||||
//
|
||||
IniFile::~IniFile(void)
|
||||
{
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// SetFile
|
||||
//
|
||||
void
|
||||
IniFile::SetFile(const TCHAR* _filename)
|
||||
{
|
||||
if (_filename)
|
||||
{
|
||||
char path_buffer[_MAX_PATH], drive[_MAX_DRIVE] ,dir[_MAX_DIR];
|
||||
char fname[_MAX_FNAME],ext[_MAX_EXT];
|
||||
|
||||
GetModuleFileName(NULL,path_buffer,sizeof(path_buffer));
|
||||
_splitpath( path_buffer, drive, dir, fname, ext );
|
||||
_makepath( filename, drive, dir, _filename, ".ini");
|
||||
}
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// SetSection
|
||||
//
|
||||
void
|
||||
IniFile::SetSection(const TCHAR *_section)
|
||||
{
|
||||
_tcscpy(section,_section);
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// ReadInt
|
||||
//
|
||||
int
|
||||
IniFile::ReadInt(const TCHAR *key, int def)
|
||||
{
|
||||
return GetPrivateProfileInt(section, key, def, filename);
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// WriteInt
|
||||
//
|
||||
void
|
||||
IniFile::WriteInt(const TCHAR *key, int value)
|
||||
{
|
||||
char temp[256];
|
||||
WritePrivateProfileString(section, key, _itoa(value,temp,10), filename);
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// ReadBool
|
||||
//
|
||||
bool
|
||||
IniFile::ReadBool(const TCHAR *key, bool def)
|
||||
{
|
||||
return ReadInt(key,def?1:0) == 0 ? false : true;
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// WriteBool
|
||||
//
|
||||
void
|
||||
IniFile::WriteBool(const TCHAR *key, bool value)
|
||||
{
|
||||
WriteInt(key,value?1:0);
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// ReadString
|
||||
//
|
||||
void
|
||||
IniFile::ReadString(const TCHAR *key, const TCHAR *def, TCHAR *out, int size)
|
||||
{
|
||||
GetPrivateProfileString(section, key, def, out, size, filename);
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// WriteString
|
||||
//
|
||||
void
|
||||
IniFile::WriteString(const TCHAR *key, const TCHAR *value)
|
||||
{
|
||||
WritePrivateProfileString(section, key, value, filename);
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// ReadStringList
|
||||
//
|
||||
void
|
||||
IniFile::ReadStringList(const TCHAR *key, std::vector<std::string> &list)
|
||||
{
|
||||
int count = ReadInt(key);
|
||||
for (int i=0; i<count; i++)
|
||||
{
|
||||
char temp[256], temp2[256];
|
||||
sprintf(temp,"%s%i",key,i);
|
||||
ReadString(temp,"",temp2,256);
|
||||
list.push_back(std::string(temp2));
|
||||
}
|
||||
}
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// WriteStringList
|
||||
//
|
||||
void
|
||||
IniFile::WriteStringList(const TCHAR *key, std::vector<std::string> &list)
|
||||
{
|
||||
WriteInt(key,(int)list.size());
|
||||
int i=0;
|
||||
for (std::vector<std::string>::iterator iter = list.begin(); iter!=list.end(); iter++)
|
||||
{
|
||||
char temp[256];
|
||||
sprintf(temp,"%s%i",key,i);
|
||||
WriteString(temp,iter->c_str());
|
||||
i++;
|
||||
}
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C L A S S ////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class IniFile
|
||||
{
|
||||
public:
|
||||
IniFile(void);
|
||||
~IniFile(void);
|
||||
|
||||
void SetFile(const TCHAR *fname);
|
||||
void SetSection(const TCHAR *section);
|
||||
|
||||
int ReadInt (const TCHAR *key, int def = 0);
|
||||
void WriteInt (const TCHAR *key, int value);
|
||||
bool ReadBool (const TCHAR *key, bool def = false);
|
||||
void WriteBool (const TCHAR *key, bool value);
|
||||
void ReadString (const TCHAR *key, const TCHAR *def, TCHAR *out, int size = 255);
|
||||
void WriteString(const TCHAR *key, const TCHAR *value);
|
||||
void ReadStringList (const TCHAR *key, std::vector<std::string> &list);
|
||||
void WriteStringList(const TCHAR *key, std::vector<std::string> &list);
|
||||
|
||||
private:
|
||||
TCHAR filename[512];
|
||||
TCHAR section[256];
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -1,146 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// File: MultiDI.h
|
||||
//
|
||||
// Desc: Multiple user DirectInput support using action mapping
|
||||
//
|
||||
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
#ifndef MULTIDI_H
|
||||
#define MULTIDI_H
|
||||
|
||||
#ifndef DIRECTINPUT_VERSION
|
||||
#define DIRECTINPUT_VERSION 0x0800
|
||||
#endif
|
||||
|
||||
#include <dinput.h>
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Miscellaneous helper functions
|
||||
//-----------------------------------------------------------------------------
|
||||
#define SAFE_DELETE(p) { if(p) { delete (p); (p)=NULL; } }
|
||||
#define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p); (p)=NULL; } }
|
||||
#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
|
||||
|
||||
HRESULT DXUtil_WriteStringRegKey( HKEY hKey, LPCTSTR strRegName, LPCTSTR strValue );
|
||||
HRESULT DXUtil_ReadStringRegKeyCch( HKEY hKey, LPCTSTR strRegName, TCHAR* strDest, DWORD cchDest, LPCTSTR strDefault );
|
||||
HRESULT DXUtil_ConvertGUIDToStringCch( const GUID* pGuidSrc, TCHAR* strDest, int cchDestChar );
|
||||
HRESULT DXUtil_ConvertWideStringToGenericCch( TCHAR* tstrDestination, const WCHAR* wstrSource, int cchDestChar );
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Name: DXUtil_Timer()
|
||||
// Desc: Performs timer opertations. Use the following commands:
|
||||
// TIMER_RESET - to reset the timer
|
||||
// TIMER_START - to start the timer
|
||||
// TIMER_STOP - to stop (or pause) the timer
|
||||
// TIMER_ADVANCE - to advance the timer by 0.1 seconds
|
||||
// TIMER_GETABSOLUTETIME - to get the absolute system time
|
||||
// TIMER_GETAPPTIME - to get the current time
|
||||
// TIMER_GETELAPSEDTIME - to get the time that elapsed between
|
||||
// TIMER_GETELAPSEDTIME calls
|
||||
//-----------------------------------------------------------------------------
|
||||
enum TIMER_COMMAND { TIMER_RESET, TIMER_START, TIMER_STOP, TIMER_ADVANCE,
|
||||
TIMER_GETABSOLUTETIME, TIMER_GETAPPTIME, TIMER_GETELAPSEDTIME };
|
||||
FLOAT __stdcall DXUtil_Timer( TIMER_COMMAND command );
|
||||
|
||||
// E_DIUTILERR_PLAYERWITHOUTDEVICE is returned by the manager class after configuring
|
||||
// device, and there's a player that hasn't been assigned a device.
|
||||
#define E_DIUTILERR_PLAYERWITHOUTDEVICE MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,997)
|
||||
|
||||
// E_DIUTILERR_DEVICESTAKEN is returned by the manager class when one player
|
||||
// on the machine has enough RECENT devices to prevent other players from
|
||||
// playing. This return code is needed because this sample attempts to give
|
||||
// all RECENT devices to that player.
|
||||
#define E_DIUTILERR_DEVICESTAKEN MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,998)
|
||||
|
||||
// E_DIUTILERR_TOOMANYUSERS is returned by the manager class when the number of
|
||||
// players exceeds the number of devices present on the system. For example,
|
||||
// if you ask for 4 players on a machine that only has a keyboard and mouse,
|
||||
// you're 2 short of what you need.
|
||||
#define E_DIUTILERR_TOOMANYUSERS MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,999)
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Name: class CMultiplayerInputDeviceManager
|
||||
// Desc: Input device manager using DX8 action mapping
|
||||
//-----------------------------------------------------------------------------
|
||||
class CMultiplayerInputDeviceManager
|
||||
{
|
||||
public:
|
||||
struct PlayerInfo
|
||||
{
|
||||
DWORD dwPlayerIndex; // 0-based player number
|
||||
TCHAR strPlayerName[MAX_PATH]; // player name
|
||||
DWORD dwMaxDevices; // max number of elements in pDevices array
|
||||
DWORD dwNumDevices; // current number of elements in pDevices array
|
||||
BOOL bFoundDeviceForPlayer; // if a device has been found for this player yet
|
||||
};
|
||||
|
||||
struct DeviceInfo
|
||||
{
|
||||
LPDIRECTINPUTDEVICE8 pdidDevice; // dinput device pointer
|
||||
PlayerInfo* pPlayerInfo; // Player who owns this device
|
||||
BOOL bRelativeAxis; // TRUE if device is using relative axis
|
||||
BOOL bMapsPri1Actions; // TRUE if device maps pri 1 actions
|
||||
BOOL bMapsPri2Actions; // TRUE if device maps pri 2 actions
|
||||
LPVOID pParam; // app defined pointer assoicated with this device
|
||||
DIDEVICEINSTANCE didi; // device instance info
|
||||
};
|
||||
|
||||
typedef HRESULT (CALLBACK *LPDIMANAGERCALLBACK)(CMultiplayerInputDeviceManager::PlayerInfo* pPlayerInfo, CMultiplayerInputDeviceManager::DeviceInfo* pDeviceInfo, const DIDEVICEINSTANCE* pdidi, LPVOID);
|
||||
|
||||
private:
|
||||
BOOL m_bCleanupCOM;
|
||||
HWND m_hWnd;
|
||||
|
||||
LPDIRECTINPUT8 m_pDI;
|
||||
DIACTIONFORMAT* m_pdiaf;
|
||||
|
||||
PlayerInfo** m_pUsers;
|
||||
DWORD m_dwNumUsers;
|
||||
|
||||
DeviceInfo* m_pDeviceList;
|
||||
DWORD m_dwNumDevices;
|
||||
DWORD m_dwMaxDevices;
|
||||
|
||||
LPDIMANAGERCALLBACK m_AddDeviceCallback;
|
||||
LPVOID m_AddDeviceCallbackParam;
|
||||
|
||||
TCHAR* m_strKey;
|
||||
HKEY m_hKey;
|
||||
|
||||
public:
|
||||
static BOOL CALLBACK StaticEnumSuitableDevicesCB( LPCDIDEVICEINSTANCE pdidi, LPDIRECTINPUTDEVICE8 pdidDevice, DWORD dwFlags, DWORD dwRemainingDevices, VOID* pContext );
|
||||
static BOOL CALLBACK StaticBuildDeviceListCB( LPCDIDEVICEINSTANCE pdidi, VOID* pContext );
|
||||
|
||||
// Device control
|
||||
BOOL EnumDevice( const DIDEVICEINSTANCE* pdidi, LPDIRECTINPUTDEVICE8 pdidDevice, DWORD dwFlags, DWORD dwDeviceRemaining );
|
||||
BOOL BuildDeviceListCB( LPCDIDEVICEINSTANCE pdidi );
|
||||
|
||||
HRESULT AddDevice( DeviceInfo* pDeviceInfo, BOOL bForceReset );
|
||||
HRESULT GetDevices( DeviceInfo** ppDeviceInfo, DWORD* pdwNumDevices );
|
||||
HRESULT ConfigureDevices( HWND hWnd, IUnknown* pSurface, VOID* pCallback, DWORD dwFlags, LPVOID pvCBParam );
|
||||
DWORD GetNumDevices() { return m_dwNumDevices; }
|
||||
VOID UnacquireDevices();
|
||||
VOID SetFocus( HWND hWnd );
|
||||
PlayerInfo* LookupPlayer( TCHAR* strPlayerName );
|
||||
HRESULT SaveDeviceOwnershipKeys();
|
||||
VOID DeleteDeviceOwnershipKeys();
|
||||
HRESULT UpdateDeviceOwnership();
|
||||
HRESULT AssignDevices();
|
||||
HRESULT VerifyAssignment();
|
||||
HRESULT AddAssignedDevices( BOOL bResetMappings );
|
||||
|
||||
HRESULT BuildDeviceList();
|
||||
VOID CleanupDeviceList();
|
||||
|
||||
// Construction
|
||||
HRESULT SetActionFormat( DIACTIONFORMAT* pdiaf, BOOL bReenumerate, BOOL bResetOwnership, BOOL bResetMappings );
|
||||
HRESULT Create( HWND hWnd, TCHAR* strUserNames[], DWORD dwNumUsers, DIACTIONFORMAT* pdiaf, LPDIMANAGERCALLBACK AddDeviceCallback, LPVOID pCallbackParam, BOOL bResetOwnership, BOOL bResetMappings );
|
||||
|
||||
CMultiplayerInputDeviceManager( TCHAR* strRegKey );
|
||||
~CMultiplayerInputDeviceManager();
|
||||
VOID Cleanup();
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,192 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "resource.h"
|
||||
#include "PluginSpecs_Pad.h"
|
||||
|
||||
#include "IniFile.h"
|
||||
#include "AboutDlg.h"
|
||||
#include "ConfigDlg.h"
|
||||
|
||||
#include "MultiDI.h"
|
||||
#include "DIHandler.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// T Y P E D E F S / D E F I N E S //////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
HINSTANCE g_hInstance = NULL;
|
||||
SPADInitialize g_PADInitialize;
|
||||
|
||||
CDIHandler g_diHandler;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// I M P L E M E N T A T I O N ////////////////////////// ////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ________________________________________________________________________________________ __________
|
||||
// DllMain
|
||||
//
|
||||
BOOL APIENTRY DllMain( HINSTANCE _hinstDLL, // DLL module handle
|
||||
DWORD dwReason, // reason called
|
||||
LPVOID _lpvReserved) // reserved
|
||||
{
|
||||
switch (dwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
break;
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
g_hInstance = _hinstDLL;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// GetDllInfo
|
||||
//
|
||||
void GetDllInfo (PLUGIN_INFO* _PluginInfo)
|
||||
{
|
||||
_PluginInfo->Version = 0x0100;
|
||||
_PluginInfo->Type = PLUGIN_TYPE_PAD;
|
||||
|
||||
#ifndef _DEBUG
|
||||
sprintf_s(_PluginInfo->Name, 100, "Pad DirectX9");
|
||||
#else
|
||||
sprintf_s(_PluginInfo->Name, 100, "Pad DirectX9 (Debug)");
|
||||
#endif
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// DllAbout
|
||||
//
|
||||
void DllAbout(HWND _hParent)
|
||||
{
|
||||
CAboutDlg aboutDlg;
|
||||
aboutDlg.DoModal(_hParent);
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// DllConfig
|
||||
//
|
||||
void DllConfig(HWND _hParent)
|
||||
{
|
||||
g_diHandler.InitInput(_hParent);
|
||||
|
||||
EnableWindow(_hParent, FALSE);
|
||||
g_diHandler.ConfigInput();
|
||||
EnableWindow(_hParent, TRUE);
|
||||
SetForegroundWindow(_hParent);
|
||||
|
||||
g_diHandler.CleanupDirectInput();
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// PAD_Initialize
|
||||
//
|
||||
void PAD_Initialize(SPADInitialize _PADInitialize)
|
||||
{
|
||||
g_PADInitialize = _PADInitialize;
|
||||
g_diHandler.InitInput((HWND)_PADInitialize.hWnd);
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// PAD_Shutdown
|
||||
//
|
||||
void PAD_Shutdown(void)
|
||||
{
|
||||
g_diHandler.CleanupDirectInput();
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// PADGetStatus
|
||||
//
|
||||
void PAD_GetStatus(u8 _numPAD, SPADStatus* _pPADStatus)
|
||||
{
|
||||
// check if all is okay
|
||||
if ((_numPAD != 0) || // we support just pad 0
|
||||
(_pPADStatus == NULL))
|
||||
return;
|
||||
|
||||
#ifdef RECORD_REPLAY
|
||||
*_pPADStatus = PlayRecord();
|
||||
return;
|
||||
#endif
|
||||
|
||||
int base = 0x80;
|
||||
|
||||
// clear pad
|
||||
memset(_pPADStatus,0,sizeof(SPADStatus));
|
||||
|
||||
_pPADStatus->stickY = base;
|
||||
_pPADStatus->stickX = base;
|
||||
_pPADStatus->substickX = base;
|
||||
_pPADStatus->substickY = base;
|
||||
|
||||
_pPADStatus->button |= PAD_USE_ORIGIN;
|
||||
// just update pad on focus
|
||||
if (g_PADInitialize.hWnd != ::GetForegroundWindow())
|
||||
return;
|
||||
|
||||
//get keys from dinput
|
||||
g_diHandler.UpdateInput();
|
||||
|
||||
const SControllerInput& rInput = g_diHandler.GetControllerInput(_numPAD);
|
||||
|
||||
// int mainvalue = (dinput.diks[keyForControl[CTL_HALFMAIN]] &0xFF) ? 40 : 100;
|
||||
// int subvalue = (dinput.diks[keyForControl[CTL_HALFSUB]] &0xFF) ? 40 : 100;
|
||||
// int triggervalue = (dinput.diks[keyForControl[CTL_HALFTRIGGER]]&0xFF) ? 100 : 255;
|
||||
|
||||
// get the new keys
|
||||
if (rInput.bButtonStart) _pPADStatus->button |= PAD_BUTTON_START;
|
||||
if (rInput.bButtonA) {_pPADStatus->button |= PAD_BUTTON_A; _pPADStatus->analogA = 255;}
|
||||
if (rInput.bButtonB) {_pPADStatus->button |= PAD_BUTTON_B; _pPADStatus->analogB = 255;}
|
||||
if (rInput.bButtonX) _pPADStatus->button |= PAD_BUTTON_X;
|
||||
if (rInput.bButtonY) _pPADStatus->button |= PAD_BUTTON_Y;
|
||||
if (rInput.bButtonZ) _pPADStatus->button |= PAD_TRIGGER_Z;
|
||||
|
||||
if (rInput.fDPadLR < 0) _pPADStatus->button |= PAD_BUTTON_UP;
|
||||
if (rInput.fDPadLR > 0) _pPADStatus->button |= PAD_BUTTON_DOWN;
|
||||
if (rInput.fDPadUP < 0) _pPADStatus->button |= PAD_BUTTON_LEFT;
|
||||
if (rInput.fDPadUP > 0) _pPADStatus->button |= PAD_BUTTON_RIGHT;
|
||||
|
||||
if (rInput.fTriggerL > 0) {_pPADStatus->button |= PAD_TRIGGER_L; _pPADStatus->triggerLeft = 255;}
|
||||
if (rInput.fTriggerR > 0) {_pPADStatus->button |= PAD_TRIGGER_R; _pPADStatus->triggerRight = 255;}
|
||||
|
||||
_pPADStatus->stickX = 0x80 + (unsigned __int8)(rInput.fMainLR * 127.f);
|
||||
_pPADStatus->stickY = 0x80 + (unsigned __int8)(rInput.fMainUP * -127.f);
|
||||
_pPADStatus->substickX = 0x80 + (unsigned __int8)(rInput.fCPadLR * 127.f);
|
||||
_pPADStatus->substickY = 0x80 + (unsigned __int8)(rInput.fCPadUP * -127.f);
|
||||
|
||||
_pPADStatus->err = PAD_ERR_NONE;
|
||||
}
|
||||
|
||||
// __________________________________________________________________________________________________
|
||||
// PAD_Rumble
|
||||
//
|
||||
void PAD_Rumble(u8 _numPAD, unsigned int _uType, unsigned int _uStrength)
|
||||
{
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by PadPlugin2.rc
|
||||
//
|
||||
#define IDD_PADCONFIG 101
|
||||
#define IDD_ABOUTPAD 104
|
||||
#define IDC_SETSTART 1003
|
||||
#define IDC_SETA 1004
|
||||
#define IDC_SETB 1005
|
||||
#define IDC_SETX 1006
|
||||
#define IDC_SETY 1007
|
||||
#define IDC_SETZ 1008
|
||||
#define IDC_SETSUBUP 1009
|
||||
#define IDC_SETSUBLEFT 1010
|
||||
#define IDC_SETSUBRIGHT 1011
|
||||
#define IDC_SETSUBDOWN 1012
|
||||
#define IDC_SETDPADUP 1013
|
||||
#define IDC_SETDPADLEFT 1014
|
||||
#define IDC_SETDPADRIGHT 1015
|
||||
#define IDC_SETDPADDOWN 1016
|
||||
#define IDC_SETMAINUP 1017
|
||||
#define IDC_SETMAINLEFT 1018
|
||||
#define IDC_SETMAINDOWN 1019
|
||||
#define IDC_SETMAINRIGHT 1020
|
||||
#define IDC_SETL 1021
|
||||
#define IDC_SETR 1022
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 105
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1004
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
|
@ -1,135 +0,0 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_PADCONFIG DIALOGEX 0, 0, 332, 226
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CAPTION "Pad configuration"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Close",IDOK,275,205,50,14
|
||||
PUSHBUTTON "start",IDC_SETSTART,141,102,40,14
|
||||
PUSHBUTTON "a",IDC_SETA,243,82,40,14
|
||||
PUSHBUTTON "b",IDC_SETB,215,98,40,14
|
||||
PUSHBUTTON "x",IDC_SETX,200,71,40,14
|
||||
PUSHBUTTON "y",IDC_SETY,285,90,40,14
|
||||
PUSHBUTTON "z",IDC_SETZ,241,35,40,14
|
||||
PUSHBUTTON " ",IDC_SETSUBUP,235,128,40,14
|
||||
PUSHBUTTON " ",IDC_SETSUBLEFT,193,147,40,14
|
||||
PUSHBUTTON " ",IDC_SETSUBRIGHT,275,146,40,14
|
||||
PUSHBUTTON " ",IDC_SETSUBDOWN,236,167,40,14
|
||||
PUSHBUTTON " ",IDC_SETDPADUP,66,129,40,14
|
||||
PUSHBUTTON " ",IDC_SETDPADLEFT,23,145,40,14
|
||||
PUSHBUTTON " ",IDC_SETDPADRIGHT,112,145,40,14
|
||||
PUSHBUTTON " ",IDC_SETDPADDOWN,67,166,40,14
|
||||
PUSHBUTTON " ",IDC_SETMAINUP,41,47,40,14
|
||||
PUSHBUTTON " ",IDC_SETMAINLEFT,7,66,40,14
|
||||
PUSHBUTTON " ",IDC_SETMAINDOWN,41,86,40,14
|
||||
PUSHBUTTON " ",IDC_SETMAINRIGHT,79,66,40,14
|
||||
PUSHBUTTON "l",IDC_SETL,91,16,40,14
|
||||
PUSHBUTTON "r",IDC_SETR,216,16,40,14
|
||||
END
|
||||
|
||||
IDD_ABOUTPAD DIALOGEX 0, 0, 184, 76
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |
|
||||
WS_SYSMENU
|
||||
CAPTION "About Dolphin Simple Pad Plugin"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,127,55,50,14
|
||||
LTEXT "Coded by F|RES and ector",IDC_STATIC,73,7,104,14
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_PADCONFIG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 325
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 219
|
||||
END
|
||||
|
||||
IDD_ABOUTPAD, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 177
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 69
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
|
@ -1,41 +0,0 @@
|
|||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// 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, version 2.0.
|
||||
|
||||
// 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 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
// Insert your headers here
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
#define _CRT_SECURE_NO_DEPRECATE 1
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
#include <vector>
|
||||
#include <xstring>
|
||||
|
||||
// DInput
|
||||
#define DIRECTINPUT_VERSION 0x0800
|
||||
#include <dinput.h>
|
||||
|
||||
// WTL
|
||||
#include <atlbase.h>
|
||||
#include <atlapp.h>
|
||||
#include <atldlgs.h>
|
||||
#include <atlctrls.h>
|
Loading…
Reference in New Issue