update wavesaudio backend, now supports Windows (ASIO) as well as OS X (CoreAudio)
[ardour.git] / libs / backends / wavesaudio / wavesapi / devicemanager / WCMRNativeAudio.h
index dc350ff6be413377ad3cc109b37cc09a950feee0..75c5e1430c9e91567d3f7210096e286f2d7d2e63 100644 (file)
@@ -1,23 +1,6 @@
-/*
-    Copyright (C) 2013 Waves Audio Ltd.
-
-    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.
-
-*/
 //----------------------------------------------------------------------------------
 //
+// Copyright (c) 2008 Waves Audio Ltd. All rights reserved.
 //
 //! \file      WCMRNativeAudio.h
 //!
@@ -42,9 +25,10 @@ class WCMRNativeAudioDevice : public WCMRAudioDevice
 {
 public:
 
-       WCMRNativeAudioDevice (WCMRAudioDeviceManager *pManager, bool useMultithreading = true, bool bNoCopy = false) : WCMRAudioDevice (pManager), 
-               m_UseMultithreading (useMultithreading),
-        m_bNoCopyAudioBuffer(bNoCopy)
+       WCMRNativeAudioDevice (WCMRAudioDeviceManager *pManager, bool useMultithreading = true, bool bNoCopy = false) :
+               WCMRAudioDevice (pManager)
+               , m_UseMultithreading (useMultithreading)
+        , m_bNoCopyAudioBuffer(bNoCopy)
                {}
        virtual ~WCMRNativeAudioDevice () {}
 
@@ -52,7 +36,6 @@ protected:
        bool m_UseMultithreading;
     bool m_bNoCopyAudioBuffer; ///< This flag determines whether the audio callback performs a copy of audio, or the source/sink perform the copy. It should be true to let source/sink do the copies.
 
-
 };
 
 
@@ -65,6 +48,7 @@ public:
        virtual WTErr SetActive (bool newState);///<Prepare/Activate device.
        virtual WTErr SetStreaming (bool newState);///<Start/Stop Streaming - should reconnect connections when streaming starts!
        virtual WTErr SetCurrentBufferSize (int newSize);///<Change Current Buffer Size : This is a requset, might not be successful at run time!
+       virtual WTErr UpdateDeviceInfo ();
 
 private:
 
@@ -75,11 +59,11 @@ private:
 #else
        inline void _usleep(uint64_t usec) { ::usleep(usec); }
 #endif
-    static const size_t __m_NumInputChannels = 32;
-    static const size_t __m_NumOutputChannels = 32;
+    static const size_t __m_NumInputChannels = 0;
+    static const size_t __m_NumOutputChannels = 0;
        pthread_t m_SilenceThread;
-    float *_m_inputBuffer;\r
-    float *_m_outputBuffer;\r
+    float *_m_inputBuffer;
+    float *_m_outputBuffer;
     static uint64_t __get_time_nanos ();
 #if defined (_WINDOWS)
        HANDLE _waitableTimerForUsleep;