Do some light multitap cleanup
authorAndrew <bsderandrew@gmail.com>
Fri, 23 Dec 2016 01:28:39 +0000 (17:28 -0800)
committerAndrew <bsderandrew@gmail.com>
Fri, 23 Dec 2016 01:35:37 +0000 (17:35 -0800)
After seeing the regressions from multitap I took a quick look at the
code, and there's quite a bit of cleanup needed.

This fixes the initial really obvious stuff, a useless copy and a
duplicate in_keystate that can cause compilation issues, along with
bringing styling closer to the pcsx standard so it's a bit more readable.

The multitap changeset also seems to have been done with an editor that
mangled line endings, I'll address that in a followup commit.

frontend/plugin.c
frontend/plugin_lib.c
frontend/plugin_lib.h
libpcsxcore/plugins.c

index 8914519..6bb9aa4 100644 (file)
@@ -73,7 +73,7 @@ static long PADreadPort2(PadDataS *pad) {
     
     pad->controllerType = in_type[pad_index];
     pad->buttonStatus = ~in_keystate[pad_index];
-    if (multitap2 ==)
+    if (multitap2 == 1)
        pad->portMultitap = 2;
     else
        pad->portMultitap = 0;
index ad2f49b..c65bfeb 100644 (file)
@@ -43,7 +43,8 @@ int in_analog_left[8][2] = {{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },
 int in_analog_right[8][2] = {{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 }};
 int in_adev[2] = { -1, -1 }, in_adev_axis[2][2] = {{ 0, 1 }, { 0, 1 }};
 int in_adev_is_nublike[2];
-int in_keystate, in_state_gun;
+unsigned short in_keystate[8];
+int in_state_gun;
 int in_enable_vibration;
 void *tsdev;
 void *pl_vout_buf;
index ad27fc2..83b2774 100644 (file)
@@ -23,7 +23,7 @@ extern int multitap1;
 extern int multitap2;
 extern int in_analog_left[8][2];
 extern int in_analog_right[8][2];
-unsigned short in_keystate[8];
+extern unsigned short in_keystate[8];
 
 extern int in_adev[2], in_adev_axis[2][2];
 extern int in_adev_is_nublike[2];
index 007b61e..4937975 100644 (file)
@@ -517,7 +517,7 @@ void initBufForRequest(int padIndex, char value){
                //case CMD_READ_DATA_AND_VIBRATE :\r
                //      break;\r
                case CMD_CONFIG_MODE :\r
-                       if(pad[padIndex].configMode == 1){\r
+                       if (pad[padIndex].configMode == 1) {\r
                                memcpy(buf, resp43, 8);\r
                                break;\r
                        }\r
@@ -572,9 +572,9 @@ void reqIndex2Treatment(int padIndex, char value){
        switch (req){\r
                case CMD_CONFIG_MODE :\r
                        //0x43\r
-                       if(value == 0){\r
+                       if (value == 0) {\r
                                pad[padIndex].configMode = 0;\r
-                       }else{\r
+                       } else {\r
                                pad[padIndex].configMode = 1;\r
                        }\r
                        break;\r
@@ -586,13 +586,12 @@ void reqIndex2Treatment(int padIndex, char value){
                        break;\r
                case CMD_QUERY_ACT :\r
                        //0x46\r
-                       if(value==1){\r
+                       if (value == 1) {\r
                                memcpy(buf, resp46_01, 8);\r
                        }\r
                        break;\r
-               \r
                case CMD_QUERY_MODE :\r
-                       if(value==1){\r
+                       if (value == 1) {\r
                                memcpy(buf, resp4C_01, 8);\r
                        }\r
                        break;\r
@@ -603,11 +602,12 @@ void reqIndex2Treatment(int padIndex, char value){
                case CMD_READ_DATA_AND_VIBRATE:\r
                        //mem the vibration value for small motor;\r
                        pad[padIndex].Vib[0] = value;
+                       break;
        }\r
 }\r
        
 void vibrate(int padIndex){
-       if(pad[padIndex].Vib[0] != pad[padIndex].VibF[0] || pad[padIndex].Vib[1] != pad[padIndex].VibF[1]){
+       if (pad[padIndex].Vib[0] != pad[padIndex].VibF[0] || pad[padIndex].Vib[1] != pad[padIndex].VibF[1]) {
                //value is different update Value and call libretro for vibration
                pad[padIndex].VibF[0] = pad[padIndex].Vib[0];
                pad[padIndex].VibF[1] = pad[padIndex].Vib[1];
@@ -682,15 +682,12 @@ void _PADstartPoll(PadDataS *pad) {
 
 //Build response for 0x42 request Multitap in port
 //Response header for multitap : 0x80, 0x5A, (Pad information port 1-2A), (Pad information port 1-2B), (Pad information port 1-2C), (Pad information port 1-2D)\r
-void _PADstartPollMultitap(PadDataS padd[4]) {\r
-    int i = 0;\r
-    int offset = 2;\r
-    PadDataS pad;\r
+void _PADstartPollMultitap(PadDataS* padd) {\r
+    int i, offset;\r
     for(i = 0; i < 4; i++) {\r
        offset = 2 + (i * 8);\r
-       pad = padd[i];\r
-               _PADstartPoll(&pad);
-               memcpy(multitappar+offset, stdpar, 8);\r
+       _PADstartPoll(&padd[i]);
+       memcpy(multitappar+offset, stdpar, 8);\r
     }\r
     memcpy(bufMulti, multitappar, 34);\r
     respSize = 34;\r
@@ -698,15 +695,15 @@ void _PADstartPollMultitap(PadDataS padd[4]) {
 \r
 \r
 unsigned char _PADpoll(int port, unsigned char value) {
-       if(reqPos==0){
+       if (reqPos == 0) {
                //mem the request number
                req = value;\r
                //copy the default value of request response in buffer instead of the keystate\r
-               initBufForRequest(port,value);
+               initBufForRequest(port, value);
        }\r
        \r
        //if no new request the pad return 0xff, for signaling connected\r
-       if ( reqPos >= respSize) return 0xff;\r
+       if (reqPos >= respSize) return 0xff;\r
        \r
        switch(reqPos){\r
                case 2:\r
@@ -723,16 +720,15 @@ unsigned char _PADpoll(int port, unsigned char value) {
                                //vibration
                                vibrate(port);\r
                                break;\r
-                       \r
+                       }\r
                break;\r
-               }\r
        }\r
        return buf[reqPos++];\r
 }
 
 
 unsigned char _PADpollMultitap(int port, unsigned char value) {
-       if ( reqPos >= respSize) return 0xff;\r
+       if (reqPos >= respSize) return 0xff;\r
        return bufMulti[reqPos++];\r
 }
 \r
@@ -742,21 +738,21 @@ unsigned char _PADpollMultitap(int port, unsigned char value) {
 unsigned char CALLBACK PAD1__startPoll(int pad) {
        reqPos = 0;\r
        // first call the pad provide if a multitap is connected between the psx and himself\r
-       if(multitap1 == -1){\r
+       if (multitap1 == -1) {\r
                PadDataS padd;
                padd.requestPadIndex = 0;\r
                PAD1_readPort1(&padd);\r
                multitap1 = padd.portMultitap;\r
        }\r
        // just one pad is on port 1 : NO MULTITAP\r
-       if (multitap1 == 0){\r
+       if (multitap1 == 0) {\r
                PadDataS padd;
                padd.requestPadIndex = 0;\r
                PAD1_readPort1(&padd);\r
                _PADstartPoll(&padd);\r
        } else {\r
                // a multitap is plugged : refresh all pad.\r
-               int i=0;\r
+               int i;\r
                PadDataS padd[4];\r
                for(i = 0; i < 4; i++) {
                        padd[i].requestPadIndex = i;\r
@@ -770,9 +766,9 @@ unsigned char CALLBACK PAD1__startPoll(int pad) {
 \r
 unsigned char CALLBACK PAD1__poll(unsigned char value) {
        char tmp;
-       if(multitap1 == 1){
+       if (multitap1 == 1) {
                tmp = _PADpollMultitap(0, value);
-       }else{
+       } else {
                tmp = _PADpoll(0, value);
        }
        //printf("%2x:%2x, ",value,tmp);\r
@@ -824,20 +820,19 @@ static int LoadPAD1plugin(const char *PAD1dll) {
 }\r
 \r
 unsigned char CALLBACK PAD2__startPoll(int pad) {
+       int pad_index;
+
        reqPos = 0;\r
-       int pad_index = 0;
-       if(multitap1 == 0 && multitap2 == 0){
-               pad_index += 1;
-       }else if(multitap1 == 1 && multitap2 == 0){
-               pad_index += 4;
-       }else if(multitap1 == 0 && multitap2 == 2){
-               pad_index += 1;
-       }else if(multitap1 == 1 && multitap2 == 2){
-               pad_index += 4;
+       if (multitap1 == 0 && (multitap2 == 0 || multitap2 == 2)) {
+               pad_index = 1;
+       } else if(multitap1 == 1 && (multitap2 == 0 || multitap2 == 2)) {
+               pad_index = 4;
+       } else {
+               pad_index = 0;
        }
 
        //first call the pad provide if a multitap is connected between the psx and himself
-       if(multitap2 == -1){
+       if (multitap2 == -1) {
                PadDataS padd;
                padd.requestPadIndex = pad_index;
                PAD2_readPort2(&padd);
@@ -845,17 +840,16 @@ unsigned char CALLBACK PAD2__startPoll(int pad) {
        }
        \r
        // just one pad is on port 1 : NO MULTITAP\r
-       if (multitap2 == 0){
+       if (multitap2 == 0) {
                PadDataS padd;
                padd.requestPadIndex = pad_index;
                PAD2_readPort2(&padd);\r
                _PADstartPoll(&padd);\r
        } else {\r
                // a multitap is plugged : refresh all pad.\r
-       //a multitap is plugged : refresh all pad.
-               int i=0;
+               int i;
                PadDataS padd[4];
-               for(i=0;i<4;i++){
+               for(i = 0; i < 4; i++) {
                        padd[i].requestPadIndex = i+pad_index;
                        PAD2_readPort2(&padd[i]);
                }
@@ -867,9 +861,9 @@ unsigned char CALLBACK PAD2__startPoll(int pad) {
 \r
 unsigned char CALLBACK PAD2__poll(unsigned char value) {\r
        char tmp;
-       if(multitap2 == 2){
+       if (multitap2 == 2) {
                tmp = _PADpollMultitap(1, value);
-       }else{
+       } else {
                tmp = _PADpoll(1, value);
        }
        //printf("%2x:%2x, ",value,tmp);\r