mirror of
https://github.com/libretro/Play-.git
synced 2025-01-10 18:42:53 +00:00
MacOSX Fixes
git-svn-id: http://svn.purei.org/purei/trunk@261 b36208d7-6611-0410-8bec-b1987f11c4a2
This commit is contained in:
parent
ccfd6fd65c
commit
61d70ed3bc
@ -329,7 +329,7 @@
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>7E224E2D0D77A8A6000FAD0C</string>
|
||||
<string>7E224E2F0D77AADF000FAD0C</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>7EE1BCFD0D4D895300B502BD</string>
|
||||
|
@ -89,8 +89,8 @@
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 225943925;
|
||||
PBXWorkspaceStateSaveDate = 225943925;
|
||||
PBXPerProjectTemplateStateSaveDate = 226693562;
|
||||
PBXWorkspaceStateSaveDate = 226693562;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
7E19A9A30D6C8A2D00B0C6A6 = 7E19A9A30D6C8A2D00B0C6A6 /* PBXTextBookmark */;
|
||||
@ -102,37 +102,18 @@
|
||||
7E19A9C10D6C8B6F00B0C6A6 = 7E19A9C10D6C8B6F00B0C6A6 /* PBXTextBookmark */;
|
||||
7E19A9C70D6C8BC900B0C6A6 = 7E19A9C70D6C8BC900B0C6A6 /* PBXTextBookmark */;
|
||||
7E19A9C80D6C8BC900B0C6A6 = 7E19A9C80D6C8BC900B0C6A6 /* PBXTextBookmark */;
|
||||
7E224DF60D77A2B7000FAD0C /* PBXTextBookmark */ = 7E224DF60D77A2B7000FAD0C /* PBXTextBookmark */;
|
||||
7E224DF70D77A2B7000FAD0C /* PBXTextBookmark */ = 7E224DF70D77A2B7000FAD0C /* PBXTextBookmark */;
|
||||
7E224DFF0D77A2B9000FAD0C /* PBXTextBookmark */ = 7E224DFF0D77A2B9000FAD0C /* PBXTextBookmark */;
|
||||
7E224E000D77A2B9000FAD0C /* PBXTextBookmark */ = 7E224E000D77A2B9000FAD0C /* PBXTextBookmark */;
|
||||
7E224E010D77A2B9000FAD0C /* PBXTextBookmark */ = 7E224E010D77A2B9000FAD0C /* PBXTextBookmark */;
|
||||
7E224E050D77A335000FAD0C /* PBXTextBookmark */ = 7E224E050D77A335000FAD0C /* PBXTextBookmark */;
|
||||
7E224E060D77A335000FAD0C /* PBXTextBookmark */ = 7E224E060D77A335000FAD0C /* PBXTextBookmark */;
|
||||
7E224E070D77A335000FAD0C /* PBXTextBookmark */ = 7E224E070D77A335000FAD0C /* PBXTextBookmark */;
|
||||
7E224E080D77A335000FAD0C /* PBXTextBookmark */ = 7E224E080D77A335000FAD0C /* PBXTextBookmark */;
|
||||
7E224E090D77A335000FAD0C /* PBXTextBookmark */ = 7E224E090D77A335000FAD0C /* PBXTextBookmark */;
|
||||
7E224E0A0D77A335000FAD0C /* PBXTextBookmark */ = 7E224E0A0D77A335000FAD0C /* PBXTextBookmark */;
|
||||
7E224E0B0D77A335000FAD0C /* PBXTextBookmark */ = 7E224E0B0D77A335000FAD0C /* PBXTextBookmark */;
|
||||
7E224E100D77A6D4000FAD0C /* PBXTextBookmark */ = 7E224E100D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E110D77A6D4000FAD0C /* PBXTextBookmark */ = 7E224E110D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E120D77A6D4000FAD0C /* PBXTextBookmark */ = 7E224E120D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E130D77A6D4000FAD0C /* PBXTextBookmark */ = 7E224E130D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E140D77A6D4000FAD0C /* PBXTextBookmark */ = 7E224E140D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E150D77A6D4000FAD0C /* PBXTextBookmark */ = 7E224E150D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E160D77A6D4000FAD0C /* PBXTextBookmark */ = 7E224E160D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E170D77A6D4000FAD0C /* PBXTextBookmark */ = 7E224E170D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E1F0D77A79E000FAD0C /* PBXTextBookmark */ = 7E224E1F0D77A79E000FAD0C /* PBXTextBookmark */;
|
||||
7E224E200D77A79E000FAD0C /* PBXTextBookmark */ = 7E224E200D77A79E000FAD0C /* PBXTextBookmark */;
|
||||
7E224E210D77A79E000FAD0C /* PBXTextBookmark */ = 7E224E210D77A79E000FAD0C /* PBXTextBookmark */;
|
||||
7E224E220D77A79E000FAD0C /* PBXTextBookmark */ = 7E224E220D77A79E000FAD0C /* PBXTextBookmark */;
|
||||
7E224E250D77A7CE000FAD0C /* PBXTextBookmark */ = 7E224E250D77A7CE000FAD0C /* PBXTextBookmark */;
|
||||
7E224E270D77A807000FAD0C /* PBXTextBookmark */ = 7E224E270D77A807000FAD0C /* PBXTextBookmark */;
|
||||
7E224E280D77A807000FAD0C /* PBXTextBookmark */ = 7E224E280D77A807000FAD0C /* PBXTextBookmark */;
|
||||
7E224E290D77A807000FAD0C /* PBXTextBookmark */ = 7E224E290D77A807000FAD0C /* PBXTextBookmark */;
|
||||
7E224E2B0D77A8A6000FAD0C /* PBXTextBookmark */ = 7E224E2B0D77A8A6000FAD0C /* PBXTextBookmark */;
|
||||
7E224E2C0D77A8A6000FAD0C /* PBXTextBookmark */ = 7E224E2C0D77A8A6000FAD0C /* PBXTextBookmark */;
|
||||
7E224E2D0D77A8A6000FAD0C /* PBXTextBookmark */ = 7E224E2D0D77A8A6000FAD0C /* PBXTextBookmark */;
|
||||
7E224DFF0D77A2B9000FAD0C = 7E224DFF0D77A2B9000FAD0C /* PBXTextBookmark */;
|
||||
7E224E000D77A2B9000FAD0C = 7E224E000D77A2B9000FAD0C /* PBXTextBookmark */;
|
||||
7E224E110D77A6D4000FAD0C = 7E224E110D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E120D77A6D4000FAD0C = 7E224E120D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E140D77A6D4000FAD0C = 7E224E140D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E150D77A6D4000FAD0C = 7E224E150D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E160D77A6D4000FAD0C = 7E224E160D77A6D4000FAD0C /* PBXTextBookmark */;
|
||||
7E224E270D77A807000FAD0C = 7E224E270D77A807000FAD0C /* PBXTextBookmark */;
|
||||
7E224E280D77A807000FAD0C = 7E224E280D77A807000FAD0C /* PBXTextBookmark */;
|
||||
7E224E2B0D77A8A6000FAD0C = 7E224E2B0D77A8A6000FAD0C /* PBXTextBookmark */;
|
||||
7E224E2C0D77A8A6000FAD0C = 7E224E2C0D77A8A6000FAD0C /* PBXTextBookmark */;
|
||||
7E224E2F0D77AADF000FAD0C = 7E224E2F0D77AADF000FAD0C /* PBXTextBookmark */;
|
||||
7E47E2FD0D6DE90C003F7AC1 = 7E47E2FD0D6DE90C003F7AC1 /* PBXTextBookmark */;
|
||||
7E47E3040D6DE90C003F7AC1 = 7E47E3040D6DE90C003F7AC1 /* PBXTextBookmark */;
|
||||
7E47E3090D6DE90C003F7AC1 = 7E47E3090D6DE90C003F7AC1 /* PBXTextBookmark */;
|
||||
@ -156,10 +137,6 @@
|
||||
7E91784D0D64F5C00025E2C0 = 7E91784D0D64F5C00025E2C0 /* PBXTextBookmark */;
|
||||
7E91784E0D64F5C00025E2C0 = 7E91784E0D64F5C00025E2C0 /* PBXTextBookmark */;
|
||||
7E91784F0D64F5C00025E2C0 = 7E91784F0D64F5C00025E2C0 /* PBXTextBookmark */;
|
||||
7EAC23570D6EF82700A3624F = 7EAC23570D6EF82700A3624F /* PBXTextBookmark */;
|
||||
7EAC23580D6EF82700A3624F = 7EAC23580D6EF82700A3624F /* PBXTextBookmark */;
|
||||
7EC6220C0D709231008B28C1 = 7EC6220C0D709231008B28C1 /* PBXTextBookmark */;
|
||||
7EC6220F0D709231008B28C1 = 7EC6220F0D709231008B28C1 /* PBXTextBookmark */;
|
||||
7ED0A4F00D6D28A1008D30EA = 7ED0A4F00D6D28A1008D30EA /* PBXTextBookmark */;
|
||||
7ED0A4F10D6D28A1008D30EA = 7ED0A4F10D6D28A1008D30EA /* PBXTextBookmark */;
|
||||
7ED0A4F40D6D28A1008D30EA = 7ED0A4F40D6D28A1008D30EA /* PBXTextBookmark */;
|
||||
@ -168,7 +145,8 @@
|
||||
7EE1BCB90D4D522900B502BD = 7EE1BCB90D4D522900B502BD /* PBXTextBookmark */;
|
||||
7EE1BCBA0D4D522900B502BD = 7EE1BCBA0D4D522900B502BD /* PBXTextBookmark */;
|
||||
7EE1BCFD0D4D895300B502BD = 7EE1BCFD0D4D895300B502BD /* PBXTextBookmark */;
|
||||
7EE362DF0D60753D00C21032 = 7EE362DF0D60753D00C21032 /* PBXTextBookmark */;
|
||||
7EF251B70D83128300D90D20 /* PBXTextBookmark */ = 7EF251B70D83128300D90D20 /* PBXTextBookmark */;
|
||||
7EF251B80D83128300D90D20 /* PBXTextBookmark */ = 7EF251B80D83128300D90D20 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 7E8986DC0D08A3D10077F9ED /* Source Control */;
|
||||
userBuildSettings = {
|
||||
@ -279,24 +257,6 @@
|
||||
vrLen = 1774;
|
||||
vrLoc = 13141;
|
||||
};
|
||||
7E224DF60D77A2B7000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
comments = "error: 'SIZE_MAX' was not declared in this scope";
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
rLen = 1;
|
||||
rLoc = 0;
|
||||
rType = 1;
|
||||
};
|
||||
7E224DF70D77A2B7000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 3";
|
||||
rLen = 0;
|
||||
rLoc = 64;
|
||||
rType = 0;
|
||||
vrLen = 509;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224DFF0D77A2B9000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E47E3220D6DEA15003F7AC1 /* MainWindow.mm */;
|
||||
@ -317,96 +277,6 @@
|
||||
vrLen = 145;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E010D77A2B9000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 81";
|
||||
rLen = 66;
|
||||
rLoc = 1716;
|
||||
rType = 0;
|
||||
vrLen = 968;
|
||||
vrLoc = 1362;
|
||||
};
|
||||
7E224E050D77A335000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 7";
|
||||
rLen = 0;
|
||||
rLoc = 62;
|
||||
rType = 0;
|
||||
vrLen = 450;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E060D77A335000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 6";
|
||||
rLen = 0;
|
||||
rLoc = 119;
|
||||
rType = 0;
|
||||
vrLen = 509;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E070D77A335000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 3";
|
||||
rLen = 0;
|
||||
rLoc = 64;
|
||||
rType = 0;
|
||||
vrLen = 509;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E080D77A335000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 74";
|
||||
rLen = 36;
|
||||
rLoc = 2004;
|
||||
rType = 0;
|
||||
vrLen = 538;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E090D77A335000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 6";
|
||||
rLen = 0;
|
||||
rLoc = 119;
|
||||
rType = 0;
|
||||
vrLen = 509;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E0A0D77A335000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 7";
|
||||
rLen = 0;
|
||||
rLoc = 62;
|
||||
rType = 0;
|
||||
vrLen = 450;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E0B0D77A335000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 10";
|
||||
rLen = 0;
|
||||
rLoc = 119;
|
||||
rType = 0;
|
||||
vrLen = 501;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E100D77A6D4000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 82";
|
||||
rLen = 66;
|
||||
rLoc = 1716;
|
||||
rType = 0;
|
||||
vrLen = 968;
|
||||
vrLoc = 1363;
|
||||
};
|
||||
7E224E110D77A6D4000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7EE1BC870D4D4F8F00B502BD /* PH_HidMacOSX.cpp */;
|
||||
@ -427,16 +297,6 @@
|
||||
vrLen = 487;
|
||||
vrLoc = 17;
|
||||
};
|
||||
7E224E130D77A6D4000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 8";
|
||||
rLen = 0;
|
||||
rLoc = 62;
|
||||
rType = 0;
|
||||
vrLen = 683;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E140D77A6D4000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
@ -467,66 +327,6 @@
|
||||
vrLen = 487;
|
||||
vrLoc = 17;
|
||||
};
|
||||
7E224E170D77A6D4000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 7";
|
||||
rLen = 0;
|
||||
rLoc = 55;
|
||||
rType = 0;
|
||||
vrLen = 629;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E1F0D77A79E000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 10";
|
||||
rLen = 0;
|
||||
rLoc = 119;
|
||||
rType = 0;
|
||||
vrLen = 501;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E200D77A79E000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 3";
|
||||
rLen = 0;
|
||||
rLoc = 55;
|
||||
rType = 0;
|
||||
vrLen = 451;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E210D77A79E000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 10";
|
||||
rLen = 0;
|
||||
rLoc = 119;
|
||||
rType = 0;
|
||||
vrLen = 501;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E220D77A79E000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 458;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E250D77A7CE000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 3";
|
||||
rLen = 0;
|
||||
rLoc = 55;
|
||||
rType = 0;
|
||||
vrLen = 745;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E270D77A807000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
@ -547,16 +347,6 @@
|
||||
vrLen = 745;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E290D77A807000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
name = "VUShared.cpp: 20";
|
||||
rLen = 0;
|
||||
rLoc = 441;
|
||||
rType = 0;
|
||||
vrLen = 669;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E2B0D77A8A6000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89883E0D08BD090077F9ED /* VUShared.cpp */;
|
||||
@ -577,12 +367,12 @@
|
||||
vrLen = 669;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7E224E2D0D77A8A6000FAD0C /* PBXTextBookmark */ = {
|
||||
7E224E2F0D77AADF000FAD0C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */;
|
||||
name = "CodeGen_MD.cpp: 1";
|
||||
name = "CodeGen_MD.cpp: 24";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rLoc = 531;
|
||||
rType = 0;
|
||||
vrLen = 727;
|
||||
vrLoc = 0;
|
||||
@ -1316,13 +1106,6 @@
|
||||
sepNavVisRange = "{0, 788}";
|
||||
};
|
||||
};
|
||||
7E8988310D08BD090077F9ED /* RangeList16.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1011, 1078}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 577}";
|
||||
};
|
||||
};
|
||||
7E8988370D08BD090077F9ED /* uint128.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1011, 427}}";
|
||||
@ -1639,8 +1422,8 @@
|
||||
};
|
||||
7E9E4F850D4531BE003321D8 /* CodeGen_MD.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1011, 7224}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1011, 8344}}";
|
||||
sepNavSelRange = "{531, 0}";
|
||||
sepNavVisRange = "{0, 727}";
|
||||
};
|
||||
};
|
||||
@ -1693,39 +1476,6 @@
|
||||
sepNavVisRange = "{0, 318}";
|
||||
};
|
||||
};
|
||||
7EAC23570D6EF82700A3624F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E47E3220D6DEA15003F7AC1 /* MainWindow.mm */;
|
||||
name = "MainWindow.mm: 16";
|
||||
rLen = 0;
|
||||
rLoc = 145;
|
||||
rType = 0;
|
||||
vrLen = 145;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7EAC23580D6EF82700A3624F /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7EAC23590D6EF82700A3624F /* Lesson34Controller.h */;
|
||||
name = "Lesson34Controller.h: 26";
|
||||
rLen = 0;
|
||||
rLoc = 580;
|
||||
rType = 0;
|
||||
vrLen = 587;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7EAC23590D6EF82700A3624F /* Lesson34Controller.h */ = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.c.h;
|
||||
name = Lesson34Controller.h;
|
||||
path = /Users/jpd001/Downloads/Lesson34_OSXCocoa/Lesson34Controller.h;
|
||||
sourceTree = "<absolute>";
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1070, 549}}";
|
||||
sepNavSelRange = "{580, 0}";
|
||||
sepNavVisRange = "{0, 587}";
|
||||
sepNavWindowFrame = "{{15, 96}, {1129, 677}}";
|
||||
};
|
||||
};
|
||||
7EAD8BE30D4846DE002CC1C1 /* Posix_VolumeStream.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1219, 462}}";
|
||||
@ -1765,7 +1515,7 @@
|
||||
hitCount = 0;
|
||||
ignoreCount = 0;
|
||||
lineNumber = 7;
|
||||
modificationTime = 225945192.612399;
|
||||
modificationTime = 225946084.125788;
|
||||
state = 1;
|
||||
};
|
||||
7EB6F45D0D1B033700A53B0B /* ObjCCall.h */ = {
|
||||
@ -1776,33 +1526,6 @@
|
||||
sepNavWindowFrame = "{{15, 96}, {1129, 677}}";
|
||||
};
|
||||
};
|
||||
7EC6220C0D709231008B28C1 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E47E3220D6DEA15003F7AC1 /* MainWindow.mm */;
|
||||
name = "MainWindow.mm: 16";
|
||||
rLen = 0;
|
||||
rLoc = 145;
|
||||
rType = 0;
|
||||
vrLen = 145;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7EC6220F0D709231008B28C1 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7EC622100D709231008B28C1 /* Lesson34Controller.h */;
|
||||
name = "Lesson34Controller.h: 26";
|
||||
rLen = 0;
|
||||
rLoc = 580;
|
||||
rType = 0;
|
||||
vrLen = 587;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7EC622100D709231008B28C1 /* Lesson34Controller.h */ = {
|
||||
isa = PBXFileReference;
|
||||
lastKnownFileType = sourcecode.c.h;
|
||||
name = Lesson34Controller.h;
|
||||
path = /Users/jpd001/Downloads/Lesson34_OSXCocoa/Lesson34Controller.h;
|
||||
sourceTree = "<absolute>";
|
||||
};
|
||||
7ED0A4F00D6D28A1008D30EA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7E89882F0D08BD090077F9ED /* PS2OS.cpp */;
|
||||
@ -1897,16 +1620,6 @@
|
||||
vrLen = 702;
|
||||
vrLoc = 0;
|
||||
};
|
||||
7EE362DF0D60753D00C21032 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7EE1BC870D4D4F8F00B502BD /* PH_HidMacOSX.cpp */;
|
||||
name = "PH_HidMacOSX.cpp: 38";
|
||||
rLen = 0;
|
||||
rLoc = 1147;
|
||||
rType = 0;
|
||||
vrLen = 831;
|
||||
vrLoc = 745;
|
||||
};
|
||||
7EE584290D23176400AF9DA3 /* PathUtils.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1219, 420}}";
|
||||
@ -1935,7 +1648,7 @@
|
||||
ignoreCount = 0;
|
||||
lineNumber = 17;
|
||||
location = Purei;
|
||||
modificationTime = 225945192.612384;
|
||||
modificationTime = 225946084.125774;
|
||||
state = 1;
|
||||
};
|
||||
7EEF338C0D0B8F63005FE2D8 /* GSH_OpenGLMacOSX.h */ = {
|
||||
@ -1960,6 +1673,39 @@
|
||||
sepNavVisRange = "{0, 921}";
|
||||
};
|
||||
};
|
||||
7EF251B00D83124D00D90D20 /* Iop_PadMan.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1011, 2786}}";
|
||||
sepNavSelRange = "{3719, 0}";
|
||||
sepNavVisRange = "{3489, 756}";
|
||||
sepNavWindowFrame = "{{15, 96}, {1129, 677}}";
|
||||
};
|
||||
};
|
||||
7EF251B10D83124D00D90D20 /* Iop_PadMan.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1011, 2464}}";
|
||||
sepNavSelRange = "{4518, 0}";
|
||||
sepNavVisRange = "{3479, 1054}";
|
||||
};
|
||||
};
|
||||
7EF251B70D83128300D90D20 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
comments = "warning: taking address of temporary";
|
||||
fRef = 7EF251B00D83124D00D90D20 /* Iop_PadMan.cpp */;
|
||||
rLen = 1;
|
||||
rLoc = 145;
|
||||
rType = 1;
|
||||
};
|
||||
7EF251B80D83128300D90D20 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 7EF251B00D83124D00D90D20 /* Iop_PadMan.cpp */;
|
||||
name = "Iop_PadMan.cpp: 146";
|
||||
rLen = 85;
|
||||
rLoc = 3858;
|
||||
rType = 0;
|
||||
vrLen = 566;
|
||||
vrLoc = 3486;
|
||||
};
|
||||
8D1107260486CEB800E47090 /* Purei */ = {
|
||||
activeExec = 0;
|
||||
executables = (
|
||||
|
@ -129,6 +129,7 @@
|
||||
7EE5842B0D23176400AF9DA3 /* PathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7EE5842A0D23176400AF9DA3 /* PathUtils.cpp */; };
|
||||
7EEF338E0D0B8F63005FE2D8 /* GSH_OpenGLMacOSX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7EEF338D0D0B8F63005FE2D8 /* GSH_OpenGLMacOSX.cpp */; };
|
||||
7EEF350F0D0E6E68005FE2D8 /* X86Assembler_Fpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7EEF350E0D0E6E68005FE2D8 /* X86Assembler_Fpu.cpp */; };
|
||||
7EF251B20D83124D00D90D20 /* Iop_PadMan.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7EF251B00D83124D00D90D20 /* Iop_PadMan.cpp */; };
|
||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
@ -253,7 +254,6 @@
|
||||
7E89882E0D08BD090077F9ED /* Profiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Profiler.h; path = Source/Profiler.h; sourceTree = "<group>"; };
|
||||
7E89882F0D08BD090077F9ED /* PS2OS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PS2OS.cpp; path = Source/PS2OS.cpp; sourceTree = "<group>"; };
|
||||
7E8988300D08BD090077F9ED /* PS2OS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PS2OS.h; path = Source/PS2OS.h; sourceTree = "<group>"; };
|
||||
7E8988310D08BD090077F9ED /* RangeList16.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RangeList16.h; path = Source/RangeList16.h; sourceTree = "<group>"; };
|
||||
7E8988370D08BD090077F9ED /* uint128.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = uint128.h; path = Source/uint128.h; sourceTree = "<group>"; };
|
||||
7E8988380D08BD090077F9ED /* Utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Utils.cpp; path = Source/Utils.cpp; sourceTree = "<group>"; };
|
||||
7E8988390D08BD090077F9ED /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = Source/Utils.h; sourceTree = "<group>"; };
|
||||
@ -378,6 +378,8 @@
|
||||
7EEF338C0D0B8F63005FE2D8 /* GSH_OpenGLMacOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GSH_OpenGLMacOSX.h; path = Source/macosxui/GSH_OpenGLMacOSX.h; sourceTree = "<group>"; };
|
||||
7EEF338D0D0B8F63005FE2D8 /* GSH_OpenGLMacOSX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GSH_OpenGLMacOSX.cpp; path = Source/macosxui/GSH_OpenGLMacOSX.cpp; sourceTree = "<group>"; };
|
||||
7EEF350E0D0E6E68005FE2D8 /* X86Assembler_Fpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = X86Assembler_Fpu.cpp; path = Source/X86Assembler_Fpu.cpp; sourceTree = "<group>"; };
|
||||
7EF251B00D83124D00D90D20 /* Iop_PadMan.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Iop_PadMan.cpp; path = Source/iop/Iop_PadMan.cpp; sourceTree = "<group>"; };
|
||||
7EF251B10D83124D00D90D20 /* Iop_PadMan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Iop_PadMan.h; path = Source/iop/Iop_PadMan.h; sourceTree = "<group>"; };
|
||||
8D1107320486CEB800E47090 /* Purei.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Purei.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
@ -633,7 +635,6 @@
|
||||
7E8988300D08BD090077F9ED /* PS2OS.h */,
|
||||
7E8987070D08B4640077F9ED /* PS2VM.cpp */,
|
||||
7E8987080D08B4640077F9ED /* PS2VM.h */,
|
||||
7E8988310D08BD090077F9ED /* RangeList16.h */,
|
||||
7E8BEF0F0D171D6300CBEDE8 /* RegisterStateFile.cpp */,
|
||||
7E8BEF0E0D171D6300CBEDE8 /* RegisterStateFile.h */,
|
||||
7E9E4F8A0D4531BE003321D8 /* SIF.cpp */,
|
||||
@ -711,6 +712,8 @@
|
||||
7E9E4FA70D4531FF003321D8 /* Iop_Modload.cpp */,
|
||||
7E9E4FA80D4531FF003321D8 /* Iop_Modload.h */,
|
||||
7E9E4FA90D4531FF003321D8 /* Iop_Module.h */,
|
||||
7EF251B00D83124D00D90D20 /* Iop_PadMan.cpp */,
|
||||
7EF251B10D83124D00D90D20 /* Iop_PadMan.h */,
|
||||
7E9E4FAA0D4531FF003321D8 /* Iop_Stdio.cpp */,
|
||||
7E9E4FAB0D4531FF003321D8 /* Iop_Stdio.h */,
|
||||
7E9E4FAC0D4531FF003321D8 /* Iop_Sysclib.cpp */,
|
||||
@ -915,6 +918,7 @@
|
||||
7EE1BC880D4D4F9000B502BD /* PH_HidMacOSX.cpp in Sources */,
|
||||
7EE362C20D5FA35800C21032 /* IPU.cpp in Sources */,
|
||||
7E47E3230D6DEA15003F7AC1 /* MainWindow.mm in Sources */,
|
||||
7EF251B20D83124D00D90D20 /* Iop_PadMan.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -1,196 +1,211 @@
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <boost/bind.hpp>
|
||||
#include "Iop_PadMan.h"
|
||||
#include "../Log.h"
|
||||
#include "../RegisterStateFile.h"
|
||||
|
||||
using namespace Iop;
|
||||
using namespace Framework;
|
||||
using namespace boost;
|
||||
using namespace std;
|
||||
|
||||
#define PADNUM (1)
|
||||
#define MODE (0x4)
|
||||
#define LOG_NAME "iop_padman"
|
||||
|
||||
#define STATE_PADDATA ("iop_padman/paddata.xml")
|
||||
#define STATE_PADDATA_ADDRESS ("address")
|
||||
#define STATE_PADDATA_TYPE ("type")
|
||||
|
||||
CPadMan::CPadMan(CSIF& sif)
|
||||
{
|
||||
m_nPadDataAddress = 0;
|
||||
m_nPadDataType = 0;
|
||||
m_pPad = NULL;
|
||||
|
||||
sif.RegisterModule(MODULE_ID_1, this);
|
||||
sif.RegisterModule(MODULE_ID_2, this);
|
||||
sif.RegisterModule(MODULE_ID_3, this);
|
||||
sif.RegisterModule(MODULE_ID_4, this);
|
||||
}
|
||||
|
||||
string CPadMan::GetId() const
|
||||
{
|
||||
return "padman";
|
||||
}
|
||||
|
||||
void CPadMan::Invoke(CMIPS& context, unsigned int functionId)
|
||||
{
|
||||
throw runtime_error("Not implemented.");
|
||||
}
|
||||
|
||||
void CPadMan::Invoke(uint32 method, uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
assert(method == 1);
|
||||
method = args[0];
|
||||
switch(method)
|
||||
{
|
||||
case 0x00000001:
|
||||
case 0x80000100:
|
||||
Open(args, argsSize, ret, retSize, ram);
|
||||
break;
|
||||
case 0x00000008:
|
||||
SetActuatorAlign(args, argsSize, ret, retSize, ram);
|
||||
break;
|
||||
case 0x00000010:
|
||||
Init(args, argsSize, ret, retSize, ram);
|
||||
break;
|
||||
case 0x00000012:
|
||||
GetModuleVersion(args, argsSize, ret, retSize, ram);
|
||||
break;
|
||||
default:
|
||||
CLog::GetInstance().Print(LOG_NAME, "Unknown method invoked (0x%0.8X).\r\n", method);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CPadMan::SaveState(CZipArchiveWriter& archive)
|
||||
{
|
||||
CRegisterStateFile* registerFile = new CRegisterStateFile(STATE_PADDATA);
|
||||
|
||||
registerFile->SetRegister32(STATE_PADDATA_ADDRESS, m_nPadDataAddress);
|
||||
registerFile->SetRegister32(STATE_PADDATA_TYPE, m_nPadDataType);
|
||||
|
||||
archive.InsertFile(registerFile);
|
||||
}
|
||||
|
||||
void CPadMan::LoadState(CZipArchiveReader& archive)
|
||||
{
|
||||
CRegisterStateFile registerFile(*archive.BeginReadFile(STATE_PADDATA));
|
||||
m_nPadDataAddress = registerFile.GetRegister32(STATE_PADDATA_ADDRESS);
|
||||
m_nPadDataType = registerFile.GetRegister32(STATE_PADDATA_TYPE);
|
||||
}
|
||||
|
||||
void CPadMan::SetButtonState(unsigned int nPadNumber, CPadListener::BUTTON nButton, bool nPressed, uint8* ram)
|
||||
{
|
||||
if(m_nPadDataAddress == 0) return;
|
||||
|
||||
ExecutePadDataFunction(bind(&CPadMan::PDF_SetButtonState, _1, nButton, nPressed),
|
||||
ram + m_nPadDataAddress, PADNUM);
|
||||
}
|
||||
|
||||
void CPadMan::Open(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
uint32 nPort = args[1];
|
||||
uint32 nSlot = args[2];
|
||||
uint32 nAddress = args[4];
|
||||
|
||||
if(nPort == 0)
|
||||
{
|
||||
m_nPadDataAddress = nAddress;
|
||||
m_pPad = reinterpret_cast<PADDATA*>(ram + nAddress);
|
||||
}
|
||||
|
||||
CLog::GetInstance().Print(LOG_NAME, "Opening device on port %i and slot %i.\r\n", nPort, nSlot);
|
||||
|
||||
ExecutePadDataFunction(&CPadMan::PDF_InitializeStruct0, ram + m_nPadDataAddress, 0);
|
||||
ExecutePadDataFunction(&CPadMan::PDF_InitializeStruct1, ram + m_nPadDataAddress, 1);
|
||||
|
||||
//Returns 0 on error
|
||||
ret[3] = 0x00000001;
|
||||
}
|
||||
|
||||
void CPadMan::SetActuatorAlign(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
assert(retSize >= 24);
|
||||
|
||||
ret[5] = 1;
|
||||
}
|
||||
|
||||
void CPadMan::Init(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
assert(retSize >= 0x10);
|
||||
|
||||
m_nPadDataType = 1;
|
||||
|
||||
CLog::GetInstance().Print(LOG_NAME, "Init();\r\n");
|
||||
|
||||
ret[3] = 1;
|
||||
}
|
||||
|
||||
void CPadMan::GetModuleVersion(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
assert(retSize >= 0x10);
|
||||
|
||||
CLog::GetInstance().Print(LOG_NAME, "GetModuleVersion();\r\n");
|
||||
|
||||
ret[3] = 0x00000400;
|
||||
}
|
||||
|
||||
void CPadMan::ExecutePadDataFunction(PadDataFunction Function, void* pBase, size_t nOffset)
|
||||
{
|
||||
switch(m_nPadDataType)
|
||||
{
|
||||
case 0:
|
||||
Function(&CPadDataHandler<PADDATA>(reinterpret_cast<PADDATA*>(pBase) + nOffset));
|
||||
break;
|
||||
case 1:
|
||||
Function(&CPadDataHandler<PADDATAEX>(reinterpret_cast<PADDATAEX*>(pBase) + nOffset));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CPadMan::PDF_InitializeStruct0(CPadDataInterface* pPadData)
|
||||
{
|
||||
pPadData->SetFrame(0);
|
||||
pPadData->SetState(6);
|
||||
pPadData->SetReqState(0);
|
||||
pPadData->SetLength(32);
|
||||
pPadData->SetOk(1);
|
||||
}
|
||||
|
||||
void CPadMan::PDF_InitializeStruct1(CPadDataInterface* pPadData)
|
||||
{
|
||||
pPadData->SetFrame(1);
|
||||
pPadData->SetState(6);
|
||||
pPadData->SetReqState(0);
|
||||
pPadData->SetLength(32);
|
||||
pPadData->SetOk(1);
|
||||
|
||||
//EX struct initialization
|
||||
pPadData->SetModeCurId(MODE << 4);
|
||||
pPadData->SetModeCurOffset(0);
|
||||
pPadData->SetModeTable(0, MODE);
|
||||
}
|
||||
|
||||
void CPadMan::PDF_SetButtonState(CPadDataInterface* pPadData, BUTTON nButton, bool nPressed)
|
||||
{
|
||||
uint16 nStatus;
|
||||
|
||||
nStatus = (pPadData->GetData(2) << 8) | (pPadData->GetData(3));
|
||||
|
||||
nStatus &= ~nButton;
|
||||
if(!nPressed)
|
||||
{
|
||||
nStatus |= nButton;
|
||||
}
|
||||
|
||||
pPadData->SetReqState(0);
|
||||
|
||||
pPadData->SetData(2, static_cast<uint8>(nStatus >> 8));
|
||||
pPadData->SetData(3, static_cast<uint8>(nStatus >> 0));
|
||||
|
||||
pPadData->SetData(0, 0);
|
||||
pPadData->SetData(1, MODE << 4);
|
||||
}
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <boost/bind.hpp>
|
||||
#include "Iop_PadMan.h"
|
||||
#include "../Log.h"
|
||||
#include "../RegisterStateFile.h"
|
||||
|
||||
using namespace Iop;
|
||||
using namespace Framework;
|
||||
using namespace boost;
|
||||
using namespace std;
|
||||
|
||||
#define PADNUM (1)
|
||||
#define MODE (0x4)
|
||||
#define LOG_NAME "iop_padman"
|
||||
|
||||
#define STATE_PADDATA ("iop_padman/paddata.xml")
|
||||
#define STATE_PADDATA_ADDRESS ("address")
|
||||
#define STATE_PADDATA_TYPE ("type")
|
||||
|
||||
CPadMan::CPadMan(CSIF& sif)
|
||||
{
|
||||
m_nPadDataAddress = 0;
|
||||
m_nPadDataType = 0;
|
||||
m_pPad = NULL;
|
||||
|
||||
sif.RegisterModule(MODULE_ID_1, this);
|
||||
sif.RegisterModule(MODULE_ID_2, this);
|
||||
sif.RegisterModule(MODULE_ID_3, this);
|
||||
sif.RegisterModule(MODULE_ID_4, this);
|
||||
}
|
||||
|
||||
string CPadMan::GetId() const
|
||||
{
|
||||
return "padman";
|
||||
}
|
||||
|
||||
void CPadMan::Invoke(CMIPS& context, unsigned int functionId)
|
||||
{
|
||||
throw runtime_error("Not implemented.");
|
||||
}
|
||||
|
||||
void CPadMan::Invoke(uint32 method, uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
assert(method == 1);
|
||||
method = args[0];
|
||||
switch(method)
|
||||
{
|
||||
case 0x00000001:
|
||||
case 0x80000100:
|
||||
Open(args, argsSize, ret, retSize, ram);
|
||||
break;
|
||||
case 0x00000008:
|
||||
SetActuatorAlign(args, argsSize, ret, retSize, ram);
|
||||
break;
|
||||
case 0x00000010:
|
||||
Init(args, argsSize, ret, retSize, ram);
|
||||
break;
|
||||
case 0x00000012:
|
||||
GetModuleVersion(args, argsSize, ret, retSize, ram);
|
||||
break;
|
||||
default:
|
||||
CLog::GetInstance().Print(LOG_NAME, "Unknown method invoked (0x%0.8X).\r\n", method);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CPadMan::SaveState(CZipArchiveWriter& archive)
|
||||
{
|
||||
CRegisterStateFile* registerFile = new CRegisterStateFile(STATE_PADDATA);
|
||||
|
||||
registerFile->SetRegister32(STATE_PADDATA_ADDRESS, m_nPadDataAddress);
|
||||
registerFile->SetRegister32(STATE_PADDATA_TYPE, m_nPadDataType);
|
||||
|
||||
archive.InsertFile(registerFile);
|
||||
}
|
||||
|
||||
void CPadMan::LoadState(CZipArchiveReader& archive)
|
||||
{
|
||||
CRegisterStateFile registerFile(*archive.BeginReadFile(STATE_PADDATA));
|
||||
m_nPadDataAddress = registerFile.GetRegister32(STATE_PADDATA_ADDRESS);
|
||||
m_nPadDataType = registerFile.GetRegister32(STATE_PADDATA_TYPE);
|
||||
}
|
||||
|
||||
void CPadMan::SetButtonState(unsigned int nPadNumber, CPadListener::BUTTON nButton, bool nPressed, uint8* ram)
|
||||
{
|
||||
if(m_nPadDataAddress == 0) return;
|
||||
|
||||
ExecutePadDataFunction(bind(&CPadMan::PDF_SetButtonState, _1, nButton, nPressed),
|
||||
ram + m_nPadDataAddress, PADNUM);
|
||||
}
|
||||
|
||||
void CPadMan::Open(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
uint32 nPort = args[1];
|
||||
uint32 nSlot = args[2];
|
||||
uint32 nAddress = args[4];
|
||||
|
||||
if(nPort == 0)
|
||||
{
|
||||
m_nPadDataAddress = nAddress;
|
||||
m_pPad = reinterpret_cast<PADDATA*>(ram + nAddress);
|
||||
}
|
||||
|
||||
CLog::GetInstance().Print(LOG_NAME, "Opening device on port %i and slot %i.\r\n", nPort, nSlot);
|
||||
|
||||
ExecutePadDataFunction(&CPadMan::PDF_InitializeStruct0, ram + m_nPadDataAddress, 0);
|
||||
ExecutePadDataFunction(&CPadMan::PDF_InitializeStruct1, ram + m_nPadDataAddress, 1);
|
||||
|
||||
//Returns 0 on error
|
||||
ret[3] = 0x00000001;
|
||||
}
|
||||
|
||||
void CPadMan::SetActuatorAlign(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
assert(retSize >= 24);
|
||||
|
||||
ret[5] = 1;
|
||||
}
|
||||
|
||||
void CPadMan::Init(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
assert(retSize >= 0x10);
|
||||
|
||||
m_nPadDataType = 1;
|
||||
|
||||
CLog::GetInstance().Print(LOG_NAME, "Init();\r\n");
|
||||
|
||||
ret[3] = 1;
|
||||
}
|
||||
|
||||
void CPadMan::GetModuleVersion(uint32* args, uint32 argsSize, uint32* ret, uint32 retSize, uint8* ram)
|
||||
{
|
||||
assert(retSize >= 0x10);
|
||||
|
||||
CLog::GetInstance().Print(LOG_NAME, "GetModuleVersion();\r\n");
|
||||
|
||||
ret[3] = 0x00000400;
|
||||
}
|
||||
|
||||
void CPadMan::ExecutePadDataFunction(PadDataFunction Function, void* pBase, size_t nOffset)
|
||||
{
|
||||
switch(m_nPadDataType)
|
||||
{
|
||||
case 0:
|
||||
Function(&CPadDataHandler<PADDATA>(reinterpret_cast<PADDATA*>(pBase) + nOffset));
|
||||
break;
|
||||
case 1:
|
||||
Function(&CPadDataHandler<PADDATAEX>(reinterpret_cast<PADDATAEX*>(pBase) + nOffset));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CPadMan::PDF_InitializeStruct0(CPadDataInterface* pPadData)
|
||||
{
|
||||
pPadData->SetFrame(0);
|
||||
pPadData->SetState(6);
|
||||
pPadData->SetReqState(0);
|
||||
pPadData->SetLength(32);
|
||||
pPadData->SetOk(1);
|
||||
}
|
||||
|
||||
void CPadMan::PDF_InitializeStruct1(CPadDataInterface* pPadData)
|
||||
{
|
||||
pPadData->SetFrame(1);
|
||||
pPadData->SetState(6);
|
||||
pPadData->SetReqState(0);
|
||||
pPadData->SetLength(32);
|
||||
pPadData->SetOk(1);
|
||||
|
||||
//EX struct initialization
|
||||
pPadData->SetModeCurId(MODE << 4);
|
||||
pPadData->SetModeCurOffset(0);
|
||||
pPadData->SetModeTable(0, MODE);
|
||||
}
|
||||
|
||||
void CPadMan::PDF_SetButtonState(CPadDataInterface* pPadData, BUTTON nButton, bool nPressed)
|
||||
{
|
||||
uint16 nStatus;
|
||||
|
||||
nStatus = (pPadData->GetData(2) << 8) | (pPadData->GetData(3));
|
||||
|
||||
nStatus &= ~nButton;
|
||||
if(!nPressed)
|
||||
{
|
||||
nStatus |= nButton;
|
||||
}
|
||||
|
||||
pPadData->SetReqState(0);
|
||||
|
||||
pPadData->SetData(2, static_cast<uint8>(nStatus >> 8));
|
||||
pPadData->SetData(3, static_cast<uint8>(nStatus >> 0));
|
||||
|
||||
pPadData->SetData(0, 0);
|
||||
pPadData->SetData(1, MODE << 4);
|
||||
}
|
||||
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeCurId(unsigned int)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeCurOffset(unsigned int)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeTable(unsigned int, unsigned int)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -1,175 +1,175 @@
|
||||
#ifndef _IOP_PADMAN_H_
|
||||
#define _IOP_PADMAN_H_
|
||||
|
||||
#include "Iop_Module.h"
|
||||
#include "../SIF.h"
|
||||
#include "../PadListener.h"
|
||||
#include <boost/function.hpp>
|
||||
#include "zip/ZipArchiveWriter.h"
|
||||
#include "zip/ZipArchiveReader.h"
|
||||
|
||||
//#define USE_EX
|
||||
|
||||
namespace Iop
|
||||
{
|
||||
class CPadMan : public CModule, public CPadListener, public CSifModule
|
||||
{
|
||||
public:
|
||||
CPadMan(CSIF&);
|
||||
std::string GetId() const;
|
||||
void Invoke(CMIPS&, unsigned int);
|
||||
virtual void Invoke(uint32, uint32*, uint32, uint32*, uint32, uint8*);
|
||||
virtual void SaveState(CZipArchiveWriter&);
|
||||
virtual void LoadState(CZipArchiveReader&);
|
||||
virtual void SetButtonState(unsigned int, CPadListener::BUTTON, bool, uint8*);
|
||||
|
||||
enum MODULE_ID
|
||||
{
|
||||
MODULE_ID_1 = 0x80000100,
|
||||
MODULE_ID_2 = 0x80000101,
|
||||
MODULE_ID_3 = 0x8000010F,
|
||||
MODULE_ID_4 = 0x0000011F,
|
||||
};
|
||||
|
||||
private:
|
||||
struct PADDATAEX
|
||||
{
|
||||
uint8 nData[32];
|
||||
uint32 nReserved1[4];
|
||||
uint8 nActuator[32];
|
||||
uint16 nModeTable[4];
|
||||
uint32 nFrame;
|
||||
uint32 nReserved2;
|
||||
uint32 nLength;
|
||||
uint8 nModeOk;
|
||||
uint8 nModeCurId;
|
||||
uint8 nReserved3[2];
|
||||
uint8 nNrOfModes;
|
||||
uint8 nModeCurOffset;
|
||||
uint8 nActuatorCount;
|
||||
uint8 nReserved4[5];
|
||||
uint8 nState;
|
||||
uint8 nReqState;
|
||||
uint8 nOk;
|
||||
uint8 nReserved5[13];
|
||||
};
|
||||
|
||||
struct PADDATA
|
||||
{
|
||||
uint32 nFrame;
|
||||
uint8 nState;
|
||||
uint8 nReqState;
|
||||
uint8 nOk;
|
||||
uint8 nReserved0;
|
||||
uint8 nData[32];
|
||||
uint32 nLength;
|
||||
uint32 nReserved1[5];
|
||||
};
|
||||
|
||||
class CPadDataInterface
|
||||
{
|
||||
public:
|
||||
virtual ~CPadDataInterface() {}
|
||||
virtual void SetData(unsigned int, uint8) = 0;
|
||||
virtual uint8 GetData(unsigned int) = 0;
|
||||
virtual void SetFrame(unsigned int) = 0;
|
||||
virtual void SetState(unsigned int) = 0;
|
||||
virtual void SetReqState(unsigned int) = 0;
|
||||
virtual void SetLength(unsigned int) = 0;
|
||||
virtual void SetOk(unsigned int) = 0;
|
||||
virtual void SetModeCurId(unsigned int) = 0;
|
||||
virtual void SetModeCurOffset(unsigned int) = 0;
|
||||
virtual void SetModeTable(unsigned int, unsigned int) = 0;
|
||||
};
|
||||
|
||||
template <typename T> class CPadDataHandler : public CPadDataInterface
|
||||
{
|
||||
public:
|
||||
CPadDataHandler(void* pPtr)
|
||||
{
|
||||
m_pPadData = reinterpret_cast<T*>(pPtr);
|
||||
}
|
||||
|
||||
virtual ~CPadDataHandler()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual uint8 GetData(unsigned int nIndex)
|
||||
{
|
||||
return m_pPadData->nData[nIndex];
|
||||
}
|
||||
|
||||
virtual void SetData(unsigned int nIndex, uint8 nValue)
|
||||
{
|
||||
m_pPadData->nData[nIndex] = nValue;
|
||||
}
|
||||
|
||||
virtual void SetFrame(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nFrame = nValue;
|
||||
}
|
||||
|
||||
virtual void SetState(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nState = nValue;
|
||||
}
|
||||
|
||||
virtual void SetReqState(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nReqState = nValue;
|
||||
}
|
||||
|
||||
virtual void SetLength(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nLength = nValue;
|
||||
}
|
||||
|
||||
virtual void SetOk(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nOk = nValue;
|
||||
}
|
||||
|
||||
virtual void SetModeCurId(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nModeCurId = nValue;
|
||||
}
|
||||
|
||||
virtual void SetModeCurOffset(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nModeCurOffset = nValue;
|
||||
}
|
||||
|
||||
virtual void SetModeTable(unsigned int nIndex, unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nModeTable[nIndex] = nValue;
|
||||
}
|
||||
|
||||
private:
|
||||
T* m_pPadData;
|
||||
};
|
||||
|
||||
typedef boost::function< void (CPadDataInterface*) > PadDataFunction;
|
||||
|
||||
PADDATA* m_pPad;
|
||||
|
||||
unsigned int m_nPadDataType;
|
||||
uint32 m_nPadDataAddress;
|
||||
|
||||
void Open(uint32*, uint32, uint32*, uint32, uint8*);
|
||||
void SetActuatorAlign(uint32*, uint32, uint32*, uint32, uint8*);
|
||||
void Init(uint32*, uint32, uint32*, uint32, uint8*);
|
||||
void GetModuleVersion(uint32*, uint32, uint32*, uint32, uint8*);
|
||||
void ExecutePadDataFunction(PadDataFunction, void*, size_t);
|
||||
|
||||
static void PDF_InitializeStruct0(CPadDataInterface*);
|
||||
static void PDF_InitializeStruct1(CPadDataInterface*);
|
||||
static void PDF_SetButtonState(CPadDataInterface*, BUTTON, bool);
|
||||
};
|
||||
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeCurId(unsigned int) { }
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeCurOffset(unsigned int) { }
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeTable(unsigned int, unsigned int) { }
|
||||
}
|
||||
|
||||
#endif
|
||||
#ifndef _IOP_PADMAN_H_
|
||||
#define _IOP_PADMAN_H_
|
||||
|
||||
#include "Iop_Module.h"
|
||||
#include "../SIF.h"
|
||||
#include "../PadListener.h"
|
||||
#include <boost/function.hpp>
|
||||
#include "zip/ZipArchiveWriter.h"
|
||||
#include "zip/ZipArchiveReader.h"
|
||||
|
||||
//#define USE_EX
|
||||
|
||||
namespace Iop
|
||||
{
|
||||
class CPadMan : public CModule, public CPadListener, public CSifModule
|
||||
{
|
||||
public:
|
||||
CPadMan(CSIF&);
|
||||
std::string GetId() const;
|
||||
void Invoke(CMIPS&, unsigned int);
|
||||
virtual void Invoke(uint32, uint32*, uint32, uint32*, uint32, uint8*);
|
||||
virtual void SaveState(CZipArchiveWriter&);
|
||||
virtual void LoadState(CZipArchiveReader&);
|
||||
virtual void SetButtonState(unsigned int, CPadListener::BUTTON, bool, uint8*);
|
||||
|
||||
enum MODULE_ID
|
||||
{
|
||||
MODULE_ID_1 = 0x80000100,
|
||||
MODULE_ID_2 = 0x80000101,
|
||||
MODULE_ID_3 = 0x8000010F,
|
||||
MODULE_ID_4 = 0x0000011F,
|
||||
};
|
||||
|
||||
private:
|
||||
struct PADDATAEX
|
||||
{
|
||||
uint8 nData[32];
|
||||
uint32 nReserved1[4];
|
||||
uint8 nActuator[32];
|
||||
uint16 nModeTable[4];
|
||||
uint32 nFrame;
|
||||
uint32 nReserved2;
|
||||
uint32 nLength;
|
||||
uint8 nModeOk;
|
||||
uint8 nModeCurId;
|
||||
uint8 nReserved3[2];
|
||||
uint8 nNrOfModes;
|
||||
uint8 nModeCurOffset;
|
||||
uint8 nActuatorCount;
|
||||
uint8 nReserved4[5];
|
||||
uint8 nState;
|
||||
uint8 nReqState;
|
||||
uint8 nOk;
|
||||
uint8 nReserved5[13];
|
||||
};
|
||||
|
||||
struct PADDATA
|
||||
{
|
||||
uint32 nFrame;
|
||||
uint8 nState;
|
||||
uint8 nReqState;
|
||||
uint8 nOk;
|
||||
uint8 nReserved0;
|
||||
uint8 nData[32];
|
||||
uint32 nLength;
|
||||
uint32 nReserved1[5];
|
||||
};
|
||||
|
||||
class CPadDataInterface
|
||||
{
|
||||
public:
|
||||
virtual ~CPadDataInterface() {}
|
||||
virtual void SetData(unsigned int, uint8) = 0;
|
||||
virtual uint8 GetData(unsigned int) = 0;
|
||||
virtual void SetFrame(unsigned int) = 0;
|
||||
virtual void SetState(unsigned int) = 0;
|
||||
virtual void SetReqState(unsigned int) = 0;
|
||||
virtual void SetLength(unsigned int) = 0;
|
||||
virtual void SetOk(unsigned int) = 0;
|
||||
virtual void SetModeCurId(unsigned int) = 0;
|
||||
virtual void SetModeCurOffset(unsigned int) = 0;
|
||||
virtual void SetModeTable(unsigned int, unsigned int) = 0;
|
||||
};
|
||||
|
||||
template <typename T> class CPadDataHandler : public CPadDataInterface
|
||||
{
|
||||
public:
|
||||
CPadDataHandler(void* pPtr)
|
||||
{
|
||||
m_pPadData = reinterpret_cast<T*>(pPtr);
|
||||
}
|
||||
|
||||
virtual ~CPadDataHandler()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual uint8 GetData(unsigned int nIndex)
|
||||
{
|
||||
return m_pPadData->nData[nIndex];
|
||||
}
|
||||
|
||||
virtual void SetData(unsigned int nIndex, uint8 nValue)
|
||||
{
|
||||
m_pPadData->nData[nIndex] = nValue;
|
||||
}
|
||||
|
||||
virtual void SetFrame(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nFrame = nValue;
|
||||
}
|
||||
|
||||
virtual void SetState(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nState = nValue;
|
||||
}
|
||||
|
||||
virtual void SetReqState(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nReqState = nValue;
|
||||
}
|
||||
|
||||
virtual void SetLength(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nLength = nValue;
|
||||
}
|
||||
|
||||
virtual void SetOk(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nOk = nValue;
|
||||
}
|
||||
|
||||
virtual void SetModeCurId(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nModeCurId = nValue;
|
||||
}
|
||||
|
||||
virtual void SetModeCurOffset(unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nModeCurOffset = nValue;
|
||||
}
|
||||
|
||||
virtual void SetModeTable(unsigned int nIndex, unsigned int nValue)
|
||||
{
|
||||
m_pPadData->nModeTable[nIndex] = nValue;
|
||||
}
|
||||
|
||||
private:
|
||||
T* m_pPadData;
|
||||
};
|
||||
|
||||
typedef boost::function< void (CPadDataInterface*) > PadDataFunction;
|
||||
|
||||
PADDATA* m_pPad;
|
||||
|
||||
unsigned int m_nPadDataType;
|
||||
uint32 m_nPadDataAddress;
|
||||
|
||||
void Open(uint32*, uint32, uint32*, uint32, uint8*);
|
||||
void SetActuatorAlign(uint32*, uint32, uint32*, uint32, uint8*);
|
||||
void Init(uint32*, uint32, uint32*, uint32, uint8*);
|
||||
void GetModuleVersion(uint32*, uint32, uint32*, uint32, uint8*);
|
||||
void ExecutePadDataFunction(PadDataFunction, void*, size_t);
|
||||
|
||||
static void PDF_InitializeStruct0(CPadDataInterface*);
|
||||
static void PDF_InitializeStruct1(CPadDataInterface*);
|
||||
static void PDF_SetButtonState(CPadDataInterface*, BUTTON, bool);
|
||||
};
|
||||
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeCurId(unsigned int);
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeCurOffset(unsigned int);
|
||||
template <> void CPadMan::CPadDataHandler<CPadMan::PADDATA>::SetModeTable(unsigned int, unsigned int);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user