Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.2KB

  1. /* Copyright 2016, Ableton AG, Berlin. All rights reserved.
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. *
  16. * If you would like to incorporate Link into a proprietary software application,
  17. * please contact <link-devs@ableton.com>.
  18. */
  19. #pragma once
  20. #include <ableton/link/Controller.hpp>
  21. #include <ableton/util/Log.hpp>
  22. #if LINK_PLATFORM_WINDOWS
  23. #include <ableton/platforms/asio/Context.hpp>
  24. #include <ableton/platforms/windows/Clock.hpp>
  25. #include <ableton/platforms/windows/ScanIpIfAddrs.hpp>
  26. #elif LINK_PLATFORM_MACOSX
  27. #include <ableton/platforms/asio/Context.hpp>
  28. #include <ableton/platforms/darwin/Clock.hpp>
  29. #include <ableton/platforms/posix/ScanIpIfAddrs.hpp>
  30. #elif LINK_PLATFORM_LINUX
  31. #include <ableton/platforms/asio/Context.hpp>
  32. #include <ableton/platforms/linux/Clock.hpp>
  33. #include <ableton/platforms/posix/ScanIpIfAddrs.hpp>
  34. #endif
  35. namespace ableton
  36. {
  37. namespace link
  38. {
  39. namespace platform
  40. {
  41. #if LINK_PLATFORM_WINDOWS
  42. using Clock = platforms::windows::Clock;
  43. using IoContext =
  44. platforms::asio::Context<platforms::windows::ScanIpIfAddrs, util::NullLog>;
  45. #elif LINK_PLATFORM_MACOSX
  46. using Clock = platforms::darwin::Clock;
  47. using IoContext =
  48. platforms::asio::Context<platforms::posix::ScanIpIfAddrs, util::NullLog>;
  49. #elif LINK_PLATFORM_LINUX
  50. #ifdef __ARM_ARCH_7A__
  51. using Clock = platforms::linux::ClockMonotonicRaw;
  52. #else
  53. using Clock = platforms::linux::ClockMonotonic;
  54. #endif
  55. using IoContext =
  56. platforms::asio::Context<platforms::posix::ScanIpIfAddrs, util::NullLog>;
  57. #endif
  58. using Controller = Controller<PeerCountCallback, TempoCallback, Clock, IoContext>;
  59. } // platform
  60. } // link
  61. } // ableton