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.

85 lines
2.3KB

  1. /*
  2. * Carla Plugin Host
  3. * Copyright (C) 2011-2020 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU General Public License as
  7. * published by the Free Software Foundation; either version 2 of
  8. * the License, or any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * For a full copy of the GNU General Public License see the doc/GPL.txt file.
  16. */
  17. #ifndef CARLA_ENGINE_INIT_HPP_INCLUDED
  18. #define CARLA_ENGINE_INIT_HPP_INCLUDED
  19. #include "CarlaEngine.hpp"
  20. CARLA_BACKEND_START_NAMESPACE
  21. // -------------------------------------------------------------------
  22. /*!
  23. * Native audio APIs.
  24. */
  25. enum AudioApi {
  26. AUDIO_API_NULL,
  27. // common
  28. AUDIO_API_JACK,
  29. AUDIO_API_OSS,
  30. // linux
  31. AUDIO_API_ALSA,
  32. AUDIO_API_PULSEAUDIO,
  33. // macos
  34. AUDIO_API_COREAUDIO,
  35. // windows
  36. AUDIO_API_ASIO,
  37. AUDIO_API_DIRECTSOUND,
  38. AUDIO_API_WASAPI
  39. };
  40. // -------------------------------------------------------------------
  41. // Engine initializers
  42. namespace EngineInit {
  43. // JACK
  44. CarlaEngine* newJack();
  45. // Dummy
  46. CarlaEngine* newDummy();
  47. // Bridge
  48. CarlaEngine* newBridge(const char* audioPoolBaseName,
  49. const char* rtClientBaseName,
  50. const char* nonRtClientBaseName,
  51. const char* nonRtServerBaseName);
  52. // Juce
  53. CarlaEngine* newJuce(AudioApi api);
  54. uint getJuceApiCount();
  55. const char* getJuceApiName(uint index);
  56. const char* const* getJuceApiDeviceNames(uint index);
  57. const EngineDriverDeviceInfo* getJuceDeviceInfo(uint index, const char* deviceName);
  58. bool showJuceDeviceControlPanel(uint index, const char* deviceName);
  59. // RtAudio
  60. CarlaEngine* newRtAudio(AudioApi api);
  61. uint getRtAudioApiCount();
  62. const char* getRtAudioApiName(uint index);
  63. const char* const* getRtAudioApiDeviceNames(uint index);
  64. const EngineDriverDeviceInfo* getRtAudioDeviceInfo(uint index, const char* deviceName);
  65. }
  66. // -----------------------------------------------------------------------
  67. CARLA_BACKEND_END_NAMESPACE
  68. #endif // CARLA_ENGINE_INIT_HPP_INCLUDED