Reverted Ben's m_DefaultBufferSize stuff as it looks redundant. Will be put back...
[ardour.git] / libs / backends / wavesaudio / waves_midi_device_manager.cc
index a6628b30ca753c324022db0bfff048761ac98eff..317f1ec257fe9af54ba6d6a1420c86d3540ad7ee 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2013 Paul Davis
+    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
@@ -25,7 +25,7 @@
 #include "windows.h"
 #include "mmsystem.h"
 
-#else if defined(__APPLE__)
+#elif defined(__APPLE__)
 
 #include <CoreMIDI/MIDIServices.h>
 
@@ -110,12 +110,13 @@ WavesMidiDeviceManager::stop ()
 {
     // COMMENTED DBG LOGS */ std::cout << "WavesMidiDeviceManager::stop ():" << std::endl;
 
-    if ( _active == false )
+    if ( _active == false ) {
         return 0;
+       }
     
     stream (false);
 
-    _close_devices ();
+    _delete_devices ();
     _active = false;
 
     if (Pm_Terminate () != pmNoError) {
@@ -194,25 +195,30 @@ WavesMidiDeviceManager::_create_devices ()
     for (int i = 0; i < count; i++) {
 
         const PmDeviceInfo* pm_device_info = Pm_GetDeviceInfo (i);
-
+           // COMMENTED DBG LOGS */ std::cout << "                                    interf : " << pm_device_info->interf << std::endl;
+           // COMMENTED DBG LOGS */ std::cout << "                                      name : " << pm_device_info->name << std::endl;
+           // COMMENTED DBG LOGS */ std::cout << "                                     input : " << pm_device_info->input << std::endl;
+           // COMMENTED DBG LOGS */ std::cout << "                                    output : " << pm_device_info->output << std::endl;
+           // COMMENTED DBG LOGS */ std::cout << "                                    opened : " << pm_device_info->opened << std::endl;
+#if defined (PLATFORM_WINDOWS)
+               if (strncmp (pm_device_info->name, "Microsoft", strlen ("Microsoft")) == 0) {
+                       // COMMENTED DBG LOGS */ std::cout << "      skipping anything from Microsoft :" << pm_device_info->name << std::endl;
+                       continue;
+               }
+#endif
         if (pm_device_info == NULL) {
             std::cerr << "WavesMidiDeviceManager::_create_devices (): Pm_GetDeviceInfo (" << i << ") failed!" << std::endl;
             continue;
         }
 
         WavesMidiDevice *device = _get_device (pm_device_info->name);
-        if (device) {
-            device->validate ();
-        }
-        else
-        {
+        if (!device) {
             device = new WavesMidiDevice (pm_device_info->name);
             _devices.push_back (device);
-        }
-
-        if (device->open (__get_time_ms, (void*)&_audiobackend)) {
-            std::cerr << "WavesMidiDeviceManager::_create_devices (): [" << device->name () << "]->open () failed!" << std::endl;
-        }
+                       if (device->open (__get_time_ms, (void*)&_audiobackend)) {
+                               std::cerr << "WavesMidiDeviceManager::_create_devices (): [" << device->name () << "]->open () failed!" << std::endl;
+                       }
+               }
     }
 
     return 0;
@@ -226,17 +232,9 @@ WavesMidiDeviceManager::_delete_devices ()
     while (!_devices.empty ()) {
         WavesMidiDevice * device = _devices.back ();
         _devices.pop_back ();
+               device->close ();
         delete device;
     }
     return 0;
 }
 
-
-void
-WavesMidiDeviceManager::_close_devices ()
-{
-    // COMMENTED DBG LOGS */ std::cout << "WavesMidiDeviceManager::_delete_devices ():" << std::endl;
-    for (size_t i = 0; i < _devices.size (); i++) {
-        _devices[i]->close ();
-    }
-}