summaryrefslogtreecommitdiff
path: root/libs/midi++2/midi++/jack_midi_port.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/midi++2/midi++/jack_midi_port.h')
-rw-r--r--libs/midi++2/midi++/jack_midi_port.h104
1 files changed, 0 insertions, 104 deletions
diff --git a/libs/midi++2/midi++/jack_midi_port.h b/libs/midi++2/midi++/jack_midi_port.h
deleted file mode 100644
index 492756067c..0000000000
--- a/libs/midi++2/midi++/jack_midi_port.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- Copyright (C) 1998-2010 Paul Barton-Davis
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-#ifndef __libmidi_port_h__
-#define __libmidi_port_h__
-
-#include <string>
-#include <iostream>
-
-#include "pbd/xml++.h"
-#include "pbd/crossthread.h"
-#include "pbd/signals.h"
-#include "pbd/ringbuffer.h"
-
-#include "evoral/Event.hpp"
-#include "evoral/EventRingBuffer.hpp"
-
-#include "midi++/types.h"
-#include "midi++/parser.h"
-#include "midi++/port.h"
-
-#include "ardour/port_engine.h"
-
-namespace MIDI {
-
-class Channel;
-class PortRequest;
-
-class JackMIDIPort : public Port {
- public:
- JackMIDIPort (std::string const &, Port::Flags, ARDOUR::PortEngine&);
- JackMIDIPort (const XMLNode&, ARDOUR::PortEngine&);
- ~JackMIDIPort ();
-
- XMLNode& get_state () const;
- void set_state (const XMLNode&);
-
- void cycle_start (pframes_t nframes);
- void cycle_end ();
-
- void parse (framecnt_t timestamp);
- int write (const byte *msg, size_t msglen, timestamp_t timestamp);
- int read (byte *buf, size_t bufsize);
- void drain (int check_interval_usecs);
- int selectable () const { return xthread.selectable(); }
-
- pframes_t nframes_this_cycle() const { return _nframes_this_cycle; }
-
- void reestablish ();
- void reconnect ();
-
- static void set_process_thread (pthread_t);
- static pthread_t get_process_thread () { return _process_thread; }
- static bool is_process_thread();
-
- static PBD::Signal0<void> MakeConnections;
- static PBD::Signal0<void> EngineHalted;
-
-private:
- ARDOUR::PortEngine& _port_engine;
- ARDOUR::PortEngine::PortHandle _port_handle;
-
- bool _currently_in_cycle;
- pframes_t _nframes_this_cycle;
- timestamp_t _last_write_timestamp;
- RingBuffer< Evoral::Event<double> > output_fifo;
- Evoral::EventRingBuffer<timestamp_t> input_fifo;
- Glib::Threads::Mutex output_fifo_lock;
- CrossThreadChannel xthread;
-
- int create_port ();
-
- /** Channel used to signal to the MidiControlUI that input has arrived */
-
- std::string _connections;
- PBD::ScopedConnection connect_connection;
- PBD::ScopedConnection halt_connection;
- void flush (void* port_buffer);
- void engine_halted ();
- void make_connections ();
- void init (std::string const &, Flags);
-
- static pthread_t _process_thread;
-
-};
-
-} // namespace MIDI
-
-#endif // __libmidi_port_h__