| 156 | }; |
| 157 | |
| 158 | static obs_key_combination |
| 159 | keysToOBSKeycombo(const std::vector<HotkeyType> &keys) |
| 160 | { |
| 161 | obs_key_combination combo{}; |
| 162 | auto it = keyTable.find(keys.back()); |
| 163 | if (it != keyTable.end()) { |
| 164 | combo.key = (obs_key_t)it->second; |
| 165 | } |
| 166 | if (keys.size() == 1) { |
| 167 | return combo; |
| 168 | } |
| 169 | |
| 170 | for (uint32_t i = 0; i < keys.size() - 1; i++) { |
| 171 | switch (keys[i]) { |
| 172 | case HotkeyType::Key_Shift_L: |
| 173 | combo.modifiers |= INTERACT_SHIFT_KEY; |
| 174 | break; |
| 175 | case HotkeyType::Key_Shift_R: |
| 176 | combo.modifiers |= INTERACT_SHIFT_KEY; |
| 177 | break; |
| 178 | case HotkeyType::Key_Control_L: |
| 179 | combo.modifiers |= INTERACT_CONTROL_KEY; |
| 180 | break; |
| 181 | case HotkeyType::Key_Control_R: |
| 182 | combo.modifiers |= INTERACT_CONTROL_KEY; |
| 183 | break; |
| 184 | case HotkeyType::Key_Alt_L: |
| 185 | combo.modifiers |= INTERACT_ALT_KEY; |
| 186 | break; |
| 187 | case HotkeyType::Key_Alt_R: |
| 188 | combo.modifiers |= INTERACT_ALT_KEY; |
| 189 | break; |
| 190 | case HotkeyType::Key_Win_L: |
| 191 | combo.modifiers |= INTERACT_COMMAND_KEY; |
| 192 | break; |
| 193 | case HotkeyType::Key_Win_R: |
| 194 | combo.modifiers |= INTERACT_COMMAND_KEY; |
| 195 | break; |
| 196 | case HotkeyType::Key_CapsLock: |
| 197 | combo.modifiers |= INTERACT_CAPS_KEY; |
| 198 | break; |
| 199 | default: |
| 200 | break; |
| 201 | } |
| 202 | } |
| 203 | |
| 204 | return combo; |
| 205 | } |
| 206 | |
| 207 | static void InjectKeys(const std::vector<HotkeyType> &keys, int duration) |
| 208 | { |
no test coverage detected