| /* |
| * 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 "event_wrapper.h" |
| |
| #if defined(_WIN32) |
| #include <windows.h> |
| #include "event_win.h" |
| #elif defined(WEBRTC_MAC_INTEL) |
| #include <ApplicationServices/ApplicationServices.h> |
| #include <pthread.h> |
| #include "event_posix.h" |
| #else |
| #include <pthread.h> |
| #include "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 keyDown = 0; |
| for(int key = 0x20; key < 0x90; key++) |
| { |
| short res = GetAsyncKeyState(key); |
| keyDown |= res%2; // Get the LSB |
| } |
| if(keyDown) |
| { |
| return 1; |
| } |
| else |
| { |
| return 0; |
| } |
| #elif defined(WEBRTC_MAC_INTEL) |
| bool keyDown = false; |
| // loop through all Mac virtual key constant values |
| for(int keyIndex = 0; keyIndex <= 0x5C; keyIndex++) |
| { |
| keyDown |= CGEventSourceKeyState(kCGEventSourceStateHIDSystemState, keyIndex); |
| } |
| if(keyDown) |
| { |
| return 1; |
| } |
| else |
| { |
| return 0; |
| } |
| #else |
| return -1; |
| #endif |
| } |
| } // namespace webrtc |