/* * 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 #include "audio_device_utility.h" #if defined(_WIN32) // ============================================================================ // Windows // ============================================================================ #include #include #include #include #include namespace webrtc { void AudioDeviceUtility::Sleep(WebRtc_UWord32 milliseconds) { return ::Sleep(milliseconds); } void AudioDeviceUtility::WaitForKey() { _getch(); } WebRtc_UWord32 AudioDeviceUtility::GetTimeInMS() { return timeGetTime(); } bool AudioDeviceUtility::StringCompare(const WebRtc_Word8* str1 , const WebRtc_Word8* str2, const WebRtc_UWord32 length) { return ((_strnicmp(str1, str2, length) == 0) ? true : false); } } // namespace webrtc #elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) // ============================================================================ // Linux & Mac // ============================================================================ #include // gettimeofday #include // nanosleep, gettimeofday #include // strncasecmp #include // getchar #include // tcgetattr #include namespace webrtc { void AudioDeviceUtility::WaitForKey() { struct termios oldt, newt; int ch; 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 (getchar() == '\n') { ch = getchar(); } tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); } WebRtc_UWord32 AudioDeviceUtility::GetTimeInMS() { struct timeval tv; struct timezone tz; WebRtc_UWord32 val; gettimeofday(&tv, &tz); val = (WebRtc_UWord32)(tv.tv_sec*1000 + tv.tv_usec/1000); return val; } void AudioDeviceUtility::Sleep(WebRtc_UWord32 milliseconds) { timespec t; t.tv_sec = milliseconds/1000; t.tv_nsec = (milliseconds-(milliseconds/1000)*1000)*1000000; nanosleep(&t,NULL); } bool AudioDeviceUtility::StringCompare(const WebRtc_Word8* str1 , const WebRtc_Word8* str2, const WebRtc_UWord32 length) { return (strncasecmp(str1, str2, length) == 0)?true: false; } } // namespace webrtc #endif // defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)