MCPcopy Create free account
hub / github.com/360Controller/360Controller / fiddleReport

Method fiddleReport

360Controller/_60Controller.cpp:739–792  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

737}
738
739void Xbox360Peripheral::fiddleReport(XBOX360_HAT& left, XBOX360_HAT& right)
740{
741 // deadOff - Normalize checkbox is checked if true
742 // relative - Linked checkbox is checked if true
743
744 if(invertLeftX) left.x=~left.x;
745 if(!invertLeftY) left.y=~left.y;
746 if(invertRightX) right.x=~right.x;
747 if(!invertRightY) right.y=~right.y;
748
749 if(deadzoneLeft!=0) {
750 if(relativeLeft) {
751 if((getAbsolute(left.x)<deadzoneLeft)&&(getAbsolute(left.y)<deadzoneLeft)) {
752 left.x=0;
753 left.y=0;
754 }
755 else if(deadOffLeft) {
756 normalizeAxis(left.x, deadzoneLeft);
757 normalizeAxis(left.y, deadzoneLeft);
758 }
759 } else { // Linked checkbox has no check
760 if(getAbsolute(left.x)<deadzoneLeft)
761 left.x=0;
762 else if (deadOffLeft)
763 normalizeAxis(left.x, deadzoneLeft);
764
765 if(getAbsolute(left.y)<deadzoneLeft)
766 left.y=0;
767 else if (deadOffLeft)
768 normalizeAxis(left.y, deadzoneLeft);
769 }
770 }
771 if(deadzoneRight!=0) {
772 if(relativeRight) {
773 if((getAbsolute(right.x)<deadzoneRight)&&(getAbsolute(right.y)<deadzoneRight)) {
774 right.x=0;
775 right.y=0;
776 }
777 else if(deadOffRight) {
778 normalizeAxis(left.x, deadzoneRight);
779 normalizeAxis(left.y, deadzoneRight);
780 }
781 } else {
782 if(getAbsolute(right.x)<deadzoneRight)
783 right.x=0;
784 else if (deadOffRight)
785 normalizeAxis(right.x, deadzoneRight);
786 if(getAbsolute(right.y)<deadzoneRight)
787 right.y=0;
788 else if (deadOffRight)
789 normalizeAxis(right.y, deadzoneRight);
790 }
791 }
792}
793
794// This forwards a completed read notification to a member function
795void Xbox360Peripheral::ReadCompleteInternal(void *target,void *parameter,IOReturn status,UInt32 bufferSizeRemaining)

Callers 1

handleReportMethod · 0.45

Calls 1

getAbsoluteFunction · 0.70

Tested by

no test coverage detected