| 21116 | } |
| 21117 | |
| 21118 | void SendInputTask::initSendInputTaskControllerMap() |
| 21119 | { |
| 21120 | // Lock the global mutex to ensure thread-safe access to the map |
| 21121 | QMutexLocker mapLocker(&s_SendInputTaskControllerMapMutex); |
| 21122 | |
| 21123 | // Iterate through KeyMappingDataList |
| 21124 | for (const MAP_KEYDATA &keymapdata : std::as_const(*QKeyMapper::KeyMappingDataList)) { |
| 21125 | // Get the original key from keymapdata |
| 21126 | QString originalKey = keymapdata.Original_Key; |
| 21127 | |
| 21128 | // Check if the Controller for this original key already exists |
| 21129 | if (!s_SendInputTaskControllerMap.contains(originalKey)) { |
| 21130 | // Create a new Controller struct and insert it into the map |
| 21131 | SendInputTaskController controller; |
| 21132 | controller.task_threadpool = new QThreadPool(); |
| 21133 | controller.task_threadpool->setMaxThreadCount(1); |
| 21134 | controller.task_stop_mutex = new QMutex(); |
| 21135 | controller.task_stop_condition = new QWaitCondition(); |
| 21136 | controller.task_stop_flag = new QAtomicInt(INPUTSTOP_NONE); |
| 21137 | controller.task_pause_state = new QAtomicInt(KEYSEQUENCE_PAUSE_STATE_NONE); |
| 21138 | controller.sendvirtualkey_state = SENDVIRTUALKEY_STATE_NORMAL; |
| 21139 | controller.task_rowindex = INITIAL_ROW_INDEX; |
| 21140 | controller.task_keyup_sent = false; |
| 21141 | s_SendInputTaskControllerMap.insert(originalKey, controller); |
| 21142 | } |
| 21143 | } |
| 21144 | } |
| 21145 | |
| 21146 | void SendInputTask::clearSendInputTaskControllerMap() |
| 21147 | { |