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.

143 lines
3.9KB

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