#endif
#include "WCMRNativeAudio.h"
-#include "MiscUtils/pthread_utils.h"
#include "MiscUtils/safe_delete.h"
#include <iostream>
#include <sstream>
//**********************************************************************************************
WCMRNativeAudioNoneDevice::WCMRNativeAudioNoneDevice (WCMRAudioDeviceManager *pManager)
: WCMRNativeAudioDevice (pManager, false /*useMultiThreading*/)
+ , m_SilenceThread(0)
#if defined (PLATFORM_WINDOWS)
, _waitableTimerForUsleep (CreateWaitableTimer(NULL, TRUE, NULL))
#endif
{
- mark_pthread_inactive (m_SilenceThread);
-
m_DeviceName = NONE_DEVICE_NAME;
m_SamplingRates = boost::assign::list_of (m_CurrentSamplingRate=44100)(48000)(88200)(96000);
if (Streaming())
{
- if (is_pthread_active (m_SilenceThread))
+ if (m_SilenceThread)
std::cerr << "\t\t\t\t\t !!!!!!!!!!!!!!! Warning: the inactive NONE-DEVICE was streaming!" << std::endl;
pthread_attr_t attributes;
}
if (pthread_create (&m_SilenceThread, &attributes, __SilenceThread, this)) {
- mark_pthread_inactive (m_SilenceThread);
+ m_SilenceThread = 0;
std::cerr << "WCMRNativeAudioNoneDevice::SetStreaming (): pthread_create () failed!" << std::endl;
return eGenericErr;
}
}
else
{
- if (!is_pthread_active (m_SilenceThread))
+ if (!m_SilenceThread)
{
std::cerr << "\t\t\t\t\t !!!!!!!!!!!!!!! Warning: the active NONE-DEVICE was NOT streaming!" << std::endl;
}
- while (is_pthread_active (m_SilenceThread))
+ while (m_SilenceThread)
{
_usleep(1); //now wait for ended thread;
}
}
audioCallbackData.acdCycleStartTimeNanos = cycleEndTimeNanos+1;
}
- mark_pthread_inactive (m_SilenceThread);
+ m_SilenceThread = 0;
}
void* WCMRNativeAudioNoneDevice::__SilenceThread(void *This)
+++ /dev/null
-/*
- Copyright (C) 2014 John Emmas
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#ifndef __waves_pthread_utils__
-#define __waves_pthread_utils__
-
-/* Accommodate thread setting (and testing) for both
- * 'libpthread' and 'libpthread_win32' (whose implementations
- * of 'pthread_t' are subtlely different)
- */
-#ifndef PTHREAD_MACROS_DEFINED
-#define PTHREAD_MACROS_DEFINED
-#ifdef PTW32_VERSION /* pthread_win32 */
-#define mark_pthread_inactive(threadID) threadID.p=0
-#define is_pthread_active(threadID) threadID.p==0
-#else /* normal pthread */
-#define mark_pthread_inactive(threadID) threadID=0
-#define is_pthread_active(threadID) threadID==0
-#endif /* PTW32_VERSION */
-
-#endif /* PTHREAD_MACROS_DEFINED */
-#endif /* __waves_pthread_utils__ */
RelativePath="..\pbd\property_basics.h"
>
</File>
- <File
- RelativePath="..\pbd\pthread_utils.h"
- >
- </File>
<File
RelativePath="..\pbd\rcu.h"
>
#ifndef __pbd_pthread_utils__
#define __pbd_pthread_utils__
-/* Accommodate thread setting (and testing) for both
- * 'libpthread' and 'libpthread_win32' (whose implementations
- * of 'pthread_t' are subtlely different)
- */
-#ifndef PTHREAD_MACROS_DEFINED
-#define PTHREAD_MACROS_DEFINED
-#ifdef PTW32_VERSION /* pthread_win32 */
-#define mark_pthread_inactive(threadID) threadID.p=0
-#define is_pthread_active(threadID) threadID.p==0
-#else /* normal pthread */
-#define mark_pthread_inactive(threadID) threadID=0
-#define is_pthread_active(threadID) threadID==0
-#endif /* PTW32_VERSION */
-#endif /* PTHREAD_MACROS_DEFINED */
-
#ifdef COMPILER_MSVC
#include <ardourext/pthread.h>
#else