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.

68 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 defined(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 defined(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 defined(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 defined(LINK_PLATFORM_WINDOWS)
  42. using Clock = platforms::windows::Clock;
  43. using IoContext =
  44. platforms::asio::Context<platforms::windows::ScanIpIfAddrs, util::NullLog>;
  45. #elif defined(LINK_PLATFORM_MACOSX)
  46. using Clock = platforms::darwin::Clock;
  47. using IoContext =
  48. platforms::asio::Context<platforms::posix::ScanIpIfAddrs, util::NullLog>;
  49. #elif defined(LINK_PLATFORM_LINUX)
  50. using Clock = platforms::linux::ClockMonotonic;
  51. using IoContext =
  52. platforms::asio::Context<platforms::posix::ScanIpIfAddrs, util::NullLog>;
  53. #endif
  54. using Controller =
  55. Controller<PeerCountCallback, TempoCallback, StartStopStateCallback, Clock, IoContext>;
  56. } // namespace platform
  57. } // namespace link
  58. } // namespace ableton