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.

63 lines
2.0KB

  1. /*
  2. * Carla Plugin Host
  3. * Copyright (C) 2011-2018 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_NATIVE_PLUGIN_H_INCLUDED
  18. #define CARLA_NATIVE_PLUGIN_H_INCLUDED
  19. #include "CarlaBackend.h"
  20. #include "CarlaNative.h"
  21. #include "CarlaEngine.hpp"
  22. /*!
  23. * Get the absolute filename of this carla library.
  24. */
  25. CARLA_EXPORT const char* carla_get_library_filename();
  26. /*!
  27. * Get the folder where this carla library resides.
  28. */
  29. CARLA_EXPORT const char* carla_get_library_folder();
  30. /*!
  31. * Get the native plugin descriptor for the carla-rack plugin.
  32. */
  33. CARLA_EXPORT const NativePluginDescriptor* carla_get_native_rack_plugin();
  34. /*!
  35. * Get the native plugin descriptor for the carla-patchbay plugin.
  36. */
  37. CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_plugin();
  38. #ifdef __cplusplus
  39. /*!
  40. * Get the internal CarlaEngine instance.
  41. */
  42. static inline
  43. CarlaBackend::CarlaEngine* carla_plugin_get_engine(const NativePluginDescriptor* desc, NativePluginHandle handle)
  44. {
  45. CARLA_SAFE_ASSERT_RETURN(desc != nullptr, nullptr);
  46. CARLA_SAFE_ASSERT_RETURN(handle != nullptr, nullptr);
  47. using CarlaBackend::CarlaEngine;
  48. return (CarlaEngine*)static_cast<uintptr_t>(desc->dispatcher(handle,
  49. NATIVE_PLUGIN_OPCODE_GET_INTERNAL_HANDLE,
  50. 0, 0, nullptr, 0.0f));
  51. }
  52. #endif
  53. #endif /* CARLA_NATIVE_PLUGIN_H_INCLUDED */