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.

137 lines
3.6KB

  1. /*
  2. * Carla JACK API for external applications
  3. * Copyright (C) 2016-2017 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. // need to include this first
  18. #include "libjack.hpp"
  19. CARLA_BACKEND_USE_NAMESPACE
  20. // --------------------------------------------------------------------------------------------------------------------
  21. CARLA_EXPORT
  22. int jack_set_thread_init_callback(jack_client_t*, JackThreadInitCallback, void*)
  23. {
  24. return 0;
  25. }
  26. CARLA_EXPORT
  27. void jack_on_shutdown(jack_client_t* client, JackShutdownCallback callback, void* arg)
  28. {
  29. JackClientState* const jclient = (JackClientState*)client;
  30. CARLA_SAFE_ASSERT_RETURN(jclient != nullptr,);
  31. const CarlaMutexLocker cms(jclient->mutex);
  32. jclient->shutdownCb = callback;
  33. jclient->shutdownCbPtr = arg;
  34. }
  35. CARLA_EXPORT
  36. void jack_on_info_shutdown(jack_client_t* client, JackInfoShutdownCallback callback, void* arg)
  37. {
  38. JackClientState* const jclient = (JackClientState*)client;
  39. CARLA_SAFE_ASSERT_RETURN(jclient != nullptr,);
  40. const CarlaMutexLocker cms(jclient->mutex);
  41. jclient->infoShutdownCb = callback;
  42. jclient->infoShutdownCbPtr = arg;
  43. }
  44. CARLA_EXPORT
  45. int jack_set_process_callback(jack_client_t* client, JackProcessCallback callback, void* arg)
  46. {
  47. JackClientState* const jclient = (JackClientState*)client;
  48. CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1);
  49. const CarlaMutexLocker cms(jclient->mutex);
  50. jclient->processCb = callback;
  51. jclient->processCbPtr = arg;
  52. return 0;
  53. }
  54. CARLA_EXPORT
  55. int jack_set_freewheel_callback(jack_client_t*, JackFreewheelCallback, void*)
  56. {
  57. return 0;
  58. }
  59. CARLA_EXPORT
  60. int jack_set_buffer_size_callback(jack_client_t* client, JackBufferSizeCallback callback, void* arg)
  61. {
  62. JackClientState* const jclient = (JackClientState*)client;
  63. CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1);
  64. const CarlaMutexLocker cms(jclient->mutex);
  65. jclient->bufferSizeCb = callback;
  66. jclient->bufferSizeCbPtr = arg;
  67. return 0;
  68. }
  69. CARLA_EXPORT
  70. int jack_set_sample_rate_callback(jack_client_t* client, JackSampleRateCallback callback, void* arg)
  71. {
  72. JackClientState* const jclient = (JackClientState*)client;
  73. CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1);
  74. const CarlaMutexLocker cms(jclient->mutex);
  75. jclient->sampleRateCb = callback;
  76. jclient->sampleRateCbPtr = arg;
  77. return 0;
  78. }
  79. CARLA_EXPORT
  80. int jack_set_client_registration_callback(jack_client_t*, JackClientRegistrationCallback, void*)
  81. {
  82. return 0;
  83. }
  84. CARLA_EXPORT
  85. int jack_set_port_registration_callback(jack_client_t*, JackPortRegistrationCallback, void*)
  86. {
  87. return 0;
  88. }
  89. CARLA_EXPORT
  90. int jack_set_port_connect_callback(jack_client_t*, JackPortConnectCallback, void*)
  91. {
  92. return 0;
  93. }
  94. CARLA_EXPORT
  95. int jack_set_port_rename_callback(jack_client_t*, JackPortRenameCallback, void*)
  96. {
  97. return 0;
  98. }
  99. CARLA_EXPORT
  100. int jack_set_graph_order_callback(jack_client_t*, JackGraphOrderCallback, void*)
  101. {
  102. return 0;
  103. }
  104. CARLA_EXPORT
  105. int jack_set_xrun_callback(jack_client_t*, JackXRunCallback, void*)
  106. {
  107. return 0;
  108. }
  109. // --------------------------------------------------------------------------------------------------------------------