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.

120 lines
2.6KB

  1. /*
  2. * Carla Plugin Host
  3. * Copyright (C) 2011-2014 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_UTILS_H_INCLUDED
  18. #define CARLA_UTILS_H_INCLUDED
  19. #include "CarlaDefines.h"
  20. /*!
  21. * @defgroup CarlaUtilsAPI Carla Utils API
  22. *
  23. * The Carla Utils API.
  24. *
  25. * This API allows to call advanced features from Python.
  26. * @{
  27. */
  28. /*!
  29. * TODO.
  30. */
  31. typedef void* CarlaPipeClientHandle;
  32. /*!
  33. * TODO.
  34. */
  35. typedef void (*CarlaPipeCallbackFunc)(void* ptr, const char* msg);
  36. /*!
  37. * Get the current carla library filename.
  38. */
  39. CARLA_EXPORT const char* carla_get_library_filename();
  40. /*!
  41. * Get the folder where the current use carla library resides.
  42. */
  43. CARLA_EXPORT const char* carla_get_library_folder();
  44. /*!
  45. * TODO.
  46. */
  47. CARLA_EXPORT void carla_set_locale_C();
  48. /*!
  49. * Get the juce version used in the current Carla build.
  50. */
  51. CARLA_EXPORT void carla_set_process_name(const char* name);
  52. /*!
  53. * TODO.
  54. */
  55. CARLA_EXPORT CarlaPipeClientHandle carla_pipe_client_new(const char* argv[], CarlaPipeCallbackFunc callbackFunc, void* callbackPtr);
  56. /*!
  57. * TODO.
  58. */
  59. CARLA_EXPORT void carla_pipe_client_idle(CarlaPipeClientHandle handle);
  60. /*!
  61. * TODO.
  62. */
  63. CARLA_EXPORT bool carla_pipe_client_is_running(CarlaPipeClientHandle handle);
  64. /*!
  65. * TODO.
  66. */
  67. CARLA_EXPORT void carla_pipe_client_lock(CarlaPipeClientHandle handle);
  68. /*!
  69. * TODO.
  70. */
  71. CARLA_EXPORT void carla_pipe_client_unlock(CarlaPipeClientHandle handle);
  72. /*!
  73. * TODO.
  74. */
  75. CARLA_EXPORT const char* carla_pipe_client_readlineblock(CarlaPipeClientHandle handle, uint timeout);
  76. /*!
  77. * TODO.
  78. */
  79. CARLA_EXPORT bool carla_pipe_client_write_msg(CarlaPipeClientHandle handle, const char* msg);
  80. /*!
  81. * TODO.
  82. */
  83. CARLA_EXPORT bool carla_pipe_client_write_and_fix_msg(CarlaPipeClientHandle handle, const char* msg);
  84. /*!
  85. * TODO.
  86. */
  87. CARLA_EXPORT bool carla_pipe_client_flush(CarlaPipeClientHandle handle);
  88. /*!
  89. * TODO.
  90. */
  91. CARLA_EXPORT bool carla_pipe_client_flush_and_unlock(CarlaPipeClientHandle handle);
  92. /*!
  93. * TODO.
  94. */
  95. CARLA_EXPORT void carla_pipe_client_destroy(CarlaPipeClientHandle handle);
  96. /** @} */
  97. #endif /* CARLA_UTILS_H_INCLUDED */