/* * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "webrtc/system_wrappers/interface/event_wrapper.h" #if defined(_WIN32) #include #include "webrtc/system_wrappers/source/event_win.h" #elif defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) #include #include #include "webrtc/system_wrappers/source/event_posix.h" #else #include #include "webrtc/system_wrappers/source/event_posix.h" #endif namespace webrtc { EventWrapper* EventWrapper::Create() { #if defined(_WIN32) return new EventWindows(); #else return EventPosix::Create(); #endif } int EventWrapper::KeyPressed() { #if defined(_WIN32) int key_down = 0; for (int key = 0x20; key < 0x90; key++) { short res = GetAsyncKeyState(key); key_down |= res % 2; // Get the LSB } if (key_down) { return 1; } else { return 0; } #elif defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) bool key_down = false; // loop through all Mac virtual key constant values for (int key_index = 0; key_index <= 0x5C; key_index++) { key_down |= CGEventSourceKeyState(kCGEventSourceStateHIDSystemState, key_index); } if (key_down) { return 1; } else { return 0; } #else return -1; #endif } } // namespace webrtc