jack2 codebase
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.

63 lines
1.7KB

  1. //
  2. // main.m
  3. // iPhoneNet
  4. //
  5. // Created by Stéphane LETZ on 16/02/09.
  6. // Copyright Grame 2009. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #include <jack/net.h>
  10. #define NUM_INPUT 2
  11. #define NUM_OUTPUT 2
  12. jack_net_slave_t* net;
  13. jack_adapter_t* adapter;
  14. static int net_process(jack_nframes_t buffer_size,
  15. int audio_input,
  16. float** audio_input_buffer,
  17. int midi_input,
  18. void** midi_input_buffer,
  19. int audio_output,
  20. float** audio_output_buffer,
  21. int midi_output,
  22. void** midi_output_buffer,
  23. void* data)
  24. {
  25. // Process input, produce output
  26. if (audio_input == audio_output) {
  27. // Copy input to output
  28. for (int i = 0; i < audio_input; i++) {
  29. memcpy(audio_output_buffer[i], audio_input_buffer[i], buffer_size * sizeof(float));
  30. }
  31. }
  32. return 0;
  33. }
  34. int main(int argc, char *argv[]) {
  35. NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  36. jack_slave_t request = { NUM_INPUT, NUM_OUTPUT, 0, 0, DEFAULT_MTU, -1, JackSlowMode };
  37. jack_master_t result;
  38. if ((net = jack_net_slave_open(DEFAULT_MULTICAST_IP, DEFAULT_PORT, "iPhone", &request, &result)) == 0) {
  39. return -1;
  40. }
  41. jack_set_net_slave_process_callback(net, net_process, NULL);
  42. if (jack_net_slave_activate(net) != 0) {
  43. return -1;
  44. }
  45. int retVal = UIApplicationMain(argc, argv, nil, nil);
  46. [pool release];
  47. // Wait for application end
  48. jack_net_slave_deactivate(net);
  49. jack_net_slave_close(net);
  50. return retVal;
  51. }