Collection of tools useful for audio production
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.

235 lines
5.4KB

  1. /*
  2. * Carla JackBridge
  3. * Copyright (C) 2012 Filipe Coelho <falktx@falktx.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation; either version 2 of the License, or
  8. * 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 COPYING file
  16. */
  17. #include "carla_jackbridge.h"
  18. jack_client_t* jackbridge_client_open(const char* client_name, jack_options_t options, jack_status_t* status)
  19. {
  20. #ifndef JACKBRIDGE_DUMMY
  21. return jack_client_open(client_name, options, status);
  22. #else
  23. return nullptr;
  24. #endif
  25. }
  26. int jackbridge_client_close(jack_client_t* client)
  27. {
  28. #ifndef JACKBRIDGE_DUMMY
  29. return jack_client_close(client);
  30. #else
  31. return 0;
  32. #endif
  33. }
  34. int jackbridge_client_name_size()
  35. {
  36. #ifndef JACKBRIDGE_DUMMY
  37. return jack_client_name_size();
  38. #else
  39. return 0;
  40. #endif
  41. }
  42. char* jackbridge_get_client_name(jack_client_t* client)
  43. {
  44. #ifndef JACKBRIDGE_DUMMY
  45. return jack_get_client_name(client);
  46. #else
  47. return nullptr;
  48. #endif
  49. }
  50. int jackbridge_port_name_size()
  51. {
  52. #ifndef JACKBRIDGE_DUMMY
  53. return jack_port_name_size();
  54. #else
  55. return 0;
  56. #endif
  57. }
  58. int jackbridge_activate(jack_client_t* client)
  59. {
  60. #ifndef JACKBRIDGE_DUMMY
  61. return jack_activate(client);
  62. #else
  63. return 0;
  64. #endif
  65. }
  66. int jackbridge_deactivate(jack_client_t* client)
  67. {
  68. #ifndef JACKBRIDGE_DUMMY
  69. return jack_deactivate(client);
  70. #else
  71. return 0;
  72. #endif
  73. }
  74. int jackbridge_set_process_thread(jack_client_t* client, JackThreadCallback thread_callback, void *arg)
  75. {
  76. #ifndef JACKBRIDGE_DUMMY
  77. return jack_set_process_thread(client, thread_callback, arg);
  78. #else
  79. return 0;
  80. #endif
  81. }
  82. void jackbridge_on_shutdown(jack_client_t* client, JackShutdownCallback shutdown_callback, void* arg)
  83. {
  84. #ifndef JACKBRIDGE_DUMMY
  85. jack_on_shutdown(client, shutdown_callback, arg);
  86. #endif
  87. }
  88. int jackbridge_set_process_callback(jack_client_t* client, JackProcessCallback process_callback, void* arg)
  89. {
  90. #ifndef JACKBRIDGE_DUMMY
  91. return jack_set_process_callback(client, process_callback, arg);
  92. #else
  93. return 0;
  94. #endif
  95. }
  96. int jackbridge_set_freewheel_callback(jack_client_t* client, JackFreewheelCallback freewheel_callback, void* arg)
  97. {
  98. #ifndef JACKBRIDGE_DUMMY
  99. return jack_set_freewheel_callback(client, freewheel_callback, arg);
  100. #else
  101. return 0;
  102. #endif
  103. }
  104. int jackbridge_set_buffer_size_callback(jack_client_t* client, JackBufferSizeCallback bufsize_callback, void* arg)
  105. {
  106. #ifndef JACKBRIDGE_DUMMY
  107. return jack_set_buffer_size_callback(client, bufsize_callback, arg);
  108. #else
  109. return 0;
  110. #endif
  111. }
  112. int jackbridge_set_sample_rate_callback(jack_client_t* client, JackSampleRateCallback srate_callback, void* arg)
  113. {
  114. #ifndef JACKBRIDGE_DUMMY
  115. return jack_set_sample_rate_callback(client, srate_callback, arg);
  116. #else
  117. return 0;
  118. #endif
  119. }
  120. jack_nframes_t jackbridge_get_sample_rate(jack_client_t* client)
  121. {
  122. #ifndef JACKBRIDGE_DUMMY
  123. return jack_get_sample_rate(client);
  124. #else
  125. return 0;
  126. #endif
  127. }
  128. jack_nframes_t jackbridge_get_buffer_size(jack_client_t* client)
  129. {
  130. #ifndef JACKBRIDGE_DUMMY
  131. return jack_get_buffer_size(client);
  132. #else
  133. return 0;
  134. #endif
  135. }
  136. jack_port_t* jackbridge_port_register(jack_client_t* client, const char* port_name, const char* port_type, unsigned long flags, unsigned long buffer_size)
  137. {
  138. #ifndef JACKBRIDGE_DUMMY
  139. return jack_port_register(client, port_name, port_type, flags, buffer_size);
  140. #else
  141. return nullptr;
  142. #endif
  143. }
  144. int jackbridge_port_unregister(jack_client_t* client, jack_port_t* port)
  145. {
  146. #ifndef JACKBRIDGE_DUMMY
  147. return jack_port_unregister(client, port);
  148. #else
  149. return 0;
  150. #endif
  151. }
  152. void* jackbridge_port_get_buffer(jack_port_t* port, jack_nframes_t nframes)
  153. {
  154. #ifndef JACKBRIDGE_DUMMY
  155. return jack_port_get_buffer(port, nframes);
  156. #else
  157. return nullptr;
  158. #endif
  159. }
  160. // -----------------------------------------------------------------------------
  161. uint32_t jackbridge_midi_get_event_count(void* port_buffer)
  162. {
  163. #ifndef JACKBRIDGE_DUMMY
  164. return jack_midi_get_event_count(port_buffer);
  165. #else
  166. return 0;
  167. #endif
  168. }
  169. int jackbridge_midi_event_get(jackbridge_midi_event_t* event, void* port_buffer, uint32_t event_index)
  170. {
  171. #ifndef JACKBRIDGE_DUMMY
  172. return jack_midi_event_get((jack_midi_event_t*)event, port_buffer, event_index);
  173. #else
  174. return 0;
  175. #endif
  176. }
  177. void jackbridge_midi_clear_buffer(void* port_buffer)
  178. {
  179. #ifndef JACKBRIDGE_DUMMY
  180. jack_midi_clear_buffer(port_buffer);
  181. #endif
  182. }
  183. jackbridge_midi_data_t* jackbridge_midi_event_reserve(void* port_buffer, jack_nframes_t time, size_t data_size)
  184. {
  185. #ifndef JACKBRIDGE_DUMMY
  186. return jack_midi_event_reserve(port_buffer, time, data_size);
  187. #else
  188. return nullptr;
  189. #endif
  190. }
  191. int jackbridge_midi_event_write(void* port_buffer, jack_nframes_t time, const jackbridge_midi_data_t* data, size_t data_size)
  192. {
  193. #ifndef JACKBRIDGE_DUMMY
  194. return jack_midi_event_write(port_buffer, time, (jack_midi_data_t*)data, data_size);
  195. #else
  196. return 0;
  197. #endif
  198. }
  199. // -----------------------------------------------------------------------------
  200. jack_transport_state_t jackbridge_transport_query(const jack_client_t* client, jack_position_t* pos)
  201. {
  202. #ifndef JACKBRIDGE_DUMMY
  203. return jack_transport_query(client, pos);
  204. #else
  205. return JackTransportStopped;
  206. #endif
  207. }