| /* |
| * Copyright (c) 2012 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 <assert.h> |
| |
| #include "webrtc/modules/audio_device/audio_device_utility.h" |
| |
| #if defined(_WIN32) |
| |
| // ============================================================================ |
| // Windows |
| // ============================================================================ |
| |
| #include <windows.h> |
| #include <conio.h> |
| #include <ctype.h> |
| #include <stdio.h> |
| #include <mmsystem.h> |
| |
| namespace webrtc |
| { |
| |
| void AudioDeviceUtility::WaitForKey() |
| { |
| _getch(); |
| } |
| |
| uint32_t AudioDeviceUtility::GetTimeInMS() |
| { |
| return timeGetTime(); |
| } |
| |
| bool AudioDeviceUtility::StringCompare( |
| const char* str1 , const char* str2, |
| const uint32_t length) |
| { |
| return ((_strnicmp(str1, str2, length) == 0) ? true : false); |
| } |
| |
| } // namespace webrtc |
| |
| #elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) |
| |
| // ============================================================================ |
| // Linux & Mac |
| // ============================================================================ |
| |
| #include <stdio.h> // getchar |
| #include <string.h> // strncasecmp |
| #include <sys/time.h> // gettimeofday |
| #include <termios.h> // tcgetattr |
| #include <time.h> // gettimeofday |
| |
| #include <unistd.h> |
| |
| namespace webrtc |
| { |
| |
| void AudioDeviceUtility::WaitForKey() |
| { |
| |
| struct termios oldt, newt; |
| |
| tcgetattr( STDIN_FILENO, &oldt ); |
| |
| // we don't want getchar to echo! |
| |
| newt = oldt; |
| newt.c_lflag &= ~( ICANON | ECHO ); |
| tcsetattr( STDIN_FILENO, TCSANOW, &newt ); |
| |
| // catch any newline that's hanging around... |
| |
| // you'll have to hit enter twice if you |
| |
| // choose enter out of all available keys |
| |
| if (getc(stdin) == '\n') |
| { |
| getc(stdin); |
| } |
| |
| tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); |
| } |
| |
| uint32_t AudioDeviceUtility::GetTimeInMS() |
| { |
| struct timeval tv; |
| struct timezone tz; |
| uint32_t val; |
| |
| gettimeofday(&tv, &tz); |
| val = (uint32_t)(tv.tv_sec*1000 + tv.tv_usec/1000); |
| return val; |
| } |
| |
| bool AudioDeviceUtility::StringCompare( |
| const char* str1 , const char* str2, const uint32_t length) |
| { |
| return (strncasecmp(str1, str2, length) == 0)?true: false; |
| } |
| |
| } // namespace webrtc |
| |
| #endif // defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) |