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.

45 lines
1.1KB

  1. #ifndef __JackALSARawMidiOutputPort__
  2. #define __JackALSARawMidiOutputPort__
  3. #include "JackALSARawMidiPort.h"
  4. #include "JackALSARawMidiSendQueue.h"
  5. #include "JackMidiAsyncQueue.h"
  6. #include "JackMidiBufferReadQueue.h"
  7. #include "JackMidiRawOutputWriteQueue.h"
  8. namespace Jack {
  9. class JackALSARawMidiOutputPort: public JackALSARawMidiPort {
  10. private:
  11. jack_midi_event_t *alsa_event;
  12. bool blocked;
  13. JackMidiRawOutputWriteQueue *raw_queue;
  14. JackMidiBufferReadQueue *read_queue;
  15. JackALSARawMidiSendQueue *send_queue;
  16. JackMidiAsyncQueue *thread_queue;
  17. jack_midi_event_t *
  18. DequeueALSAEvent(int read_fd);
  19. public:
  20. JackALSARawMidiOutputPort(snd_rawmidi_info_t *info, size_t index,
  21. size_t max_bytes=4096,
  22. size_t max_messages=1024);
  23. ~JackALSARawMidiOutputPort();
  24. bool
  25. ProcessALSA(int read_fd, jack_nframes_t *frame);
  26. bool
  27. ProcessJack(JackMidiBuffer *port_buffer, jack_nframes_t frames,
  28. int write_fd);
  29. };
  30. }
  31. #endif