| 122 | } |
| 123 | |
| 124 | void Xbox360Peripheral::ChatPadTimerAction(IOTimerEventSource *sender) |
| 125 | { |
| 126 | int nextTime, serialGot; |
| 127 | |
| 128 | serialGot = 0; |
| 129 | nextTime = 1000; |
| 130 | switch (serialTimerState) |
| 131 | { |
| 132 | case tsToggle: |
| 133 | SendToggle(); |
| 134 | if (serialActive) |
| 135 | { |
| 136 | if (!serialHeard) |
| 137 | { |
| 138 | serialActive = false; |
| 139 | serialGot = 2; |
| 140 | } |
| 141 | } |
| 142 | else |
| 143 | { |
| 144 | if (serialHeard) |
| 145 | { |
| 146 | serialTimerState = tsReset1; |
| 147 | serialResetCount = 0; |
| 148 | nextTime = 40; |
| 149 | } |
| 150 | } |
| 151 | break; |
| 152 | |
| 153 | case tsMiniToggle: |
| 154 | SendToggle(); |
| 155 | if (serialHeard) |
| 156 | { |
| 157 | serialTimerState = tsSet1; |
| 158 | nextTime = 40; |
| 159 | } |
| 160 | else |
| 161 | { |
| 162 | serialResetCount++; |
| 163 | if (serialResetCount > 3) |
| 164 | { |
| 165 | serialTimerState = tsToggle; |
| 166 | } |
| 167 | else |
| 168 | { |
| 169 | serialTimerState = tsReset1; |
| 170 | nextTime = 40; |
| 171 | } |
| 172 | } |
| 173 | break; |
| 174 | |
| 175 | case tsReset1: |
| 176 | SendSpecial(0x1B); |
| 177 | serialTimerState = tsReset2; |
| 178 | nextTime = 35; |
| 179 | break; |
| 180 | |
| 181 | case tsReset2: |
no outgoing calls
no test coverage detected