- 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> JackHalted;
-
-private:
- bool _ok;
- bool _currently_in_cycle;
- nframes_t _nframes_this_cycle;
- std::string _tagname;
- int _mode;
- size_t _number;
- Channel *_channel[16];
- Parser *input_parser;
- Parser *output_parser;
-
- static size_t nports;
-
- void create_port_names ();
- int create_ports ();
-
- jack_client_t* _jack_client;
- std::string _jack_input_port_name; /// input port name, or empty if there isn't one
- jack_port_t* _jack_input_port;
- std::string _jack_output_port_name; /// output port name, or empty if there isn't one
- jack_port_t* _jack_output_port;
- nframes_t _last_read_index;
- timestamp_t _last_write_timestamp;
-
- /** Channel used to signal to the MidiControlUI that input has arrived */
- CrossThreadChannel xthread;
-
- std::string _inbound_connections;
- std::string _outbound_connections;
- PBD::ScopedConnection connect_connection;
- PBD::ScopedConnection halt_connection;
- void flush (void* jack_port_buffer);
- void jack_halted ();
- void make_connections();
- void init (std::string const &, int);
-
- static pthread_t _process_thread;
-
- RingBuffer< Evoral::Event<double> > output_fifo;
- Evoral::EventRingBuffer<timestamp_t> input_fifo;
-
- Glib::Mutex output_fifo_lock;
-