| 129 | } |
| 130 | |
| 131 | void EmuThread::doStuff() { |
| 132 | while (!m_reqQueue.isEmpty()) { |
| 133 | int req = m_reqQueue.dequeue(); |
| 134 | switch (+req) { |
| 135 | default: |
| 136 | break; |
| 137 | case RequestPause: |
| 138 | block(req); |
| 139 | break; |
| 140 | case RequestReset: |
| 141 | cpu_crash("user request"); |
| 142 | break; |
| 143 | case RequestSend: |
| 144 | sendFiles(); |
| 145 | break; |
| 146 | case RequestReceive: |
| 147 | block(req); |
| 148 | break; |
| 149 | case RequestCancelTransfer: |
| 150 | emu_cancel_transfer(); |
| 151 | break; |
| 152 | case RequestDebugger: |
| 153 | debug_open(DBG_USER, 0); |
| 154 | break; |
| 155 | case RequestBasicDebugger: |
| 156 | debug_open(DBG_BASIC_RECONFIG, 0); |
| 157 | break; |
| 158 | case RequestSave: |
| 159 | emit saved(emu_save(m_saveType, m_savePath.toStdString().c_str())); |
| 160 | break; |
| 161 | case RequestLoad: |
| 162 | emit loaded(emu_load(m_loadType, m_loadPath.toStdString().c_str()), m_loadType); |
| 163 | break; |
| 164 | case RequestAutoTester: |
| 165 | uint32_t run_rate_prev = emu_get_run_rate(); |
| 166 | emu_set_run_rate(1000); |
| 167 | if (!autotester::doTestSequence()) { |
| 168 | emit tested(1); |
| 169 | } else { |
| 170 | emit tested(0); |
| 171 | } |
| 172 | emu_set_run_rate(run_rate_prev); |
| 173 | break; |
| 174 | } |
| 175 | } |
| 176 | |
| 177 | { |
| 178 | QMutexLocker locker(&m_keyQueueMutex); |
| 179 | while (!m_keyQueue.isEmpty() && sendKey(m_keyQueue.head())) { |
| 180 | m_keyQueue.dequeue(); |
| 181 | } |
| 182 | } |
| 183 | } |
| 184 | |
| 185 | void EmuThread::throttleWait() { |
| 186 | int speed; |
nothing calls this directly
no test coverage detected