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.

106 lines
4.0KB

  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. carla_stdout("CarlaJackClient :: %s", __FUNCTION__);
  30. CarlaJackClient* const jclient = (CarlaJackClient*)client;
  31. CARLA_SAFE_ASSERT_RETURN(jclient != nullptr,);
  32. JackClientState& jstate(jclient->fState);
  33. CARLA_SAFE_ASSERT_RETURN(! jstate.activated,);
  34. jstate.shutdown = callback;
  35. jstate.shutdownPtr = arg;
  36. }
  37. // void jack_on_info_shutdown (jack_client_t *client,
  38. // JackInfoShutdownCallback shutdown_callback, void *arg) JACK_WEAK_EXPORT;
  39. CARLA_EXPORT
  40. int jack_set_process_callback(jack_client_t* client, JackProcessCallback callback, void* arg)
  41. {
  42. carla_stdout("CarlaJackClient :: %s", __FUNCTION__);
  43. CarlaJackClient* const jclient = (CarlaJackClient*)client;
  44. CARLA_SAFE_ASSERT_RETURN(jclient != nullptr, 1);
  45. JackClientState& jstate(jclient->fState);
  46. CARLA_SAFE_ASSERT_RETURN(! jstate.activated, 1);
  47. jstate.process = callback;
  48. jstate.processPtr = arg;
  49. return 0;
  50. }
  51. // int jack_set_freewheel_callback (jack_client_t *client,
  52. // JackFreewheelCallback freewheel_callback,
  53. // void *arg) JACK_OPTIONAL_WEAK_EXPORT;
  54. // int jack_set_buffer_size_callback (jack_client_t *client,
  55. // JackBufferSizeCallback bufsize_callback,
  56. // void *arg) JACK_OPTIONAL_WEAK_EXPORT;
  57. // int jack_set_sample_rate_callback (jack_client_t *client,
  58. // JackSampleRateCallback srate_callback,
  59. // void *arg) JACK_OPTIONAL_WEAK_EXPORT;
  60. // int jack_set_client_registration_callback (jack_client_t *client,
  61. // JackClientRegistrationCallback
  62. // registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT;
  63. // int jack_set_port_registration_callback (jack_client_t *client,
  64. // JackPortRegistrationCallback
  65. // registration_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT;
  66. // int jack_set_port_connect_callback (jack_client_t *client,
  67. // JackPortConnectCallback
  68. // connect_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT;
  69. // int jack_set_port_rename_callback (jack_client_t *client,
  70. // JackPortRenameCallback
  71. // rename_callback, void *arg) JACK_OPTIONAL_WEAK_EXPORT;
  72. // int jack_set_graph_order_callback (jack_client_t *client,
  73. // JackGraphOrderCallback graph_callback,
  74. // void *) JACK_OPTIONAL_WEAK_EXPORT;
  75. CARLA_EXPORT
  76. int jack_set_xrun_callback(jack_client_t*, JackXRunCallback, void*)
  77. {
  78. return 0;
  79. }
  80. // --------------------------------------------------------------------------------------------------------------------